SuperAPI AI 工具集

omicverse-single-cell-differential-abundance

数据与分析

查看项目

更新于 10-16 02:38

技能介绍

用途:该技能将 OmicVerse 的单细胞差异细胞类型丰度(DCT)分析从笔记本流程转为可复用、可触发的执行流程,用于在对照组与实验组之间比较细胞类型丰度或组成差异。它与差异表达基因(DEG)分开,因为 DCT 的构造函数、分支前提条件和结果结构均不同。

主要能力与分支:通过 ov.single.DCT(adata, condition, ctrl_group, test_group, cell_type_key, method='sccoda', sample_key=None, use_rep=None) 初始化,method 可选 sccoda、milopy、milo。sccoda 走组成型贝叶斯推断,需提供样本标识,可进行后验采样与 FDR 调整(如 set_fdr,须在模型完成后执行);milopy 为原生 Python 的 Milo 类路径,milo 为 pertpy 的 Milo 分支,二者要求 sample_key(按样本聚合邻域计数)且 use_rep 指向 adata.obsm 中已存在的嵌入(如 PCA 或 Harmony)。构造函数会立即筛选 control 与 test 标签并重排条件类别。

使用方式:先检查 AnnData 的 condition 列、cell_type_key 列、样本 ID 及可用嵌入,再选择后端。DCT.run(**kwargs) 仅把 kwargs 透传给 sccoda 分支的 run_nuts,milopy 与 milo 忽略额外 kwargs 并执行固定的邻域检验逻辑。用 DCT.get_results(mix_threshold=0.6) 取结果,sccoda 返回效应表,milopy 与 milo 返回邻域级表;mix_threshold 仅影响 Milo 家族分支,把低纯度邻域重标为 Mixed。示例:dct = ov.single.DCT(adata, condition="condition", ctrl_group="Control", test_group="Salmonella", cell_type_key="cell_label", method="sccoda", sample_key="batch"),随后 dct.run(num_samples=5000, num_warmup=500) 与 res = dct.get_results()。

适用场景与限制:适用于有明确对照/实验标签与细胞类型注释的单细胞数据。限制:不同后端不可直接互换而不改变输入契约;不可隐藏 method、sample_key、use_rep;不可把 num_samples 或 num_warmup 当作对 Milo 家族生效;mix_threshold 对 sccoda 无意义;操作指令应保持与 shell 无关,避免本地路径与环境名。

验证要点:确认过滤后 control 与 test 标签仍存在;sccoda 确认返回效应表且 FDR 调整在拟合后执行;milopy/milo 确认结果表含邻域注释列与 FDR 类输出;确认 use_rep 指向的嵌入在构造前已存在。若只跑了单一分支的冒烟测试,应说明验证了哪个分支、哪些分支仅依据源码。详细签名与当前分支行为以官方资料为准,暂未提供收费、平台与效果数据。