scvi-tools (single-cell variational inference tools) is a package for probabilistic modeling of single-cell omics data, built on top of PyTorch and AnnData. The package hosts implementations of several models that perform a wide range of single-cell data analysis tasks, as well as the building blocks to rapidly prototype new probabilistic models.
scvi-tools can be installed with
To leverage a GPU for inference, a version of PyTorch that supports your GPU will need to be installed separately.
- Tutorials, API reference, and advanced installation guides are available in the docs.
- For discussion of usage, checkout out our forum.
- For immediate public chat with the developers, come talk to us on Gitter.
- For a skeleton of implementation of a new model in scvi-tools, refer to our template repository
- To report bugs, make an issue on GitHub.
- scVI for analysis of single-cell RNA-seq data, as well as its improved differential expression framework.
- LDVAE for an interpretable linear factor model version of scVI.
- scANVI for cell annotation of scRNA-seq data using semi-labeled examples.
- CellAssign for cell annotation of scRNA-seq data using marker genes.
- SOLO for detection of doublets.
- scArches for transfer learning when learning cell embeddings in an online fashion (implemented for scVI, scANVI & totalVI)
- totalVI for analysis of CITE-seq data.
- Steroscope for deconvolution of spatial transcriptomics data.
- gimVI for imputation of missing genes in spatial transcriptomics from scRNA-seq data.
- DestVI for multi-resolution deconvolution of spatial transcriptomics data.
- peakVI for analysis of single-cell ATAC sequencing profiles
scvi-tools is a high-level probabilistic programming package especially developped for single-cell omics data. We hope it will empower method developers and help them focus on building fruitful models. To achieve this, we host black-box primitives for loading data from AnnData, black-box training procedures using PyTorch Lightning, and optionally provides automatic inference recipes based on Pyro. We currently support many optimization-based inference procedures including SVI, AEVB, MAP, MLE and EM. To learn more about the developer toolkit, please visit our tutorials. We also provide an example skeleton implementation of a basic scVI in PyTorch and Pyro as an independant package based off
scvi-tools. If you wish to add an implementation of your algorithm in scvi-tools, please post a GitHub issue to reach out to us.
If you use scvi-tools in your research, please consider citing