Skip to content
Prev 465 / 21312 Next

[Bioc-devel] prada package and eSet in Biobase

Florian Hahne <f.hahne at dkfz.de> writes:
I think you are saying that you are "happy" with the latest changes.
If not, and you have a use case for a MultiExpressionSet type class,
please give us some details.
Sure!  Contributions of such vignettes are certainly welcome.
Not that I know of.  I agree with you that setting validity in the
class definition keeps things all in one place and is to be preferred
(unless someone can tell us why using setValidity is better).
To answer this, I we need to discuss the two important use cases that
we are tyring to address...

Case 1: Fixed Components
------------------------

The data is organized into a (small) number of fixed components.
Examples:

* Expression data has exprs, se.exprs

* Two-color data has R, G, Rb, Gb

Case 2: Multiple Non-Fixed Components
-------------------------------------

[I'm less familiar with this use case, but I think it is the one you
have, so perhaps you can help me explain it.]

The data has a variable number of components.  Fixed names do not make
sense here.  Examples:

* Matrices of numbers, one for each 96-well plate in some type of
  experiment.  Plates have ids perhaps, but these change from one
  instance to another.  I _think_ that one assumes that each matrix is
  the same measurement but for different "plates".

For the Fixed Components case, I think there is a clear advantage to
customizing the initialize method such that users can build complete
and correct instances easily.  Having to specify assayData contents
separately seems convoluted and error prone; you won't get an error
message until the eSet subclass' validity check is run.  

For the Multiple Non-Fixed Components case, one doesn't want to have
to name each element of assayData in the call to new().  Instead, one
could do as you propose, creating an AssayData instance separately.
However, as a user, I might appreciate a custom initialize method that
allowed me to provide a list of matrices so that I don't have to know
as much about the internals.

Thoughts?  Help clarifying use case #2 (or other important use
cases?).
This is certainly up for discussion.  Validation is an expensive
(computation time) operation so we need to choose carefully where/when
we trigger it.

But validating at least in a replacement method on the assayData slot
makes a fair bit of sense to me and could be worth a try.
Excellent feedback.  The question are quite far from stupid.  I hope
other interested folks will chime in with their questions and
comments.

Best,

+ seth