UNAGI: virtual disease and drug perturbation
UNAGI is a data-driven virtual disease model powered by deep generative AI for reconstructing longitudial cell dynamics in disease progression and performing unsupervised in-silico drug perturbations for drug discovery/repurposing.
Full documentations and tutorials can be accessed at UNAGI-docs.
Citation
Zheng, Y., Schupp, J.C., Adams, T. et al. A deep generative model for deciphering cellular dynamics and in silico drug discovery in complex diseases. Nat. Biomed. Eng (2025). https://doi.org/10.1038/s41551-025-01423-7
Highlights
- UNAGI supports both time-series scRNA data and control/disease (two-condition) data.
- UNAGI can construct temporal cell dynamics
- trajectories
- TFs
- temporal marker genes
- UNAGI can perform UNSUPERVISED perturbation for
- single gene
- gene combinations
- pathways
- drug and compounds
News
- Sept/2025: We are honored to have this work highlighted by Anaconda AI Platform! (link)
- June/2025: We are thrilled to share that UNAGI is published on Nature Biomedical Engineering! (link)
Overview
-
Learning disease-specific cell embeddings through iterative training processes.
-
Constructing temporal dynamic graphs from time-series single-cell data and reconstructing temporal gene regulatory networks to decipher cellular dynamics.
-
Identifying dynamic and hierarchical static markers to profile cellular dynamics, both longitudinally and at specific time points.
-
Performing in-silico perturbations to identify potential therapeutic pathways and drug/compound candidates.
Installation
Create a new conda environment
conda create -n unagi python=3.10
conda activate unagi
UNAGI installation
Option 1: Install from pip
pip install scUNAGI
Option 2: Install from Github (Recommended)
Installing UNAGI directly from GitHub ensures you have the latest version. (Please install directly from GitHub to use the provided Jupyter notebooks for tutorials and walkthrough examples.)
git clone https://github.com/mcgilldinglab/UNAGI.git
cd UNAGI
pip install .
Prerequisites
- Python >=3.9
- pyro-ppl>=1.8.6
- scanpy>=1.9.5
- anndata==0.8.0
- torch >= 2.0.0
- matplotlib>=3.7.1
Required files
Preprocessed CMAP database (Link) provides drug-gene pairs data to run UNAGI drug perturbation function.
- Option 1 : 'cmap_drug_target.npy' uses the direct drug target genes provided in CMAP LINCS 2020.
- Option 2: 'cmap_drug_treated_res_cutoff.npy' uses genes that are up/down-regulated significantly after individual drug treatments in CMAP LINCS 2020. We kept the top 5% drug-gene pairs based on level 5 MODZ score.
- 'cmap_direction_df.npy' indicates the direction of gene regulated by drugs after treatments. The drug regulation direction of gene is based on level 5 MODZ score.
- Use your own drug-target pairs, please see this tutorial.
Preprocessed IPF snRNA-seq dataset: One Drive
- UNAGI outcomes to reproduce the figures and tables generated for the manuscript.
Example dataset: Link.
- The dataset for UNAGI walkthrough demonstration.
iDREM installation:
git clone https://github.com/phoenixding/idrem.git
iDREM prerequisites:
Install the iDREM to the source folder of UNAGI
-
Java To use iDREM, a version of Java 1.7 (64-bit) or later must be installed. If Java (64-bit) 1.7 or later is not currently installed, please refer to http://www.java.com for installation instructions.
-
JavaScript To enable the interactive visualization powered by Javascript. (The users are still able to run the software off-line, but Internet access is needed to view the result interactively.)
Tutorials:
Dataset preparation
Prepare datasets to run UNAGI.
Training and analysis on an example dataset
UNAGI training and analysis on an example dataset.
Visualize the results of the UNAGI method
Visualization on an example dataset.
Using UNAGI with a customized pathway or drug database for in-silico perturbation
Run UNAGI on Customized drug/compound database and Customized pathway database.
Predicting post-treatment gene expressions
Predict the post-treatment gene expression changes using the PCLS data.
Walkthrough Example
From loading data to downstream analysis.
Please visit UNAGI-docs for more examples and tutorials.
Contact
Metadata
Release files for scUNAGI 0.5.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| scunagi-0.5.10.tar.gz | 6.7 MB | Without provenance | Details for scunagi-0.5.10.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| scunagi-0.5.10-py3-none-any.whl | Python 3 | none | any | Details for scunagi-0.5.10-py3-none-any.whl |
Total release size: 13.5 MB
Release files / scunagi-0.5.10.tar.gz
| Download URL | scunagi-0.5.10.tar.gz |
|---|---|
| Size | 6.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
574572ea2ec50b8286edf27faaff663599ef262eeb6741ea724511b7433245f0
|
|
BLAKE2b-256 checksum How to use checksums |
133580f0256986f7124960ec3b9fa0168884d3cf3561acb9795192b0bf46691f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.14
|
Release files / scunagi-0.5.10-py3-none-any.whl
| Download URL | scunagi-0.5.10-py3-none-any.whl |
|---|---|
| Size | 6.8 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4c86ca9b2f6bd6b49386308fad22e2db62e15e54ce22bcd356dd7206621e0b77
|
|
BLAKE2b-256 checksum How to use checksums |
2405b37d0ba32912eb0ba39b8d56ed2c593b2f268ee514c666537691f50a89fe
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.10.14
|
Security for scUNAGI 0.5.10
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.