返回分析流程中心

Pipeline Detail

scRNA-Seq单细胞与空间组学

单细胞高级下游:拟时序、通讯、RNA velocity

面向 scRNA-seq 的高级下游分析流程,覆盖拟时序轨迹、细胞通讯、RNA velocity、起点选择、结果交叉验证和生物学解释。

创建时间
2026/6/3
分析难度
高级
推荐场景
单细胞分析
预计耗时
3-5 天

Metadata

流程元数据

先看应用场景、输入输出和工具依赖,再进入正文命令细节。

Difficulty

高级

Scenario

单细胞分析

Estimated Time

3-5 天

Tools

SeuratMonocle3CellChatscVelo

Inputs

GTF

Outputs

UMAP

Workflow DAG

流程图

用步骤节点快速理解这个分析从原始数据到结果报告的流转关系。

STEP 1

已注释 scRNA-seq 对象

STEP 2

选择目标细胞群

STEP 3

Monocle3/Slingshot 拟时序

STEP 4

CellChat/NicheNet 通讯

STEP 5

scVelo RNA velocity

STEP 6

多结果交叉验证

STEP 7

轨迹/网络/velocity 图

STEP 8

机制解释报告

Protocol

流程文档

正文保留 Markdown 排版、代码语言标识和表格样式,适合边学边复现。

单细胞高级下游:拟时序、通讯、RNA velocity

一、适用场景

基础 scRNA-seq 分析得到细胞类型和 marker 后,高级下游用于回答更深入的问题:

分析主要问题常用工具
拟时序细胞是否存在连续状态转换或分化轨迹?Monocle3、Slingshot、Palantir
细胞通讯细胞群之间可能通过哪些 ligand-receptor 互作?CellChat、NicheNet、LIANA
RNA velocity细胞状态变化方向是什么?velocyto、scVelo

注意:这些方法都是推断,不能替代实验验证。结果必须结合 marker、样本背景、时间点和已知生物学知识解释。

二、整体流程图

flowchart TD
    A[Seurat/Scanpy 基础分析对象] --> B[选择目标细胞群]
    B --> C[重新降维聚类]
    C --> D[Monocle3 / Slingshot 拟时序]
    C --> E[CellChat / NicheNet 通讯]
    C --> F[velocyto + scVelo RNA velocity]
    D --> G[动态基因与分支基因]
    E --> H[ligand-receptor 网络]
    F --> I[velocity arrows 和 latent time]
    G --> J[交叉验证候选机制]
    H --> J
    I --> J
    J --> K[报告和实验验证候选]

三、拟时序 Monocle3

拟时序适合分析发育、分化、激活、疾病进展等连续状态。

library(monocle3)
library(SeuratWrappers)

target <- subset(seurat_obj, subset = celltype %in% c("Progenitor", "Intermediate", "Mature"))

cds <- as.cell_data_set(target)
cds <- cluster_cells(cds)
cds <- learn_graph(cds)

cds <- order_cells(
  cds,
  root_cells = colnames(cds)[colData(cds)$celltype == "Progenitor"]
)

plot_cells(
  cds,
  color_cells_by = "pseudotime",
  label_cell_groups = FALSE,
  label_leaves = TRUE,
  label_branch_points = TRUE
)

关键点:

  • 起点 root cells 需要根据生物学先验选择。
  • 不要对完全无连续关系的细胞强行做拟时序。
  • 分支点附近基因值得重点关注。

四、拟时序动态基因

deg_pseudo <- graph_test(
  cds,
  neighbor_graph = "principal_graph",
  cores = 4
)

dynamic_genes <- deg_pseudo |>
  dplyr::filter(q_value < 0.05) |>
  dplyr::arrange(q_value)

write.csv(dynamic_genes, "monocle3_pseudotime_genes.csv")

解释示例:

GeneA 在 pseudotime 早期高表达,随后下降,可能标记祖细胞状态。
GeneB 在分支 2 后持续升高,可能参与成熟细胞命运决定。

五、CellChat 细胞通讯

