Codar
下载

RNA 速度分析(scVelo、CellRank)

RNA 速度利用同一细胞中未剪接(前体)和已剪接(成熟)mRNA 的比例,估计每个基因的表达正在上升还是下降,把所有基因汇总后得到细胞在表达空间中的移动方向。基因刚被激活时未剪接转录本相对偏多,关闭时则偏少,这一不平衡就是速度的来源。常用工具是 velocyto(生成剪接矩阵)和 scVelo(估计速度,提供稳态、随机和动力学三种模型),再用 CellRank 把速度转化为终末状态和命运概率。典型数据是 10x 等液滴平台的单细胞转录组,要求保留比对 BAM 以重新统计内含子读段。

什么时候用

  • 分化数据中不确定起点和方向,需要不依赖先验标注的方向证据
  • 判断一个中间态细胞群更可能流向哪一种终末命运
  • 估计细胞分化的潜在时间(latent time)并找出驱动基因
  • 验证伪时间分析得到的方向是否与转录动力学一致
  • 研究刺激后短时间内的转录反应,如免疫细胞激活早期

不适合的情况

  • 已处于稳态的成熟细胞群,表达不再变化,速度主要是噪音
  • 没有 BAM 或 FASTQ、只有表达矩阵的数据,无法区分剪接状态
  • 全长测序覆盖但内含子读段很少的平台,未剪接信号不足

需要准备的数据

剪接与未剪接矩阵
velocyto run10x 生成的 loom,或 STARsolo 加 Velocyto 选项、alevin-fry 等的输出,需含 spliced 和 unspliced 两层。
比对文件与注释
生成矩阵需要 Cell Ranger 等产生的 BAM、细胞条码列表和与比对一致的 GTF。
已有的质控和注释结果
细胞条码、聚类、注释和降维坐标;注意 loom 与 Seurat 中条码前后缀格式常不同,需统一后合并。
目标谱系的细胞子集
建议只保留相关谱系,混入无关细胞类型会让不同动力学的基因相互干扰。

分析步骤

  1. 1

    生成剪接矩阵

    用 velocyto、STARsolo 或 alevin-fry 从 BAM 或 FASTQ 统计每个细胞每个基因的剪接和未剪接读段。完成后用 scv.pl.proportions 查看比例,液滴平台未剪接比例常见在一到两成左右,过低时速度信号会很弱。

  2. 2

    合并元数据

    把 loom 读入 AnnData,按统一后的条码与已有的聚类、注释和 UMAP 坐标合并。合并后核对细胞数,大量细胞匹配不上通常是条码格式或样本前缀问题。

  3. 3

    过滤与标准化

    scv.pp.filter_and_normalize 按共享计数过滤基因并选高变基因,教程常用 min_shared_counts = 20、n_top_genes = 2000。随后 scv.pp.moments 在近邻图上计算一阶和二阶矩,平滑稀疏计数。

  4. 4

    估计速度

    scv.tl.velocity 选择模型:stochastic 为默认,dynamical 需先运行 scv.tl.recover_dynamics 逐基因拟合完整的转录动力学。dynamical 更慢但能给出潜在时间和每个基因的拟合可信度。

  5. 5

    构建速度图并投影

    scv.tl.velocity_graph 计算细胞间转移概率,再用 velocity_embedding_stream 投影到 UMAP 画流线图。方向应与已知分化顺序大体一致,若成熟细胞流向祖细胞,需排查。

  6. 6

    评估可信度

    scv.tl.velocity_confidence 计算每个细胞速度与邻居的一致性;用 scv.pl.velocity 查看关键基因的相位图。低置信区域和拟合差的基因不应用来支持主要结论。

  7. 7

    潜在时间与驱动基因

    dynamical 模式下 scv.tl.latent_time 给出潜在时间,rank_dynamical_genes 按群列出拟合较好的动力学基因。用热图展示驱动基因随潜在时间的激活顺序。

  8. 8

    推断命运概率

    用 CellRank 把速度核与基于相似性的连接核组合,计算宏状态,识别起始和终末状态,再求每个细胞流向各终末状态的概率,并找出与命运相关的基因。

关键参数与决策

速度模型(mode)

stochastic 速度快,适合初步探索;dynamical 不假设稳态,能得到潜在时间,适合需要定量结论的分析。两种模型给出的方向明显冲突时,说明数据不满足模型假设,应谨慎下结论。

近邻数与主成分数

scv.pp.moments 中 n_neighbors 和 n_pcs 常用 30。近邻数大会让速度更平滑但抹掉小群体的细节,小则噪音大;可在两三个取值下比较流线图是否稳定。

基因过滤阈值

min_shared_counts 要求基因同时有足够的剪接和未剪接计数。测序深度低时可适当降低,但纳入的低表达基因会降低相位图拟合质量。

CellRank 核权重

速度核与连接核的权重决定方向信息和相似性信息的比例,教程常用速度核 0.8、连接核 0.2 作为起点。速度可信度低时提高连接核比例可让结果更稳。

终末状态数量

CellRank 识别宏状态时需设定数量,可结合特征值间隙和已知生物学确定。数量过多会把同一终末细胞拆成几个,过少会漏掉稀有命运。

