MultiCPA is a research project from a computatiobal biology group of Prof. Fabian
Theis (https://github.com/theislab) from Helmholtz Zentrum München.
MultiCPA is a framework to learn effects of perturbations at the single-cell level for multiple modalities: proteins and mRNAs.
MultiCPA encodes and learns phenotypic drug response across different cell types, doses and drug combinations. MultiCPA allows:
- Out-of-distribution predicitons of unseen drug combinations at various doses and among different cell types.
- Learn interpretable drug and cell type latent spaces.
- Estimate dose response curve for each perturbation and their combinations.
- Access the uncertainty of the estimations of the model.
The repository is centered around the MultiCPA module:
MultiCPA.traincontains scripts to train the model.MultiCPA.apicontains user friendly scripts to interact with the model via scanpy.MultiCPA.plottingcontains scripts to plotting functions.MultiCPA.modelcontains modules of compert model.MultiCPA.datacontains data loader, which transforms anndata structure to a class compatible with compert model.
Additional files and folders for reproducibility are found in another repository: multicpa-reproducibility
datasetscontains both versions of the data: raw and pre-processed.preprocessingcontains notebooks to reproduce the datasets pre-processing from raw data.notebookscontains notebooks to reproduce plots from the paper and detailed analysis of each of the datasets.figurescontains figures after running the notebooks.
Note that the codebase was build on top of CPA model.
To learn how to use this repository, check example_training.ipynb.
Note that hyperparameters in the demo are not default and will not work for new datasets. Please make
sure to run seml sweeps for your new dataset to find best hyperparameters. Provided Conda environments are strongly recommended.
All the examples and the reproducibility notebooks for the plots in the paper could be found in the multicpa-reproducibility repository.
Currently, you can access the documentation via help function in IPython. For example:
from MultiCPA.api import ComPertAPI
help(ComPertAPI)
from MultiCPA.plotting import CompertVisuals
help(CompertVisuals)A separate page with the documentation is coming soon.
If you have a question or noticed a problem, you can post an issue.
This source code is released under the BSD 3-Clause License, included here.
