This is outside the scope of this pull request, but probably worth discussing.

```Y``` is effectively a transposed dense BIOM table. How should we handle this? I don't really like the idea of making bipy depend on the biom-format project, but...

Should ```Y``` instead be a ```scipy.sparse``` matrix, or perhaps both dense and sparse matrices would be supported? This is how some of the methods in scikit-learn handle this type of input anyways. That way, if we have data loaded into a BIOM table object, we might have a method that returns the underlying ```scipy.sparse``` matrix, which can be provided as input here.