Skill Tracer
Skills › Knowledge Work Plugins › scvi-tools

scvi-tools

skill · 155 lines · Apache-2.0 · bio-research/skills/scvi-tools/SKILL.md

The facts

Its description

Deep learning for single-cell analysis using scvi-tools. This skill should be used when users need (1) data integration and batch correction with scVI/scANVI, (2) ATAC-seq analysis with PeakVI, (3) CITE-seq multi-modal analysis with totalVI, (4) multiome RNA+ATAC analysis with MultiVI, (5) spatial transcriptomics deconvolution with DestVI, (6) label transfer and reference mapping with scANVI/scArches, (7) RNA velocity with veloVI, or (8) any deep learning-based single-cell method. Triggers include mentions of scVI, scANVI, totalVI, PeakVI, MultiVI, DestVI, veloVI, sysVI, scArches, variational autoencoder, VAE, batch correction, data integration, multi-modal, CITE-seq, multiome, reference mapping, latent space.

The description the agent reads to decide when to use it.

From its settingsline 3

When it starts

The agent picks this skill when someone wants deep-learning single-cell analysis with scvi-tools models — integrating scRNA-seq batches, correcting batch effects, transferring labels, or handling CITE-seq, multiome, ATAC, spatial deconvolution and RNA velocity. The description fires on model names (scVI, scANVI, totalVI, PeakVI, MultiVI, DestVI, veloVI, sysVI, scArches) and on terms like VAE, latent space, batch correction, multi-modal and reference mapping.

