[Bioc-devel] coerce ExpressionSet to SummarizedExperiment
Martin Morgan
martin.morgan at roswellpark.org
Mon Sep 11 12:58:41 CEST 2017
On 09/10/2017 08:38 PM, Levi Waldron wrote:
> I just dug up this old thread because I realized we still don't have a
> coercion method as(sample.ExpressionSet, "SummarizedExperiment"). Since we
try as(sample.ExpressionSet, "RangedSummarizedExperiment"); see
?makeSummarizedExperimentFromExpressionSet
> 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
>>
>
>
>
This email message may contain legally privileged and/or...{{dropped:2}}
More information about the Bioc-devel
mailing list