LDA Effect Size分析 LEfSe详解

LDA Effect Size分析 LEfSe详解LDAEffectSize分析LEfSe详解LEfSe的作用LEfSe的原理LEfSe的作用在介绍LEfSe的作用前,我们先解释一个概念——biomarker,维基百科给出的定义是Abio-marker,orbiologicalmarkerisameasurableindicatorofsomebiologicalstateorcondition.Biomarkersareoftenmeasuredandevaluatedtoexaminenorma

大家好,又见面了,我是你们的朋友全栈君。

LDA Effect Size分析 LEfSe详解

LEfSe的作用

在介绍LEfSe的作用前,我们先解释一个概念——biomarker,维基百科给出的定义是

A bio-marker, or biological marker is a measurable indicator of some biological state or condition. Biomarkers are often measured and evaluated to examine normal biological processes, pathogenic processes, or pharmacologic responses to a therapeutic intervention.

用我们搞数据的人能理解的话讲,biomarker就是非常强力的用来分类的特征,它可以是基因、细胞或者物种分类单元等。比如(瞎编的例子,不能当真)某个研究团队发现脚气会影响中央后回位于Sylvian Fissure附近的区域,从而影响舌头的知觉,于是这个团队打算进一步研究脚气怎么通过肠脑轴影响舌头的知觉,他们随机调查了一批志愿者,记录了志愿者的一些demographic information以及病理信息,并记录了他们肠道菌群的物种分类信息与物种丰度,于是他们有了一张数据表:

Group 有脚气 无脚气
界.门.纲.目.科.属1 丰度 丰度
界.门.纲.目.科.属2 丰度 丰度
。。。

他们想知道哪个属的细菌的丰度在有脚气与无脚气的志愿者之间是存在显著差异的,这个时候就需要LDA Effect Size分析了。

也就是说LDA Effect Size分析的作用是发现不同group之间存在显著差异的biomarker。下面我们介绍LDA Effect Size分析的原理。

LEfSe的原理

首先我们写出数据,用 i i i表示第 i i i个志愿者, i = 1 , 2 , ⋯   , n i=1,2,\cdots,n i=1,2,⋯,n,用 y i y_i yi​表示第 i i i个志愿者所在的group, y i ∈ { 1 , 2 , ⋯   , K } y_i \in \{1,2,\cdots,K\} yi​∈{
1,2,⋯,K}
(比如讨论有无脚气时 K = 2 K=2 K=2,我们可以用 y i = 1 y_i=1 yi​=1表示志愿者 i i i有脚气,用 y i = 2 y_i=2 yi​=2表示志愿者 i i i无脚气),用 x i x_i xi​表示第 i i i个志愿者的肠道菌群物种分类信息,
x i = ( x i 1 , ⋯   , x i M ) T x_i = (x_{i1},\cdots,x_{iM})^T xi​=(xi1​,⋯,xiM​)T

比如 x i 1 x_{i1} xi1​可以表示是Bacteroidaceae(拟杆菌科)、 x i 2 x_{i2} xi2​可以表示Coriobacteriaceae(红蝽杆菌科);用 z i z_i zi​表示第 i i i个志愿者的demographic information以及病理信息,
z i = ( z i 1 , ⋯   , z i L ) T z_i = (z_{i1},\cdots,z_{iL})^T zi​=(zi1​,⋯,ziL​)T

比如 z i 1 z_{i1} zi1​可以表示性别、 z i 2 z_{i2} zi2​表示种族、 z i 3 z_{i3} zi3​表示BMI等。

第一步 Kruskal-Wallis检验
因为 M M M通常是一个非常大的数,也就是说肠道内包含的细菌属非常多,但我们只需要找到效果最好的那几个作为biomarker,所以在使用LDA分析前,我们最好先做一个预处理:选出在两个group间具有显著差异的属,筛掉那些不具有显著差异的属。

用 μ m j \mu_{mj} μmj​表示第 j j j个group的第 K K K个细菌属的平均丰度, j = 1 , ⋯   , K j=1,\cdots,K j=1,⋯,K, m = 1 , ⋯   , M m=1,\cdots,M m=1,⋯,M,我们想要检验:
H 0 : μ m 1 = μ m 2 = ⋯ = μ m K H a : 至 少 有 一 个 与 其 他 的 不 等 H_0:\mu_{m1} = \mu_{m2} = \cdots = \mu_{mK} \\ H_a:至少有一个与其他的不等 H0​:μm1​=μm2​=⋯=μmK​Ha​:至少有一个与其他的不等

