实验设计与样本准备:生物学重复、测序深度、文库类型选择

做RNA-seq实验,说白了就是在回答一个问题:你拿到的差异基因,到底是真的差异,还是随机波动?我见过太多新手,花了大价钱跑测序,结果因为实验设计没想清楚,最后连个靠谱的p值都算不出来。

今天咱们就把这事掰扯清楚。我个人习惯在定下实验方案之前,先画一张简单的决策图。你看下面这张,基本覆盖了三大核心要素的决策顺序。

RNA‑seq 实验设计决策流程 生物学问题 → 差异基因 决策 1:生物学重复数 技术 vs 生物学?每组至少 3? 决策 2:测序深度 低深度 (10M) vs 中深度 (30M) vs 高深度 (60M+) 决策 3:文库类型 链特异性?PE vs SE?rRNA 去除还是 polyA? 确认方案 → 送样测序 填写样本信息表,安排建库 数据产出 → 质控 → 差异分析 避坑要点 文库选择 影响后续分析

生物学重复:命根子

我刚开始做生信时,接到过一个项目,每组只给了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)

特性SEPE
测序成本低(约一半)高
比对准确率中等高(尤其对重复区域)
可变剪接分析基本不可用可以(利用插入片段)
融合基因检测困难容易
推荐场景单纯表达定量几乎所有差异分析项目

我个人习惯:凡是大批量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)

这些都在样本准备阶段定好,后续的数据分析会顺利得多。很多后期头疼的问题,根源都在实验设计这一步。