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

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

作者: 科研那点事儿 | 来源:发表于2022-07-08 00:05 被阅读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之间,越大则代表分组指标对差异的稀释度越高。}

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/iwmpbrtx.html