scMaui is python package that implements a variational auto-encoder for multi-omics data integration. The model is capable of handling variable numbers input and output modalities as well as missing modalities. The model also features a range of log-likelihood implementations for determining the reconstruction loss, including the negative binomial or the negative multinomial model.
The package is freely available under a GNU Lesser General Public License v3 or later (LGPLv3+)
scMaui paper is now available on bioRxiv.
pip install scmaui
import pkg_resources
from scmaui.data import load_data, SCDataset
from scmaui.utils import get_model_params
from scmaui.ensembles import EnsembleVAE
# get some toy data
toy_data_path = pkg_resources.resource_filename('scmaui', 'resources/gtx.h5ad')
adatas = load_data([toy_data_path], names=['gtx'])
dataset = SCDataset(adatas, losses=['negbinom'])
# create an scMaui model
params = get_model_params(dataset)
ensemble = EnsembleVAE(params=params)
# fit the model
ensemble.fit(dataset, epochs=10)
ensemble.summary()
# obtain latent features
latents, _ = ensemble.encode(dataset)
# obtain an imputation
imputed = ensemble.impute(dataset)
# obtain input feature attributions
selected_cells = latents.index.tolist()[:5] # select first 5 cells
explanation = ensemble.explain(dataset, cellids=selected_cells)
scMaui offers a command line interface for model fitting. The results are stored in an output directory (-output).
scmaui -data adata.h5ad \ -datanames gtx \ -output <outputdir> \ -epochs 200 \ -ensemble_size 10 \ -nlatent 15 \ -adversarial label1 label2 \ -conditional covariate1 covariate2 \ -losses negmul negbinom
Additional information on available hyper-parameters are available through
scmaui -h
We provide tutorials for data preprocessing, scMaui usage and some downstream analyses. You can find the tutorials here.