[BioC] ExpressionSet or MAList
Gordon K Smyth
smyth at wehi.EDU.AU
Tue May 6 10:08:31 CEST 2008
Although somewhat tangential to the discussion, because ExpressionSet and
MAList both can store annotation, I thought it might be interesting to
explain why I view the ability to store more than one column of probe
annotation in a microarray data object as essential. There are many
1. If the data object is subsetted frequently, the annotation should
2. I want to be able to come back to an analysis years afterwards and be
able to repeat it exactly, including the annotation, not be completely
dependent on a constantly changing annotation package. This is part of
reproducible research as I see it. Of course I also want to be able to
update the annotation, but in a controlled way.
3. Applications requiring annotation such as the limma controlStatus()
4. I am frequently presented with academic arrays for which no single
annotation column of unique probe identifiers is provided. Instead
several columns may be needed to identify the probe. People who haven't
had this experience are fortunate.
In general, the need to work with annotation as an associated data.frame
is greater with "messier" microarray platforms such as academic two-colour
cDNA arrays and with once-off custom platforms.
> Date: Wed, 30 Apr 2008 10:10:21 -0700
> From: Martin Morgan <mtmorgan at fhcrc.org>
> Subject: Re: [BioC] ExpressionSet or MAList
> To: Daniel Brewer <daniel.brewer at icr.ac.uk>
> Cc: bioconductor at stat.math.ethz.ch
> Daniel Brewer <daniel.brewer at icr.ac.uk> writes:
>> To my mind MAList stores the annotation with the dataset which I feel is
> Storing annotations with the object can be a bad thing if the
> annotations are the same, because then there are effectively different
> variants of the same annotation, one for each object. These will
> inevitably drift apart, leading to confusion. There is also a memory
> use issue.
> That said, annotations can be added to ExpressionSet, specifically
> using featureData to store an AnnotatedDataFrame (data.frame +
> annotation on column labels).
>> an advantage whereas ExpressionSet is the base implementation for many
More information about the Bioconductor