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