在数据分析中,经常会看到进行batch effect校正的分析,那么batch effect到底是什么,在我们自己的数据中存不存在batch effect, 在做哪些分析之前需要需要进行batch effect的校正,带着这些问题,我们来看下发表在natrure reviews上的一篇描述batch effect的文献,链接如下 https://www./articles/nrg2825 1. batch effect的定义 在该文章中,给出了batch effect的定义
关键词是sub groups,并且该sub group有已下两个特征 1. 在不同的条件下分布有差异 2. 与感兴趣的生物学条件不相关 举个例子,比如我们进行一个case/control实验设计,我们感兴趣的生物学问题是case/contorl因分组不同而导致的差异表达基因,而在具体的实验过程中,不同样本可能有不同的处理日期,比如dna提取的日期不同或者实验操作是由不同熟练度的实验员完整,当实验过程中的不同条件本身存在基因表达上的差异时,这些实验过程中的不同条件就是sub groups, 当我们不做任何处理,直接进行case/control 间的差异分析时,这个batch effect就会极大的影响差异分析的结果,使得我们得到错误的,不可重现的结论。 在该文章中提到,在基因表达的差异分析中,batch effect对实验结论影响非常大,如果不做处理,往往导致错误的实验结论
尽管在基因表达谱分析分析过程中,我们会进行normalization操作,但是并不能有效的处理batch effect的影响,如下图所示 两种颜色代表实验过程中两种不同的处理日期,图a为原始的基因分布,图b是归一化之后的基因分布,从所有基因表达量分布的箱体图中,可以看到归一化操作达到了预期的目标,使得所有样本的基因基本处在同一个范围内,可以更好的进行差异分析。 但是当查看个别基因的分布时,可以看到在不同的处理日期间,分布依然是有差异,如图c所示;而且如图d所示,聚类结果也显示,不同处理日期的基因分布明显聚成了两个cluster。所以对于batch effect, 我们必须进行针对性的处理。 batch effect可以分成以下两类 1. 实验记录下来的batch effect 2. 实验未记录下来的batch effect 第一类batch effect也叫做known batch effect, 就是我们实验过程中主动记录下来的一些实验条件,比如采样时间,dan提取日期等,因为是我们已经记录下来的变量,所以我们有明确的数值来表征这个batch effect; 第二类是未记录的batch effect, 就是说我们没有具体的数据来表征这些变量,比如实验室的湿度等潜在的batch effect, 会对基因分布造成影响,但是由于没有事先考虑到,我们没去关注这个变量,也就没有对应的实验记录,此时如果要分析,只能用是已经记录的实验数据来代表这些未记录的batch effect, 即surrogate batch effect. 一句话总结,已记录的batch effect 是我们经常会关注的几种常见的影响实验结果的因素,未记录的的batch effect是被我们忽略了的,但是实际上会影响实验结果的因素。 #### 2. batch effect的识别 对于已知的实验条件 , 我们可以通过以下两种可视化的方式来帮助我们判断是否为batch effect 1. 样本聚类图 2. 表达量分布图,比如PCA散点图,箱体图,小提琴图 从可视化结果中,如果发现不同实验条件间分布不同,那么这些实验条件就是已知的batch effect。 对于未记录的batch effect, 通过PCA分析来识别。对所有基因表达量进行PCA分析,提取主成分,计算各主成分与感兴趣的生物学条件的相关性,存在占比较大,且与生物学条件不相关的主成分时,认为数据存在未记录的batch effect。 3. batch effect的影响 batch effect会对以下两种分析的结果造成影响 1. 差异分析
2. 相关性分析
4. 减小batch effect影响的方法 可以从以下两个角度来考虑 1.从实验设计的角度,好的实验实验是根本,从源头上避免了大多数batch effect的产生,基本思路是配对采样的设计,对于可能影响结果的实验条件,保证其分布在case和control组中有同样的分布,比如在采样时,为了避免性别的影响,可以case组男女各50,control组男女各50, 通过这样的实验设计来减少混杂因素,从而避免batch effect的影响,但是实验设计不可能是完美的,所以即使在设计阶段采用了配对的思路,我们也要记录下各个实验条件的值,以备将来分析只用。 2.统计分析方法的角度,对于已经包含了batch effect的数据,只能从统计分析方法出发来尽量减少batch effect对结果的影响,常用的统计方法是基于线性模型的,在limma包中提取了两种策略来处理batch effect, 如果是已知的batch effect,就用comBat方法来处理;如果有未知的batch effect, 用PCA主成分的值来作为变量值,使用SVA方法来处理。 最后,文章中给出了batch effect 从识别到处理的参考pipeline, 图示如下 |
|