用户工具

站点工具


多组间统计检验及事后检验

多组间差异检验及事后检验 简介

组间差异检验就是组间的差异分析以及显著性检验,应用统计学上的假设检验方法,检验组间是否有差异及其差异程度。差异检验都基于一个假设:组间没有差异,变量之间没有关系。假设检验就是先对总体参数提出某种假设,然后利用样本信息判断假设是否成立的过程。

在该脚本中我们提供了两种组间差异的检验方法,分别是单因素Anova分析以及Kruskal-Wallis检验;以及提供了多种适用于差异检验的事后两两检验的多种比较方法

数据准备

这里使用了标准的ASVtable,用于对层级的结果进行分析处理 样本和分组对应的group.list的信息 以及需要的比较组信息,用\t进行分隔,如果不传入比较组信息,那么对分组表中的所有分组进行比较,如果传入了比较组信息,那么仅对比较组的内容进行处理

脚本使用

/TJPROJ4/BioAI/chaijingchao/01software/anaconda3/bin/python3 /TJPROJ1/META_ASS/script_Advanced_analysis/multistatistic/bin/MultiDifferenceStatistic.py \
--input Modified.featureTable.txt \
--group group.list  \
--level class,family,genus \
--method Kruskal-Wallis \
--posthoc Dunn \
--corrections fdr \
--output multistatistic \
--notrun #--vs vs.list

这里的input就是ASV序列信息,最后一列是注释列;group.list分两列,第一列样本,第二列分组;–level要分析的层级,可多选,逗号分隔;–method就是差异检验的方法可选Kruskal-Wallis、onewayANOVA;–posthoc是事后检验方法onewayANOVA适合的检验: Tukey-HSD, Games-Howell, scheffe, bonferroni,lsd, newmankeuls, duncan, KW适合的检验: Dunn, Nemenyi, Conover-Iman 都不适合的检验: Welch;–corrections是多重检验的矫正方法,可选:holm, hochberg, hommel, bonferroni, BH, BY, fdr, none

生成的脚本在 MultiDifferenceStatistic.sh中,直接执行即可

结果说明

生成的结果会对所有关注的层级的所有物种进行组间差异分析进行判断,会生成两张外层的柱形图结果,展示了组间哪个物种存在差异 下面的Kruskal-Wallis_statistic.pdf为全部物种的组间差异检验结果,这里的Kruskal-Wallis会随着检验方法变化

下面的Kruskal-Wallis_statistic_sig.pdf为全部物种的组间差异检验结果


针对每个差异的物种,我们对每一个物种进行了两两的差异检验分析,在进行差异检验分析前,我们还做了Shapiro-Wilk的正态分布的检验以及Levene's的方差齐性假设检验; 结果形式参考 {方法}_{物种}_LeveneTest_results.txt

Levene's Test Results: 
Test Statistic: 3.67046418309093 
P-value: 0.0239236627024334 

如果Levene's检验P ≤ 0.05,则表示方差在组间的差异有统计学意义,方差齐性的假设不能成立; 
如果Levene's检验P > 0.05,则表示方差在组件的差异没有统计学意义,方差齐性的假设可以成立.

{方法}_{物种}_ShapiroTest_results.txt

Shapiro-Wilk test results: 
Test Statistic: 0.752165629022635 
P-value: 5.79699702563545e-06 

如果Shapiro-Wilk test检验P≤0.05,则表示样本数据不符合正态分布的假设; 
如果Shapiro-Wilk test检验P≥0.05,则表示暂时接受样本数据符合正态分布的假设.

随后进行差异检验 差异检验结果参考 {方法}_{物种}_StatResults.txt {方法}_{物种}_StatSigResults.txt StatResults的结果包含了检验生成的结果内容以及使用校正方法校正后的p值(p.adj) 以及{方法}_{物种}.pdf 和 {方法}_{物种}.png


#######核心脚本######## 核心脚本是:

/TJPROJ1/META_ASS/script_Advanced_analysis/multistatistic/lib/multiStatistic.R 如果需要执行非物种分析结果,直接调用该脚本的输入文件即可

参数
--table 标准输入文件,带后面的注释
--group 样本分组信息
--outdir 输出路径
--method  检验方法:Kruskal-Wallis or onewayANOVA
--posthoc 事后检验方法:onewayANOVA适合的检验:Tukey-HSD, Games-Howell, scheffe, bonferroni,
    lsd, newmankeuls, duncan  KW适合的检验: Dunn, Nemenyi, Conover-Iman  都不适合的检验:  Welch
--corrections p值校正方法:holm, hochberg, hommel, bonferroni, BH, BY, fdr, none
调用软件环境 /TJPROJ1/META_ASS/soft/r_4.0.3/bin/Rscript

cd /TJPROJ1/META_ASS/script_Advanced_analysis/multistatistic/test/multistatistic/multitest/genus
/TJPROJ1/META_ASS/soft/r_4.0.3/bin/Rscript /TJPROJ1/META_ASS/script_Advanced_analysis/multistatistic/lib/multiStatistic.R \
--table /TJPROJ1/META_ASS/script_Advanced_analysis/multistatistic/test/multistatistic/featureTable_Relative/featureTable.sample.g.relative.xls \
--group /TJPROJ1/META_ASS/script_Advanced_analysis/multistatistic/test/multistatistic/filtered_group.list \
--outdir /TJPROJ1/META_ASS/script_Advanced_analysis/multistatistic/test/multistatistic/multitest/genus \
--method=Kruskal-Wallis \
--posthoc=Dunn \
--corrections=fdr
多组间统计检验及事后检验.txt · 最后更改: 2024/06/03 07:38 由 yuxi