library(CellChat)

data.input <- GetAssayData(seurat_obj, assay = "RNA", slot = "data")
meta <- seurat_obj@meta.data

cellchat <- createCellChat(
  object = data.input,
  meta = meta,
  group.by = "celltype"
)

cellchat@DB <- CellChatDB.human

cellchat <- subsetData(cellchat)
cellchat <- identifyOverExpressedGenes(cellchat)
cellchat <- identifyOverExpressedInteractions(cellchat)
cellchat <- computeCommunProb(cellchat)
cellchat <- filterCommunication(cellchat, min.cells = 10)
cellchat <- computeCommunProbPathway(cellchat)
cellchat <- aggregateNet(cellchat)

netVisual_circle(
  cellchat@net$count,
  vertex.weight = as.numeric(table(cellchat@idents)),
  weight.scale = TRUE,
  label.edge = FALSE
)

图例解释:

元素含义
节点细胞类型
节点大小细胞数量
连线推断的通讯关系
连线粗细ligand-receptor 互作数量或强度
方向sender 到 receiver

六、NicheNet 配体活性分析

NicheNet 适合从 receiver 细胞的差异基因反推 upstream ligands。

# 思路示意:
# 1. 定义 sender cell types
# 2. 定义 receiver cell type
# 3. 找 receiver 中处理组 vs 对照组 DEG
# 4. 用 NicheNet 预测哪些 ligand 最能解释这些 DEG

解释:

如果 macrophage 表达 TGFB1,fibroblast 中 TGF-beta response genes 上调,
NicheNet 可能将 TGFB1 排为高活性 ligand。

七、RNA velocity scVelo

RNA velocity 需要 spliced/unspliced count,通常由 velocytokallisto|bustools 生成 loom/h5ad。

velocyto run10x   sample_cellranger_output   ref/genes.gtf
import scvelo as scv
import scanpy as sc

adata = scv.read("sample.loom", cache=True)
scv.pp.filter_and_normalize(adata)
scv.pp.moments(adata, n_pcs=30, n_neighbors=30)

scv.tl.velocity(adata, mode="stochastic")
scv.tl.velocity_graph(adata)
scv.pl.velocity_embedding_stream(adata, basis="umap", color="celltype")

scv.tl.latent_time(adata)
scv.pl.scatter(adata, color="latent_time", color_map="gnuplot")

图例解释:

读法
velocity stream箭头方向表示预测状态变化方向
latent time越大表示越靠近推断终末状态
phase portraitspliced/unspliced 关系支持基因动态

八、三类结果如何交叉验证

发现支持证据组合
分化方向Monocle3 pseudotime 与 scVelo arrows 方向一致
关键调控细胞CellChat 显示该细胞为强 sender,目标细胞沿拟时序变化
候选 ligandsender 表达 ligand,receiver 有 receptor 且下游基因随 pseudotime 变化
关键基因是动态基因、velocity gene,并出现在通路或通讯下游

示例结论:

Monocle3 显示 monocyte 向 macrophage 状态连续过渡,scVelo 箭头方向与该轨迹一致。
CellChat 进一步提示 fibroblast 到 macrophage 的 CSF1-CSF1R 通讯增强。
因此可以假设 fibroblast-derived CSF1 参与推动 macrophage 状态转换。

九、常见问题

问题可能原因建议
拟时序方向不合理root 选择错误或细胞群不连续根据 marker 和时间点重新选择 root
通讯结果过多数据库互作多、阈值太宽关注显著通路和组间变化
RNA velocity 箭头混乱unspliced 信号弱、细胞周期影响过滤低质量基因,分细胞群分析
三种结果不一致方法假设不同优先解释多证据支持的机制

十、主要交付物

  • 目标细胞群重新聚类图
  • pseudotime UMAP
  • 分支和动态基因表
  • ligand-receptor 通讯表
  • 通讯 circle plot / bubble plot
  • velocity stream plot
  • latent time 图
  • 多证据整合候选机制表
  • 可验证候选 ligand、receptor、target gene 清单