Skip to main content
Ctrl+K
scvi-tools - Home scvi-tools - Home
  • Installation
  • Tutorials
    • Quick start
      • Introduction to scvi-tools
      • Data loading and preparation
    • scRNA-seq
      • Atlas-level integration of lung data
      • MrVI Quick Start Tutorial
      • Benchmarking the scANVI fix
      • Seed labeling with scANVI
      • Integration and label transfer with Tabula Muris
      • Differential expression on C. elegans data
      • Annotation with CellAssign
      • Isolating perturbation-induced variations with contrastiveVI
      • Linearly decoded VAE
      • Topic Modeling with Amortized LDA
      • Identification of zero-inflated genes
      • Integration of scRNA-seq data with substantial batch effects using sysVI
      • Decipher Quick Start Tutorial
      • Variational inference for RNA velocity with VeloVI
      • MrVI analysis over Tahoe100M cells dataset
    • ATAC-seq
      • PeakVI: Analyzing scATACseq data
      • PoissonVI: Analyzing quantitative scATAC-seq fragment counts
      • ScBasset: Analyzing scATACseq data
      • scBasset: Batch correction of scATACseq data
    • Cytometry
      • Quick start tutorial for CytoVI
      • Advanced Tutorial: Multi-Panel Integration and Downstream Analysis with CytoVI
    • scBS-seq
      • Integrating single-cell methylation data from different scBS-seq experiments with methylVI
    • Multimodal
      • CITE-seq analysis with totalVI
      • Reference mapping with SCVI-Tools
      • CITE-seq reference mapping with totalVI
      • Integration of CITE-seq and scRNA-seq data
      • Joint analysis of paired and unpaired multiomic data with MultiVI
      • Integration of scRNA-seq and spatial proteomics data with DiagVI
      • Integration of scRNA-seq and spatial transcriptomics data with DiagVI
    • Spatial transcriptomics
      • ResolVI to address noise and biases in spatial transcriptomics
      • scVIVA for representing cells and their environment in spatial transcriptomics
      • Multi-resolution deconvolution of spatial transcriptomics
      • Introduction to gimVI
      • Spatial mapping with Tangram
      • Stereoscope applied to left ventricule data
      • Mapping human lymph node cell types to 10X Visium with Cell2location
    • Model hub
      • Using scvi-hub to download pretrained scvi-tools models
      • Using scvi-hub to upload pretrained scvi-tools models
      • Use pretrained models of scVI-hub for CELLxGENE
      • Querying the Human Lung Cell Atlas
      • Use pretrained models of scVI-hub for Tahoe100M
    • Common Modelling Use Cases
      • Preprocessing datasets for analysis with scvi-tools
      • Model hyperparameter tuning with scVI
      • Minification
      • Using SHAP values and IntegratedGradients for cell type classification interpretability
      • Train a scVI model using multiGPU
    • Custom Data Loaders
      • Train a scVI model using Census data
      • Train a scVI model using Lamin
      • Train a scVI model using Anncollection dataloader wrapper
      • MrVI analysis over Tahoe100M cells dataset using LaminDB Custom Dataloader
    • R Tutorials
      • Using Python in R with reticulate
      • Introduction to scvi-tools in R
      • Integrating datasets with scVI in R
      • CITE-seq analysis in R
      • ATAC-seq analysis in R
      • Multi-resolution deconvolution of spatial transcriptomics in R
    • Development
      • Data handling in scvi-tools
      • Constructing a probabilistic module
      • Constructing a high-level model
  • User guide
    • Background
      • Overview of the scvi-tools codebase
      • Counterfactual prediction
      • Differential Abundance
      • Differential Expression
      • Transfer learning
      • Variational Inference
    • Use Cases
      • Train SCVI model with custom dataloaders
      • Perform downstream analysis tasks of SCVI models
      • Optimize SCVI model with hyperparameter tuning
      • Using LLM Engines with scvi-tools
      • Train SCVI model with multi-GPU support
      • Saving and loading SCVI models
      • SCVI Criticism
      • Training configuration
      • Train SCVI model with callbacks
    • Models
      • Amortized LDA
      • AUTOZI
      • CellAssign
      • contrastiveVI
      • CytoVI
      • Decipher
      • DestVI
      • DiagVI
      • gimVI
      • LDVAE
      • MethylANVI
      • MethylVI
      • MrVI
      • MultiVI
      • PeakVI
      • PoissonVI
      • ResolVI
      • scANVI
      • scAR
      • scBasset
      • scVI
      • scVIVA
      • Solo
      • Stereoscope
      • SysVI
      • Tangram
      • TotalANVI
      • totalVI
      • VeloVI
  • API
    • User
      • scvi.model.AUTOZI
      • scvi.model.CondSCVI
      • scvi.model.DestVI
      • scvi.model.LinearSCVI
      • scvi.model.PEAKVI
      • scvi.model.SCANVI
      • scvi.model.SCVI
      • scvi.model.TOTALVI
      • scvi.model.MULTIVI
      • scvi.model.AmortizedLDA
      • scvi.model.JaxSCVI
      • scvi.model.mlxSCVI
      • scvi.external.CellAssign
      • scvi.external.CYTOVI
      • scvi.external.GIMVI
      • scvi.external.RNAStereoscope
      • scvi.external.SpatialStereoscope
      • scvi.external.SOLO
      • scvi.external.SCAR
      • scvi.external.Tangram
      • scvi.external.SCBASSET
      • scvi.external.ContrastiveVI
      • scvi.external.POISSONVI
      • scvi.external.VELOVI
      • scvi.external.MRVI
      • scvi.external.TorchMRVI
      • scvi.external.JaxMRVI
      • scvi.external.METHYLVI
      • scvi.external.METHYLANVI
      • scvi.external.Decipher
      • scvi.external.TOTALANVI
      • scvi.external.RESOLVI
      • scvi.external.SysVI
      • scvi.external.SCVIVA
      • scvi.external.DIAGVI
      • scvi.data.read_h5ad
      • scvi.data.read_csv
      • scvi.data.read_loom
      • scvi.data.read_text
      • scvi.data.read_10x_atac
      • scvi.data.read_10x_multiome
      • scvi.data.poisson_gene_selection
      • scvi.data.organize_cite_seq_10x
      • scvi.data.organize_multiome_anndatas
      • scvi.data.add_dna_sequence
      • scvi.data.reads_to_fragments
      • scvi.autotune.run_autotune
      • scvi.autotune.AutotuneExperiment
      • scvi.train.TrainingPlanConfig
      • scvi.train.AdversarialTrainingPlanConfig
      • scvi.train.SemiSupervisedTrainingPlanConfig
      • scvi.train.SemiSupervisedAdversarialTrainingPlanConfig
      • scvi.train.PyroTrainingPlanConfig
      • scvi.train.LowLevelPyroTrainingPlanConfig
      • scvi.train.ClassifierTrainingPlanConfig
      • scvi.train.JaxTrainingPlanConfig
      • scvi.train.TrainerConfig
      • scvi.hub.HubMetadata
      • scvi.hub.HubModelCardHelper
      • scvi.hub.HubModel
      • scvi.criticism.PosteriorPredictiveCheck
      • scvi.model.utils.get_minified_adata_scrna
      • scvi._settings.ScviConfig
    • Developer
      • scvi.data.AnnDataManager
      • scvi.data.AnnDataManagerValidationCheck
      • scvi.data.fields.BaseAnnDataField
      • scvi.data.fields.LayerField
      • scvi.data.fields.CategoricalObsField
      • scvi.data.fields.CategoricalVarField
      • scvi.data.fields.NumericalJointObsField
      • scvi.data.fields.NumericalJointVarField
      • scvi.data.fields.CategoricalJointObsField
      • scvi.data.fields.CategoricalJointVarField
      • scvi.data.fields.ObsmField
      • scvi.data.fields.VarmField
      • scvi.data.fields.ProteinObsmField
      • scvi.data.fields.StringUnsField
      • scvi.data.fields.LabelsWithUnlabeledObsField
      • scvi.data.fields.BaseMuDataWrapperClass
      • scvi.data.fields.MuDataWrapper
      • scvi.data.fields.MuDataLayerField
      • scvi.data.fields.MuDataProteinLayerField
      • scvi.data.fields.MuDataNumericalObsField
      • scvi.data.fields.MuDataNumericalVarField
      • scvi.data.fields.MuDataCategoricalObsField
      • scvi.data.fields.MuDataCategoricalVarField
      • scvi.data.fields.MuDataObsmField
      • scvi.data.fields.MuDataVarmField
      • scvi.data.fields.MuDataNumericalJointObsField
      • scvi.data.fields.MuDataNumericalJointVarField
      • scvi.data.fields.MuDataCategoricalJointObsField
      • scvi.data.fields.MuDataCategoricalJointVarField
      • scvi.data.AnnTorchDataset
      • scvi.dataloaders.AnnDataLoader
      • scvi.dataloaders.AnnTorchDataset
      • scvi.dataloaders.CollectionAdapter
      • scvi.dataloaders.ConcatDataLoader
      • scvi.dataloaders.DataSplitter
      • scvi.dataloaders.SemiSupervisedDataLoader
      • scvi.dataloaders.SemiSupervisedDataSplitter
      • scvi.dataloaders.BatchDistributedSampler
      • scvi.dataloaders.MappedCollectionDataModule
      • scvi.dataloaders.TileDBDataModule
      • scvi.distributions.Poisson
      • scvi.distributions.NegativeBinomial
      • scvi.distributions.NegativeBinomialMixture
      • scvi.distributions.ZeroInflatedNegativeBinomial
      • scvi.distributions.JaxNegativeBinomialMeanDisp
      • scvi.distributions.BetaBinomial
      • scvi.distributions.Normal
      • scvi.distributions.Log1pNormal
      • scvi.distributions.ZeroInflatedLogNormal
      • scvi.distributions.ZeroInflatedGamma
      • scvi.model.base.BaseModelClass
      • scvi.model.base.BaseMinifiedModeModelClass
      • scvi.model.base.VAEMixin
      • scvi.model.base.RNASeqMixin
      • scvi.model.base.ArchesMixin
      • scvi.model.base.UnsupervisedTrainingMixin
      • scvi.model.base.SemisupervisedTrainingMixin
      • scvi.model.base.PyroSviTrainMixin
      • scvi.model.base.PyroSampleMixin
      • scvi.model.base.PyroJitGuideWarmup
      • scvi.model.base.PyroModelGuideWarmup
      • scvi.model.base.DifferentialComputation
      • scvi.model.base.EmbeddingMixin
      • scvi.module.AutoZIVAE
      • scvi.module.Classifier
      • scvi.module.LDVAE
      • scvi.module.MRDeconv
      • scvi.module.PEAKVAE
      • scvi.module.MULTIVAE
      • scvi.module.SCANVAE
      • scvi.module.TOTALVAE
      • scvi.module.VAE
      • scvi.module.VAEC
      • scvi.module.AmortizedLDAPyroModule
      • scvi.module.JaxVAE
      • scvi.external.gimvi.JVAE
      • scvi.external.cytovi.CytoVAE
      • scvi.external.cellassign.CellAssignModule
      • scvi.external.contrastivevi.ContrastiveDataSplitter
      • scvi.external.stereoscope.RNADeconv
      • scvi.external.stereoscope.SpatialDeconv
      • scvi.external.tangram.TangramMapper
      • scvi.external.scbasset.ScBassetModule
      • scvi.external.contrastivevi.ContrastiveVAE
      • scvi.external.velovi.VELOVAE
      • scvi.external.mrvi.MRVAE
      • scvi.external.mrvi_jax.JaxMRVAE
      • scvi.external.mrvi_torch.TorchMRVAE
      • scvi.external.methylvi.METHYLVAE
      • scvi.external.methylvi.METHYLANVAE
      • scvi.external.decipher.DecipherPyroModule
      • scvi.external.resolvi.RESOLVAE
      • scvi.external.totalanvi.TOTALANVAE
      • scvi.external.scviva.nicheVAE
      • scvi.external.scviva.NicheLossOutput
      • scvi.external.sysvi.SysVAE
      • scvi.external.diagvi.DIAGVAE
      • scvi.module.base.BaseModuleClass
      • scvi.module.base.BaseMinifiedModeModuleClass
      • scvi.module.base.SupervisedModuleClass
      • scvi.module.base.PyroBaseModuleClass
      • scvi.module.base.JaxBaseModuleClass
      • scvi.module.base.EmbeddingModuleMixin
      • scvi.module.base.LossOutput
      • scvi.module.base.auto_move_data
      • scvi.nn.FCLayers
      • scvi.nn.Encoder
      • scvi.nn.Decoder
      • scvi.nn.DecoderSCVI
      • scvi.nn.LinearDecoderSCVI
      • scvi.nn.one_hot
      • scvi.nn.Embedding
      • scvi.nn.DecoderTOTALVI
      • scvi.nn.EncoderTOTALVI
      • scvi.train.AdversarialTrainingPlan
      • scvi.train.ClassifierTrainingPlan
      • scvi.train.SemiSupervisedTrainingPlan
      • scvi.train.SemiSupervisedAdversarialTrainingPlan
      • scvi.train.LowLevelPyroTrainingPlan
      • scvi.train.PyroTrainingPlan
      • scvi.train.JaxTrainingPlan
      • scvi.train.Trainer
      • scvi.train.TrainingPlan
      • scvi.train.TrainRunner
      • scvi.train.ScibCallback
      • scvi.train.SaveCheckpoint
      • scvi.train.LoudEarlyStopping
      • scvi.utils.track
      • scvi.utils.setup_anndata_dsp
      • scvi.utils.attrdict
      • scvi.model.get_max_epochs_heuristic
      • scvi.external.decipher.utils.Trajectory
    • Datasets
      • scvi.data.cellxgene
      • scvi.data.pbmc_seurat_v4_cite_seq
      • scvi.data.spleen_lymph_cite_seq
      • scvi.data.heart_cell_atlas_subsampled
      • scvi.data.pbmcs_10x_cite_seq
      • scvi.data.purified_pbmc_dataset
      • scvi.data.dataset_10x
      • scvi.data.brainlarge_dataset
      • scvi.data.pbmc_dataset
      • scvi.data.cortex
      • scvi.data.smfish
      • scvi.data.synthetic_iid
      • scvi.data.breast_cancer_dataset
      • scvi.data.mouse_ob_dataset
      • scvi.data.retina
      • scvi.data.prefrontalcortex_starmap
      • scvi.data.frontalcortex_dropseq
  • Developer documentation
    • Contributing code
    • Maintenance guide
  • Frequently asked questions
  • Release notes
  • References
  • Discussion
  • GitHub
  • Model hub
  • .md

Use Cases

Use Cases#

  • Train SCVI model with custom dataloaders
  • Perform downstream analysis tasks of SCVI models
  • Optimize SCVI model with hyperparameter tuning
    • RAY
    • MLFLOW
  • Using LLM Engines with scvi-tools
    • Claude (Anthropic)
    • ChatGPT (OpenAI)
    • OpenClaw
    • Gemini (Google)
    • BioMNI (Stanford)
    • Summary
  • Train SCVI model with multi-GPU support
    • Some of the benefits of using MultiGPU training
    • Using MultiGPU training in SCVI-Tools
  • Saving and loading SCVI models
  • SCVI Criticism
    • There are a few metrics we calculate to achieve that:
    • Example of use:
    • Creating Report:
  • Training configuration
    • When to use which config
    • Example (SCVI)
    • Example (SCANVI)
    • Choosing the right plan config
  • Train SCVI model with callbacks

previous

Variational Inference

next

Train SCVI model with custom dataloaders

By The scvi-tools development team

© Copyright 2026, The scvi-tools development team..