Open mruffalo opened 6 months ago
Hey @mruffalo,
Thanks for an interesting use case! Happy to discuss what we can do here to support it.
Can you help me understand what an "empty" MuData object would mean semantically? As it has been designed around a (fixed) collection of modalities (AnnData objects), things like global dimensions are derived from the dimensions of individual modalities, etc.
Currently one can create an AnnData object with no count matrix:
adata = AnnData(X=None, obs=..., var=....)
Such objects can be used as valid modalities.
Is there anything that a MuData with no modalities that can actually add to this?
Hello-
We're publishing some data as MuData in the HuBMAP consortium, and we're also planning to use it to store descriptions and annotations of objects in segmentation masks.
These descriptions might include summaries of what we're describing as "primary measurements": protein expression, gene expression, imaging mass spec intensity, and our WIP implementation collects each type of primary measurement into its own modality in a
MuData
object.We recently realized that some segmentation mask descriptions would have no primary measurements, like descriptions of functional tissue units identified in a histology image. We were still hoping to use the
MuData
format for this, to store the appropriate metadata in.obs
, spatial information in.obsm['X_spatial']
and more, but it looks like theMuData
constructor doesn't allow instantiating an object with no modalities:One can adjust an in-memory
MuData
object, deleting all modalities, and this can be written to disk as.h5mu
but not loaded bymudata.read_h5mu
.Is this expected to be supported? It would be rather convenient if so. Thanks!