常见错误

  • 把流线图当作定量证据:二维投影会扭曲高维速度,箭头的长短和细节走向都不可靠,结论应以相位图、置信度和命运概率为依据。
  • 在转录速率突变的谱系上照搬模型:已有研究报道部分谱系存在转录爆发等情况,会导致方向反转,可检查主要驱动基因的相位图是否异常。
  • loom 与已有对象条码没对上就合并:部分细胞丢失或注释错配,表现为某些群速度杂乱,合并后要核对细胞数和注释分布。
  • 把多个批次直接放在一起估计速度:不同批次的剪接比例可能不同,会在批次之间产生虚假方向,应分批检查比例并谨慎整合。
  • 在终末分化的成熟细胞上解读方向:这些细胞处于稳态,速度接近零,流线图上的小箭头主要是噪音,不应解读为去分化。

结果怎么看

速度流线图

在 UMAP 上用流线表示细胞群的整体移动方向。看主干方向是否从祖细胞指向成熟细胞、分叉处流线是否分开。若流线在群内打转或在终末群出现逆流,结合置信度判断是否是噪音。

基因相位图

横轴为剪接、纵轴为未剪接表达,虚线或曲线是模型拟合的稳态比例。位于线上方表示基因正在被诱导,下方表示正在下调。点形成清晰的弧形才说明拟合可信。

速度置信度与潜在时间图

置信度图显示每个细胞速度与邻居一致的程度,低值区域的方向不可靠。潜在时间图以颜色表示细胞的内在时间,起点应落在祖细胞群;若与已知顺序相反,需检查模型和根细胞。

命运概率图

CellRank 为每个细胞给出流向各终末状态的概率,常以按终末状态分色的 UMAP 或圆形投影图呈现。中间态细胞的概率分布能提示命运偏向;概率在所有终末状态间平均分布说明方向信息不足。

和相近方法怎么选

稳态 / 随机模型与动力学模型

稳态和随机模型假设基因已达到转录平衡,用线性关系估计速度,计算快;动力学模型逐基因拟合诱导和抑制全过程,不依赖稳态假设,能给出潜在时间和拟合可信度,代价是耗时更长,对数据质量要求更高。

scVelo 与 CellRank

scVelo 估计每个细胞的速度和转移概率,回答细胞往哪里走;CellRank 在此基础上建模马尔可夫链,识别终末状态并计算命运概率。只要方向,用 scVelo 即可;要回答某群细胞以多大概率走向某命运,需要 CellRank。

RNA 速度与伪时间轨迹

RNA 速度从转录动力学中读取方向,不需要指定起点,但只反映短时间内的变化趋势;伪时间从整体相似性排序,能覆盖完整过程,却需要人为设定起点。可用速度确定起点和方向,再用伪时间做沿进程的基因检验。

剪接比例推断与代谢标记

剪接比例推断适用于常规单细胞数据,但依赖速率假设;4sU 等代谢标记实验直接测量新合成 RNA,速度估计更直接,需要专门的实验设计和 dynamo 等支持标记数据的工具。

常见问题

做 RNA velocity 必须要 BAM 文件吗?

需要能区分剪接状态的原始数据。常用做法是从 Cell Ranger 的 BAM 用 velocyto 统计,也可以从 FASTQ 直接用 STARsolo 或 alevin-fry 生成剪接和未剪接矩阵。只有过滤后的表达矩阵时无法补做。

scVelo 流线方向和预期相反怎么办?

先检查条码合并是否正确、未剪接比例是否过低、是否混入无关谱系;再查看主要驱动基因的相位图有无异常;换用 dynamical 模型或去掉可疑基因后重算。仍然冲突时,应如实说明速度结果与已知生物学不一致。

loom 文件和 Seurat 对象的细胞名对不上怎么处理?

velocyto 的条码通常带样本名前缀和 x 后缀,Seurat 中常为条码加 -1 后缀或样本前缀。用字符串替换统一成同一格式后再取交集合并,并核对合并后各群细胞数与原对象一致。

RNA 速度能用于 Smart-seq2 数据吗?

可以。全长测序覆盖内含子的读段,velocyto 也支持这类数据,但细胞数通常较少,近邻平滑效果有限,速度估计噪音更大。应重点看相位图质量,并结合其他证据解读方向。

latent time 和伪时间有什么不同?

latent time 由 scVelo 动力学模型推出,基于各基因共享的转录时间进程,方向来自数据本身;伪时间由细胞相似性排序,方向依赖人为设定的起点。两者可以相互印证,但都不是真实的时钟时间。

在 Codar 里怎么做

在 Codar 里说明数据位置(如 Cell Ranger 输出目录或已有的 loom 与 h5ad 文件)和关心的分化谱系。Codar 会先确认方案,包括如何获得剪接与未剪接矩阵、纳入哪些细胞群、选用哪种速度模型,然后运行 RNA 速度与细胞命运推断,交付速度流线图、关键基因相位图、潜在时间和命运概率图、驱动基因表,以及分析报告和可复现脚本。

可以这样提问
我有 10x 小鼠胰腺发育单细胞数据和 Cell Ranger 输出的 BAM,想做 RNA velocity,看内分泌前体细胞更倾向分化成哪类胰岛细胞。
了解单细胞与虚拟细胞插件