第3章:ComBat方法概述
这一章我们聊聊ComBat这个方法到底是怎么回事。很多做质谱的朋友第一次听到ComBat时,会以为它是什么新出的化学试剂——说实话,我第一次接触这名字时也愣了一下。其实它是个统计方法,全称是Combating Batch Effects,直译过来就是“对抗批次效应”。
ComBat最早不是为质谱数据设计的,它诞生于基因表达芯片时代。后来组学技术发展了,蛋白组和代谢组的研究者发现,自己遇到的批次问题跟当年芯片领域简直一模一样。于是ComBat就这样“跨界”了。我个人觉得,这是生物信息学里最成功的方法迁移案例之一。
3.1 ComBat的发展历程
这事得从2007年说起。约翰霍普金斯大学的Jeff Leek团队发表了ComBat的原始论文。当时基因表达芯片正火,但有一个问题让所有人头疼:不同批次、不同实验室、不同时间做的芯片数据,根本没法直接比较。
我早年做过一批芯片数据分析,两个批次的结果在PCA图上直接分成了两团,跟生物学差异一毛一样。我当时差点以为发现了什么新的亚型——后来查记录才发现,两批数据用了不同批号的试剂。嗯,这就尴尬了。从那以后我对批次效应就有了心理阴影。
ComBat最初被用来校正基因芯片数据。后来的发展大致经历了三个阶段:
| 阶段 | 时间 | 主要应用领域 |
|---|---|---|
| 诞生期 | 2007-2010 | 基因表达芯片 |
| 扩展期 | 2011-2016 | RNA-seq、甲基化芯片 |
| 质谱期 | 2017-至今 | 蛋白组、代谢组质谱数据 |
到2020年以后,我几乎每做一个质谱项目都会试试ComBat。不管是用TMT标记的蛋白组,还是LC-MS的代谢组,只要涉及到多批次数据合并,ComBat几乎成了标准流程。
3.2 为什么质谱数据需要ComBat
你想想看,质谱仪器本身就有波动。今天和明天跑的同一批样品,峰强度可能差30%。如果换成不同实验室、不同质谱平台,差异就更大了。但偏偏科研设计中,我们又经常需要把多批次数据放在一起分析。
典型的场景包括:
- 长期队列研究:样本采集跨度几个月甚至几年,需要分批上机
- 多中心合作:不同实验室的数据需要汇总分析
- 技术更新:仪器升级后新旧数据需要合并
- 大规模筛查:一个批次跑不完所有样本
我在一个代谢组项目中遇到过这种情况:三个批次的质控样品,其内标的RSD在批次内都在10%以内,但跨批次比较时RSD直接飙到了40%。如果不做校正,后面找生物标志物基本就是缘木求鱼。
3.3 ComBat的基本假设
任何统计方法都有自己的假设前提,ComBat也不例外。理解这些假设很重要,因为假设被违背后,校正效果会很差。
ComBat的基本假设有三个:
- 大多数特征是技术无关的:大部分代谢物或蛋白在不同批次间的真实丰度没有系统性差异
- 批次效应是加性/乘性的:批次效应可以分解为位置偏移和尺度变化
- 批次间有共享特征:不同批次中相同特征的生物学变异程度是可比的
说白了,ComBat假设批次间的大多数差异都来自技术因素,而不是生物学因素。如果你实验设计本身就让批次和分组绑在一起,那ComBat也救不了你。
3.4 ComBat的核心思想
ComBat的核心思想可以用一句话概括:利用经验贝叶斯框架,从数据中估计出批次效应的参数,然后把这些效应从原始数据中剥离掉。
具体来说它做了三件事:
- 第一步:标准化。对每个特征,减去整体均值,再除以整体标准差。这一步把所有特征都拉到相似的尺度上。
- 第二步:估计批次参数。对每一个批次,估计它的位置参数(均值偏移)和尺度参数(方差变化)。这一步用到了经验贝叶斯——说白了就是“借力”,让信息在不同特征之间共享。
- 第三步:校正。用估计出的参数反向修正原始数据,把批次效应从数据中“减掉”。
3.5 ComBat与质谱数据的适配性
为什么ComBat在质谱数据上表现好?我总结了几个原因:
- 质谱数据的批次效应往往是系统性的:同一特征在不同批次中的变化趋势一致,这正好符合ComBat的设计
- 特征数量大:蛋白组和代谢组通常有成百上千个特征,经验贝叶斯需要这种“大特征量”的环境才能发挥优势
- 标准化操作有利于质谱数据:质谱数据本身变异度大,标准化后可以更好地估计批次参数
一个关键区别需要留意:
基因芯片时代用的是log2强度的数据,质谱时代通常用的是log2转化的峰面积或丰度值。操作上是一致的,但质谱数据的缺失值问题更严重。未经处理的缺失值会干扰ComBat的估计过程。这个后面我会专门讲如何处理。
不过ComBat不是万能的。它对实验设计很敏感。如果批次和分组完全重合——比如病人都在批次1,对照都在批次2——ComBat就无法区分批次效应和生物学效应。这种情况,我建议你先重新设计实验,再考虑校正方法。
还有一点要记住:ComBat校正的是统计意义上的批次效应,它不能解决由于样本处理不一致带来的系统偏差。如果你的第一批样本放在-80℃,第二批样本在-20℃放了三个月,那ComBat也帮不了你。
3.6 什么时候不该用ComBat
这些年我见过不少ComBat被误用的案例。下面几种情况,我建议你慎重:
| 情况 | 为什么不行 | 替代方案 |
|---|---|---|
| 批次与分组完全混淆 | 无法区分批次效应和生物学效应 | 重新设计实验,或放弃合并 |
| 单一特征只有一个批次有数据 | 无法估计跨批次参数 | 剔除该特征,或手工补齐 |
| 数据缺失率超过50% | 估计不稳定,可能引入新偏差 | 先做缺失值插补,再用ComBat |
| 样本量极不均匀 | 小批次估计不可靠 | 合并小批次,或用其他方法 |
我记得有次在跨中心数据合并时,一个中心只有3个样本,另一个中心有200个。ComBat跑完以后,那3个样本的数据几乎被拉到了全局均值的附近,完全失去了原有特征。事后分析,这其实就是经验贝叶斯“借力”借过头了——小批次的信息完全被大批次覆盖掉了。
好了,ComBat的方法论基本就这些。你看,它不是什么高深莫测的东西,本质上就是一个用统计方法拆掉批次“标签”的过程。