mcpField
S
scvi-tools

scvi-tools

github.com/anthropics数据与数据库33.6k2.4k 次安装1 天前更新
代码仓库

关于 scvi-tools

scvi-tools 是面向单细胞基因组分析的深度学习技能,帮助研究者选择模型并执行相应工作流。它涵盖单细胞 RNA、ATAC、多组学、空间数据和 RNA velocity,并提供脚本用于数据准备、训练、整合和标签转移。

主要功能

  1. 01按数据类型选择 scvi-tools 模型
  2. 02准备数据并训练模型
  3. 03整合数据集并校正批次
  4. 04执行聚类、嵌入及差异表达分析
  5. 05进行标签转移和参考映射
  6. 06提供数据验证与故障排查指南

适用场景

  1. 01整合带批次差异的单细胞 RNA-seq 数据
  2. 02联合分析 CITE-seq 或 Multiome 数据
  3. 03将参考数据集的细胞标签转移到查询数据
  4. 04分析 ATAC-seq、空间转录组或 RNA velocity

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/anthropics/knowledge-work-plugins --skill scvi-tools

安装后在 Claude Code 中输入/scvi-tools确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

LICENSE.txt
references/
atac_peakvi.md
batch_correction_sysvi.md
citeseq_totalvi.md
data_preparation.md
environment_setup.md
label_transfer.md
multiome_multivi.md
rna_velocity_velovi.md
scarches_mapping.md
scrna_integration.md
spatial_deconvolution.md
troubleshooting.md
scripts/
cluster_embed.py
differential_expression.py
integrate_datasets.py
model_utils.py
prepare_data.py
train_model.py
transfer_labels.py
validate_adata.py

详细介绍

scvi-tools 深度学习 Skill

本 Skill 提供基于深度学习的单细胞分析指导,使用 scvi-tools。scvi-tools 是单细胞基因组学中概率模型领域的领先框架。

如何使用本 Skill

  1. 根据下方的模型/工作流表格,确定合适的工作流
  2. 阅读对应的参考文件,了解详细步骤与代码
  3. 使用 scripts/ 中的脚本,避免重复编写常见代码
  4. 如遇安装或 GPU 问题,请参阅 references/environment_setup.md
  5. 如需调试,请参阅 references/troubleshooting.md

何时使用本 Skill

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

模型选择指南

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

工作流参考文件

工作流参考文件描述
环境设置references/environment_setup.md安装、GPU、版本信息
数据准备references/data_preparation.md为任意模型格式化数据
scRNA 整合references/scrna_integration.mdscVI/scANVI 批次校正
ATAC-seq 分析references/atac_peakvi.md使用 PeakVI 分析可及性
CITE-seq 分析references/citeseq_totalvi.md使用 totalVI 分析蛋白+RNA
Multiome 分析references/multiome_multivi.md使用 MultiVI 分析 RNA+ATAC
空间解卷积references/spatial_deconvolution.mdDestVI 空间分析
标签迁移references/label_transfer.mdscANVI 参考映射
scArches 映射references/scarches_mapping.md查询到参考的映射
批次校正references/batch_correction_sysvi.md高级批次方法
RNA velocityreferences/rna_velocity_velovi.mdveloVI 动力学
故障排查references/troubleshooting.md常见问题与解决方案

命令行脚本

用于常见工作流的模块化脚本。可根据需要串联或修改。

流程脚本
脚本用途用法
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、Leidenpython 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. 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
Python 工具函数

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

函数用途
prepare_adata()数据准备(QC、HVG、layer 设置)
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()  # Before normalization
    scvi.model.SCVI.setup_anndata(adata, layer="counts")
    
  2. HVG 选择:使用 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")
    

快速决策树

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)

关键资源

评论

支持 Markdown