Developer#

Import scvi-tools as:

import scvi

Data Registration#

AnnDataFields delineate how scvi-tools refers to fields in AnnData objects. The AnnDataManager provides an interface for operating over a collection of AnnDataFields and an AnnData object.

data.AnnDataManager

Provides an interface to validate and process an AnnData object for use in scvi-tools.

data.AnnDataManagerValidationCheck

Validation checks for AnnOrMudata scvi-tools compatibility.

data.fields.BaseAnnDataField

Abstract class for a single AnnData/MuData field.

data.fields.LayerField

An AnnDataField for layer or X attributes in the AnnData data structure.

data.fields.CategoricalObsField

An AnnDataField for categorical .obs attributes in the AnnData data structure.

data.fields.CategoricalVarField

An AnnDataField for categorical .var attributes in the AnnData data structure.

data.fields.NumericalJointObsField

An AnnDataField for a collection of numerical .obs fields in the AnnData data structure.

data.fields.NumericalJointVarField

An AnnDataField for a collection of numerical .var fields in the AnnData data structure.

data.fields.CategoricalJointObsField

An AnnDataField for a collection of categorical .obs fields in AnnData.

data.fields.CategoricalJointVarField

An AnnDataField for a collection of categorical .var fields in AnnData.

data.fields.ObsmField

An AnnDataField for an .obsm field in the AnnData data structure.

data.fields.VarmField

An AnnDataField for a .varm field in the AnnData data structure.

data.fields.ProteinObsmField

An AnnDataField for an protein data stored in an .obsm field of an AnnData object.

data.fields.StringUnsField

An AnnDataField for string .uns attributes in the AnnData data structure.

data.fields.LabelsWithUnlabeledObsField

An AnnDataField for labels which include explicitly unlabeled cells.

data.fields.BaseMuDataWrapperClass

A wrapper class that adds MuData support for an AnnDataField.

data.fields.MuDataWrapper

Wraps an AnnDataField with BaseMuDataWrapperClass.

data.fields.MuDataLayerField

data.fields.MuDataProteinLayerField

data.fields.MuDataNumericalObsField

data.fields.MuDataNumericalVarField

data.fields.MuDataCategoricalObsField

data.fields.MuDataCategoricalVarField

data.fields.MuDataObsmField

data.fields.MuDataVarmField

data.fields.MuDataNumericalJointObsField

data.fields.MuDataNumericalJointVarField

data.fields.MuDataCategoricalJointObsField

data.fields.MuDataCategoricalJointVarField

data.AnnTorchDataset

Extension of Dataset for AnnData objects.

Data Loaders#

DataLoaders for loading tensors from AnnData objects. DataSplitters for splitting data into train/test/val.

dataloaders.AnnDataLoader

DataLoader for loading tensors from AnnData objects.

dataloaders.AnnTorchDataset

Extension of Dataset for AnnData objects.

dataloaders.CollectionAdapter

Allow an AnnCollection to pretend to be an AnnData in SCVI-Tools

dataloaders.ConcatDataLoader

DataLoader that supports a list of list of indices to load.

dataloaders.DataSplitter

Creates data loaders train_set, validation_set, test_set.

dataloaders.SemiSupervisedDataLoader

DataLoader that supports semisupervised training.

dataloaders.SemiSupervisedDataSplitter

Creates data loaders train_set, validation_set, test_set.

dataloaders.BatchDistributedSampler

EXPERIMENTAL Sampler that restricts to loading from a subset of the dataset.

dataloaders.MappedCollectionDataModule

dataloaders.TileDBDataModule

PyTorch Lightning DataModule for training scVI models from SOMA data

Distributions#

Parameterizable probability distributions.

distributions.Poisson

Poisson distribution.

distributions.NegativeBinomial

Negative binomial distribution.

distributions.NegativeBinomialMixture

Negative binomial mixture distribution.

distributions.ZeroInflatedNegativeBinomial

Zero-inflated negative binomial distribution.

distributions.JaxNegativeBinomialMeanDisp

Negative binomial parameterized by mean and inverse dispersion.

distributions.BetaBinomial

Beta binomial distribution.

Model (Base)#

These classes should be used to construct user-facing model classes.

model.base.BaseModelClass

Abstract class for scvi-tools models.

model.base.BaseMinifiedModeModelClass

Abstract base class for scvi-tools models that can handle minified data.

model.base.VAEMixin

Universal variational auto-encoder (VAE) methods.

model.base.RNASeqMixin

General purpose methods for RNA-seq analysis.

model.base.ArchesMixin

Universal scArches implementation.

model.base.UnsupervisedTrainingMixin

General purpose unsupervised train method.

model.base.SemisupervisedTrainingMixin

General purpose semisupervised train, predict, and interoperability methods.

model.base.PyroSviTrainMixin

Mixin class for training Pyro models.

model.base.PyroSampleMixin

Mixin class for generating samples from posterior distribution.

model.base.PyroJitGuideWarmup

A callback to warmup a Pyro guide.

model.base.PyroModelGuideWarmup

A callback to warmup a Pyro guide and model.

model.base.DifferentialComputation

Unified class for differential computation.

model.base.EmbeddingMixin

EXPERIMENTAL Mixin class for initializing and using embeddings in a model.

Module#

Existing module classes with respective generative and inference procedures.

module.AutoZIVAE

Implementation of the AutoZI model [Clivio et al., 2019].

module.Classifier

Basic fully-connected NN classifier.

module.LDVAE

Linear-decoded Variational auto-encoder model.

