课前准备---单细胞个性化分析梳理(R vs python)

作者,Evil Genius

单细胞的基础分析部分:质控 + 整合 + 降维 + 聚类 + 差异 + 富集。

完成单细胞的基础分析部分之后,就来到单细胞个性化分析的阶段了,我们来梳理一下,比较一下R和python软件之间的区别。

首先第一步:细胞注释。

目前细胞注释的黄金标准还是人工,但是富集分析、VDJ等内容也有助于识别细胞类型。

关于搜集到的细胞marker(人和小鼠)列表课前我会发给学员。

第二步:细胞丰度的差异分析

在之前都是简单计算一下每种细胞类型在不同样本/不同组间的比例,以此来判断细胞类型随条件的变化,但是随着分析的深入,这种简单的比较被慢慢取代,而采用了更为专业的miloR的方法,如下图。


多篇高分文章采用了这个方法,其核心仍然是比较不同条件下(如疾病vs健康、不同时间点等)细胞类型或状态的细胞类型组成比例是否存在统计学显著差异。

Milo的算法核心是基于K近邻(KNN)图的混合效应模型,

1、构建KNN图:在单细胞数据上构建细胞间的邻域关系(Neighborhoods)。
2、计算细胞邻域丰度:统计每个样本在每个邻域中的细胞数量。
3、混合效应模型(GLMM):检测邻域丰度的差异,同时控制样本间的随机效应。

软件之间的比较

第三步:轨迹分析

轨迹分析以前常见的monocle2、monocle3、等等,后来还有velocyto,scvelo、CellRank等等,R和python版本的比较如下:

工具 语言 核心算法 输入数据 输出结果 适用场景 优点 缺点
Monocle2 R 反向图嵌入 (DDRTree) 表达矩阵 + 伪时间种子 伪时间轨迹、分支点、基因动态 简单到中等复杂分支 经典稳定,支持多模态数据 对大数据计算慢,依赖初始参数
Monocle3 R 改进图嵌入 + UMAP整合 表达矩阵 + 聚类结果 复杂分支轨迹、细胞命运概率 高分支复杂度,发育轨迹 处理复杂拓扑结构更好 文档较复杂,需预处理
PAGA Python 图抽象化 + 拓扑分析 聚类后的邻接图 轨迹拓扑、分支连接性 离散数据或复杂分支结构 保留簇间关系,可视化优秀 需预先聚类,伪时间连续性较弱
CellRank Python 马尔可夫链 + RNA速率 RNA速率 + 表达矩阵 细胞命运概率、终末状态预测 结合动力学与形态学的轨迹 动态模型预测能力强 依赖RNA速率计算质量
scVelo Python 随机动力学模型 (RNA速度) 剪接/未剪接计数 细胞流向、伪时间、速率基因 短时程动态(如细胞周期) 改进传统速率模型 参数调优复杂,需高质量内含子数据
Dynamo Python 微分方程 + 全转录组动力学 表达矩阵 + 时序数据 基因调控网络、精确伪时间 基因调控机制与轨迹耦合分析 物理模型解释性强 计算资源消耗大

简单说一下R和python之间的优势和差异

scVelo脚本课前我会发给学员。

第四步:通讯分析。

通讯分析三剑客:CellChat、nichenet、cellphoneDB。

其中更新扩展了MultiNicheNet、Cellchat 2.0、cellphoneDB 5.0.

当然了,还有很多其他的通讯分析软件,比如张泽民采用的iTALK,软件汇总如下:

工具 语言 核心算法 输入数据 输出结果 适用场景 优点 缺点
CellChat R 概率模型 + 社交网络分析 表达矩阵 + 细胞类型标签 配体-受体互作网络、信号通路活性 复杂微环境(如免疫-肿瘤) 可视化优秀,支持多组比较 依赖预定义的数据库
NicheNet R 配体-受体-靶基因 (LRT) 网络 表达矩阵 + 配体/受体数据库 配体活性评分、下游调控基因 信号传导机制深度解析 整合调控网络,预测靶基因 计算复杂度高
MultiNicheNet R 多组学扩展的NicheNet scRNA-seq + (scATAC/CITE) 多细胞群互作、动态信号轴 肿瘤/发育中的跨组学互作 支持多组学和轨迹整合 需大量内存
CellPhoneDB Python 统计检验(Permutation Test) 表达矩阵 + 细胞类型标签 显著配体-受体对、细胞群互作热图 快速筛选互作对 简单易用,支持自定义数据库 仅静态分析,无动态建模
CellCall Python 加权共表达网络 表达矩阵 + 细胞类型标签 细胞间通信强度、通路富集 低深度数据(如10X Genomics) 对稀疏数据鲁棒 功能较基础
scSeqComm Python RNA速率 + 通讯网络 表达矩阵 + RNA速率 结果 动态互作轨迹、时序信号传递 短时程细胞响应(如炎症) 结合动力学 需预先计算RNA速率
ComuniCell Python 图神经网络 (GNN) 表达矩阵 + 空间数据(可选) 空间依赖的通讯网络 空间转录组整合分析 处理空间邻近效应 计算资源消耗大
iTALK R 配体-受体共表达排序 + 可视化 表达矩阵 + 细胞类型标签 配体-受体互作热图、Top互作对 快速筛选高表达互作对 简单易用,可视化直观 仅基于表达量,无统计学检验

