[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