伪时间轨迹分析(Monocle3、Slingshot)
轨迹与伪时间分析(也常叫拟时序分析)假设一批细胞处在同一连续过程的不同阶段,例如干细胞向成熟细胞分化、T 细胞活化到耗竭,再按转录组相似性把细胞排成一条或多条路径,给每个细胞一个相对位置,即伪时间。它回答三类问题:过程中有哪些分支、细胞沿路径如何排列、哪些基因随进程上调或下调。常用工具有 Monocle3(在 UMAP 上学习主图)、Slingshot(基于聚类和主曲线,常配合 tradeSeq 做基因检验)、PAGA 与扩散伪时间(scanpy 生态)。典型数据是包含祖细胞、中间态和终末态的单细胞转录组。
什么时候用
- 造血、神经发生、上皮分化等发育数据中,梳理祖细胞到终末细胞的分化路径
- T 细胞从初始、效应到耗竭的状态连续变化,想找推动转变的基因
- 疾病或处理后细胞状态逐渐偏移,想按进程排序而不是按离散亚群比较
- 判断一个祖细胞群是否在某处分叉成两种命运,并比较两支末端的差异基因
- 为基因调控网络分析或 RNA 速度结果提供细胞排序的参照
不适合的情况
- 细胞类型彼此独立、没有分化关系,如混合了上皮、免疫、成纤维细胞的全组织数据
- 想得到真实的时间尺度或分化速度,伪时间只是相对排序
- 缺少中间态细胞,各群在降维图上明显断开
需要准备的数据
- 单细胞表达矩阵
- 原始 counts 加标准化数据;Monocle3 需转为 cell_data_set,Slingshot 常用 SingleCellExperiment。
- 降维与聚类结果
- Slingshot 通常用 PCA 前若干维加聚类标签;多批次数据需使用整合后的低维空间。
- 细胞类型注释
- 用于确定起点群和终点群,最好附上已知的祖细胞和成熟细胞 marker 证据。
- 子集化后的细胞
- 只保留同一谱系相关的细胞群,先剔除无关谱系、双细胞和低质量细胞再推断轨迹。
分析步骤
- 1
取出同一谱系
从全数据中挑出处于同一分化过程的细胞群,重新选高变基因、降维和聚类。做对的标志是降维图上祖细胞、中间态和终末细胞呈连续分布,没有大片孤立的群。
- 2
处理干扰因素
检查批次、细胞周期和测序深度是否主导了主要的变化方向。若某条分支只由一个样本构成,或沿某方向排列的主要是细胞周期基因,应先做整合或回归,再继续。
- 3
确定起点
依据已知祖细胞 marker、取样时间点或 CytoTRACE 等干性评分确定起点。Monocle3 用 order_cells 指定根节点,Slingshot 用 start.clus 指定起点群。起点选错会让整条伪时间方向颠倒。
- 4
学习轨迹结构
Monocle3 依次运行 cluster_cells、learn_graph,在 UMAP 上学习主图;Slingshot 在聚类间构建最小生成树确定谱系,再拟合主曲线。检查分支数和走向是否符合已知生物学。
- 5
计算伪时间
Monocle3 得到每个细胞的单一伪时间值;Slingshot 对每条谱系分别给出伪时间和细胞归属权重。用已知 marker 沿伪时间作图,早期 marker 应先下降,成熟 marker 应后上升。
- 6
检验动态基因
Monocle3 用 graph_test 基于 Moran's I 找在主图上空间自相关的基因;tradeSeq 用 fitGAM 拟合广义加性模型,再用 associationTest、startVsEndTest、diffEndTest 等比较不同问题。
- 7
基因模块与注释
把显著动态基因按表达模式聚成模块,绘制伪时间热图,并对各模块做功能富集。一般能看到早期、中期、晚期几组模块,各模块的功能应能对应分化阶段。
- 8
稳健性检查
换一种方法或改变降维维数、聚类分辨率重跑,比较分支结构和伪时间排序是否一致;有条件时用 RNA 速度或时间点信息独立印证方向。
关键参数与决策
起点细胞或起点群
伪时间的方向完全由起点决定。优先用实验信息,例如最早时间点的细胞或公认的干细胞 marker;只有缺少先验时才依赖干性评分,并在文中说明依据。
use_partition(Monocle3)
learn_graph 默认按分区分别学习主图,彼此断开的分区不会连成一条轨迹。确信它们属于同一过程时可设为 FALSE,但这会强行连接,需格外谨慎。
降维空间与维数
Slingshot 推荐在 PCA 等保留全局结构的空间中运行,UMAP 会扭曲距离;PC 数太少会合并分支,太多会引入噪音,可用肘部图结合重跑比较确定。
聚类分辨率
Slingshot 的谱系由聚类间关系决定,分辨率过低会漏掉中间态和分支点,过高会产生多余的小分支。建议让中间过渡态成为独立的群。
节点数(tradeSeq nknots)
fitGAM 的平滑节点数决定曲线灵活度。可先用 evaluateK 查看不同取值下的拟合指标,选取指标趋于平稳处;节点太多会拟合噪音,太少会抹平短暂的表达峰。
常见错误
- 在没有连续过程的数据上做轨迹:算法总会给出一条路径,把独立的细胞类型串起来,得到看似合理却无生物学依据的分化关系。
- 把伪时间当作真实时间:伪时间只是排序,两段等长的伪时间不代表经历相同时长,也不能据此比较不同样本的分化速度。
- 批次效应形成假分支:不同样本的同类细胞被拉开后,算法会把它们识别为两条命运,先确认每条分支包含多个样本。
- 用 UMAP 坐标直接拟合曲线并解读距离:UMAP 保局部不保全局,分支长度和夹角没有定量意义,结论应以 PCA 等空间的结果为准。
- 沿伪时间检验差异基因时忽略循环论证:伪时间由这些基因的表达推出,再检验它们会使 P 值偏小,应结合效应大小和独立证据解读。
结果怎么看
伪时间轨迹图
细胞按伪时间着色并叠加主图或主曲线。看起点是否落在祖细胞群、终点是否在成熟细胞群、分支点是否位于中间态。若颜色在同一簇内来回跳动,说明结构不稳定。
基因表达随伪时间变化曲线
横轴是伪时间,纵轴是表达量,按谱系分色。已知 marker 应呈预期趋势;分支后两条曲线分开的基因可能与命运选择有关。曲线只在少数细胞处剧烈波动时多半是过拟合。
伪时间热图
行是动态基因,列是按伪时间排序的细胞或区间,常按模块聚类。理想情况下呈现由左上到右下的阶梯样模式;若整块无规律,说明选入的基因与进程关系弱。
动态基因统计表
列出每个基因的检验统计量、P 值或 Moran's I 和所属模块。按效应大小和 q 值排序,优先关注转录因子和已知通路成员,作为后续调控网络和实验验证的候选。
和相近方法怎么选
Monocle3 与 Slingshot
Monocle3 在 UMAP 上学习主图,能处理复杂拓扑,适合大数据快速探索;Slingshot 在用户给定的低维空间和聚类上拟合主曲线,结果可控,与 tradeSeq 衔接好,适合需要严格检验分支差异基因的场景。
伪时间与 RNA 速度
伪时间只描述细胞在状态空间中的排列,方向靠人为指定起点;RNA 速度利用剪接与未剪接转录本推断每个细胞的变化方向,可独立提示起点。两者结合时,以速度验证方向,以伪时间做基因动态检验。
PAGA 与主曲线类方法
PAGA 在聚类层面评估群与群之间的连通性,给出粗粒度拓扑,能处理断开的群;Slingshot、Monocle3 给出细胞级的连续伪时间。常见做法是先用 PAGA 判断哪些群相连,再在相连部分计算伪时间。
常见问题
伪时间分析的起点怎么确定?
首选实验信息:最早采样时间点的细胞、公认的干细胞或祖细胞 marker。没有先验时可参考 CytoTRACE 等干性评分或 RNA 速度方向。无论用哪种依据,都应在方法中写明,并检查起点附近的细胞是否高表达早期 marker。
Monocle2 和 Monocle3 有什么区别,该用哪个?
Monocle2 用 DDRTree 降维构建树状轨迹,曾被大量文献使用;Monocle3 改为在 UMAP 上学习主图,支持更大数据和更复杂的拓扑,并以 graph_test 检验动态基因。新项目一般用 Monocle3;复现旧文献时可沿用 Monocle2。
多个样本或批次的数据能直接做轨迹吗?
需要先在整合后的低维空间中进行,否则批次差异会被当成分支。整合后检查每条分支是否都包含多个样本;如果某分支几乎只来自一个样本,应先排除技术原因,再考虑生物学解释。
Slingshot 结果中一个细胞属于多条谱系是什么意思?
分支点之前的细胞同时位于多条谱系的共同路径上,所以在每条谱系中都有伪时间和权重。做基因检验时 tradeSeq 会用这些权重分配细胞,比较分支差异时应关注分支点之后的部分。
伪时间分析结果怎样才算可信?
起点和终点与已知 marker 一致;换方法、换参数后主要分支结构不变;已知早、晚期基因沿伪时间呈预期趋势;每条分支包含多个样本;有条件时与时间点或 RNA 速度方向相符。满足越多,结论越可靠。
在 Codar 里怎么做
在 Codar 里说明单细胞数据位置、要分析的谱系或细胞群,以及已知的起点细胞依据。Codar 会先确认方案,包括取哪些细胞群、在哪个低维空间上推断、起点如何设定,然后运行单细胞轨迹与伪时间分析,交付带伪时间着色的轨迹图、关键基因随伪时间变化曲线、动态基因热图和统计表,以及分析报告和可复现脚本。
我的小鼠造血干祖细胞单细胞数据已经注释好,想以 HSC 为起点构建向红系和髓系分化的轨迹,并找出两条分支各自上调的基因。