module.MRDeconv

Model for multi-resolution deconvolution of spatial transriptomics.

module.PEAKVAE

Variational auto-encoder model for ATAC-seq data.

module.MULTIVAE

Variational auto-encoder model for joint paired + unpaired RNA-seq and ATAC-seq data.

module.SCANVAE

Single-cell annotation using variational inference.

module.TOTALVAE

Total variational inference for CITE-seq data.

module.VAE

Variational auto-encoder [Lopez et al., 2018].

module.VAEC

Conditional Variational auto-encoder model.

module.AmortizedLDAPyroModule

An amortized implementation of Latent Dirichlet Allocation [Blei et al., 2003].

module.JaxVAE

Variational autoencoder model.

External module#

Module classes in the external API with respective generative and inference procedures.

external.gimvi.JVAE

Joint variational auto-encoder for imputing missing genes in spatial data.

external.cytovi.CytoVAE

Variational auto-encoder model for Cytometry.

external.cellassign.CellAssignModule

Model for CellAssign.

external.contrastivevi.ContrastiveDataSplitter

Creates ContrastiveDataLoader for training, validation, and test set.

external.stereoscope.RNADeconv

Model of scRNA-seq for deconvolution of spatial transcriptomics.

external.stereoscope.SpatialDeconv

Model of single-cell RNA-sequencing data for deconvolution of spatial transcriptomics.

external.tangram.TangramMapper

Tangram Mapper Model.

external.scbasset.ScBassetModule

PyTorch implementation of ScBasset [Yuan and Kelley, 2022].

external.contrastivevi.ContrastiveVAE

Variational inference for contrastive analysis of RNA-seq data.

external.velovi.VELOVAE

Variational auto-encoder model.

external.mrvi_jax.JaxMRVAE

Multi-resolution Variational Inference (MrVI) module.

external.mrvi_torch.TorchMRVAE

Multi-resolution Variational Inference (MrVI) module.

external.methylvi.METHYLVAE

PyTorch module for methylVI.

external.methylvi.METHYLANVAE

Methylation annotation using variational inference.

external.decipher.DecipherPyroModule

Pyro Module for the Decipher model.

external.resolvi.RESOLVAE

Implementation of resolVI.

external.scviva.nicheVAE

Variational auto-encoder with niche decoders [Levy et al., 2025].

external.scviva.NicheLossOutput

Modify loss output to record niche losses.

external.sysvi.SysVAE

CVAE with optional VampPrior and latent cycle consistency loss.

Module (Base)#

These classes should be used to construct module classes that define generative models and inference schemes.

module.base.BaseModuleClass

Abstract class for scvi-tools modules.

module.base.BaseMinifiedModeModuleClass

Abstract base class for scvi-tools modules that can handle minified data.

module.base.SupervisedModuleClass

General purpose supervised classify and loss calculations methods.

module.base.PyroBaseModuleClass

Base module class for Pyro models.

module.base.JaxBaseModuleClass

Abstract class for Jax-based scvi-tools modules.

module.base.EmbeddingModuleMixin

EXPERIMENTAL Mixin class for initializing and using embeddings in a module.

module.base.LossOutput

Loss signature for models.

module.base.auto_move_data

Decorator for Module methods to move data to correct device.

Neural networks#

Basic neural network building blocks.

nn.FCLayers

A helper class to build fully-connected layers for a neural network.

nn.Encoder

Encode data of n_input dimensions into a latent space of n_output dimensions.

nn.Decoder

Decodes data from latent space to data space.

nn.DecoderSCVI

Decodes data from a latent space of n_input dimensions into n_output dimensions.

nn.LinearDecoderSCVI

Linear decoder for scVI.

nn.Embedding

EXPERIMENTAL Embedding layer with utility methods for extending.

nn.DecoderTOTALVI

Decodes data from a latent space of n_input dimensions n_output dimensions.

nn.EncoderTOTALVI

Encodes data of n_input dimensions into a latent space of n_output dimensions.

Train#

TrainingPlans define train/test/val optimization steps for modules.

train.AdversarialTrainingPlan

Train vaes with adversarial loss option to encourage latent space mixing.

train.ClassifierTrainingPlan

Lightning module task to train a simple MLP classifier.

train.SemiSupervisedTrainingPlan

Lightning module task for SemiSupervised Training.

train.SemiSupervisedAdversarialTrainingPlan

Lightning module task for SemiSupervised Training with Adversarial Loss.

train.LowLevelPyroTrainingPlan

Lightning module task to train Pyro scvi-tools modules.

train.PyroTrainingPlan

Lightning module task to train Pyro scvi-tools modules.

train.JaxTrainingPlan

Lightning module task to train Jax scvi-tools modules.

train.Trainer

Lightweight wrapper of Pytorch Lightning Trainer.

train.TrainingPlan

Lightning module task to train scvi-tools modules.

train.TrainRunner

TrainRunner calls Trainer.fit() and handles pre and post training procedures.

train.ScibCallback

A callback to initialize the Scib-Metrics autotune module.

train.SaveCheckpoint

Saves model checkpoints based on a monitored metric.

train.LoudEarlyStopping

Loud early stopping callback.

Utilities#

Utility functions used by scvi-tools.

utils.track

Progress bar with 'rich' and 'tqdm' styles.

utils.setup_anndata_dsp

Class that is intended to process docstrings.

utils.attrdict

A dictionary that allows for attribute-style access.

external.decipher.utils.Trajectory

A class that defines a trajectory through a latent space.