Recovering protein from adata.obsm


Thanks for developing these excellent tools. I have a CITE-seq dataset but specifically want to cluster using only the RNA with scVI. Prior to running scVI I stashed the protein expression in adata.obsm using My question is, however, can I recover this protein expression data after scVI for plotting using scanpy?

Presumably the protein data might need to undergo processing to make it comparable to the RNA? e.g. normalisation? Or does scVI somehow do this already do this on protein data in adata.obsm, in which case we can just move it across to adata.obs[‘feature_types’]?

Many thanks in advance.


There is no normalization done when it is moved to .obsm. We find just a log1p transformation for the protein is sufficient for DE/visualization, so I would advise this when moving to .obs. Unfortunately, scanpy does not allow plotting from .obsm.

Great! Many thanks for the reply.

In light of this, any plan to make scvi compatible with muon?

We are still considering it, perhaps in a few months…