4
$\begingroup$

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"
$\endgroup$
3
  • 2
    $\begingroup$ What is the class of mdat? Did you try is(mdat)? What did you get? $\endgroup$
    – llrs
    Commented Feb 12, 2019 at 16:14
  • 1
    $\begingroup$ @IIrs Hi I got this after this step [1] "RangedSummarizedExperiment" "SummarizedExperiment" "Vector" [4] "Annotated" $\endgroup$
    – Priya
    Commented Feb 12, 2019 at 16:15
  • 2
    $\begingroup$ 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 $\endgroup$
    – llrs
    Commented Feb 13, 2019 at 9:31

1 Answer 1

6
$\begingroup$

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')
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.