BIMSBbioinfo / scmaui

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

scMaui

Tests badge

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.

image

The package is freely available under a GNU Lesser General Public License v3 or later (LGPLv3+)

Citation

scMaui paper is now available on bioRxiv.

Installation

pip install scmaui

Usage

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)

Command-line usage

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

Tutorials

We provide tutorials for data preprocessing, scMaui usage and some downstream analyses. You can find the tutorials here.

About

License:Other


Languages

Language:Jupyter Notebook 83.1%Language:Python 16.4%Language:Shell 0.3%Language:R 0.2%