用途:scvi-tools 封装单细胞组学的深度生成模型。scRNA-seq 核心是 scVI(无监督批次校正潜嵌入)与 scANVI(scVI 加分类头,用于半监督细胞类型标签迁移)。两者要求原始整数 UMI 计数,输出低维 X_scVI / X_scANVI,可接入 scanpy 的 neighbors → leiden → umap 流程。
主要能力:批次校正潜空间、标签迁移预测、差异表达分析、解码表达量。输出包括 adata.obsm["X_scVI"]、adata.obsm["X_scANVI"]、adata.obs["pred_cell_type"]、adata.layers["scvi_normalized"] 及 DE 数据框。
使用方式:安装 pip install scvi-tools scanpy anndata。该技能为纯 Python,kernel.py 需在会话中手动加载:exec(open("scvi-tools/kernel.py", encoding="utf-8").read())。用 prepare_scvi_counts 校验计数,用 h5ad_safe_obs 处理 obs/var 以便写出 h5ad。训练需 CUDA GPU,参数用 accelerator="gpu", devices=1(1.x 已移除 use_gpu)。差异表达默认 mode="vanilla",需 lfc_*/proba_de 时传 mode="change"。
适用场景:单细胞 RNA-seq 批次整合、聚类、细胞类型注释迁移、差异表达;可配合 cell2location / DestVI / Tangram 做空间解卷积。
限制:数值校验无法证明计数来源,需查数据文档;不可用 .raw.X;需内存内 AnnData;>5 万细胞建议 A100 级 GPU,可经 Modal 等远程 GPU 运行;Arrow 字符串需 h5ad_safe_obs 转换;容器无 LANG 时需设 UTF-8。