Skip to content
Prev 11614 / 21312 Next

[Bioc-devel] coerce ExpressionSet to SummarizedExperiment

One more thing. See below...
On 09/13/2017 02:54 PM, Ludwig Geistlinger wrote:
Your rownames were moved to the names of the object:

 > head(names(se))
[1] "g1" "g2" "g3" "g4" "g5" "g6"

The rowData() accessor (like the mcols() accessor, note that rowData()
is just an alias for mcols) does not restore them by default, unless
you use 'use.names=TRUE'.

 > rowData(se, use.names=TRUE)
DataFrame with 200 rows and 1 column
       EntrezID
      <integer>
g1         616
g2          45
g3         944
g4         632
g5         270
...        ...
g196       827
g197       943
g198       291
g199       432
g200       106

All Vector derivatives do that (e.g. GRanges), not just
SummarizedExperiment.

The reason for this design is that the rownames must be unique
(this is a base R requirement). By moving them from the DataFrame
containing the metadata columns to the names of the object, Vector
derivatives can be subsetted in a way that repeat some of their
elements. If the rownames were on the DataFrame containing the
metadata columns, these subsetting operations wouldn't be
possible.

Hope this makes sense,
H.