前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >组间差异分析:Metastats

组间差异分析:Metastats

作者头像
SYSU星空
发布于 2022-05-05 05:52:38
发布于 2022-05-05 05:52:38
1.5K00
代码可运行
举报
运行总次数:0
代码可运行
Anosim

在不同区组中寻找差异物种常用的两个工具是Metastats和LEfSe。抛开这两个工具本身,从算法原理上来说,Metastats实际上是非参数多重检验和p值校正的整合,而LEfSe则是Metastats和LDA判别的整合。当然,由于Metastats采用的非参数t检验,只能分析两个分组;而LEfSe则因为使用的Kruskal-Wallis秩和检验可以分析两个以上的分组。当我们明白了他们的原理,实际上可以不用拘泥于两个工具本身,可以自己在R中选择合适的方法来进行分析。

p值校正

假设检验是一种概率判断,因为小概率事件发生了所以我们拒绝假设。然而同时多次做这种概率判断,也会出错。例如当我们进行多重独立比较相关性时,假如有k个变量,那么需要进行n=k(k-1)/2个相关性分析,每个相关性均检验一次。在显著水平0.05(置信水平0.95)的情况下做出显著性判断,其正确概率为0.95,而n个独立检验均正确的概率为0.95n。若要使所有检验结果正确的概率大于0.95,则需要调整显著水平或更常用的p值校正,一个常见的方法是Bonferroni校正,其原理为在同一数据集做n个独立的假设检验,那么每一个检验的显著水平应该为只有一个检验时的1/n。例如我们只做两个变量相关检验,那么显著水平0.05,假如同时做一个数据集5个变量相关检验,因为要检验10次,那么显著水平应为0.005,因此做Bonferroni校正后判断为显著的检验p值为原来p值的10倍。

在R中p值校正可以使用p.adjust()函数,其使用方法如下所示:

p.adjust(p, method=p.adjust.methods, n=length(p))

其中p为显著性检验的结果(为数值向量),n为独立检验次数,一般为length(p),method为校正方法,常用的方法有"bonferroni"、"holm"、"hochberg"、"hommel"、"BH"、"fdr"、"BY"、"none"。其中刚刚提到的"bonferroni"最为保守,也即校正后p值变大最多,一般不是很常用,其余方法均为各种修正方法。

校正后的p值常称为q值,使用Benjamini-Hochberg(BH)方法校正的p值也称为错误发现率(false discovery rate,FDR)。

接下来,我用相同数据为例,寻找不同分组间显著差异的物种:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#读取抽平后的OTU_table和环境因子信息
data=read.csv("otu_table.csv", header=TRUE, row.names=1)
envir=read.table("environment.txt", header=TRUE)
rownames(envir)=envir[,1]
env=envir[,-1]
#筛选高丰度物种并将物种数据标准化
means=apply(data, 1, mean)
otu=data[names(means[means>10]),]
otu=t(otu)
#根据地理距离聚类
kms=kmeans(env, centers=3, nstart=22)
Position=factor(kms$cluster)
newotu=data.frame(Group=Position, otu)
#进行多重Kruskal-Wallis秩和检验与p值校正
pvalue=t(otu)[,1:2]
colnames(pvalue)=c("p-value", "q-value")
for (i in 2:ncol(newotu)) {
  t=kruskal.test(newotu[,i]~newotu[,1])
  pvalue[i-1,1]=t$p.value
}
pvalue[,2]=p.adjust(pvalue[,1], method="BH", n=nrow(pvalue))
pvalue=pvalue[order(pvalue[,1]),]

接下来我们可以筛选显著差异的物种并进行可视化:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#筛选q小于0.05的物种
top=pvalue[pvalue[,2]<0.05,]
topdata=cbind(Group=newotu[,1], newotu[,rownames(top)])
#热图展示差异物种
library(gplots)
mycol=colorRampPalette(c("white", "blue","green", "red", "red"))(100)
sidecol=c(rep("red",7), rep("green",12), rep("blue",3))
heatmap.2(log(as.matrix(topdata[,-1])+1), Rowv=FALSE,
          dendrogram="column",trace="none", col=mycol,
          RowSideColors=sidecol, keysize = 1.2, key.title="",
          cexRow = 1.2, cexCol = 0.5)

结果如下所示:

由热图可以看出,这些物种确实存在明显的组间差异,根据研究需求可以导出这些物种名并进行后续的系统发育与功能分析。

