实验设计原则:重复数、批次效应、对照设置
实验设计这关要是没过,后面分析再花哨也是白搭。我见过太多人拿到数据就跑流程,结果发现差异基因不是跟着处理走,而是跟着批次跑。说白了,数据质量在取样那一刻就已经决定了。
RNA-seq 差异表达的核心逻辑很简单:你比较两组样本,看看哪些基因的表达量有显著变化。但这个「比较」能不能站住脚,全靠实验设计的三根柱子——重复数、批次效应、对照设置。
重复数:别再踩技术重复的坑
很多人第一次做 RNA-seq 时,会把同一个样本多跑几遍当作「重复」。这其实是个误解——你测的是一份 RNA 的不同分装,结果当然高度一致。你需要的是生物学重复,也就是来自不同个体或不同批次培养物的独立样本。
为什么非要这样?因为差异表达的统计检验(DESeq2、edgeR 那套)本质上是看组内变异和组间变异的比值。组内变异来自哪里?来自个体间的天然差异。技术重复根本反映不了这种差异。
| 重复类型 | 定义 | 用途 | 推荐数量 |
|---|---|---|---|
| 生物学重复 | 独立生物样本 | 反映群体变异,用于差异检验 | ≥ 3,最好 ≥ 5 |
| 技术重复 | 同一样本多次测定 | 评估技术误差 | 通常不需要 |
| 测序深度重复 | 同文库多次上机 | 罕见应用 | 不推荐常规使用 |
那么怎么估算到底需要多少重复?可以用 RNASeqPower 或 ssizeRNA 这类工具预估算一下。需要你预估效应大小(比如 fold change 想看到 2 倍以上),以及基因表达的平均离散度。
# R 包 RNASeqPower 示例
library(RNASeqPower)
# 参数:效应倍数 2 倍,dispersion 0.1,期望检测到的基因数
rnapower(depth=20, n=3, effect=2, cv=0.1)
rnapower(depth=20, n=5, effect=2, cv=0.1)
批次效应:别让实验室操作毁掉你的结论
批次效应是个幽灵,你看不见摸不着,但它能在结果里留下明显的「假基因」。我在做癌症公共数据整合时就发现,来自不同实验室的样本一聚类,首先分开的不是肿瘤 vs 正常,而是 GSE 编号。
批次效应怎么来的?RNA 提取时间不同、试剂盒批号不同、建库人员不同、测序通道不同——每一个操作环节都可能引入系统偏差。
最好的策略:单一批次完成
如果条件允许,所有样本在同一天、由同一个人、用同一批试剂完成建库和测序。这能最大限度减少非生物学因素的干扰。
如果做不到:交叉平衡设计
样本量大时难免分多批次。关键原则是:每个处理组的样本均匀分布在每个批次中。别把对照组全放在第一批,处理组全放在第二批——那样你就分不清差异基因和批次差了。
| 设计类型 | 样本安排 | 风险 |
|---|---|---|
| 完全随机 | 各处理组随机分配到各批次 | 最低 |
| 交叉平衡 | 每批次均有各处理组相等数量 | 可接受 |
| 全部混批 | 处理组 A 在 batch1,B 在 batch2 | ❌ 严重 |
记录一切
我强烈建议你在实验记录里把下面这些写清楚。不是为了写论文,是为了后面分析不被自己坑。
# 批次记录表示例
sample_id treatment batch rna_date library_kit operator flow_cell
S01 control 1 2024-01-10 NEBNext Alice FC_001
S02 treated 1 2024-01-10 NEBNext Alice FC_001
S03 control 2 2024-01-11 NEBNext Bob FC_002
S04 treated 2 2024-01-11 NEBNext Bob FC_002
对照设置:没有锚点就没有比较
差异表达分析本质上是「相对于谁」的差异。对照就是那个「谁」。对照设置得不对,后面的比较全是空中楼阁。
最常见的对照是未处理对照(vehicle control 或 mock),用来看处理本身的效应。但有些场景需要更细致的对照:
- 阴性对照: 比如做 knockout,用野生型或空载体转染作为基线
- 阳性对照: 已知某种药物能上调某个 marker 基因,用来验证实验系统是否正常工作
- 时间点对照: 如果研究的是时间序列,每个时间点都需要独立的对照,别光拿 0h 作为所有时间点的基准
- 批次内对照: 对照样本必须与处理样本在同一批次处理,不能分开做
对照数量要不要与处理组一致?
最好是 1:1。如果经费紧张,对照你可以稍微少一点,但最少不低于 3 个生物学重复。DESeq2 的算法里,所有比较都是以对照组的均值为基准,如果你的对照组只有 2 个重复,均值的估计方差会很大,会导致很多真阳性差异被漏掉。
| 对照类型 | 适用场景 | 注意事项 |
|---|---|---|
| 未处理对照 | 药物/刺激处理 | 使用相同溶剂,保持一致培养条件 |
| 空载体对照 | 过表达/敲低 | 与处理组使用相同转染体系和剂量 |
| 野生型对照 | 基因编辑(KO/KI) | 同品系、同遗传背景 |
| 假手术对照 | 动物手术模型 | 开腔但不做目标操作 |
| 时间匹配对照 | 时间序列 | 每个时间点分别设置对照 |
把它们串起来:一个检查清单
每次开始一个新实验设计时,我都会拿这个清单过一遍。你可以直接复制到你的实验记录里。
## 实验设计检查清单(可复选)
□ 每个处理组 ≥ 3 个生物学重复(最好 5 个)
□ 技术重复已排除
□ 所有样本在单一批次内完成(如不能,已做交叉平衡)
□ 批次变量已记录(日期、操作者、试剂、芯片号)
□ 对照类型明确(未处理、空载体、野生型等)
□ 对照与处理在同一批次处理
□ 对照数量 ≥ 处理组或至少 3 个
□ 实验已纳入阳性对照(用于质控)
□ 样本分配表已画出,无混杂
□ 预估过所需样本量(如适用)
最后说一句:实验设计阶段多花的心思,在数据分析阶段会十倍回报给你。你觉得差不多了,那就再检查一遍重复数和批次设计——这两关过了,剩下的统计分析才有意义。