在进行pcoa或NMDS分析的时候,经常需要一个p值来衡量组间差异是否显著。这时需要用到诸如adonis和anosim等分析方法。
ANOSIM(analysis ofsimilarities)分析,也叫相似性分析,主要是用于分析高维度数据组间相似性的统计方法。R2越大说明组间差异越显著,反之为负值则说明组间差异小于组内差异。
library(vegan) #需要用到vegan包
df = read.delim("C:/Users/Shizhe Zhang/Desktop/VOTU.txt",# 导入数据文件(vOTU表)
header = T, # 指定第一行是列名
row.names = 1 # 指定第一列是行名
)
df=t(df) # 对数据进行转置,如果想对基因分组则不用转置
dfGroup = read.delim("C:/Users/Shizhe Zhang/Desktop/group.txt",row.names = 1) # 导入分组文件
df.dist=vegdist(df) #利用vegdist进行分析,默认方法bray,也可以手动修改
df.ano=anosim(df.dist, dfGroup$region+species, permutations = 999) #进行anosim分析,用dfGroup文件中的region和species列作为分组,先后顺序可能对结果有影响。
summary(df.ano) #显示结果
plot(df.ano) #箱线图
导入的数据文件与分组文件同第一篇。
Adonis,多元方差分析,亦可称为非参数多元方差分析。其原理是利用距离矩阵(比如基于Bray-Curtis距离、Euclidean距离)对总方差进行分解,分析不同分组因素对样品差异的解释度,并使用置换检验对其统计学意义进行显著性分析。
#和上面一样需要导入vegan包和数据文件、分组文件
adonis2(df~region+species,dfGroup,permutations = 999) # 数据文件df,使用dfGroup中的region和species作为分组,顺序不同可能对结果产生影响
此外还有rda和varpart,暂时记在这里。
RDA.result=rda(decostand(df2,"hel"),group2) #数据文件df2(第一列为sample list,后面为不同数据),group2为分组文件(也可以是环境文件)。
vpa.df=varpart(df2,dfGroup[c(1)],dfGroup[c(2)]) #dfGroup的第一列作为第一个变量,第二列作为第二个变量。