library(vegan)
library(ggplot2)
library(rdacca.hp)
library(RColorBrewer)
#读取物种或者其他什么信息表,t()是由表格形式决定的,如果列标题为处理名,就需要这个,行名是处理名就不需要
species <- read.table("D:/aSbreviflora/data/community/Bacteria/species.txt",
header=T,row.names = 1,sep = '\t')%>% t()
#输入环境数据
env <- read.table("D:/aSbreviflora/data/env.txt",header=T,row.names = 1,sep = '\t')
#两个表的行号对应
env <-env[match(row.names(species),row.names(env)),]
#验证两个表的行号是否对应
print(rownames(env)==rownames(species))
#自相关性分析,自相关大于10的一般为环境因子自相关,建议去掉,如果很重要,可以选择性保留,具体可以参照大佬的解析
A <- cca(species~W+pH+SOC+TN+AP+NH4+NO3,data=env)
vif.cca(A)
#筛选环境因子
env=subset(env, select=c(W,pH,SOC,AP,NH4,NO3))
#两个表的行号对应
env<-env[match(row.names(species),row.names(env)),]
#判断适用于CCA还是RDA分析
decorana(species)#分析结束后Axis lengths 大于3适合用CCA分析,小于3适合用RDA分析
mycolor <- brewer.pal(12, "Set3")
spp <- decostand(species,method = "hellinger")
rdacca.hp(spp,env, method="RDA",add=F, n.perm=999)
uu=rda(spp~.,env)
ii=summary(uu)
head(ii)
r2<-RsquareAdj(uu)
r2
rda_noadj<-r2$r.squared
rda_adj <- r2$adj.r.squared #校正R2
rda_adj
# 所有约束轴的置换检验,即全局检验,基于 999 次置换,确定p值
df <- anova.cca(uu,by = "margin", permutations = 999)#by='margin'是决定这个检验值是分项的还是总项,具体自己看看大佬的解析
df
sp=as.data.frame(ii$species[,1:2])*5
st=as.data.frame(ii$sites[,1:2])
yz=as.data.frame(ii$biplot[,1:2])
#导入分组数据
design = read.table("D:/aSbreviflora/data/beta/group.txt", header=T, row.names=1, sep="\t")
design$group = factor(design$group, levels=c("North","West","Undisturbed"))
group = design$group
library(ggrepel)#运行geom_text_repel()
ggplot() +
geom_point(data = st,aes(RDA1,RDA2,colour=group,shape = group),size=4,alpha=1)+
scale_color_manual(values = c("#ff4400","#55aa00","#00AAFF"))+
scale_shape_manual(values = c(16,16,16))+
geom_segment(data = yz,aes(x = 0, y = 0, xend = RDA1, yend = RDA2),
arrow = arrow(angle=22.5,length = unit(0.35,"cm"), type = "closed"),
linetype=1, linewidth=0.8,colour = "#FFaa00")+
geom_text_repel(data = yz,aes(RDA1,RDA2,label=row.names(yz)))+
labs(x=paste("RDA 1 (", format(100 *ii$cont[[1]][2,1], digits=4), "%)", sep=""),
y=paste("RDA 2 (", format(100 *ii$cont[[1]][2,2], digits=4), "%)", sep=""))+
geom_hline(yintercept=0,linetype=3,linewidth=1) +
geom_vline(xintercept=0,linetype=3,linewidth=1)+
theme_bw()+theme(panel.grid=element_blank())···```
ggplot2 | RDA 分析
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 隔了这么长时间终于开始更新基因家族的第2篇文档了,绘制motif分析图。以往做这类分析都是通过TBtools此款软...
- 之前的推文中多次提到过autoReg这个包,用来实现一键单多因素回归分析,同时可以导出回归分析的结果为word或p...
- 论文是 Environmental factors shaping the gut microbiome in a...
- 今天就更新一波,今天的主题是如何使用ggplot2个性化绘制GO富集分析柱状图。进入正题,为什么选择利用ggplo...
