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==μmKHa:

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

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

比如在完成第一步以后,如果我们发现有无脚气的志愿者他们肠道红蝽杆菌科的丰度具有显著差异,但又有研究者提出,红蝽杆菌科丰度的差异可能与性别有关,于是我们按照性别把第 j , 1 ≤ j ≤ K j,1 \le j \le K j,1jK个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,1jK个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=1X=x)P(Y=1X=x)=lnπ0exp{
21(xμ0)TΣ1(xμ0)}
π1exp{
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 1aN)。这 n n n个点会集中在两个中心,这两个中心的坐标分别表示有脚气/无脚气的志愿者第 a a a种biomarker的平均丰度( 1 ≤ a ≤ N 1 \le a \le N 1aN),我们称这两个中心为centroid。我们可以把这 n n n个点投影到第 a a a个坐标轴上,就得到了 n n n个位于直线上的点,有脚气的会落在一些区域,没有脚气的会落在另一些区域,如果这两个区域几乎不重叠,那么第 a a a个biomarker就是一个非常重要的biomarker。我们可以用上面的对数输赢比来度量biomarker的重要性,比如设置对数输赢比大于2表示biomarker非常重要,那么我们就可以用对数输赢比的柱状图或者Cladogram等可视化方法来展示我们发现的biomarker的重要性以及它们的演化规律。

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Python中字符串String去除出换行符(\n,\r)和空格的问题

    Python中字符串String去除出换行符(\n,\r)和空格的问题Python中字符串String去除出换行符和空格的问题(\n,\r)在Python的编写过程中,获取到的字符串进场存在不明原因的换行和空格,如何整合成一个单句,成为问题。方法:一、去除空格“·”代表的为空格  strip()"···xyz···".strip()#returns"xyz""···xyz···".lstrip()…

  • aero是什么意思啊_自动驾驶视觉算法

    aero是什么意思啊_自动驾驶视觉算法数据集介绍aeroscapes数据集下载链接AeroScapes航空语义分割基准包括使用商用无人机在5到50米的高度范围内捕获的图像。该数据集提供3269张720p图像和11个类别的真实掩码。数据加载dataloder写法(基于pytorch)由于该数据集提供了掩码图,因此不需要进行掩码图转换。下载完成后,文件结构如下:ImageSets文件夹:存放了两个txt文件,划分了训练集和验证集。JPEGImages文件夹:存放了RGB图像。SegmentationClass

  • 计算机中的虚拟ip,如何设置电脑虚拟IP[通俗易懂]

    计算机中的虚拟ip,如何设置电脑虚拟IP[通俗易懂]2020-02-29阅读(86)“全国统一价”其本意是根据企业产品的成本、销售渠道、品牌价值、利润所得出的,是正规生产企业规范销售市场,保护品牌形象的一种控制手段。在现实生活中,生产商打出的所谓“全国统一零售价”充其量只能理解成对产品的指导价。从某种程度上2020-02-29阅读(104)1.火烧新野。曹操统一了北方后,南下攻打刘备,此时刘备投靠刘表,驻扎在新野,曹操派大将夏侯惇进攻新野,这时刘备…

    2022年10月12日
  • NGINX.conf配置文件支持pathinfo

    NGINX.conf配置文件支持pathinfo

  • JavaScript对象:我们真的需要模拟类吗?

    JavaScript对象:我们真的需要模拟类吗?

  • 常见的图像增强方法有_图像中值滤波的算法实现

    常见的图像增强方法有_图像中值滤波的算法实现1.对比度拉升采用了线性函数对图像的灰度值进行变换2.Gamma校正采用了非线性函数(指数函数)对图像的灰度值进行变换这两种方式的实质是对感兴趣的图像区域进行展宽,对不感兴趣的背景区域进行

发表回复

您的电子邮箱地址不会被公开。

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