Thinking through option A, it also requires infrastructure because it
breaks the subsetting model in the other direction. If a user does:
x[1:3, ]
what should happen? With the current code, they would get something
that would not be a valid n-colour set and probably would not be
desired in this context. Since both options require some subset
coding, I think going for the option that suggests more efficiency
is best.
What should happen is that they get an ExpressionSet with only three
features, but the same samples (arrays x colours = columns of exprs and
rows of phenoData). The different colours are stored sideways, so unless
I really need to catch up with recent changes in Expression specs, I
think the row-subsetting does what we want.