I completely agree with you that this new design is better if our main goal is to be able to fetch only certain samples from a BIOM file. However, I don't remember us really discussing this during the code sprint, and I don't know what the goals of QiiTA are or how you plan to change BIOM to fit these goals (there is *definitely* a disconnect there...). For example, see [this QIIME issue](https://github.com/qiime/qiime/issues/1312), where you're saying that BIOM won't have any sorting functionality. When was this decision made? Why was I not included in the discussion, or at least pointed to the outcomes of the discussion, so that I'm aware of the new direction we're going in? It makes it really difficult to review a pull request (and file format design) when I'm left in the dark.

Anyways, the existing design will be more efficient if we plan to load the entire sparse matrix into memory (as we're already doing). But it sounds like this is a moot point as the use-cases for BIOM have changed.