基于R语言的微生物群落组成多样性分析—β多样性之组间差异性检验

2022-07-08  本文已影响0人  科研那点事儿

引言

    虽然通过PCoA或者NMDS等分析手段可以展示各组样本的微生物组成差异及组间差异,但是,这只是初步进行展示,仅此还无法准确判断组间差异大小及显著性。因此,我们还需要通过其他方式进行进一步检验。而Anosim(analysis ofsimilarities,相似性分析)MRPP(Multiple ResponsePermutation Procedure,多元响应置换分析)Adonis(PERMANOVA,置换多元方差分析)三种分析方式可以达到检验组间差异是否大于组内差异的目的。下面,小编就使用R语言带大家实操一下:

正文——代码

PCoA分析

1、设置工作目录

rm(list=ls())
setwd('D:\\桌面\\β-diversity分析\\Anosim&MRPP&Adonis')

2、安装、加载所需包

#安装所需R包
install.packages("vegan")
install.packages("ggplot2")
install.packages("ggprism")
#加载包
library(vegan)#计算距离时需要的包
library(ggplot2)
library(ggprism)

3、PCoA分析(具体参考之前的文章)

#数据处理及PCoA分析
otu_raw <- read.table(file="otu.txt",sep="\t",header=T,check.names=FALSE ,row.names=1)
otu <- t(otu_raw)
otu.distance <- vegdist(otu)
PCoA <- cmdscale (otu.distance,eig=TRUE)
pc12 <- PCoA$points[,1:2]
pc <- round(PCoA$eig/sum(PCoA$eig)*100,digits=2)#解释度
pc12 <- as.data.frame(pc12)
pc12$samples <- row.names(pc12)
group <- read.table("group.txt", sep='\t', header=T)
colnames(group) <- c("samples","group")
df <- merge(pc12,group,by="samples")
head(df)
#绘图
ggplot(df,aes(x=V1, y=V2,color=group,shape=group))+#指定数据、X轴、Y轴
  geom_point(size=3)+
  theme_bw()
image.png
    根据上面初步得到的PCoA图可以清楚看到三组样品的分散程度很大,这初步可以说明组间差异是大于组内差异的,然后我们使用vegan包中的Anosim函数、MRPP函数及Adonis函数进行进一步组间差异分析。

Anosim分析

#使用vegan包中的adosim函数进行adosim分析
df_anosim <- anosim(otu.distance,df$group,permutations = 999)#数据也可以是原始otu数据
#df_anosim <- anosim(otu,df$group,permutations = 999)
#整理出作图数据
df1<-data.frame(
  x=df_anosim$class.vec,
  y=df_anosim$dis.rank
)
#绘图
ggplot(df1,aes(x=x,y=y))+
  stat_boxplot(geom = "errorbar", width=0.1,size=0.8)+#添加误差线,注意位置,放到最后则这条先不会被箱体覆盖
  geom_boxplot(aes(fill=x), 
               outlier.colour="white",size=0.5)+
  theme(panel.background =element_blank(), 
        axis.line=element_line(),
        legend.position="none",plot.title = element_text(size=14))+
  scale_fill_manual(values=c("#1597A5","#FFC24B","#FEB3AE","red"))+ #指定颜色
  ggtitle("Bray-Curtis Anosim")+
  theme_prism(palette = "candy_bright",
              base_fontface = "plain",
              base_family = "serif", 
              base_size = 14,  
              base_line_size = 0.8, 
              axis_text_angle = 45)+
  theme(legend.position = 'none')+
  labs(x = paste("R=",df_anosim$statistic,", ","p=", df_anosim$signif),
       y = "Rank of Distance (Bray_Curtis)")
image.png
\color{blue}{R=0.38>0,p=0.009, 说明组间差异显著大于组内差异。}

MRPP分析

MRPP <- mrpp(otu.distance,df$group,permutations = 999)
MRPP
image.png
\color{blue}{通过查看其中的A值与Pvalue值即可}

Adonis分析

Adonis <- adonis2(otu.distance~group,data=df,
       distance = "bray",
       permutations = 999)
Adonis
image.png
\color{blue}{通过查看其中的R^2值及P值检验分组是否合理,其中R^2在}
\color{blue}{0-1之间,越大则代表分组指标对差异的稀释度越高。}
上一篇下一篇

猜你喜欢

热点阅读