示例数据下载链接:

链接:https://pan.baidu.com/s/1X0W-ns8kSdwzyliycYwV8A

提取码:65pc

END

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 微生态与微进化 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
使用 ALDEx2 进行差异分析
1.用原始输入数据生成每个分类单元的后验概率分布;然后将该分布进行中心对数变换。2.将变换后的值,用参数或非参数检验进行单变量统计检验,并返回 p 值和 Benjamini-Hochberg 校正后的 p 值。
生信菜鸟团
2020/04/27
5.2K0
【数据分析 R语言实战】学习笔记 第八章 单因素方差分析与R实现
方差分析泛应用于商业、经济、医学、农业等诸多领域的数量分析研究中。例如商业广告宣传方面,广告效果可能会受广告式、地区规模、播放时段、播放频率等多个因素的影响,通过方差分析研究众多因素中,哪些是主要的以及如何产生影响等。而在经济管理中,方差分析常用于分析变量之间的关系,如人民币汇率对股票收益率的影响、存贷款利率对债券市场的影响,等等。
统计学家
2019/04/10
2.5K0
【数据分析 R语言实战】学习笔记 第八章  单因素方差分析与R实现
挖掘数据内部联系:相关性分析
皮尔森相关系数也叫皮尔森积差相关系数,用来反映两个变量之间相似程度的统计量。或者说用来表示两个向量的相似度。
SYSU星空
2022/05/05
1.4K0
挖掘数据内部联系:相关性分析
方差分析与R实现
方差分析泛应用于商业、经济、医学、农业等诸多领域的数量分析研究中。例如商业广告宣传方面,广告效果可能会受广告式、地区规模、播放时段、播放频率等多个因素的影响,通过方差分析研究众多因素中,哪些是主要的以及如何产生影响等。而在经济管理中,方差分析常用于分析变量之间的关系,如人民币汇率对股票收益率的影响、存贷款利率对债券市场的影响,等等。 协方差是在方差分析的基础上,综合回归分析的方法,研究如何调节协变量对因变量的影响效应,从而更加有效地分析实验处理效应的一种统计技术。 单因素方差分析及R实现 (1)正态性检验
机器学习AI算法工程
2018/03/12
1.8K0
方差分析与R实现
增强版在线LEFSe分析和可视化鉴定标志性基因或物种
LEfSe分析即LDA Effect Size分析,是一种用于发现和解释高维度数据 生物标识(基因、通路和分类单元等)的分析工具,可以进行两个或多个分组的比较,它强调统计意义和生物相关性,能够在组与组之间寻找具有统计学差异的生物标识(Biomarker)。
生信宝典
2022/01/18
2.5K0
增强版在线LEFSe分析和可视化鉴定标志性基因或物种
lefse分析
LEfSe(LDA Effect Size)分析,可以用于两个或多个分组之间的比较,从而找到组间 有显著性差异的物种(即 biomarker),分析步骤主要分为三步:
全栈程序员站长
2022/07/01
6520
微生物测序分析LEfSe
LEfse分析定义 LEfse分析即LDA Effect Size分析,可以实现多个分组之间的比较,还进行分组比较的内部进行亚组比较分析,从而找到组间在丰度上有显著差异的物种(即biomaker);
全栈程序员站长
2022/06/26
4.3K1
微生物测序分析LEfSe
数据分析:假设检验方法汇总及R代码实现
显著性检验方法,通常也被称为假设检验方法,是统计学中用于评估样本统计量是否显著不同于某个假设值的一种重要工具。以下是假设检验方法使用时需要考虑的三个条件的书面化表述:
生信学习者
2024/06/20
7710
数据分析:假设检验方法汇总及R代码实现
组间差异分析:Anosim
Anosim分析(Analysis of similarities)是一种基于置换检验和秩和检验的非参数检验方法,用来检验组间的差异是否显著大于组内差异,从而判断分组是否有意义。Anosim分析使用距离进行分析,默认为method="bray",可以选择其他距离(和vegdist()函数相同),也可以直接使用距离矩阵进行分析。在R中我们可以使用vegan包中的anosim()函数进行分析,这里我们微生物群落数据为例进行分析:
SYSU星空
2022/05/05
2.3K0
组间差异分析:Anosim
「Workshop」第十三期:统计检验与多重矫正
假设检验(hypothesis testing),又称统计假设检验,是用来判断样本与样本、样本与总体的差异是由抽样误差引起还是本质差别造成的统计推断方法。
王诗翔呀
2020/08/20
2.6K0
「Workshop」第十三期:统计检验与多重矫正
数据科学23 | 统计推断-多重检验
当我们进行数据分析时,有时候需要反复进行假设检验,使用多重检验校正可以避免假阳性的发生,主要包括误差测量和校正。
王诗翔呀
2020/07/03
2K0
数据科学23 | 统计推断-多重检验
数据科学22 | 统计推断-多重检验
如果进行m次假设检验, :?=0, :?≠0。可能出现的结果如下: ?=0 ?≠0 HYPOTHESES Claim ?=0 U T ?-R Claim ?≠0 V S R Claim ?0 ?
王诗翔呀
2020/07/03
1K0
数据科学22 | 统计推断-多重检验
谈一谈两种常用的多重比较校正方法(附Matlab程序)
在科学研究的统计分析中,我们往往会遇到多重比较校正问题。多重比较校正的方法很多,如Bonferroni、False Discovery Rate(FDR)、Random-field Theory (RFT)等等,各种校正方法各有优劣,具体应用时要根据自己的统计分析的数据特点进行选择。本文,笔者对Bonferroni和False Discovery Rate(FDR)两种校正方法进行论述,特别是对于应用比较广的FDR校正方法,笔者用具体的例子详细阐述了其原理,并给出其Matlab程序。
悦影科技
2020/12/01
7.2K0
组间差异分析:MRPP
MRPP分析即多重响应排列程序(Multiple ResponsePermutation Procedure),使用方法与Anosim类似,用于分析组间微生物群落结构的差异是否显著,通常可以配合PCA、PCoA、NMDS等降维图使用。MRPP的研究原理是通过置换把所有观察对象统一分成各种可能的组合情况,构造统计量δ:
SYSU星空
2022/05/05
2.2K0
组间差异分析:MRPP
宏基因组数据分析:差异分析(LEfSe安装使用及LDA score计算)
报错:如果是r2py的问题,基本都是python版本的问题。 解决:虚拟环境中重新安装python2.7(推荐)。另一种方式是对虚拟环境中的conda降级,之后再进行安装。
全栈程序员站长
2022/09/05
4K0
宏基因组数据分析:差异分析(LEfSe安装使用及LDA score计算)
R语言系列第四期:②R语言多组样本方差分析与KW检验
R语言系列四的第二个部分是对多组连续性数据的处理,分组往往是三组或者三组以上,当然两组数据也可以利用方差分析,但是两组数据还是建议使用t检验。同样多组数据的比较也分为参数法和非参数法,包括这个部分介绍的重点参数法方差分析,以及非参数方法kruskal—Wallis检验。
百味科研芝士
2019/05/23
7.4K0
R语言多重比较示例:Bonferroni校正法和Benjamini & Hochberg法
假设检验的基本原理是小概率原理,即我们认为小概率事件在一次试验中实际上不可能发生。
拓端
2021/04/07
10.9K0
总被审稿人提起的多重假设检验校正是什么?
NGS系列文章包括NGS基础、在线绘图、转录组分析 (Nature重磅综述|关于RNA-seq你想知道的全在这)、ChIP-seq分析 (ChIP-seq基本分析流程)、单细胞测序分析 (重磅综述:三万字长文读懂单细胞RNA测序分析的最佳实践教程)、DNA甲基化分析、重测序分析、GEO数据挖掘(典型医学设计实验GEO数据分析 (step-by-step))、批次效应处理等内容。
生信宝典
2020/10/10
2.3K0
总被审稿人提起的多重假设检验校正是什么?
SPSS单因素方差分析教程「建议收藏」
即比较不同组别的平均值有没有差异。比如我想比较A/B/C三个班的平均年龄有没有差异,就是个很典型的单因素方差分析案例,因素只有班级这一个。举医学上的例子就是:轻度组/中度组/重度组的治疗效果。
全栈程序员站长
2022/09/27
2.8K0
SPSS单因素方差分析教程「建议收藏」
使用Clipper控制FDR应对高通量数据分析p值失真问题
直接用p值除以进行比较的次数就得到校正后p值,但这种方法非常保守,一般用于全基因组关联研究 (GWAS)
生信菜鸟团
2023/09/09
4330
使用Clipper控制FDR应对高通量数据分析p值失真问题
推荐阅读
相关推荐
使用 ALDEx2 进行差异分析
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文