[Bioc-devel] coerce ExpressionSet to SummarizedExperiment

Ludwig Geistlinger Ludwig.Geistlinger at bio.ifi.lmu.de
Wed Sep 13 23:54:36 CEST 2017


Coercing vice versa, i.e. from SummarizedExperiment to ExpressionSet,
which is defined in

SummarizedExperiment/R/makeSummarizedExperimentFromExpressionSet.R

as follows:

setAs("SummarizedExperiment", "ExpressionSet", function(from)
    as(as(from, "RangedSummarizedExperiment"), "ExpressionSet")
)

also seems to be a bit problematic, as it makes you lose your rowData/fData.



Here is an example:

## Constructing the SE similar to examples of ?SummarizedExperiment
> nrows <- 200; ncols <- 6
> counts <- matrix(runif(nrows * ncols, 1, 1e4), nrows)
> colData <- DataFrame(Treatment=rep(c("ChIP", "Input"), 3),
                          row.names=LETTERS[1:6])


## some rowData with simulated gene IDs
> rowData <- DataFrame(EntrezID=sample(1000, 200), row.names=paste0("g",
1:200))
> se <- SummarizedExperiment(assays=SimpleList(exprs=counts),
                            colData=colData, rowData=rowData)

# this is how it looks
> rowData(se)
DataFrame with 200 rows and 1 column
     EntrezID
    <integer>
1         289
2         476
3         608
4         998
5         684
...       ...
196       331
197       590
198       445
199        95
200       129

(why did I actually lost the rownames g1-g200 here?)


## Coercing to Expression makes me losing the rowData/fData
> eset <- as(se, "ExpressionSet")
> fData(eset)
data frame with 0 columns and 200 rows


## So where is the problem?
## Apparently in the coercion
##    from SummarizedExperiment to RangedSummarizedExperiment
> rse <- as(se, "RangedSummarizedExperiment")
> rowData(rse)
DataFrame with 200 rows and 0 columns



More information about the Bioc-devel mailing list