性能优化
需要 scvi-tools 深度学习做单细胞整合、批次校正…
当需要用 scvi-tools 的 scVI/scANVI/totalVI/PeakVI/MultiVI/DestVI/veloVI/sysVI/scArches 等模型完成单细胞数据整合、批次校正、多模态分析、ATAC/空间转录组、参考映射或 RNA velocity 时使用。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 38/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 60/100 ×0.15
适用场景
需要 scvi-tools 深度学习做单特定
解决思路
- 根据模型/工作流表识别合适工作流。
- 读取对应 reference 文件获取详细步骤和代码。
- 使用 scripts/ 中的脚本避免重写常见代码。
- 安装或 GPU 问题查阅 references/environment_setup.md。
- 调试问题查阅 references/troubleshooting.md。
- scRNA-seq 选择 scVI,用于无监督整合、DE、imputation。
- scRNA-seq + labels 选择 scANVI,用于标签转移、半监督整合。
- CITE-seq(RNA+protein)选择 totalVI,用于多模态整合、蛋白去噪。
- scATAC-seq 选择 PeakVI,用于染色质可及性分析。
- Multiome(RNA+ATAC)选择 MultiVI,用于联合模态分析。
- Spatial + scRNA reference 选择 DestVI,用于细胞类型反卷积。
- RNA velocity 选择 veloVI,用于转录动态。
- Cross-technology 选择 sysVI,用于 system-level 批次校正。
- Environment Setup 查阅 references/environment_setup.md,获取安装、GPU、版本信息。
- Data Preparation 查阅 references/data_preparation.md,为任意模型格式化数据。
- scRNA Integration 查阅 references/scrna_integration.md,做 scVI/scANVI 批次校正。
- ATAC-seq Analysis 查阅 references/atac_peakvi.md,用 PeakVI 做可及性分析。
- CITE-seq Analysis 查阅 references/citeseq_totalvi.md,用 totalVI 做 protein+RNA。
- Multiome Analysis 查阅 references/multiome_multivi.md,用 MultiVI 做 RNA+ATAC。
- Spatial Deconvolution 查阅 references/spatial_deconvolution.md,用 DestVI 做空间分析。
- Label Transfer 查阅 references/label_transfer.md,用 scANVI 做参考映射。
- scArches Mapping 查阅 references/scarches_mapping.md,做 query-to-reference 映射。
- Batch Correction 查阅 references/batch_correction_sysvi.md,使用高级批次方法。
- RNA Velocity 查阅 references/rna_velocity_velovi.md,用 veloVI 做动态分析。
- Troubleshooting 查阅 references/troubleshooting.md,解决常见问题。
- 将 CLI 模块化脚本串联或按需修改。
- 用 `python scripts/prepare_data.py raw.h5ad prepared.h5ad --batch-key batch` 做 QC、过滤、HVG 选择。
- 用 `python scripts/train_model.py prepared.h5ad results/ --model scvi` 训练任意 scvi-tools 模型。
- 用 `python scripts/cluster_embed.py adata.h5ad results/` 做 Neighbors、UMAP、Leiden。
- 用 `python scripts/differential_expression.py model/ adata.h5ad de.csv --groupby leiden` 做 DE 分析。
- 用 `python scripts/transfer_labels.py ref_model/ query.h5ad results/` 做 scANVI 标签转移。
- 用 `python scripts/integrate_datasets.py results/ data1.h5ad data2.h5ad` 做多数据集整合。
- 用 `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` 做差异表达。
- 使用 `scripts/model_utils.py` 中可导入函数编写自定义工作流。
- 调用 `prepare_adata()` 做数据准备(QC、HVG、layer 设置)。
- 调用 `train_scvi()` 训练 scVI 或 scANVI。
- 调用 `evaluate_integration()` 计算整合指标。
- 调用 `get_marker_genes()` 提取 DE markers。
- 调用 `save_results()` 保存模型、数据、图。
- 调用 `auto_select_model()` 建议最佳模型。
- 调用 `quick_clustering()` 做 Neighbors + UMAP + Leiden。
- 确保使用原始 counts:模型需要整数计数数据;在归一化前执行 `adata.layers["counts"] = adata.X.copy()`。
- 用 `scvi.model.SCVI.setup_anndata(adata, layer="counts")` 指定 counts layer。
- 选择 2000-4000 个 highly variable genes。
- 用 `sc.pp.highly_variable_genes(adata, n_top_genes=2000, batch_key="batch", layer="counts", flavor="seurat_v3")` 做 HVG 选择。
- 执行 `adata = adata[:, adata.var['highly_variable']].copy()` 保留 HVG。
- 指定 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+protein)用 totalVI,查 references/citeseq_totalvi.md;有 Multiome(RNA+ATAC)用 MultiVI,查 references/multiome_multivi.md;仅有 scATAC-seq 用 PeakVI,查 references/atac_peakvi.md。
- 决策:有空间数据且需要细胞类型反卷积时用 DestVI,查 references/spatial_deconvolution.md。
- 决策:有预训练 reference model 且需要将 query 映射到 reference 时用 scArches,查 references/scarches_mapping.md。
- 决策:需要 RNA velocity 时用 veloVI,查 references/rna_velocity_velovi.md。
- 决策:有强跨技术批次效应时用 sysVI,查 references/batch_correction_sysvi.md。
- 查阅 scvi-tools Documentation:https://docs.scvi-tools.org/。
- 查阅 scvi-tools Tutorials:https://docs.scvi-tools.org/en/stable/tutorials/index.html。
- 查阅 Model Hub:https://huggingface.co/scvi-tools。
- 查阅 GitHub Issues:https://github.com/scverse/scvi-tools/issues。
适用边界 · 注意事项
- 当数据不是原始整数计数(已经标准化/log 转换且无法恢复 counts)时,不要直接使用 scvi-tools 模型。
- 当任务不需要深度学习/批次整合/多模态/参考映射,或只需非 scvi-tools 的常规单细胞分析时,不必使用。
- 当未安装 scvi-tools 或遇到 GPU/环境问题且未先查阅 references/environment_setup.md 处理时,不适用。