text: user3766: 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"
  
  
  user383: 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')
  
  
original_text: 3766: <p>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:</p>
  
  <pre><code>Error in as.vector(x) : no method for coercing this S4 class to a vector
  </code></pre>
  
  <p>My code:</p>
  
  <pre><code> library('dplyr')
   library('recount')
   library('magrittr')
   library('ffpe')
   library('RSkittleBrewer')
   library('SummarizedExperiment')
   library('devtools')
   trop &lt;- RSkittleBrewer::RSkittleBrewer('tropical')
   colon_proj &lt;- c('SRP025982', 'SRP42161')
   if(any(!file.exists(file.path(colon_proj, 'rse_gene.Rdata')))) {
   sapply(colon_proj, download_study)
   }
  
   blood_proj &lt;- c('SRP066834', 'SRP041736', 'SRP060416')
   if(any(!file.exists(file.path(blood_proj, 'rse_gene.Rdata')))) {
   sapply(blood_proj, download_study)
   }
   proj &lt;- c(colon_proj,blood_proj)
  
   dat &lt;- lapply(proj, function(x) {
   load(file.path(x, 'rse_gene.Rdata'))
   return(rse_gene)
   })
   proj
  
   sapply(dat, dim)
  
   metadata &lt;- all_metadata('sra')
  
   write.table(metadata, "recount_metadata.csv")
  
   mdat &lt;- do.call(cbind, dat)
  
   write.table(mdat, "recount_mdat.csv")
  
  is(mdat)
  ## "RangedSummarizedExperiment" "SummarizedExperiment" "Vector" "Annotated"
  </code></pre>
   383: <p>You can't cbind a bunch of obscure object types.</p>
  
  <p>If you want merged count tables you should do this:</p>
  
  <pre><code>mdat &lt;- do.call(cbind,lapply(dat,assay))
  </code></pre>
  
  <p>Where <strong>row.names</strong> are <em>Ensembl gene IDs</em> and <strong>col.names</strong> are the <em>SRR accessions</em>.</p>
  
  <p>Then run your table writing command.</p>
  
  <p>-</p>
  
  <p>If you want the coordinates of your genes then do this to make a bed with the genomic locations:</p>
  
  <pre><code>library(rtracklayer)
  export.bed(rowRanges(dat[[1]]),'gene_coords.bed')
  </code></pre>
  