专栏首页生信修炼手册batch effect究竟是什么?

batch effect究竟是什么?

在数据分析中,经常会看到进行batch effect校正的分析,那么batch effect到底是什么,在我们自己的数据中存不存在batch effect, 在做哪些分析之前需要需要进行batch effect的校正,带着这些问题,我们来看下发表在natrure reviews上的一篇描述batch effect的文献,链接如下

https://www.nature.com/articles/nrg2825

1. batch effect的定义

在该文章中,给出了batch effect的定义

Batch effects are sub-groups of measurements that have qualitatively different behaviour across conditions and are unrelated to the biological or scientific variables in a study.

关键词是sub groups,并且该sub group有已下两个特征

1. 在不同的条件下分布有差异

2. 与感兴趣的生物学条件不相关

举个例子,比如我们进行一个case/control实验设计,我们感兴趣的生物学问题是case/contorl因分组不同而导致的差异表达基因,而在具体的实验过程中,不同样本可能有不同的处理日期,比如dna提取的日期不同或者实验操作是由不同熟练度的实验员完整,当实验过程中的不同条件本身存在基因表达上的差异时,这些实验过程中的不同条件就是sub groups, 当我们不做任何处理,直接进行case/control 间的差异分析时,这个batch effect就会极大的影响差异分析的结果,使得我们得到错误的,不可重现的结论。

在该文章中提到,在基因表达的差异分析中,batch effect对实验结论影响非常大,如果不做处理,往往导致错误的实验结论

In gene expression studies, the greatest source of differential expression is nearly always across batches rather than across biological groups, which can lead to confusing or incorrect biological conclusions owing to the influence of technical artefacts.

尽管在基因表达谱分析分析过程中,我们会进行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. 差异分析

In the most benign cases, batch effects will lead to increased variability and decreased power to detect a real biological signal15. Of more concern are cases in which batch effects are confounded with an outcome of interest and result in misleading biological or clinical conclusions.

2. 相关性分析

A more subtle consequence of the batch effect relates to correlations between features.

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, 图示如下

·end·

文章分享自微信公众号:
生信修炼手册

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:lzyg
原始发表时间:2022-04-20
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • Rethinking batch effect removing methods—CCA

    CCA 因为 seurat 的广泛使用,所以基本是目前最流行的数据整合方法,但是之前读原来的文章的时候觉得有点奇怪,感觉和传统的CCA不太一样,当时和同学讨论了...

    生信技能树jimmy
  • Rethinking batch effect removing methods—MNN

    这是本系列的第二篇文章,上一篇文章提供了一个对于 CCA 为什么 work 的新的解释,可见 Rethinking batch effect removing ...

    生信技能树jimmy
  • Rethinking batch effect removing methods—LIGER

    这是本系列第三篇文章,前两篇文章综合来说就是讲了 CCA 其实就是 MNN 加上一个 SVD denoise,其本质是相同的,原理和 CCA 本身没有什么关系。

    生信技能树jimmy
  • Rethinking batch effect removing methods—各种NMF

    Rethinking batch effect removing methods—CCA

    生信技能树jimmy
  • 编程中的 Side effect 是什么?

    Side effect,中文可以叫 “副作用”。这个词第一次听的话有种负面的感觉,但如果你使用过 React Hooks 中的useEffect或接触过函数式编...

    CodecWang
  • Dockershim究竟是什么

    kubelet中的Docker支持现在已弃用,并将在未来的版本中删除。kubelet使用了一个名为dockershim的模块,该模块实现了对Docker的CRI...

    Yuou
  • JWT究竟是什么呢?

    为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

    Fundebug
  • JWT究竟是什么呢?

    译者按:如果你还在使用 session 验证用户的话,是时候了解一下 JWT 了!

    Fundebug
  • 大数据究竟是什么

    古语云:三分技术,七分数据,得数据者得天下。先不论谁说的,但是这句话的正确性已经不用去论证了。维克托·迈尔-舍恩伯格在《大数据时代》一书中举了百般例证,都是为了...

    小莹莹
  • Node.js 究竟是什么?

    Node.js 是一个 JavaScript 运行时环境。听起来还不错,不过这究竟意味着什么?它又是如何运作的?

    疯狂的技术宅
  • Debug究竟是什么意思?

    各位,相信你们都听过Debug这个词,那这个词在我们计算机领域究竟是什么意思呢?今天就在这和大伙简单说道说道,讲的不好不对的地方还请大家批评指正。

    7089bAt@PowerLi
  • POS 权益证明究竟是什么

    翻译/校对: Mika 本文为 CDA 数据分析师原创作品,转载需授权 观看更多国外公开课,点击"阅读原文" 权益证明(POS)与工作量证明(POW)都有些什么...

    CDA数据分析师
  • 网络安全究竟是什么?

    “网络安全”是指任何活动旨在保护您的网络和数据的可用性和完整性。它包括硬件和软件技术。有效的网络安全管理对网络的访问。它针对的是一种不同的威胁,阻止他们进入或在...

    C4rpeDime
  • chmod 755 究竟是什么鬼?

    第一种:chomod [who] [operator] [permission] filename

    全栈程序员站长
  • React Hooks究竟是什么呢?

    我们大部分 React 类组件可以保存状态,而函数组件不能? 并且类组件具有生命周期,而函数组件却不能?

    Fundebug
  • “区块链”究竟是什么鬼

    最近区块链比较火,区块链是什么鬼,怎么以前没听过,不过说个东西你一定听过-比特币,以前区块链用在比特币上,一直到最近半年,区块链已经渐渐开始有了一些其他应用,特...

    xiangzhihong
  • 左耳朵耗子:Serverless 究竟是什么?

    关注 TencentServerless 公众号,回复「PPT」,即可领取本届大会演讲 PPT。 微服务是一把双刃剑,在让我们提升开发效率的同时,也会让运维难...

    腾讯云serverless团队

扫码关注腾讯云开发者

领取腾讯云代金券