2. 实验设计与样本准备
做RNA-seq实验,说白了就是在回答一个问题:你拿到的差异基因,到底是真的差异,还是随机波动?我见过太多新手,花了大价钱跑测序,结果因为实验设计没想清楚,最后连个靠谱的p值都算不出来。
今天咱们就把这事掰扯清楚。我个人习惯在定下实验方案之前,先画一张简单的决策图。你看下面这张,基本覆盖了三大核心要素的决策顺序。
生物学重复:命根子
我刚开始做生信时,接到过一个项目,每组只给了2个样本。结果跑差异分析,一堆基因p值显著但log2FC只有0.3。你想想看,2个样本的方差估计基本靠运气,出来的结果根本不敢信。
生物学重复指的是从不同个体或独立培养物中取样,反映的是群体水平的随机变异。与之相对的是技术重复——同一管样本分几份重复建库。技术重复能衡量操作误差,但对差异分析没太多帮助。
实际项目中,我建议按这个表来定重复数:
| 应用场景 | 每组最少重复数 | 备注 |
|---|---|---|
| 探索性研究/预实验 | 3 | 先跑3个,效果不好再加 |
| 常规差异表达分析(细胞系) | 3~4 | 细胞系变异小,3个基本够 |
| 临床组织样本、动物实验 | 5~8 | 个体差异大,宁多勿少 |
| 高度异质性(肿瘤、环境样本) | 8~12 | 统计效能是关键 |
| 时间序列或剂量梯度 | 3~5/时间/浓度 | 倍数关系分析需要更密 |
核心原则:重复数越高,差异检测的统计效能越强。但也要考虑预算,我一般推荐“安全线”——每组至少3个生物学重复,临床样本至少4个。
你可能想问:“那能不能用技术重复代替生物学重复?”千万别。技术重复只能减少建库/测序噪声,却无法代表群体的真实变异。我见过有人为了省钱,3个样本各做2次技术重复,总共6个数据点,但本质上还是n=3,假阳性高得离谱。
避坑指南:我曾经接手一个公共数据集,每组只有2个重复,做差异分析时DESeq2直接报“基因数太少,无法估计色散”。最后只能用fold change简单排名,完全没法做统计检验。所以,重复数是做差异分析的底线。
测序深度:够用就好
测序深度,说白了就是每个样本你跑了多少条reads。单位通常用百万reads(M)表示。比如“10M”代表1千万条双端reads。
深度不够,低表达基因就检测不到;深度太高,边际效益递减,钱白花。我习惯把它跟分析目标绑定:
- 基因表达定量(常规差异分析):10~20M reads/样本(SE)或 20~40M PE reads。够了。
- 寻找低表达基因、可变剪接或新转录本:需要 60~100M PE reads。比如你要找融合基因或者稀有异构体。
- 小RNA或miRNA测序:一般5~10M就够了,因为小RNA种类有限。
- 单细胞RNA-seq:深度通常比bulk低得多,但那是另一套参数,不在本章讨论。
这里有个常见误区:很多人觉得“多跑点reads肯定更好”。确实,更深的测序能检测到更多基因,但差异分析用到的基因通常是中高表达的。额外的reads大多浪费在已经饱和的转录本上。我做过一个实验,同样的样本分别跑了20M、40M、80M reads,最终筛选出的差异基因数量几乎一样。
我的经验:如果预算有限,优先加重复数,而不是堆深度。多一组重复带来的统计增益,远大于把同一样本从30M升到60M。不信你用power分析算算。
文库类型:选错了,结果全废
文库类型的选择会直接影响你后续能做什么分析。咱们重点说三个维度。
1. 单端(SE) vs 双端(PE)
| 特性 | SE | PE |
|---|---|---|
| 测序成本 | 低(约一半) | 高 |
| 比对准确率 | 中等 | 高(尤其对重复区域) |
| 可变剪接分析 | 基本不可用 | 可以(利用插入片段) |
| 融合基因检测 | 困难 | 容易 |
| 推荐场景 | 单纯表达定量 | 几乎所有差异分析项目 |
我个人习惯:凡是大批量RNA-seq项目,只要预算允许,一律双端100bp或150bp。单端虽然省钱,但后期分析灵活性差太多。比如你想看剪接事件,双端数据是必须的。
2. 链特异性文库(stranded) vs 非链特异性(unstranded)
链特异性文库能保留转录本的方向信息,也就是你知道reads来自正义链还是反义链。这对差异分析有什么影响?
- 非链特异性文库:无法区分互补链上的reads,会导致基因定量的低估和反义转录本的混杂。
- 链特异性文库:可以准确计算每个基因表达量,还能做反义转录本分析。
现在主流期刊基本要求链特异性数据。我手头有一个案例:用非链特异性数据分析同一个样本,结果显示某些基因的表达量只有链特异性结果的60%,因为部分reads被错误分配到了互补链上。
避坑指南:我曾经帮一个课题组复现论文结果,对方用的是非链特异性文库。结果跑差异分析后,发现有不少所谓的“差异基因”其实是反义链污染造成的假阳性。后来换了链特异性数据,差异基因减少了三分之一。所以,如果你是做差异表达分析,优先选链特异性文库。
3. PolyA 富集 vs rRNA 去除 vs 总RNA
| 方法 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|
| PolyA 富集 | 真核生物mRNA(多聚腺苷尾) | 有效去除rRNA,得到高质量mRNA | 丢失非polyA RNA(如lncRNA、histone RNA) |
| rRNA 去除 | 总RNA(含lncRNA、circRNA) | 保留大部分RNA种类;可用于原核生物 | rRNA残留较多,成本稍高 |
| 总RNA(不处理) | 仅用于特殊协议(如single-cell) | 信息完整 | 绝大部分数据是rRNA,浪费深度 |
我通常这样选:如果只关注mRNA差异表达,选PolyA富集最经济;如果还想看lncRNA、环状RNA,或者研究原核生物,必须用rRNA去除。有些预算充足的大项目会两种都做,但那是另一回事。
总结一下:实验设计前,先问自己三个问题——
- 我的重复数够不够做统计检验?
- 我的测序深度能不能覆盖目标基因?
- 我的文库类型能不能支持后续分析?
这三个问题没想清楚,后面所有分析都是沙上建塔。
实际项目中的检查清单
为了让你少走弯路,我把我在项目中最常检查的点列成清单。每次送样前对着过一遍:
- 每组生物学重复是否≥3?如果组织样本,是否≥5?
- 样本来源是否一致?比如动物品系、给药方式、细胞代次。
- 是否设计了交叉批次?尽量避免同一组样本在一个batch,另一组在另一个batch。
- 测序深度是否匹配分析目标?要做剪接就≥40M PE。
- 文库是否用了链特异性?如果是新项目,默认选链特异性。
- 建库方案是否与参考基因组类型匹配?比如人、小鼠用PolyA没问题;但植物、微生物用rRNA去除。
- 有没有预留足够的样本量用于潜在的验证实验?(比如qPCR)
这些都在样本准备阶段定好,后续的数据分析会顺利得多。很多后期头疼的问题,根源都在实验设计这一步。