I just dug up this old thread because I realized we still don't have a coercion method as(sample.ExpressionSet, "SummarizedExperiment"). Since we do have SummarizedExperiment(sample.ExpressionSet), could the coercion method also be added easily?
library(Biobase) > library(SummarizedExperiment) >
example("ExpressionSet")
SummarizedExperiment(sample.ExpressionSet)class: SummarizedExperiment
dim: 500 26 metadata(0): assays(1): '' rownames(500): AFFX-MurIL2_at AFFX-MurIL10_at ... 31738_at 31739_at rowData names(0): colnames(26): A B ... Y Z colData names(0):> as(sample.ExpressionSet, "SummarizedExperiment")Error in as(sample.ExpressionSet, "SummarizedExperiment") : no method or default for coercing ?ExpressionSet? to ?SummarizedExperiment?
sessionInfo()R version 3.4.0 RC (2017-04-20 r72569)
Platform: x86_64-pc-linux-gnu (64-bit) Running under: Ubuntu 16.04.3 LTS Matrix products: default BLAS: /usr/lib/atlas-base/atlas/libblas.so.3.0 LAPACK: /usr/lib/atlas-base/atlas/liblapack.so.3.0 locale: [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C LC_TIME=en_US.UTF-8 [4] LC_COLLATE=en_US.UTF-8 LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8 [7] LC_PAPER=en_US.UTF-8 LC_NAME=C LC_ADDRESS=C [10] LC_TELEPHONE=C LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C attached base packages: [1] stats4 parallel stats graphics grDevices utils datasets methods base other attached packages: [1] SummarizedExperiment_1.7.5 DelayedArray_0.3.16 matrixStats_0.52.2 [4] GenomicRanges_1.29.6 GenomeInfoDb_1.13.4 IRanges_2.11.7 [7] S4Vectors_0.15.5 Biobase_2.37.2 BiocGenerics_0.23.0 loaded via a namespace (and not attached): [1] lattice_0.20-35 bitops_1.0-6 grid_3.4.0 [4] zlibbioc_1.23.0 XVector_0.17.0 Matrix_1.2-11 [7] tools_3.4.0 RCurl_1.95-4.8 compiler_3.4.0 [10] GenomeInfoDbData_0.99.1
On Mon, Sep 22, 2014 at 1:54 AM, Herv? Pag?s <hpages at fhcrc.org> wrote:
Hi, On 09/20/2014 11:14 AM, Martin Morgan wrote:
On 09/20/2014 10:43 AM, Sean Davis wrote:
Hi, Vince. Looks like a good start. I'd probably pull all the assays from ExpressionSet into SummarizedExperiment as the default, avoiding data coercion methods that are unnecessarily lossy. Also, as it stands, the assayname argument is not used anyway?
I think there will be some resistance to uniting the 'Biobase' and 'IRanges' realms under 'GenomicRanges';
This coercion method could be defined (1) in Biobase (where ExpressionSet is defined), (2) in GenomicRanges (where SummarizedExperiment is defined), or (3) in a package that depends on Biobase and GenomicRanges. Since it's probably undesirable to make Biobase depend on GenomicRanges or vice-versa, we would need to use Suggests for (1) or (2). That means we would get a note like this at installation time: ** preparing package for lazy loading in method for ?coerce? with signature ?"ExpressionSet","SummarizedEx periment"?: no definition for class ?SummarizedExperiment? Not very clean but it works. (3) is a cleaner solution but then the coercion method would not necessarily be available to the user when s/he needs it (unless s/he knows what extra package to load). The obvious advantage of putting the method in Biobase is that if a user has an ExpressionSet, then s/he necessarily has Biobase attached and the method is already in her/his search path. Another solution would be (4) to move SummarizedExperiment somewhere else. That would be in a package that depends on GenomicRanges and Biobase, and the coercion method would be defined there. H. considerable effort has gone in
to making a rational hierarchy of package dependencies [perhaps Herve will point to some of his ASCII art on the subject]. I have some recollection of (recent) discussion related to this topic in the DESeq2 realm, but am drawing a blank; presumably Michael or Wolfgang or ... will chime in. Martin
Sean On Sat, Sep 20, 2014 at 10:38 AM, Vincent Carey <stvjc at channing.harvard.edu> wrote: do we have a facility for this?
if not, we have https://github.com/vjcitn/biocMultiAssay/blob/master/R/exs2se.R https://github.com/vjcitn/biocMultiAssay/blob/master/man/coe rce-methods.Rd it occurred to me that we might want something like this in GenomicRanges (that's where SummarizedExperiment is managed, right?) and I will add it if there are no objections the arguments are currently assayname = "exprs", # for naming SimpleList element fngetter = function(z) rownames(exprs(z)), # extract usable feature names annDbGetter = function(z) { clnanno = sub(".db", "", annotation(z)) stopifnot(require(paste0(annotation(z), ".db"), character.only=TRUE) ) get(paste0(annotation(z), ".db")) # obtain resource for mapping feature names to coordinates }, probekeytype = "PROBEID", # chipDb field to use duphandler = function(z) { # action to take to process duplicated features if (any(isd <- duplicated(z[,"PROBEID"]))) return(z[!isd,,drop=FALSE]) z }, signIsStrand = TRUE, # verify that signs of addresses define strand ucsdChrnames = TRUE # prefix 'chr' to chromosome token [[alternative HTML version deleted]]
_______________________________________________ Bioc-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel
[[alternative HTML version deleted]]
_______________________________________________ Bioc-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel
-- Herv? Pag?s Program in Computational Biology Division of Public Health Sciences Fred Hutchinson Cancer Research Center 1100 Fairview Ave. N, M1-B514 P.O. Box 19024 Seattle, WA 98109-1024 E-mail: hpages at fhcrc.org Phone: (206) 667-5791 Fax: (206) 667-1319
_______________________________________________ Bioc-devel at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/bioc-devel
Levi Waldron http://www.waldronlab.org Assistant Professor of Biostatistics CUNY School of Public Health US: +1 646-364-9616 <+1%20646-364-9616> Skype: levi.waldron [[alternative HTML version deleted]]