R-RDA


AOA=read.table("16AOA.csv",header=T,row.names=1,sep=",")
AOB=read.table("16AOB.csv",header=T,row.names=1,sep=",")
envi=read.table("16env.csv",header=T,sep=",",row.names=1)
name <- read.table("name.csv", header=T,sep=",",colClasses=c("character","character"))#用作產生圖例,對樣本進行分類
Aspe<-read.table("Aspe.csv",sep=",",header=T,row.names=1)
Bspe<-read.table("Bspe.csv",sep=",",header=T,row.names=1)
library(vegan)
decorana(Aspe)
decorana(Bspe)#DCA函數,用於決定選擇進行RDA或者CCA
#如果DCA排序前4個軸中最大值超過4,選擇單峰模型排序更合適。如果是小於3,則選擇線性模型更好(Lepx & Smilauer 2003)。如果介於3-4之間,單峰模型和線性模型都可行
#AOA RDA plot
A.rda=rda(Aspe,envi,center=T,scale=T)
A.rda.data <- data.frame(A.rda$CCA$u[,c(1,2)], group$V2)  #提取樣本得分
colnames(A.rda.data) <- c("RDA1","RDA2","group")
A.spe <- A.rda$CCA$v[,c(1,2)]  #物種得分
A.spe<- as.data.frame(A.spe)
env <- A.rda$CCA$biplot[,c(1,2)] #環境因子得分
env <- as.data.frame(env)
A.rda1 =round(A.rda$CCA$eig[1]/sum(A.rda$CCA$eig)*100,2) #第一軸標簽
A.rda2 =round(A.rda$CCA$eig[2]/sum(A.rda$CCA$eig)*100,2) #第二軸標簽
#繪圖對象的創建
#顏色自定義,用於對shape的線條和實心進行上色
cols=c("CK"="red","N"="grey","W"="blue","-W"="green","NW"="black","N-W"="darkgreen")
Treat=name$treat
Layer=name$layer
Aplot<- ggplot(data=A.rda.data,aes(RDA1,RDA2))
#幾何對象
#fill填充顏色,21和24分別為空心圓與空心三角形,需要用對應的顏色填充
Aplot<- Aplot+ geom_point(aes(colour=Treat,shape=Layer,fill=Treat),size=3) + 
    scale_shape_manual(values=c(21,24))+scale_colour_manual(values=cols,breaks=c("CK","N","W","-W","NW","N-W"))+theme(legend.title=element_blank())+scale_fill_manual(values=cols,breaks=c("CK","N","W","-W","NW","N-W"))+
    labs(title="AOA RDA Plot",x=paste("RDA1 ",A.rda1," %"),y=paste("RDA2 ",A.rda2," %")) +
    theme(text=element_text(family="serif"))
#去除背景以及網格線
Aplot=Aplot+theme_bw() + theme(panel.grid=element_blank()) 
Aplot=Aplot + geom_hline(yintercept=0) + geom_vline(xintercept=0)+ geom_segment(data = env,aes(x=0,y=0,xend = env[,1], yend = env[,2]), colour="black", size=1, arrow=arrow(angle=35, length=unit(0.3, "cm"))) +
    geom_text(data=env, aes(x=env[,1], y=env[,2], label=rownames(env)),
              size=3.5, colour="black",hjust = (1 - 2 * sign(env[ ,1])) / 2,
              angle = (180/pi) * atan(env[ ,2]/env[ ,1]))
Aplot
#RDA更詳細的分析
A.sum=summary(A.rda)
A.sum
#檢驗環境因子相關顯著性(Monte Carlo permutation test)
A.perm=permutest(A.rda,permu=999) # permu=999是表示置換循環的次數
A.perm
A.ef=envfit(A.rda,envi,permu=999)#每個環境因子顯著性檢驗
A.ef
#CCA1 和 CCA2 兩列所對應的值是環境因子箭頭與排序軸夾角的余弦值,表示環境因子與排序軸的相關性。r2表示環境因子對物種分布的決定系數,r2越小,表示該環境因子對物種分布影響越小。Pr表示相關性的顯著性檢驗
#第二張圖
AOB RDA plot
B.rda=rda(Bspe,envi,center=T,scale=T)
B.rda.data <- data.frame(B.rda$CCA$u[,c(1,2)], group$V2)  #提取樣本得分
colnames(B.rda.data) <- c("RDA1","RDA2","group")
B.spe <- B.rda$CCA$v[,c(1,2)]  #物種得分
B.spe<- as.data.frame(B.spe)
B.env <- B.rda$CCA$biplot[,c(1,2)] #環境因子得分
B.env <- as.data.frame(B.env)
B.rda1 =round(B.rda$CCA$eig[1]/sum(B.rda$CCA$eig)*100,2) #第一軸標簽
B.rda2 =round(B.rda$CCA$eig[2]/sum(B.rda$CCA$eig)*100,2) #第二軸標簽
Bplot<- ggplot(data=B.rda.data,aes(RDA1,RDA2))
#幾何對象
Bplot<- Bplot+ geom_point(aes(colour=Treat,shape=Layer,fill=Treat),size=3) + 
    scale_shape_manual(values=c(21,24))+scale_colour_manual(values=cols,breaks=c("CK","N","W","-W","NW","N-W"))+theme(legend.title=element_blank())+scale_fill_manual(values=cols,breaks=c("CK","N","W","-W","NW","N-W"))+
    labs(title="AOB RDA Plot",x=paste("RDA1 ",B.rda1," %"),y=paste("RDA2 ",B.rda2," %")) +
    theme(text=element_text(family="serif"))
#去除背景以及網格線
Bplot=Bplot+theme_bw() + theme(panel.grid=element_blank()) 
Bplot=Bplot + geom_hline(yintercept=0) + geom_vline(xintercept=0)+ geom_segment(data = env,aes(x=0,y=0,xend = env[,1], yend = env[,2]), colour="black", size=1, arrow=arrow(angle=35, length=unit(0.3, "cm"))) +
    geom_text(data=env, aes(x=env[,1], y=env[,2], label=rownames(env)),
              size=3.5, colour="black",hjust = (1 - 2 * sign(env[ ,1])) / 2,
              angle = (180/pi) * atan(env[ ,2]/env[ ,1]))
Bplot			  
B.sum=summary(B.rda)
B.sum
#檢驗環境因子相關顯著性(Monte Carlo permutation test)
B.perm=permutest(B.rda,permu=999) # permu=999是表示置換循環的次數
B.perm
B.ef=envfit(B.rda,envi,permu=999)#每個環境因子顯著性檢驗
B.ef
參考文獻:
https://blog.csdn.net/tanzuozhev/article/details/51108040


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM