Simultaneous integration, differential expression and clustering of single cell RNAseq data using pyro-powered variational inference.
Project description
scANTIPODE
Single Cell Ancestral Node Taxonomy Inference by Partitioning Of Differential Expression. The model is an extension of the SCVI paradigm--a structured generative, variational inference model developed for the simultaneous analysis (DE) and categorization (taxonomy generation) of cell types across evolution (or now any covariate) using single-cell RNA-seq data. Long ago it began as a hack of a simplified model of scANVI and is built on the pytorch-based PPL pyro. The model acts as an integration method, that learns interpretable differential expression in the process. Note that this means ANTIPODE will fail to integrate datasets of different datasets, or datasets with large disparities in quality or gene mean dispersions.
The complete procedure runs in 3 phases (but can also run fully supervised using only phase 2):
-
The Fuzzy Phase: Cells may belong to multiple types sampled from a bernoulli distribution, learns an integrated latent space with covariate effects, but is less straightforward to interpret.
-
The Supervised Phase: Discrete clustering is initialized from a supervised initialization (or defaults to a de novo k-means clustering in the latent space). Can take a supervised clustering and/or latent space for cells.
-
The Free Phase: All parameters are released for unconstrained learning.
You can read about the generative model in the publication and supplement here. You can look at example runs here.
Installation
First create a conda environment with python >= 3.10, then
To install the package from PyPI:
pip install antipode
For development, clone the repository and run:
conda create -n antipode -c rapidsai -c conda-forge -c nvidia \
rapids=24.12 python=3.12 'cuda-version>=12.0,<=12.5' \
'pytorch=*=*cuda*'
git clone https://github.com/mtvector/scANTIPODE.git
cd scANTIPODE
conda install jax jaxlib -c conda-forge
pip install -e .
Optional phylogeny/analysis features:
pip install antipode[extras]
Please reach out to let me know if you try ANTIPODE on a dataset and it works (or doesn't work)...
Note that the model can be VRAM hungry, with parameters scaling by #covariates x #genes x #clusters|#modules... if you run out of vram, you might need to 1. fix a GPU memory leak, 2. use fewer genes/latent dimensions/clusters/particles, 3. get a bigger GPU
Future development
- Phylogeny regression
- Parameter variance estimation
- Improved clustering
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file antipode-0.1.0.tar.gz.
File metadata
- Download URL: antipode-0.1.0.tar.gz
- Upload date:
- Size: 62.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cd17e06c9c7e7d6aebf401e9bf2d582e980957965b741dd5bb0fdacd72074b53
|
|
| MD5 |
72946e0ea6b25c3fff83563a550551f0
|
|
| BLAKE2b-256 |
8f19679876d2a4320a11d5fee7d1f49aab9dc32bafa1a9a4fd6be9d129d771c4
|
File details
Details for the file antipode-0.1.0-py3-none-any.whl.
File metadata
- Download URL: antipode-0.1.0-py3-none-any.whl
- Upload date:
- Size: 64.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9acd2cdee8fd2eced281760e9081a01376c282b9d48c599f5288fd159b898061
|
|
| MD5 |
8a63bf0f9dcbadd2d7c05048d28e8249
|
|
| BLAKE2b-256 |
3e8c6353d54f8c8cc902a181af4e372b578f943b71286ae92bc202466cdb3bf6
|