welch-lab / PerturbNet

PerturbNet is a deep generative model that can predict the distribution of cell states induced by chemical or genetic perturbation
GNU General Public License v3.0
29 stars 10 forks source link

PerturbNet

PerturbNet is a deep generative model that can predict the distribution of cell states induced by chemical or genetic perturbation. Currently, you can refer to the preprint PerturbNet predicts single-cell responses to unseen chemical and genetic perturbations. We will submit an updated version of the paper soon.

System Requirements and Installation

The current version of PerturbNet requires Python 3.7. All required dependencies are listed in requirements.txt. We recommend creating a clean Conda environment using the following command:

conda create -n "PerturbNet" python=3.7

After setting up the environment, you can install the package by running:

conda activate PerturbNet
pip install PerturbNet

Core Repository Structure

./perturbnet contains the core modules to train and benchmark the PerturbNet framework.

./perturbnet/net2net contains the conditional invertible neural network (cINN) modules in the GitHub repository of Network-to-Network Translation with Conditional Invertible Neural Networks.

./perturbnet/pytorch_scvi contains our adapted modules to decode latent representations to expression profiles based on scVI version 0.7.1.

Tutorial and Reproducibility

The [./notebooks] directory contains Jupyter notebooks demonstrating how to use PerturbNet and includes code to reproduce the results:

The required data, toy examples, and model weights can be downloaded from Hugging Face.

Reference

Please consider citing

@article {Yu2022.07.20.500854,
    author = {Yu, Hengshi and Welch, Joshua D},
    title = {PerturbNet predicts single-cell responses to unseen chemical and genetic perturbations},
    elocation-id = {2022.07.20.500854},
    year = {2022},
    doi = {10.1101/2022.07.20.500854},
    publisher = {Cold Spring Harbor Laboratory},
    URL = {https://www.biorxiv.org/content/early/2022/07/22/2022.07.20.500854},
    eprint = {https://www.biorxiv.org/content/early/2022/07/22/2022.07.20.500854.full.pdf},
    journal = {bioRxiv}
}

We appreciate your interest in our work.