批次效应与校正概述
什么是批次效应?
说白了,批次效应就是同一次实验、不同批次处理带来的系统偏差。你可能做了两批RNA-seq,样本处理、试剂、操作时间都差不多,但一对比,聚类图上明显分成两堆。嗯,这就是批次效应。
我刚开始做多批次整合的时候,曾被这东西坑过。那时候拿到数据,二话不说直接差异分析,结果找出来一堆“显著基因”,后来一验证,全是批次差异。从那以后,我每次拿到多批次数据,第一件事就是看批次有没有“长歪”。
批次效应从哪来?
常见来源就这么几个:
- 实验操作:不同人、不同时间点的操作差异
- 试剂批次:抗体、酶、试剂盒批次不一致
- 仪器漂移:测序仪、质谱仪随时间产生的信号波动
- 环境条件:温度、湿度、光照等微环境变化
- 处理顺序:样本上机顺序不同带来的交叉影响
你想想看,这些因素混杂在一起,如果不处理,后续分析全是噪音。
什么时候必须考虑校正?
不是所有情况都要校。我一般按这张表来快速判断:
| 场景 | 是否需要校正 | 说明 |
|---|---|---|
| 单批次内部比较 | 通常不需要 | 所有样本在同批次处理,批次效应可忽略 |
| 多批次、批次与生物学分组平衡 | 建议校正 | 减少系统性偏差,增加可比性 |
| 多批次、批次与生物学分组混杂 | 必须校正 | 否则假阳性/假阴性风险极高 |
| 整合公共数据库数据 | 强烈建议 | 不同实验室、不同平台,批次效应往往巨大 |
注意: 我曾经在康奈尔的项目中,因为忽视了批次与分组完全混杂(所有case在第一批,control在第二批),校正后反而丢失了真实生物学信号。后来才明白,混杂时不能盲目用线性校正,得用更鲁棒的方法。
主流校正方法速览
业内常用的校正方法我整理在下面,大家按数据类型和样本量选:
| 方法 | 原理 | 适用场景 | 我个人的推荐等级 |
|---|---|---|---|
| ComBat | 基于经验贝叶斯,估计每个特征的批次偏移 | 微阵列、RNA-seq、蛋白组 | ⭐⭐⭐⭐⭐ |
| Harmony | 基于软聚类和迭代混合,保留生物学变异 | 单细胞测序、大规模整合 | ⭐⭐⭐⭐ |
| limma::removeBatchEffect | 线性模型,直接减去批次贡献 | 简单平衡设计、小样本 | ⭐⭐⭐ |
| RUV (Remove Unwanted Variation) | 利用负控制基因估计未知变异 | 批次效应未知或不完整时 | ⭐⭐⭐ |
| SVA (Surrogate Variable Analysis) | 估计隐变量,并纳入模型 | 与后续分析协同,而非直接校正 | ⭐⭐ |
我个人最常用的是ComBat,稳定、快、被引用得最多。Harmony在单细胞整合里表现亮眼,但参数敏感,需要仔细调。
小技巧: 校正前一定要先画个PCA或UMAP,按批次着色看看。如果批次和分组完全重叠,单靠PCA看不出来,可以用方差分解(如pve)量化批次贡献。
校正不是终点,校验才是
很多人以为跑完ComBat就万事大吉了。错。校正之后,你有没有问过自己:
- 批次效应真的被消除干净了吗?
- 有没有过度校正,把生物学差异也抹掉了?
- 校正结果是否稳健,换一个随机种子会不会变化很大?
这些问题,光靠肉眼盯PCA图是不够的。我在之前的一个单细胞整合项目中,用ComBat校正后PCA聚得很好,但做差异分析时发现一大批假阳性。后来加了置换检验才揪出问题——校正的统计模型假设被违反了。
所以接下来的章节,我会手把手教你如何用置换检验来系统性地验证校正效果。简单说:把样本的批次标签打乱,重新校正、重新统计,看真实效果是否显著强于随机情况。嗯,这就是我们这门课的核心。
你看,这张流程图上最后一步就是置换检验。很多教程讲完校正就收工,但真正可靠的流程一定要有校验环节。后面我会用实际代码带着你过一遍——怎么设计置换策略、怎么衡量校正效果、怎么判断P值是否真的可靠。
核心观点: 批次校正不是一键操作,而是一个“检测 → 选择 → 校正 → 校验”的闭环。跳过任何一步,都可能被数据骗。