{"library":"scvi-tools","title":"scvi-tools","description":"scvi-tools provides a suite of deep learning models for the deep probabilistic analysis of single-cell omics data. It is built on PyTorch and AnnData, offering robust methods for tasks like dimensionality reduction, batch correction, and differential expression. The library is actively developed, releasing frequent minor versions and occasional major updates.","language":"python","status":"active","last_verified":"Fri Apr 17","install":{"commands":["pip install scvi-tools","pip install 'scvi-tools[gpu]' --extra-index-url https://download.pytorch.org/whl/cu118"],"cli":{"name":"scvi","version":""}},"imports":["import scvi","from scvi.model import SCVI","from scvi.data import setup_anndata"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import scvi\nimport scanpy as sc\nimport numpy as np\n\n# For reproducibility\nscvi.settings.seed = 0\n\n# Load a dataset\n# In a real scenario, you'd load your own AnnData object\n# For this example, we'll use a built-in dataset\nadata = scvi.data.pbmc_dataset()\n\n# Required step: set up AnnData for scvi-tools models\n# This registers the data with scvi-tools, specifying layers, batch keys, etc.\nscvi.data.setup_anndata(adata, layer=\"counts\", batch_key=\"batch\")\n\n# Initialize the SCVI model\nmodel = scvi.model.SCVI(adata, n_latent=30, n_layers=2)\n\n# Train the model\n# This can take several minutes depending on hardware and dataset size\nmodel.train()\n\n# Get latent representation and store it in adata.obsm\nadata.obsm[\"X_scVI\"] = model.get_latent_representation()\n\n# Get normalized expression and store it in adata.layers\nadata.layers[\"scvi_normalized\"] = model.get_normalized_expression(transform_batch=\"_scvi_batch_0\")\n\nprint(f\"Latent representation shape: {adata.obsm['X_scVI'].shape}\")\nprint(f\"Normalized expression layer shape: {adata.layers['scvi_normalized'].shape}\")\n\n# Further analysis could involve using scanpy on the latent space\n# sc.pp.neighbors(adata, use_rep=\"X_scVI\")\n# sc.tl.umap(adata)\n# sc.pl.umap(adata, color=[\"cell_type\", \"batch\"])","lang":"python","description":"This quickstart demonstrates the core workflow: loading an AnnData object, preparing it with `scvi.data.setup_anndata`, initializing and training an `SCVI` model, and then extracting the latent representation and normalized expression. The setup_anndata step is crucial for all scvi-tools models.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}