第1章 RNA velocity简介与生物背景
什么是RNA velocity?
RNA velocity,说白了就是看RNA的「加速度」。
传统单细胞测序只能给细胞拍张「快照」——你看到某个基因高表达,但不知道它正在上升还是下降。RNA velocity补上了这个时间维度。
我个人习惯把细胞想象成一辆车:传统方法知道车在哪个位置(基因表达量),而RNA velocity还能告诉你车速和方向(表达变化趋势)。
这个思路的核心切入点很巧妙:利用细胞内未剪接(pre-mRNA)和已剪接(mRNA)的比例关系。
pre-mRNA与mRNA的区别
这里有个关键概念要理清。
基因转录出来的原始产物叫做前体信使RNA(pre-mRNA),它包含内含子和外显子。经过剪接加工后,内含子被切除,形成成熟的信使RNA(mRNA)。
| 特征 | pre-mRNA(未剪接) | mRNA(已剪接) |
|---|---|---|
| 包含内含子 | 是 | 否 |
| 可翻译 | 否 | 是 |
| 半衰期 | 短 | 较长 |
| 在RNA velocity中的作用 | 指示「刚被转录」 | 指示「已经稳定」 |
你想想看,如果一个细胞正在从一个状态转向另一个状态,它内部的新转录本必然先以未剪接形式存在。这就是RNA velocity能「看见」未来方向的原因。
RNA velocity的核心公式
RNA velocity的数学基础其实不复杂。基本思路是:
- 每个基因的未剪接RNA(U)和已剪接RNA(S)分别有生成速率和降解速率
- 稳态下U和S的比例是固定的
- 偏离这个比例就说明基因表达正在变化
我用一个简化的例子来展示一下实际计算中的核心公式:
# 伪代码示意:RNA velocity的核心计算逻辑
# u: 未剪接计数
# s: 已剪接计数
# alpha: 转录速率
# beta: 剪接速率
# gamma: 降解速率
du/dt = alpha - beta * u
ds/dt = beta * u - gamma * s
# 稳态时 du/dt = 0, ds/dt = 0
# u_steady = alpha / beta
# s_steady = alpha / gamma
# 所以稳态 s/u 比例 = beta / gamma
# 每个细胞的 velocity 就是当前点到稳态曲线的位移
嗯,这里要注意:实际分析中用的是广义线性模型来估算这些速率参数,不是手算微分方程。但理解了这个基础,你后面调参数时才不会懵。
稳态假设
RNA velocity的成立依赖一个关键假设:每个基因在细胞状态转变过程中会短暂进入「稳态」。说白了,就是某个时间点该基因的未剪接和已剪接达到平衡状态。
但我在项目中遇到过一个问题:对于某些在短时间内剧烈波动的基因(比如热休克基因),稳态假设可能不成立。这种情况下,RNA velocity的估计就会偏差很大。
核心知识点一图总结
RNA velocity能解决什么问题?
我整理了一下,RNA velocity在实际研究中最常用的场景包括:
- 细胞分化轨迹推断——传统拟时序分析容易卡在分支点判断上,RNA velocity的「方向感」能帮你分清哪条路是前向的
- 发育状态判定——某个细胞群到底是在增殖还是分化?看剪接比例变化能给出明确信号
- 疾病进展建模——肿瘤异质性里的亚克隆演化方向,RNA velocity有时能提前几天「预告」细胞命运
- 药物响应评估——处理后的细胞是正在耐药还是正在死亡?剪接变化速率比表达量更早反映
实验层面的准备
RNA velocity分析在实验上有个额外要求:测序时尽量保留内含子信息。具体来说:
- 建库方法——10x Genomics的v3试剂盒或Smart-seq2都比较适合,因为它们能捕获到未剪接的pre-mRNA
- 比对策略——需要同时比对到基因组(内含子区域)和转录组(外显子区域)
- 计数矩阵——最终你会得到两个矩阵:一个是传统的基因表达矩阵(只包含外显子),另一个是内含子矩阵
第1章小结
RNA velocity的生物学基础其实不复杂——我把它总结为三句话:
- 细胞内部正在发生什么?看未剪接RNA的比例
- 基因表达朝哪个方向走?看U/S偏离稳态的程度
- 结果靠谱吗?先检查稳态假设是否成立