|||
更多内容请移步至:新位置
PERMANOVA and pairwise comparison——样品组间差异显著性分析及事后两两比较。
Step1:数据填写方式如下图,及导入到R
其中,
dune.fish.csv为6种鱼的某一指标(如体长SL/cm)的数据;
dune.fish.env32grp.csv为6种鱼对应的3个分组,分组可以依据实际需要进行分类或者按照聚类结果(如对dune.fish.csv基于UPGMA算法进行聚类)进行分类。
dune.fish<-read.csv("~/dune.fish.csv")
View(dune.fish)
dune.fish.env32grp<- read.csv("~/dune.fish.env32grp.csv")
View(dune.fish.env32grp)
下图为dune.fish.backup.csv,仅仅为了方便理解数据含义,在R中不使用。
...
Step2:进行PERMANOVA计算,结果如下图
library(vegan)
adonis(dune.fish~ Group,data = dune.fish.env32grp,permutations = 999,method="bray")->ad1
ad1
Step3:pairwise comparison for PERMANOVA in R software
#-------copy pairwise.adonis function code in R -----------
pairwise.adonis <-function(x,factors, sim.method, p.adjust.m)
{
library(vegan)
co = as.matrix(combn(unique(factors),2))
pairs = c()
F.Model =c()
R2 = c()
p.value = c()
for(elem in 1:ncol(co)){
ad = adonis(x[factors %in%c(as.character(co[1,elem]),as.character(co[2,elem])),] ~
factors[factors %in%c(as.character(co[1,elem]),as.character(co[2,elem]))] , method =sim.method);
pairs =c(pairs,paste(co[1,elem],'vs',co[2,elem]));
F.Model =c(F.Model,ad$aov.tab[1,4]);
R2 = c(R2,ad$aov.tab[1,5]);
p.value = c(p.value,ad$aov.tab[1,6])
}
p.adjusted =p.adjust(p.value,method=p.adjust.m)
pairw.res = data.frame(pairs,F.Model,R2,p.value,p.adjusted)
return(pairw.res)
}
#---------------------------end copy----------------------
pairwise.adonis(dune.fish, dune.fish.env32grp$Group, sim.method="bray", p.adjust.m= "bonferroni")
( 备忘 adonis( dune.fish~ Group, data = dune.fish.env32grp, permutations = 999, method="bray")->ad1 )
结果如下
# over
相关博文:
1. 在R中正确运行ANOSIM——样品组间差异显著性检测及注意点
2. 在R中运行metaMDS
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-12-22 10:13
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社