关于 single-cell-downstream-analysis
这是一份 OmicVerse 单细胞下游分析技能参考,按可执行清单整理前置条件、API、结果解读和资源需求。覆盖通路评分、差异分析、药物反应、调控程序发现与报告生成。
主要功能
- 01AUCell 通路评分
- 02差异表达与细胞组成分析
- 03药物反应预测流程
- 04SCENIC 与 cNMF 程序发现
- 05惰性流程与 HTML 报告
适用场景
- 01为单细胞数据计算通路评分
- 02比较细胞类型表达或组成
- 03预测肿瘤细胞药物反应
- 04发现 regulon 或基因程序
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ omicverse/ omicverse --skill single-cell-downstream-analysis安装后在 Claude Code 中输入/single-cell-downstream-analysis确认已加载。
附带文件reference.md
详细介绍
单细胞下游分析快速参考
本指南将 OmicVerse 单细胞下游教程提炼为可执行的检查清单。每个模块都重点介绍前置条件、核心 API 入口、结果解读检查点、资源规划说明,以及教程中提到的可选验证或导出步骤。
防御性验证模式
运行任何下游模块前,请先验证前置条件:
# Before AUCell: verify embeddings exist
assert 'X_umap' in adata.obsm or 'X_pca' in adata.obsm, \
"Embedding required. Run ov.pp.umap(adata) or ov.pp.pca(adata) first."
# Before metacell DEG: verify raw counts are preserved
assert adata.raw is not None, "adata.raw required. Set adata.raw = adata.copy() before HVG filtering."
# Before SCENIC: verify raw counts (not log-transformed) are available
if hasattr(adata.X, 'max') and adata.X.max() < 20:
print("WARNING: SCENIC expects raw counts. Data may be log-transformed.")
# Before scDrug: verify tumor annotations
# assert 'cell_type' in adata.obs.columns, "Cell type annotation required for scDrug"
AUCell 通路评分(t_aucell.ipynb)
- 前置条件
- 运行教程前,下载与研究物种匹配的通路集合(GO、KEGG 或自定义集合)。
- 确保已准备好带有聚类和嵌入信息(
adata.obsm['X_umap'])的AnnData对象。
- 核心调用
- 使用
ov.single.geneset_aucell计算单个通路;使用ov.single.pathway_aucell计算多个通路。 - 使用
ov.single.pathway_aucell_enrichment对某个通路库中的所有通路进行评分(设置num_workers以启用并行处理)。
- 使用
- 结果检查
- 将 AUCell 分数视为类似表达量的数值(0–1)。使用
sc.pl.embedding确认通路活性模式。 - 对 AUCell
AnnData运行sc.tl.rank_genes_groups,查找在特定聚类中富集的通路,并使用sc.pl.rank_genes_groups_dotplot可视化。
- 将 AUCell 分数视为类似表达量的数值(0–1)。使用
- 资源
- 对整个通路库评分会消耗大量 CPU 资源;请分配足够的工作进程(教程中为
num_workers=8),并为稠密 AUCell 矩阵预留充足内存。
- 对整个通路库评分会消耗大量 CPU 资源;请分配足够的工作进程(教程中为
- 可选验证 / 导出
- 使用
adata_aucs.write_h5ad('...')保存分数,以便重复使用。 - 使用
ov.single.pathway_enrichment和ov.single.pathway_enrichment_plot热图绘制富集通路。
- 使用
scRNA-seq 差异表达基因(DEG,bulk 风格的元细胞)(t_scdeg.ipynb)
- 前置条件
- 运行质量控制和预处理(
ov.pp.qc、ov.pp.preprocess、ov.pp.scale、ov.pp.pca)。 - 在筛选高变基因(HVG)之前,将原始计数保留在
adata.raw中。
- 运行质量控制和预处理(
- 核心调用
- 使用
ov.bulk.pyDEG(test_adata.to_df(...).T)构建差异分析对象,以分析全细胞和元细胞视图。 - 有 GPU 可用于加速时,使用
ov.single.MetaCell(..., use_gpu=True)构建元细胞。
- 使用
- 结果检查
- 检查火山图(
dds.plot_volcano)和目标基因箱线图(dds.plot_boxplot),查看排名靠前的差异表达基因(DEG)。 - 使用
ov.pl.embedding将 DEG 标记映射回 UMAP 嵌入,以确认其定位。
- 检查火山图(
- 资源
- GPU 有助于构建元细胞,但也可以回退到 CPU;请确保内存足以容纳传递给
pyDEG的转置稠密矩阵。
- GPU 有助于构建元细胞,但也可以回退到 CPU;请确保内存足以容纳传递给
- 可选验证 / 导出
- 使用 matplotlib 图形保存元细胞嵌入;调整
legend_*设置,以生成适合发表的可视化效果。
- 使用 matplotlib 图形保存元细胞嵌入;调整
scRNA-seq 差异表达基因(DEG,细胞类型与组成)(t_deg_single.ipynb)
- 前置条件
- 准备带有
condition、cell_label和可选batch元数据的已注释adata。 - 使用基于图的差异丰度(DA)方法时,初始化混合 CPU/GPU 资源(
ov.settings.cpu_gpu_mixed_init())。
- 准备带有
- 核心调用
- 使用
ov.single.DEG(..., method='wilcoxon'|'t-test'|'memento-de'),并调用deg_obj.run(...)对目标细胞类型进行分析。 - 使用
ov.single.DCT(..., method='sccoda'|'milo')进行差异组成检验。 - Milo 的图设置:
ov.pp.preprocess、ov.single.batch_correction、ov.pp.neighbors、ov.pp.umap。
- 使用
- 结果检查
- 检查
deg_obj生成的 DEG 表(Wilcoxon / memento),并调整捕获率 / 自举次数以提高稳定性。 - 对于 scCODA,使用
sim_results.set_fdr()调整 FDR;结合条件水平的变化解读箱线图。 - Milo 诊断图:P 值直方图、logFC 与 –log10 FDR 散点图、差异丰度蜂群图。
- 检查
- 资源
- Memento 和 Milo 需要多个 CPU(
num_cpus、num_boot、较大的k);请确保有充足的计算时间。 - 启用 Harmony / scVI 批次校正时需要 GPU 内存;请做好显存使用规划。
- Memento 和 Milo 需要多个 CPU(
- 可选验证 / 导出
- 可视化诊断包括 UMAP 叠加图(
ov.pl.embedding)、Milo 蜂群图和自定义调色板。
- 可视化诊断包括 UMAP 叠加图(
scDrug 药物反应预测(t_scdrug.ipynb)
- 先决条件
- 获取以肿瘤为重点的数据集(例如,
infercnvpy.datasets.maynard2020_3k)。 - 在运行预测之前下载参考资源:
- 通过
ov.utils.get_gene_annotation获取基因注释(需要来自 GENCODE 或 T2T-CHM13 的 GTF)。 - 使用
ov.utils.download_GDSC_data()和ov.utils.download_CaDRReS_model()获取药物反应模型。 - 克隆 CaDRReS-Sc 仓库(
git clone https://github.com/CSB5/CaDRReS-Sc)。
- 通过
- 获取以肿瘤为重点的数据集(例如,
- 核心调用
- 肿瘤分辨率检测:
ov.single.autoResolution(adata, cpus=4)。 - 药物反应运行器:
ov.single.Drug_Response(adata, scriptpath='CaDRReS-Sc', modelpath='models/', output='result')。
- 肿瘤分辨率检测:
- 结果检查
- 检查存储在
output下的聚类和 IC50 输出;并与推断出的 CNV 状态交叉参照。
- 检查存储在
- 资源
- 需要外部 CaDRReS-Sc 环境(Python/R 依赖项)以及用于下载模型的存储空间。
- 运行 inferCNV 预处理可能需要多个 CPU 和大量 RAM。
- 可选验证 / 导出
- 持久化中间
AnnData(adata.write('scanpyobj.h5ad')),以便用于下游分析或重新运行。
- 持久化中间
SCENIC 调控子发现(t_scenic.ipynb)
如需全面了解 SCENIC(数据库下载、RegDiffusion 调优、RSS 解读、GRN 可视化),请使用 search_skills('SCENIC regulon GRN') 加载专门的 SCENIC 技能。
- 先决条件
- 通过
ov.single.mouse_hsc_nestorowa16()加载小鼠造血数据集(或提供包含原始计数的预处理数据)。 - 下载对应物种的 cisTarget 排名数据库(
*.feather)和基序注释(motifs-*.tbl);预留3 GB 磁盘空间并验证路径(
db_glob、motif_path)。
- 通过
- 核心调用
- 初始化分析:
ov.single.SCENIC(adata, db_glob=..., motif_path=..., n_jobs=12)。 - 通过 SCENIC 对象方法运行基于 RegDiffusion 的 GRN 推断、调控子剪枝和 AUCell 评分。
- 初始化分析:
- 结果检查
- 检查调控子活性矩阵(
scenic_obj.auc_mtx.head())、RSS 分数,以及按调控子活性着色的嵌入图。 - 使用 RSS 图、树状图和 AUCell 分布来解读 TF 特异性和活性阈值。
- 检查调控子活性矩阵(
- 资源
- 建议使用多核 CPU(
n_jobs与可用核心数相匹配);确保有足够的 RAM 用于基序富集。 - 大型下载和中间对象(pickle/h5ad)需要磁盘空间。
- 建议使用多核 CPU(
- 可选验证 / 导出
- 保存
scenic_obj(ov.utils.save)和调控子 AnnData(regulon_ad.write)。 - 可选图表:每种细胞类型的 RSS、调控子嵌入图、带阈值线的 AUC 直方图、GRN 网络可视化。
- 保存
cNMF 程序发现(t_cnmf.ipynb)
- 先决条件
- 使用 HVG 选择(
ov.pp.preprocess)、缩放(ov.pp.scale)和 PCA 进行预处理,并准备 UMAP 嵌入以供检查。 - 选择成分范围(例如,
np.arange(5, 11))和迭代次数;确保输出目录已存在。
- 使用 HVG 选择(
- 核心调用
- 实例化分析:
ov.single.cNMF(..., output_dir='...', name='...')。 - 分解工作流:
cnmf_obj.factorize(...)、cnmf_obj.combine(...)、cnmf_obj.k_selection_plot()、cnmf_obj.consensus(...)。 - 提取结果:
cnmf_obj.load_results(...)、cnmf_obj.get_results(...);还可通过get_results_rfc使用 RF 分类器。
- 实例化分析:
- 结果检查
- 通过 K 选择图和局部密度直方图评估稳定性;使用共识热图确认选定的 K。
- 检查主题使用量嵌入(
ov.pl.embedding)、聚类标签,以及顶级基因的点图。
- 资源
- 多次迭代和多个成分会大量占用 CPU;考虑分配多个工作进程(
total_workers),并确认有足够磁盘 空间存储中间分解文件。
- 多次迭代和多个成分会大量占用 CPU;考虑分配多个工作进程(
- 可选验证 / 导出
- 可视化包括欧氏距离热图、密度直方图、主题/聚类的 UMAP 叠加图和点图。
NOCD 重叠社区(t_nocd.ipynb)
- 前提条件
- 运行 NOCD 前,使用
ov.single.scanpy_lazy准备 AnnData(自动预处理)。 - 注意:教程指出,NOCD 的实现仍在积极开发中,因此结果可能存在差异。
- 运行 NOCD 前,使用
- 核心调用
- 流水线封装器:
scbrca = ov.single.scnocd(adata),随后链式调用方法(matrix_transform、matrix_normalize、GNN_configure、GNN_preprocess、GNN_model、GNN_result、GNN_plot、cal_nocd、calculate_nocd)。
- 流水线封装器:
- 结果检查
- 在 UMAP 嵌入图上比较标准 Leiden 聚类与 NOCD 输出,以识别多命运细胞。
- 资源
- 图神经网络阶段可使用 GPU 加速;请确保 CUDA 可用,否则需做好 CPU 运行时间较长的准备。
- 构建大型邻接矩阵时,请监控内存使用情况。
- 可选验证 / 导出
- 使用共享颜色映射生成多个 UMAP 叠加图(
sc.pl.umap),分别显示nocd、nocd_n和 Leiden 标签。
- 使用共享颜色映射生成多个 UMAP 叠加图(
惰性流水线与报告(t_lazy.ipynb)
- 前提条件
- 安装 OmicVerse ≥1.7.0,并确保包含惰性工具;目前支持人类和小鼠。
- 准备批次元数据(
sample_key),并可选择初始化混合计算(ov.settings.cpu_gpu_mixed_init())。
- 核心调用
- 一站式预处理:
ov.single.lazy(adata, species='mouse', sample_key='batch', ...),可选传入reforce_steps和模块专用关键字参数。 - 报告:使用
ov.single.generate_scRNA_report(...)生成 HTML 摘要;使用ov.generate_reference_table(adata)跟踪引用。
- 一站式预处理:
- 结果检查
- 检查生成的嵌入图(
ov.pl.embedding),评估质量和注释一致性。 - 查看 HTML 报告中的 QC 指标、标准化、批次校正和嵌入结果。
- 检查生成的嵌入图(
- 资源
- Harmony 或 scVI 等步骤可能会调用 GPU;请确认硬件可用,或据此调整
reforce_steps。 - 生成报告时会写入磁盘;请确保输出路径可写。
- Harmony 或 scVI 等步骤可能会调用 GPU;请确认硬件可用,或据此调整
- 可选验证 / 导出
- 按颜色键自定义嵌入图;将 HTML 报告和引用表与项目文档一同保存。
评论
支持 Markdown