其中cellchat和MultiNicheNet脚本课前我会发给学员。

第五步,CNV,分别是inferCNV、copyCAT和inferCNVpy。

一般还有计算进化树

三者之间的对比如下

工具 语言 核心算法 输入数据 输出结果 适用场景 优点 缺点
inferCNV R 基于参考细胞的平滑模型 + HMM 单细胞表达矩阵 + 参考细胞 CNV区域热图、克隆划分、HMM预测 肿瘤异质性、克隆演化 经典稳定,支持大样本 计算慢,需手动选择参考细胞
copyCAT R 改进的HMM + 拷贝数比例标准化 单细胞表达矩阵(无需参考) CNV片段、克隆分类、整倍体评分 低纯度样本(如CTC液体活检) 无需参考细胞,抗噪声强 对高批次效应数据敏感
inferCNVpy Python inferCNV的Python移植 + GPU加速 同inferCNV 同inferCNV + 交互式可视化 需快速分析的大数据集 支持GPU加速,兼容Scanpy 功能较原版少,社区支持较弱

选择建议

经典肿瘤分析
首选 inferCNV(R,需参考细胞)。
无参考或低纯度样本
选 copyCAT(R,抗噪声强)。
大数据集/快速分析
选 inferCNVpy(Python + GPU)。

目前inferCNVpy也有了高分文章的引用,如下:


inferCNV和inferCNVpy的脚本课前我会发给大家。

第六步:转录因子

大家常用的就是SCENIC、对应的python版本是pySCENIC。

当然,也有一些其他经典的分析方法,如下:

工具 语言 核心算法 输入数据 输出结果 适用场景 优点 缺点
SCENIC R/Python AUCell + RcisTarget + GRNBoost2 单细胞表达矩阵 TF活性评分(AUC)、调控网络、模块 细胞类型特异性TF鉴定 金标准方法,结果可解释性强 计算耗时,需大量内存
DoRothEA R 预定义的TF-target数据库 + VIPER 表达矩阵 + 细胞类型标签 TF活性评分、调控通路富集 快速TF活性预测 无需构建网络,速度快 依赖预定义数据库,灵活性低
Pyscenic Python SCENIC的Python优化版 同SCENIC 同SCENIC + 兼容Scanpy 大规模数据集(>10k细胞) 支持GPU加速,计算更快 功能较R版略少
dorothea R DoRothEA的简化版 表达矩阵 TF活性评分(VIPER/ULM) 初步筛选关键TF 轻量级,易整合到Seurat 仅限人类/小鼠数据
GRNBoost2 Python 梯度提升树(XGBoost) 表达矩阵 + TF-motif数据库 TF-target调控网络 基因调控网络(GRN)构建 高精度网络推断 需额外步骤计算TF活性
LISA Python 染色质可及性 + TF motif富集 scATAC-seq + scRNA-seq TF调控潜力评分(结合表观数据) 多组学整合的TF分析 跨组学验证TF功能 依赖ATAC数据,计算复杂
TFLink Online 整合多个TF数据库 基因列表或表达数据 TF-target交互网络 快速查询已知TF调控关系 无需本地安装,覆盖全面 无单细胞特异性分析功能

其中引用率最高的还是scenic和pySCENIC。

第七步:基因模块,大家一般都采用了NMF或者WGCNA。

方法比较如下

特征 NMF (非负矩阵分解) WGCNA (加权基因共表达网络分析) scWGCNA (单细胞WGCNA) hdWGCNA (高维WGCNA)
适用数据类型 单细胞RNA-seq、批量RNA-seq 批量RNA-seq 单细胞RNA-seq 单细胞RNA-seq(高维稀疏数据)
核心原理 矩阵分解(非负约束) 基因共表达网络(加权相关性) 基于WGCNA改进的单细胞适应性 针对高维稀疏数据的WGCNA优化
输入数据 基因表达矩阵(非负) 基因表达矩阵(需过滤低表达) 单细胞表达矩阵(需聚合或插补) 单细胞表达矩阵(直接处理稀疏性)
模块识别方式 分解为基矩阵和系数矩阵 层次聚类 + 动态剪切 类似WGCNA,但调整参数 改进的相似性度量 + 并行计算
处理稀疏性 较差(依赖非负填充) 不适用单细胞稀疏数据 需预处理(如伪批量聚合) 直接处理稀疏数据
计算效率 中等(依赖迭代次数) 低(大数据集慢) 中等 高(并行化优化)
生物学解释 功能模块(无方向性) 共表达模块(含hub基因) 类似WGCNA,但适应单细胞 类似WGCNA,支持更复杂网络
优势 简单直观,适合降维 成熟的共表达网络分析 保留WGCNA优点并适配单细胞 高效处理大规模单细胞数据
局限性 忽略基因间相互作用 无法直接处理单细胞数据 依赖聚合策略可能引入偏差 计算资源需求较高
典型工具 R:NMF, Python:sklearn R:WGCNA R:WGCNA + 自定义脚本 R:hdWGCNA

其中WGCNA的脚本课前我会发给大家。

最有还有多组学分析,比如scRNA + scVDJ、scRNA + scATAC等等。

生活很好,有你更好。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

相关阅读更多精彩内容

友情链接更多精彩内容