1. 批次效应概述与来源归纳
说起批次效应,我在做肿瘤单细胞项目时没少跟它打交道。说白了,它就是不同实验批次带来的系统性技术变异,跟样本本身的生物学差异没啥关系。你想想看,同一个肿瘤样本,分两次做测序,结果可能看起来像两个完全不同的样本——这就是批次效应在捣鬼。
我刚开始处理单细胞数据时,就吃过这个亏。有一批肺癌样本,合并后UMAP聚类全按实验日期分开了,而不是按细胞类型。当时我还以为是发现了新的细胞亚群,兴奋了好几天……后来才意识到,这就是典型的批次效应。嗯,从那以后,我拿到任何多批次数据,第一件事就是检查批次效应。
核心要点:批次效应是技术噪声,不是生物学信号。忽略它,你的分析结论可能全是错的。
1.1 什么是批次效应
批次效应(Batch Effect)是指由于实验操作、试剂、仪器、时间等非生物学因素导致的系统性数据偏移。在单细胞转录组学中,这种效应表现为不同批次间相同细胞类型的表达谱出现系统性差异。
我个人的理解更简单:同一类细胞,在不同批次里测出来不一样。这不是细胞变了,是实验条件变了。
从数学上看,假设真实生物学信号为 Xbio,批次效应为 B,观测数据 Xobs = Xbio + B + ε。我们的目标就是把 B 剥离掉,留下真实的 Xbio。
1.2 批次效应的常见来源
我在项目中归纳过,批次效应的来源大致分五类。下面这张表总结得比较全:
| 来源类别 | 具体因素 | 影响程度 |
|---|---|---|
| 实验操作 | 不同人员操作、解离时间差异、细胞活力波动 | 高 |
| 试剂批次 | 10x 试剂盒版本、抗体批号、酶批次差异 | 高 |
| 测序平台 | Illumina NovaSeq vs. HiSeq、测序深度不同 | 中 |
| 样本处理 | 冻存 vs. 新鲜样本、组织保存时间、运输条件 | 高 |
| 环境因素 | 实验室温度、湿度、操作台洁净度 | 低-中 |
实验操作差异是我遇到最多的情况。不同的人解离同一类组织,细胞存活率能差20%以上。存活率低的样本,死细胞释放的RNA会污染活细胞,导致表达谱偏移。
试剂批次问题也很常见。我记得有一次,同一个项目前后用了两批10x v3试剂盒,相同细胞类型的Marker基因表达量差了30%。如果不做批次校正,合并后直接聚类,两个批次会完全分开。
测序平台的影响相对小一些,但也不能忽视。NovaSeq的读长和测序深度通常比HiSeq高,这会导致基因检出率不同,尤其是低表达基因。
避坑指南:我曾经遇到过一批样本,组织在液氮里冻了半年才做测序。结果这批样本的线粒体基因比例异常高,聚类时单独成一团。这不是生物学差异,是样本质量不合格导致的批次效应。所以,样本处理条件一定要在实验设计阶段就统一。
1.3 如何识别批次效应
识别批次效应,我通常三板斧:
- PCA 可视化——看主成分上样本是否按批次聚集
- UMAP/t-SNE 聚类——看细胞是否按批次而非细胞类型分开
- 统计检验——计算批次间相同细胞类型的差异表达基因数量
第一板斧最快。我拿到数据后,第一件事就是跑PCA,用颜色标记不同的批次。如果PC1或PC2上批次明显分开,那批次效应基本实锤了。
举个例子,用Scanpy做批次效应检查的代码长这样:
import scanpy as sc
adata = sc.read_h5ad('tumor_samples.h5ad')
sc.pp.normalize_total(adata, target_sum=1e4)
sc.pp.log1p(adata)
sc.tl.pca(adata, n_comps=30)
sc.pl.pca(adata, color='batch', title='PCA colored by batch')
跑完之后,如果图上不同颜色的点各自抱团,那就是典型的批次效应。如下图左侧那种情况:
除了可视化,我还会用定量指标来确认。计算每个细胞在PC1上的投影值,然后用ANOVA检验不同批次间的均值差异。p值小于0.01,基本可以判定存在显著批次效应。
我的习惯:在项目一开始就建好批次记录表,包括样本ID、实验日期、操作人员、试剂批号、测序平台等信息。这样出现批次效应时,溯源特别快。不做记录,后期排查就是大海捞针。
1.4 批次效应对肿瘤研究的危害
在肿瘤单细胞研究中,批次效应的危害是致命的。我归纳了三点:
- 掩盖真实信号:肿瘤异质性本来就复杂,批次效应会把微弱的肿瘤亚群信号淹没掉。比如,一个稀有克隆只占1%的细胞,如果批次效应造成5%的噪声,这个克隆就根本看不到。
- 制造假阳性:批次效应会让不同批次的相同细胞类型看起来像不同亚群。我见过有人把两个批次的T细胞聚类成"两种新的T细胞亚型",其实就是批次效应。
- 破坏可比性:治疗前后对比、肿瘤vs正常对照,如果样本分布在不同的批次里,批次效应会扭曲差异分析结果。你发现的"差异基因",可能只是批次间的技术差异。
说白了,批次效应不消除,你后续所有的差异分析、聚类分析、轨迹推断,都可能是建立在一堆技术噪声之上。结论发出去,别人根本复现不了。
1.5 一个典型场景
讲一个我在项目中真实遇到的场景。一个肺癌研究,共12个样本,分3个批次处理:
- 批次A:4个肿瘤样本,2023年3月处理,操作人员甲
- 批次B:4个肿瘤样本,2023年4月处理,操作人员乙
- 批次C:4个正常对照样本,2023年5月处理,操作人员甲
合并数据后,我做了PCA,结果如下:
PCA结果:PC1解释了18%的方差,PC2解释了9%
批次A和批次B在PC1上明显分开
批次C夹在中间,但偏向批次A
肿瘤细胞和正常细胞没有分开,反而被批次混在一起
这个案例里,批次效应不仅把相同类型的肿瘤细胞分开了,还把肿瘤和正常样本的生物学差异给掩盖了。如果不做校正,你根本无法区分哪些差异是肿瘤vs正常,哪些是批次带来的。
我当时花了一周时间对比了多种批次校正方法,最后用Harmony + 基于参考的校正才把数据拉平。这件事让我深刻认识到:批次效应不是"要不要处理"的问题,而是"怎么处理更好"的问题。
教训总结:批次效应识别要早,处理要狠。一旦发现批次效应,不要犹豫,立刻上校正方法。拖得越久,后续分析受到的污染就越深。
上面这张图是我自己整理批次效应知识体系时画的框架。你可以看到,批次效应的来源是根因,识别方法是诊断工具,负面影响是必须处理的原因,消除策略是解决方案。这四部分构成了完整的批次效应处理闭环。后续章节我们会逐一深入每个消除策略的具体实现。
实操建议:新建一个单细胞项目时,第一时间建立批次记录表。每收到一批样本,就记录好日期、人员、试剂批号、测序平台。这个习惯帮我省掉了至少80%的排查时间。