應用介紹
Beta多樣性度量時空尺度上物種組成的變化, 是生物多樣性的重要組成部分, 因此在最近也是生物多樣性研究的熱點問題之一。Beta多樣性可以反映不同處理的微生物群落結構。通過將微生物群落的beta多樣性和環境因子進行隨機森林分析,可以挖掘驅動微生物群落變異最重要的因子,在示例數據中為AK和AP。進行此分析需要準備:微生物的OTU 表和環境因子數據design文件。
分析代碼
######隨機森林分析微生物beta多樣性的環境驅動因子
######數據按照對應的OTU表,物種文件和分組文件
library(ggplot2)
library(vegan)
otu<-read.csv("D://test/test_otu.csv",row.names = 1) #(關注公眾號,自行加微信獲取)
design<-read.csv("D://test/test_design.csv")
## 轉化數據格式
aa<-lapply(otu, function(x) as.numeric(as.character(x)))
aa<-as.data.frame(aa)
otu<-aa
### nmds分析
dist=vegdist(t(otu), method="bray") # 計算距離
nmds=monoMDS(dist)
plot(nmds) #初步出圖
index = as.data.frame(nmds$points)
index<-cbind(design,index) ##構建數據框
# 出圖
ggplot(index, aes(x=MDS1, y=MDS2,color=Group)) + geom_point(alpha=1, size=5) +######設置處理group,點的大小,透明度
labs(x=paste("NMDS 1 "), y=paste("NMDS 2 ")) + ##坐標軸設置
stat_conf_ellipse(level=0.95)+ ##圓圈
theme_bw()+##空白主題
theme(panel.grid.major=element_blank(),panel.grid.minor=element_blank())+
scale_color_manual(values=c("#DD5F60","#4169B2","#9BCD9B","#F2B379")) #顏色
###合併NMDS1,NMDS2以及環境因子
data<-index
#對NMDS1進行隨機森林分析
NMDS1<-data[,4:13]
####採用randomForest包計算環境因子的貢獻重要性
library(randomForest)
library(ggplot2)
##隨機森林分析nmds1
set.seed(315)
bb= randomForest(NMDS1$MDS1 ~., data=NMDS1,importance = TRUE, ntree = 500, nrep = 100, na.action=na.omit)
bb
df<-round(importance(bb), 2)
df<-as.data.frame(df)
df<-cbind(df,rownames(df))
##柱狀圖繪製
ggplot(df, aes(x =df$`%IncMSE` , y =reorder(df$`rownames(df)`,df$`%IncMSE`) )) +
geom_bar(stat = "identity", width = 0.75,position = "dodge",colour="black",fill="#DEB887",alpha=1) +
labs(y="", x="", title = "",size=9)+
theme_bw() +
theme(axis.text=element_text(colour='black',size=9))+
annotate('text', label = 'NMDS1', x = 16, y = 2, size = 4)+
annotate('text', label = '81.91%', x = 16, y = 1, size = 4)
#結果表明,微生物群落的beta多樣性變異主要由AK和AP驅動