在介绍单因素试验设计的时候,我们介绍了检验多总体均值的方法——ANOVA,然而ANOVA需要总体服从正态分布,然而物种丰度通常会服从有偏的分布,所以我们并不能使用ANOVA来做这个检验,不过我们也讨论过,当总体的正态假设不满足时,我们可以使用非参的Kruskal-Wallis检验。

第二步 Wilcoxon秩和检验
接下来我们再做一个数据预处理,我们希望菌群丰度差异是group不同造成的,(比如菌群丰度主要是由有无脚气造成的),那么我就需要证明其他因素不会造成菌群丰度的显著差异。

比如在完成第一步以后,如果我们发现有无脚气的志愿者他们肠道红蝽杆菌科的丰度具有显著差异,但又有研究者提出,红蝽杆菌科丰度的差异可能与性别有关,于是我们按照性别把第 j , 1 ≤ j ≤ K j,1 \le j \le K j,1≤j≤K个group每一个都分为2个subgroup,我们希望同一个group的两个subgroup之间的红蝽杆菌科丰度没有显著差异,但是不同group的subgroup之间红蝽杆菌科丰度存在显著差异。为了实现这个比较,我们需要给这 2 K 2K 2K个subgroup的红蝽杆菌科丰度做两两比较。在单因素试验设计中我们介绍过三种做两两比较的方法:Tukey检验、Fisher Least Significant Difference方法、Dunnett方法。遗憾的是,这三种方法都要求基于ANOVA的假设进行,因此在这个应用场景下,我们这三种方法同样一个也不能用。这时我们同样就需要非参数检验了,Wilcoxon秩和检验就可以在subgroup之间进行两两比较。

对第一步选出来的那些biomarker都使用Wilcoxon秩和检验,同一个group的两个subgroup之间没有显著差异,不同group的subgroup之间存在显著差异的biomarker我们可以保留下来,然后扔掉其他的biomarker。需要注意的是把group分成不同的subgroup是基于 z i z_i zi​进行的,如果存在某个 z i l z_{il} zil​它可能造成biomarker的显著差异,我们就按 z i l z_{il} zil​的不同取值分subgroup。

比如我们按照性别把第 j , 1 ≤ j ≤ K j,1 \le j \le K j,1≤j≤K个group每一个都分为2个subgroup,但是我们发现某些group的两个subgroup之间的红蝽杆菌科丰度存在显著差异,这就说明group之间红蝽杆菌科丰度的显著差异可能并不是由group(有无脚气)导致的,而是由性别决定的,于是我们排除掉红蝽杆菌科丰度。如果我们发现某些group的两个subgroup之间的红蝽杆菌科丰度没有显著差异,那么我们可以留下红蝽杆菌科丰度,并将其作为指示脚气的一个重要biomarker。

要找存在显著影响的 z i l z_{il} zil​也很简单,对丰度使用adonis,用 z i 1 , ⋯   , z i L z_{i1},\cdots,z_{iL} zi1​,⋯,ziL​以及group作为feature, z i 1 , ⋯   , z i L z_{i1},\cdots,z_{iL} zi1​,⋯,ziL​中显著的那些feature就应该用来做一下Wilcoxon秩和检验。

第三步 LDA
现在我们就有了质量还不错的数据了,这些数据就是显著的biomarker,并且它们的显著差异主要是由group不同造成的,而不会受其他confounding variable的显著影响。

那么最后我们要做的就是评估这些biomarker的重要性了,我们可以用LDA进行分析。简单解释一下LDA的原理,之前我没写完的统计学习的博客里推导了LDA的输赢比的公式:

ln ⁡ P ( Y = 1 ∣ X = x ) P ( Y = − 1 ∣ X = x ) = ln ⁡ π 1 exp ⁡ { − 1 2 ( x − μ 1 ) T Σ − 1 ( x − μ 1 ) } π 0 exp ⁡ { − 1 2 ( x − μ 0 ) T Σ − 1 ( x − μ 0 ) } = [ − 1 2 ( x − μ 1 ) T Σ − 1 ( x − μ 1 ) + ln ⁡ π 1 ] − [ − 1 2 ( x − μ 0 ) T Σ − 1 ( x − μ 0 ) + ln ⁡ π 0 ] \ln{\frac{P(Y=1|X=x)}{P(Y=-1|X=x)}} = \ln{\frac{\pi_1 \exp{\{-\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1)\}}} {\pi_0 \exp{\{-\frac{1}{2}(x-\mu_0)^T\Sigma^{-1}(x-\mu_0)\}}}} \\ = \left[-\frac{1}{2}(x-\mu_1)^T\Sigma^{-1}(x-\mu_1) + \ln \pi_1 \right] – \left[-\frac{1}{2}(x-\mu_0)^T\Sigma^{-1}(x-\mu_0) + \ln \pi_0 \right] lnP(Y=−1∣X=x)P(Y=1∣X=x)​=lnπ0​exp{
−21​(x−μ0​)TΣ−1(x−μ0​)}
π1​exp{
−21​(x−μ1​)TΣ−1(x−μ1​)}
​
=[−21​(x−μ1​)TΣ−1(x−μ1​)+lnπ1​]−[−21​(x−μ0​)TΣ−1(x−μ0​)+lnπ0​]

