1. 批次效应概述
做组学数据分析的人,几乎都会在某个阶段撞上批次效应。说白了,就是你在同一次实验中跑出来的样品,跟另一次实验跑出来的结果,总会有点不太对劲——哪怕所有实验条件都写得一模一样。我刚开始接触高通量测序数据时,就吃过这个亏。两组样品明明处理相同,PCA画出来却分成了两坨,后来一查实验日志,才发现它们是在不同月份上机的。
批次效应不是bug,是这种多批次、多平台、长时间跨度实验的天然属性。但你如果不管它,它就会悄悄扭曲你的统计结论,让你以为发现了生物学差异,结果只是实验室的湿度变了。这一章我们就来把这玩意儿彻底聊透。
1.1 什么是批次效应
用一句话定义:批次效应是指,在同一个实验流程中,由于不同时间、不同操作员、不同试剂批次等非生物学因素,导致样本之间系统性偏差的现象。这种偏差跟你要研究的生物学变量无关,但它可以大到完全掩埋真正的生物学信号。
我的理解是这样的——每一批实验都有自己的“指纹”。哪怕你严格按照方案操作,你在周一配的缓冲液pH值跟周二配的,差0.02是完全正常的。一台机器跑了100个样品后,检测灵敏度会有轻微漂移。这些微小的非随机波动累积起来,就会形成批次间的结构性差异。
用图形来理解会更直观。下面这张图展示了一个典型的多批次实验流程:
这张图其实已经点出了核心矛盾:同样的样本,只是因为被分配到不同批次上进行处理,最终产出的数据就会带上批次标签。如果你不做校正,PCA图上看到的聚类可能全是实验日期,而不是实验组和对照组。
1.2 批次效应产生的原因
我整理了几个最常见的“肇事者”,你一个个排查基本就能定位问题:
- 实验时间跨度:同一个项目前后拖了半年,仪器磨损、环境温度、试剂老化都在变。我有个项目,前后收了200份血液样本,第一批测出来白细胞基因表达普遍偏低,后来发现是第一批使用的RNA保存管厂家换了。你想想看,这种因素你写在实验记录里了吗?
- 操作人员:不同的手,加样精度、孵育时间、磁珠洗涤次数都会有细微差异。虽然大家培训用同一套SOP,但人的变异性就是存在。我曾经验证过,同一个样品让三个人做文库,测序结果的GC偏向性都不一样。
- 试剂批次:酶、抗体、缓冲液,每更换一个Lot#,都可能引入系统性偏倚。特别是反转录酶和聚合酶,不同批次活性差5%是很正常的。
- 仪器/芯片/流动池:一个96孔板的不同位置、芯片的不同lane、测序仪的不同flow cell,都会引入空间位置效应。我在做甲基化芯片时遇到过,芯片的边缘区域信号强度明显低于中心——这就是典型的芯片批次效应。
- 文库制备方案:同一家公司的不同试剂盒版本,甚至不同建库方法(如PolyA vs rRNA去除),都会在基因覆盖度上留下痕迹。
1.3 批次效应对数据分析的影响
批次效应不校正,你后面的统计推断基本是白做。它到底能造成多大破坏?我列个对照表:
| 分析环节 | 批次效应带来的后果 | 严重等级 |
|---|---|---|
| 差异表达分析 | 假阳性率飙升,批次变量与分组变量混杂时,你检出的“差异基因”其实是批次差异 | 🔴 致命 |
| 聚类分析 | 样本按批次聚类而非按生物学特征聚,类群解释完全跑偏 | 🔴 致命 |
| 降维可视化(PCA、t-SNE) | 第一主成分往往代表批次,生物学变异被压缩到后面的成分里 | 🔴 致命 |
| 机器学习分类 | 模型学到的是批次的区分规则,跨批次预测准确率暴跌 | 🟡 严重 |
| 生物标志物发现 | 候选标志物在另一个批次验证时无法重复,项目前功尽弃 | 🔴 致命 |
| 多中心联合分析 | 不校正的话,数据根本无法合并,只能每个中心各自分析 | 🟡 严重 |
你看,除了极少数情况(比如你只在一个批次内做简单t检验),批次效应几乎是所有组学下游分析的拦路虎。我记得有一次帮某课题组看数据,他们做了两批RNA-seq,对照组全部在第一批,处理组全部在第二批——我一看实验设计就头皮发麻。即使用了ComBat,也无法完全分离生物学效应和批次效应,因为二者完全混淆。这就是最典型的“不可校正”场景。
1.4 如何识别批次效应
在实际项目中,你不一定要等到做完所有分析才发现批次问题。有几个快速检查手段:
- PCA或MDS图按批次着色:如果第一批样本和第二批样本在PC1方向上明显分开,而分组却没有分离,基本可以确认存在批次效应。
- 层次聚类树:看样本分支是否先按批次聚合,再按实验组聚合。
- 批次间同一样本质控指标的分布:比如比对率、基因检出数、内参表达量。如果这些指标在不同批次间有系统性差异,那就是批次效应。
- 使用统计学检验:对每个特征(基因/探针)做ANOVA或KW检验,看p-value的分布是否均匀。如果大量特征的p值集中在接近0的位置,说明批次解释了很多变异。
我自己最常用的方法是:先简单跑一个PCA,用批次信息着色。如果看到明显的簇对应批次,就直接标记“批次效应存在”,然后上ComBat。别犹豫,浪费时间在“是不是批次效应”的无谓争论上,不如直接校正。
嗯,这一节我们就把批次效应的出身、危害和识别方法聊清楚了。有了这个基础,后面章节我们会动手操作ComBat校——不过那是之后的事了。先把这些概念刻在脑子里,你之后的每一行代码都会更有底气。