scvi-toolsSkill scvi-tools

scvi-tools 是一个用于单细胞分析的深度学习框架,提供多种模型如 scVI、scANVI、totalVI、PeakVI、MultiVI、DestVI、veloVI 和 sysVI,用于数据集成、批校正、多模态分析、参考映射、RNA 速度分析等。关键词:深度学习、单细胞分析、scvi-tools、数据集成、批校正、多模态分析、参考映射、RNA速度分析。

深度学习 0 次安装 0 次浏览 更新于 3/18/2026

名称: scvi-tools 描述: 使用 scvi-tools 进行单细胞分析的深度学习。此技能应在用户需要以下情况时使用:(1) 使用 scVI/scANVI 进行数据集成和批校正,(2) 使用 PeakVI 进行 ATAC-seq 分析,(3) 使用 totalVI 进行 CITE-seq 多模态分析,(4) 使用 MultiVI 进行多组学 RNA+ATAC 分析,(5) 使用 DestVI 进行空间转录组解卷积,(6) 使用 scANVI/scArches 进行标签转移和参考映射,(7) 使用 veloVI 进行 RNA 速度分析,或 (8) 任何基于深度学习的单细胞方法。触发词包括提及 scVI、scANVI、totalVI、PeakVI、MultiVI、DestVI、veloVI、sysVI、scArches、变分自编码器、VAE、批校正、数据集成、多模态、CITE-seq、多组学、参考映射、潜在空间。

scvi-tools 深度学习技能

此技能为使用 scvi-tools 进行基于深度学习的单细胞分析提供指导,scvi-tools 是单细胞基因组学中概率模型的领先框架。

如何使用此技能

  1. 从下方的模型/工作流表格中识别适当的工作流程
  2. 阅读相应的参考文件以获取详细步骤和代码
  3. 使用 scripts/ 中的脚本以避免重写通用代码
  4. 对于安装或 GPU 问题,参考 references/environment_setup.md
  5. 对于调试,参考 references/troubleshooting.md

何时使用此技能

  • 当提及 scvi-tools、scVI、scANVI 或相关模型时
  • 当需要基于深度学习的批校正或集成时
  • 当处理多模态数据(CITE-seq、多组学)时
  • 当需要参考映射或标签转移时
  • 当分析 ATAC-seq 或空间转录组数据时
  • 当学习单细胞数据的潜在表示时

模型选择指南

数据类型 模型 主要用例
scRNA-seq scVI 无监督集成、差异表达、插补
scRNA-seq + 标签 scANVI 标签转移、半监督集成
CITE-seq (RNA+蛋白) totalVI 多模态集成、蛋白去噪
scATAC-seq PeakVI 染色质可及性分析
多组学 (RNA+ATAC) MultiVI 联合模态分析
空间 + scRNA 参考 DestVI 细胞类型解卷积
RNA 速度 veloVI 转录动态
跨技术 sysVI 系统级批校正

工作流参考文件

工作流 参考文件 描述
环境设置 references/environment_setup.md 安装、GPU、版本信息
数据准备 references/data_preparation.md 为任何模型格式化数据
scRNA 集成 references/scrna_integration.md scVI/scANVI 批校正
ATAC-seq 分析 references/atac_peakvi.md 使用 PeakVI 进行可及性分析
CITE-seq 分析 references/citeseq_totalvi.md 使用 totalVI 进行蛋白+RNA 分析
多组学分析 references/multiome_multivi.md 使用 MultiVI 进行 RNA+ATAC 分析
空间解卷积 references/spatial_deconvolution.md DestVI 空间分析
标签转移 references/label_transfer.md 使用 scANVI 进行参考映射
scArches 映射 references/scarches_mapping.md 查询到参考映射
批校正 references/batch_correction_sysvi.md 高级批处理方法
RNA 速度 references/rna_velocity_velovi.md 使用 veloVI 进行动态分析
故障排除 references/troubleshooting.md 常见问题及解决方案

CLI 脚本

模块化脚本用于常见工作流。按需链式使用或修改。

流水线脚本

脚本 目的 使用
prepare_data.py 质量控制、过滤、高变基因选择 python scripts/prepare_data.py raw.h5ad prepared.h5ad --batch-key batch
train_model.py 训练任何 scvi-tools 模型 python scripts/train_model.py prepared.h5ad results/ --model scvi
cluster_embed.py 邻居、UMAP、Leiden 聚类 python scripts/cluster_embed.py adata.h5ad results/
differential_expression.py 差异表达分析 python scripts/differential_expression.py model/ adata.h5ad de.csv --groupby leiden
transfer_labels.py 使用 scANVI 进行标签转移 python scripts/transfer_labels.py ref_model/ query.h5ad results/
integrate_datasets.py 多数据集集成 python scripts/integrate_datasets.py results/ data1.h5ad data2.h5ad
validate_adata.py 检查数据兼容性 python scripts/validate_adata.py data.h5ad --batch-key batch

示例工作流

# 1. 验证输入数据
python scripts/validate_adata.py raw.h5ad --batch-key batch --suggest

# 2. 准备数据(质量控制、高变基因选择)
python scripts/prepare_data.py raw.h5ad prepared.h5ad --batch-key batch --n-hvgs 2000

# 3. 训练模型
python scripts/train_model.py prepared.h5ad results/ --model scvi --batch-key batch

# 4. 聚类和可视化
python scripts/cluster_embed.py results/adata_trained.h5ad results/ --resolution 0.8

# 5. 差异表达
python scripts/differential_expression.py results/model results/adata_clustered.h5ad results/de.csv --groupby leiden

Python 实用工具

scripts/model_utils.py 提供可导入函数用于自定义工作流:

函数 目的
prepare_adata() 数据准备(质量控制、高变基因、层设置)
train_scvi() 训练 scVI 或 scANVI
evaluate_integration() 计算集成指标
get_marker_genes() 提取差异表达标记基因
save_results() 保存模型、数据、图
auto_select_model() 建议最佳模型
quick_clustering() 邻居 + UMAP + Leiden 聚类

关键要求

  1. 需要原始计数:scvi-tools 模型需要整数计数数据

    adata.layers["counts"] = adata.X.copy()  # 归一化前
    scvi.model.SCVI.setup_anndata(adata, layer="counts")
    
  2. 高变基因选择:使用 2000-4000 个高变基因

    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()
    
  3. 批信息:指定 batch_key 进行集成

    scvi.model.SCVI.setup_anndata(adata, layer="counts", batch_key="batch")
    

快速决策树

需要集成 scRNA-seq 数据吗?
├── 有细胞类型标签? → scANVI (references/label_transfer.md)
└── 无标签? → scVI (references/scrna_integration.md)

有多模态数据吗?
├── CITE-seq (RNA + 蛋白)? → totalVI (references/citeseq_totalvi.md)
├── 多组学 (RNA + ATAC)? → MultiVI (references/multiome_multivi.md)
└── 仅 scATAC-seq? → PeakVI (references/atac_peakvi.md)

有空间数据吗?
└── 需要细胞类型解卷积? → DestVI (references/spatial_deconvolution.md)

有预训练参考模型吗?
└── 映射查询到参考? → scArches (references/scarches_mapping.md)

需要 RNA 速度吗?
└── veloVI (references/rna_velocity_velovi.md)

有强跨技术批效应吗?
└── sysVI (references/batch_correction_sysvi.md)

关键资源