每个中括号里面的式子具有一样的构造,它代表的是数据点到centroid的距离,这个式子的值越大,那么对应的biomarker的效果就越强。

比如还是在脚气的例子中,假设我们通过第一步和第二步筛选出 N N N个biomarker,那么 n n n个志愿者就可以表示成 n n n个在 N N N维空间中的点,点的第 a a a个坐标表示第 a a a种biomarker的丰度( 1 ≤ a ≤ N 1 \le a \le N 1≤a≤N)。这 n n n个点会集中在两个中心,这两个中心的坐标分别表示有脚气/无脚气的志愿者第 a a a种biomarker的平均丰度( 1 ≤ a ≤ N 1 \le a \le N 1≤a≤N),我们称这两个中心为centroid。我们可以把这 n n n个点投影到第 a a a个坐标轴上,就得到了 n n n个位于直线上的点,有脚气的会落在一些区域,没有脚气的会落在另一些区域,如果这两个区域几乎不重叠,那么第 a a a个biomarker就是一个非常重要的biomarker。我们可以用上面的对数输赢比来度量biomarker的重要性,比如设置对数输赢比大于2表示biomarker非常重要,那么我们就可以用对数输赢比的柱状图或者Cladogram等可视化方法来展示我们发现的biomarker的重要性以及它们的演化规律。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/134464.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 用PS修复老照片_photoshop修复老照片

    用PS修复老照片_photoshop修复老照片原图素材虽然很旧,不过人物部分并没有怎么损坏,只是有一些色块和杂色。修复的工程相对来说也少很多。只需要给人物磨好皮,然后把暗调和高光部分调出来即可。原图原图素材虽然很旧,不过人物部分并没有怎么损坏,

    2022年8月3日
  • thinkphp3.2.2邮箱发送

    thinkphp3.2.2邮箱发送

    2021年9月22日
  • spring cloud熔断器原理_a股熔断机制是什么时候

    spring cloud熔断器原理_a股熔断机制是什么时候1.熔断机制介绍在介绍熔断机制之前,我们需要了解微服务的雪崩效应。在微服务架构中,微服务是完成一个单一的业务功能,这样做的好处是可以做到解耦,每个微服务可以独立演进。但是,一个应用可能会有多个微服务组成,微服务之间的数据交互通过远程过程调用完成。这就带来一个问题,假设微服务A调用微服务B和微服务C,微服务B和微服务C又调用其它的微服务,这就是所谓的“扇出”。如果扇出的链路上某个微服务的调用响应时…

    2022年10月31日
  • 【系统架构设计师】第一章:操作系统(1.1.1—1.1.2)操作系统的分类和结构

    【系统架构设计师】第一章:操作系统(1.1.1—1.1.2)操作系统的分类和结构好久不见了。最近由于忙着期末考试,所以一直没更新帖子,最近考完了,我又回来了。很久不动笔了,突然很手痒,但是又一直在纠结写什么。原计划要写kali的从零开始的教程,不过仔细想想其实那个并没有系统架构师的专注力大,因为这个是我的一个目前的目标。你们知道的,我今年大二,下个学期会特别忙,有七八场ctf和awd,线上线下的都有,这就意味着我基本整个学期的一半都要在外地跑。更别说还有实习,招警考试…想想就头疼。不过好在我学计算机还是比较有天赋的,所以专业课反而是最轻松的一个。但是,我的想法不仅仅只是课程.

    2022年6月28日
  • Spring+Quartz实现定时任务的配置方法[通俗易懂]

    Spring+Quartz实现定时任务的配置方法[通俗易懂]<?xmlversion="1.0"encoding="UTF-8"?><beansxmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:context="http://www.spring

    2022年5月24日
  • react项目实战教程(react项目实战)

    文章目录项目实战前的准备工作项目实战一.搭建项目的基本页面及外层路由1-1配置基本页面1-2配置路由1-3需要最外层去渲染路由视图1-4需要配置内层App路由1-5路由的懒加载二.利用Antd实现组件2-1使用Antd的Layout进行布局2-2可以设计个Logo2-3实现左侧的菜单展示2-4实现左侧的小图标2-5实现点击菜单切换总结需要下载的组件项目实战前的准备工作React基础…

    2022年4月12日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号