1. 批次效应概念:什么是批次效应、批次效应的来源与影响
做生物信息学数据分析的人,十有八九都跟「批次效应」打过交道。我第一次意识到这玩意儿,是几年前在分析一批RNA-seq数据的时候——同样的处理组,不同时间测的两批样本,聚类居然分成两团。我当时还以为是处理效果,折腾了好几天才发现,其实就是批次不同。嗯,从那以后我再也不敢忽略批次了。
1.1 什么是批次效应
说白了,批次效应就是把一批样本当作一个「批次」处理时,因为非生物学因素引起的系统性偏差。
举个例子:你今天收了一批肿瘤样本,明天又收了一批。虽然都是同一个医院、同一个操作规范,但试剂可能换了个批号,仪器可能重新校准过,甚至室温都不一样。这些「非生物因素」会在数据里留下痕迹——让同一类样本因为批次不同而表现不同,而不是因为生物学差异。
我个人的理解是:批次效应就像照片的滤镜。原本同样的风景,换个滤镜就变了颜色。我们做生物信息,要的是真实的风景,不是滤镜后的假象。
1.2 批次效应的来源
你想想看,一个高通量实验流程里,有多少环节可能引入批次?我列几个最常见的,全是自己踩过的坑。
| 来源类别 | 具体因素 | 我见过的问题 |
|---|---|---|
| 样本收集与处理 | 收样日期、保存方式、RNA提取时间 | 同一批次样本隔了三个月才提RNA,降解程度不一样 |
| 实验试剂 | 试剂批号、引物批次、酶批次 | 换个批号的逆转录酶,表达量直接差了两倍 |
| 仪器设备 | 测序仪、芯片扫描仪、qPCR仪 | 两台测序仪的cluster密度不同,影响定量 |
| 操作人员 | 不同技师的加样手法、操作习惯 | 曾经换了个实习生,结果文库浓度全线偏低 |
| 环境条件 | 温度、湿度、空气洁净度 | 夏天做的实验,背景噪声普遍偏高 |
| 数据采集与分析 | 不同版本的软件、不同的分析流程 | 用新旧两个版本的bcl2fastq,产出序列质量分布不同 |
这些来源往往不是独立的。一个批次里,可能多个因素同时变化。比如你换了操作人员,可能连带试剂批号、仪器校准时间都变了。这就让批次效应变得更复杂。
1.3 批次效应的影响
批次效应一旦存在,它的破坏力还是很明显的。我做过的项目里,有几次就是因为没检查批次,导致分析结论完全反了。
- 增加噪声,降低统计检测力:批次效应相当于给数据加了一层系统噪声,让真实的生物学差异更难被检测出来。
- 引入假阳性差异:如果批次与感兴趣的分组恰好相关(比如对照组全在第一批,处理组全在第二批),那你检出的差异里可能大部分是批次效应。
- 聚类/降维后的虚假分群:PCA、t-SNE、UMAP里,样本按批次聚集,而不是按生物学条件。这是最直观的坑,我当年就是被这个坑的。
- 降低模型泛化能力:用包含批次效应的数据训练分类器,模型可能学到的是批次特征,而不是生物学特征,换个新数据就失效。
1.4 批次效应的可视化识别
了解概念后,下一步就是如何发现批次效应。我习惯先用简单的图快速扫一眼。
比如,我们有一批数据,想知道有没有批次效应。可以用箱线图或密度图,按批次着色,看表达量分布是否一致。
library(ggplot2)
# 假设 dat 是表达矩阵,batch_info 是批次标签
ggplot(dat, aes(x = batch, y = value, fill = batch)) +
geom_boxplot() +
theme_classic()
同一条件下,如果不同批次的箱线图位置、离散程度差异很大,那就要警惕了。
另一个更直观的方法是PCA。将样本投影到前两个主成分上,用颜色标记批次。如果批次分的很开,说明有显著的批次效应。
pca_res <- prcomp(t(expr_matrix), scale. = TRUE)
pca_df <- data.frame(PC1 = pca_res$x[,1], PC2 = pca_res$x[,2], batch = batch_info)
ggplot(pca_df, aes(x = PC1, y = PC2, color = batch)) +
geom_point(size = 3) +
stat_ellipse() +
theme_minimal()
这两种图,我每次拿到新数据都会先跑一下,心里有个数。
1.5 批次效应的类型:一致性与不一致性
批次效应不是只有一种形态。我个人习惯把它分成两类,方便后续选择处理方法。
- 一致性的批次效应:所有基因/特征在批次间受到相同方向的偏移。比如第一批整体表达量偏高20%。这种用简单的标准化(比如分位数标准化)就能部分消除。
- 不一致性的批次效应:不同基因受批次影响的方向和程度都不同。有的上调,有的下调,甚至不同批次间的差异模式都不一样。这种更麻烦,需要更复杂的统计方法(比如ComBat、limma的removeBatchEffect)。
实际数据中,大部分是不一致性的。我遇到过最糟的一次,前100个高表达基因在批次1里比批次2高,后100个却是低的……简直没法直接对比。
1.6 本章知识体系
下面这张图的框架,是我自己理解批次效应的核心逻辑。从概念出发,分清楚来源和影响,再落到可视化检查方法,形成闭环。