[Bioc-devel] coerce ExpressionSet to SummarizedExperiment

Levi Waldron lwaldron.research at gmail.com
Mon Sep 11 02:38:24 CEST 2017


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]]



More information about the Bioc-devel mailing list