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.train
contains scripts to train the model.MultiCPA.api
contains user friendly scripts to interact with the model via scanpy.MultiCPA.plotting
contains scripts to plotting functions.MultiCPA.model
contains modules of compert model.MultiCPA.data
contains 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
datasets
contains both versions of the data: raw and pre-processed.preprocessing
contains notebooks to reproduce the datasets pre-processing from raw data.notebooks
contains notebooks to reproduce plots from the paper and detailed analysis of each of the datasets.figures
contains 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.