Things a person might say (the model's guesses)

  • “I have four scRNA-seq samples from different donors — can you integrate them and remove the batch effect?”
  • “Can you transfer the cell type labels from my annotated reference atlas onto this new query dataset with scANVI?”
  • “Help me deconvolve my Visium spatial data using a single-cell reference.”

A model's summary of when it is used.

A model's reading

Runs scripts

python scripts/prepare_data.py, python scripts/train_model.py, python scripts/cluster_embed.py, python scripts/differential_expression.py, python scripts/transfer_labels.py (first 5 of 13 lines)

Scripts the text names. Found by matching words, so treat them as pointers.

Found by matching wordsline 65 line 66 line 67 line 68 line 69

Files it mentions

references/environment_setup.md, references/troubleshooting.md, references/data_preparation.md, references/scrna_integration.md (first 5 of 15 lines)

Files the text names, such as ones to read or write. Found by matching words, so treat them as pointers.

Found by matching wordsline 15 line 16 line 44 line 45 line 46

Licence

Apache-2.0, from bio-research/skills/scvi-tools/LICENSE.txt

The terms its author shares it under, which let it be shown here.

Other files in this skill (21) Close

The text

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1---
2name: scvi-tools
3description: Deep learning for single-cell analysis using scvi-tools. This skill should be used when users need (1) data integration and batch correction with scVI/scANVI, (2) ATAC-seq analysis with PeakVI, (3) CITE-seq multi-modal analysis with totalVI, (4) multiome RNA+ATAC analysis with MultiVI, (5) spatial transcriptomics deconvolution with DestVI, (6) label transfer and reference mapping with scANVI/scArches, (7) RNA velocity with veloVI, or (8) any deep learning-based single-cell method. Triggers include mentions of scVI, scANVI, totalVI, PeakVI, MultiVI, DestVI, veloVI, sysVI, scArches, variational autoencoder, VAE, batch correction, data integration, multi-modal, CITE-seq, multiome, reference mapping, latent space.
4---
5
6# scvi-tools Deep Learning Skill
7
8This skill provides guidance for deep learning-based single-cell analysis using scvi-tools, the leading framework for probabilistic models in single-cell genomics.
9

scvi-tools Deep Learning Skill

This skill provides guidance for deep learning-based single-cell analysis using scvi-tools, the leading framework for probabilistic models in single-cell genomics.

Raw lines 1 to 9
10## How to Use This Skill
121. Identify the appropriate workflow from the model/workflow tables below
132. Read the corresponding reference file for detailed steps and code
143. Use scripts in `scripts/` to avoid rewriting common code
154. For installation or GPU issues, consult `references/environment_setup.md`
165. For debugging, consult `references/troubleshooting.md`

How to Use This Skill

  1. Identify the appropriate workflow from the model/workflow tables below
  2. Read the corresponding reference file for detailed steps and code
  3. Use scripts in scripts/ to avoid rewriting common code
  4. For installation or GPU issues, consult references/environment_setup.md
  5. For debugging, consult references/troubleshooting.md
Raw lines 10 to 17
18## When to Use This Skill
20- When scvi-tools, scVI, scANVI, or related models are mentioned
21- When deep learning-based batch correction or integration is needed
22- When working with multi-modal data (CITE-seq, multiome)
23- When reference mapping or label transfer is required
24- When analyzing ATAC-seq or spatial transcriptomics data
25- When learning latent representations of single-cell data

When to Use This Skill

  • When scvi-tools, scVI, scANVI, or related models are mentioned
  • When deep learning-based batch correction or integration is needed
  • When working with multi-modal data (CITE-seq, multiome)
  • When reference mapping or label transfer is required
  • When analyzing ATAC-seq or spatial transcriptomics data
  • When learning latent representations of single-cell data
Raw lines 18 to 26
27## Model Selection Guide
29| Data Type | Model | Primary Use Case |
30|-----------|-------|------------------|
31| scRNA-seq | **scVI** | Unsupervised integration, DE, imputation |
32| scRNA-seq + labels | **scANVI** | Label transfer, semi-supervised integration |
33| CITE-seq (RNA+protein) | **totalVI** | Multi-modal integration, protein denoising |
34| scATAC-seq | **PeakVI** | Chromatin accessibility analysis |
35| Multiome (RNA+ATAC) | **MultiVI** | Joint modality analysis |
36| Spatial + scRNA reference | **DestVI** | Cell type deconvolution |
37| RNA velocity | **veloVI** | Transcriptional dynamics |
38| Cross-technology | **sysVI** | System-level batch correction |

Model Selection Guide

Data TypeModelPrimary Use Case
scRNA-seqscVIUnsupervised integration, DE, imputation
scRNA-seq + labelsscANVILabel transfer, semi-supervised integration
CITE-seq (RNA+protein)totalVIMulti-modal integration, protein denoising
scATAC-seqPeakVIChromatin accessibility analysis
Multiome (RNA+ATAC)MultiVIJoint modality analysis
Spatial + scRNA referenceDestVICell type deconvolution
RNA velocityveloVITranscriptional dynamics
Cross-technologysysVISystem-level batch correction
Raw lines 27 to 39
40## Workflow Reference Files
42| Workflow | Reference File | Description |
43|----------|---------------|-------------|
44| Environment Setup | `references/environment_setup.md` | Installation, GPU, version info |
45| Data Preparation | `references/data_preparation.md` | Formatting data for any model |
46| scRNA Integration | `references/scrna_integration.md` | scVI/scANVI batch correction |
47| ATAC-seq Analysis | `references/atac_peakvi.md` | PeakVI for accessibility |
48| CITE-seq Analysis | `references/citeseq_totalvi.md` | totalVI for protein+RNA |
49| Multiome Analysis | `references/multiome_multivi.md` | MultiVI for RNA+ATAC |
50| Spatial Deconvolution | `references/spatial_deconvolution.md` | DestVI spatial analysis |
51| Label Transfer | `references/label_transfer.md` | scANVI reference mapping |
52| scArches Mapping | `references/scarches_mapping.md` | Query-to-reference mapping |
53| Batch Correction | `references/batch_correction_sysvi.md` | Advanced batch methods |
54| RNA Velocity | `references/rna_velocity_velovi.md` | veloVI dynamics |
55| Troubleshooting | `references/troubleshooting.md` | Common issues and solutions |

Workflow Reference Files

WorkflowReference FileDescription
Environment Setupreferences/environment_setup.mdInstallation, GPU, version info
Data Preparationreferences/data_preparation.mdFormatting data for any model
scRNA Integrationreferences/scrna_integration.mdscVI/scANVI batch correction
ATAC-seq Analysisreferences/atac_peakvi.mdPeakVI for accessibility
CITE-seq Analysisreferences/citeseq_totalvi.mdtotalVI for protein+RNA
Multiome Analysisreferences/multiome_multivi.mdMultiVI for RNA+ATAC
Spatial Deconvolutionreferences/spatial_deconvolution.mdDestVI spatial analysis
Label Transferreferences/label_transfer.mdscANVI reference mapping
scArches Mappingreferences/scarches_mapping.mdQuery-to-reference mapping
Batch Correctionreferences/batch_correction_sysvi.mdAdvanced batch methods
RNA Velocityreferences/rna_velocity_velovi.mdveloVI dynamics
Troubleshootingreferences/troubleshooting.mdCommon issues and solutions
Raw lines 40 to 56
57## CLI Scripts
59Modular scripts for common workflows. Chain together or modify as needed.

CLI Scripts

Modular scripts for common workflows. Chain together or modify as needed.

Raw lines 57 to 60
61### Pipeline Scripts
63| Script | Purpose | Usage |
64|--------|---------|-------|
65| `prepare_data.py` | QC, filter, HVG selection | `python scripts/prepare_data.py raw.h5ad prepared.h5ad --batch-key batch` |
66| `train_model.py` | Train any scvi-tools model | `python scripts/train_model.py prepared.h5ad results/ --model scvi` |
67| `cluster_embed.py` | Neighbors, UMAP, Leiden | `python scripts/cluster_embed.py adata.h5ad results/` |
68| `differential_expression.py` | DE analysis | `python scripts/differential_expression.py model/ adata.h5ad de.csv --groupby leiden` |
69| `transfer_labels.py` | Label transfer with scANVI | `python scripts/transfer_labels.py ref_model/ query.h5ad results/` |
70| `integrate_datasets.py` | Multi-dataset integration | `python scripts/integrate_datasets.py results/ data1.h5ad data2.h5ad` |
71| `validate_adata.py` | Check data compatibility | `python scripts/validate_adata.py data.h5ad --batch-key batch` |

Pipeline Scripts

ScriptPurposeUsage
prepare_data.pyQC, filter, HVG selectionpython scripts/prepare_data.py raw.h5ad prepared.h5ad --batch-key batch
train_model.pyTrain any scvi-tools modelpython scripts/train_model.py prepared.h5ad results/ --model scvi
cluster_embed.pyNeighbors, UMAP, Leidenpython scripts/cluster_embed.py adata.h5ad results/
differential_expression.pyDE analysispython scripts/differential_expression.py model/ adata.h5ad de.csv --groupby leiden
transfer_labels.pyLabel transfer with scANVIpython scripts/transfer_labels.py ref_model/ query.h5ad results/
integrate_datasets.pyMulti-dataset integrationpython scripts/integrate_datasets.py results/ data1.h5ad data2.h5ad
validate_adata.pyCheck data compatibilitypython scripts/validate_adata.py data.h5ad --batch-key batch
Raw lines 61 to 72
Runs code python scripts/prepare_data.py :65
Runs code python scripts/train_model.py :66
Runs code python scripts/cluster_embed.py :67
Runs code python scripts/differential_expression.py :68
Runs code python scripts/transfer_labels.py :69
Runs code python scripts/integrate_datasets.py :70
Runs code python scripts/validate_adata.py :71
73### Example Workflow
75```bash
76# 1. Validate input data
77python scripts/validate_adata.py raw.h5ad --batch-key batch --suggest
79# 2. Prepare data (QC, HVG selection)
80python scripts/prepare_data.py raw.h5ad prepared.h5ad --batch-key batch --n-hvgs 2000
82# 3. Train model
83python scripts/train_model.py prepared.h5ad results/ --model scvi --batch-key batch
85# 4. Cluster and visualize
86python scripts/cluster_embed.py results/adata_trained.h5ad results/ --resolution 0.8
88# 5. Differential expression
89python scripts/differential_expression.py results/model results/adata_clustered.h5ad results/de.csv --groupby leiden
90```

Example Workflow

# 1. Validate input data
python scripts/validate_adata.py raw.h5ad --batch-key batch --suggest

# 2. Prepare data (QC, HVG selection)
python scripts/prepare_data.py raw.h5ad prepared.h5ad --batch-key batch --n-hvgs 2000

# 3. Train model
python scripts/train_model.py prepared.h5ad results/ --model scvi --batch-key batch

# 4. Cluster and visualize
python scripts/cluster_embed.py results/adata_trained.h5ad results/ --resolution 0.8

# 5. Differential expression
python scripts/differential_expression.py results/model results/adata_clustered.h5ad results/de.csv --groupby leiden
Raw lines 73 to 91
Runs code python scripts/validate_adata.py :77
Runs code python scripts/prepare_data.py :80
Runs code python scripts/train_model.py :83
Runs code python scripts/cluster_embed.py :86
Runs code python scripts/differential_expression.py :89
92### Python Utilities
94The `scripts/model_utils.py` provides importable functions for custom workflows:
96| Function | Purpose |
97|----------|---------|
98| `prepare_adata()` | Data preparation (QC, HVG, layer setup) |
99| `train_scvi()` | Train scVI or scANVI |
100| `evaluate_integration()` | Compute integration metrics |
101| `get_marker_genes()` | Extract DE markers |
102| `save_results()` | Save model, data, plots |
103| `auto_select_model()` | Suggest best model |
104| `quick_clustering()` | Neighbors + UMAP + Leiden |

Python Utilities

The scripts/model_utils.py provides importable functions for custom workflows:

FunctionPurpose
prepare_adata()Data preparation (QC, HVG, layer setup)
train_scvi()Train scVI or scANVI
evaluate_integration()Compute integration metrics
get_marker_genes()Extract DE markers
save_results()Save model, data, plots
auto_select_model()Suggest best model
quick_clustering()Neighbors + UMAP + Leiden
Raw lines 92 to 105
Reads a file scripts/model_utils.py :94
106## Critical Requirements
1081. **Raw counts required**: scvi-tools models require integer count data
109 ```python
110 adata.layers["counts"] = adata.X.copy() # Before normalization
111 scvi.model.SCVI.setup_anndata(adata, layer="counts")
112 ```
1142. **HVG selection**: Use 2000-4000 highly variable genes
115 ```python
116 sc.pp.highly_variable_genes(adata, n_top_genes=2000, batch_key="batch", layer="counts", flavor="seurat_v3")
117 adata = adata[:, adata.var['highly_variable']].copy()
118 ```
1203. **Batch information**: Specify batch_key for integration
121 ```python
122 scvi.model.SCVI.setup_anndata(adata, layer="counts", batch_key="batch")
123 ```

Critical Requirements

  1. Raw counts required: scvi-tools models require integer count data ``python adata.layers["counts"] = adata.X.copy() # Before normalization scvi.model.SCVI.setup_anndata(adata, layer="counts")
  1. HVG selection: Use 2000-4000 highly variable genes ``python sc.pp.highly_variable_genes(adata, n_top_genes=2000, batch_key="batch", layer="counts", flavor="seurat_v3") adata = adata[:, adata.var['highly_variable']].copy()
  1. Batch information: Specify batch_key for integration ``python scvi.model.SCVI.setup_anndata(adata, layer="counts", batch_key="batch")
Raw lines 106 to 124
125## Quick Decision Tree
127```
128Need to integrate scRNA-seq data?
129├── Have cell type labels? → scANVI (references/label_transfer.md)
130└── No labels? → scVI (references/scrna_integration.md)
132Have multi-modal data?
133├── CITE-seq (RNA + protein)? → totalVI (references/citeseq_totalvi.md)
134├── Multiome (RNA + ATAC)? → MultiVI (references/multiome_multivi.md)
135└── scATAC-seq only? → PeakVI (references/atac_peakvi.md)
137Have spatial data?
138└── Need cell type deconvolution? → DestVI (references/spatial_deconvolution.md)
140Have pre-trained reference model?
141└── Map query to reference? → scArches (references/scarches_mapping.md)
143Need RNA velocity?
144└── veloVI (references/rna_velocity_velovi.md)
146Strong cross-technology batch effects?
147└── sysVI (references/batch_correction_sysvi.md)
148```

Quick Decision Tree

Need to integrate scRNA-seq data?
├── Have cell type labels? → scANVI (references/label_transfer.md)
└── No labels? → scVI (references/scrna_integration.md)

Have multi-modal data?
├── CITE-seq (RNA + protein)? → totalVI (references/citeseq_totalvi.md)
├── Multiome (RNA + ATAC)? → MultiVI (references/multiome_multivi.md)
└── scATAC-seq only? → PeakVI (references/atac_peakvi.md)

Have spatial data?
└── Need cell type deconvolution? → DestVI (references/spatial_deconvolution.md)

Have pre-trained reference model?
└── Map query to reference? → scArches (references/scarches_mapping.md)

Need RNA velocity?
└── veloVI (references/rna_velocity_velovi.md)

Strong cross-technology batch effects?
└── sysVI (references/batch_correction_sysvi.md)
Raw lines 125 to 149
150## Key Resources
152- [scvi-tools Documentation](https://docs.scvi-tools.org/)
153- [scvi-tools Tutorials](https://docs.scvi-tools.org/en/stable/tutorials/index.html)
154- [Model Hub](https://huggingface.co/scvi-tools)
155- [GitHub Issues](https://github.com/scverse/scvi-tools/issues)

From anthropics/knowledge-work-plugins at 2574e29, 2026-10-27. Skills read by DeepSeek V4.1 Flash on 2026-11-04. Summary and techniques by Claude Opus 5.5 on 2026-11-06.