4

I tried to run the following code in R studio. Everything worked fine, except at the last step [write.table(mdat, "recount_mdat.csv")] when I tried to export the 'mdat', I got the following error:

Error in as.vector(x) : no method for coercing this S4 class to a vector

My code:

 library('dplyr')
 library('recount')
 library('magrittr')
 library('ffpe')
 library('RSkittleBrewer')
 library('SummarizedExperiment')
 library('devtools')
 trop <- RSkittleBrewer::RSkittleBrewer('tropical')
 colon_proj <- c('SRP025982', 'SRP42161')
 if(any(!file.exists(file.path(colon_proj, 'rse_gene.Rdata')))) {
 sapply(colon_proj, download_study)
 }

 blood_proj <- c('SRP066834', 'SRP041736', 'SRP060416')
 if(any(!file.exists(file.path(blood_proj, 'rse_gene.Rdata')))) {
 sapply(blood_proj, download_study)
 }
 proj <- c(colon_proj,blood_proj)

 dat <- lapply(proj, function(x) {
 load(file.path(x, 'rse_gene.Rdata'))
 return(rse_gene)
 })
 proj

 sapply(dat, dim)

 metadata <- all_metadata('sra')

 write.table(metadata, "recount_metadata.csv")

 mdat <- do.call(cbind, dat)

 write.table(mdat, "recount_mdat.csv")

is(mdat)
## "RangedSummarizedExperiment" "SummarizedExperiment" "Vector" "Annotated"
llrs
  • 4,693
  • 1
  • 18
  • 42
Priya
  • 351
  • 1
  • 3
  • 8
  • 2
    What is the class of mdat? Did you try is(mdat)? What did you get? – llrs Feb 12 '19 at 16:14
  • 1
    @IIrs Hi I got this after this step
               [1] "RangedSummarizedExperiment" "SummarizedExperiment"       
               "Vector"                    
       [4] "Annotated"
    
    – Priya Feb 12 '19 at 16:15
  • 2
    Great, see how fast you got your answer when you provided enough details, remember to include all the relevant details next time! Glad you found how to solve the problem – llrs Feb 13 '19 at 09:31

1 Answers1

6

You can't cbind a bunch of obscure object types.

If you want merged count tables you should do this:

mdat <- do.call(cbind,lapply(dat,assay))

Where row.names are Ensembl gene IDs and col.names are the SRR accessions.

Then run your table writing command.

-

If you want the coordinates of your genes then do this to make a bed with the genomic locations:

library(rtracklayer)
export.bed(rowRanges(dat[[1]]),'gene_coords.bed')
story
  • 1,573
  • 1
  • 8
  • 15