周转(repl)和嵌套(nest)对β多样性贡献的分解
2022-10-04 本文已影响0人
西北工作室
Sørensen 指数和 Jaccard 指数作为配对样方间β 多样性的度量,使用 Baselga 在 2010 和 2012 年提出的 β 多样性分解方法结合 Legendre 在 2014 年对该方法的总结和改进,将群落间物种组成差异(即 β 多样性)分解成周转组分(用 Repl 表示)和嵌套组分(用 Nest 表示)(余等,2022)。
Jaccard指数计算:
library(adespatial)
#数据为丰度数据(行:样本,列:物种)
data=read.csv("asv_table.csv",row.names = 1)
#利用 beta.div.comp函数计算
out1 <- beta.div.comp(t(data), coef ='J', quant = FALSE)
#样本对之间的相异指数计算
D <- as.matrix(out1$D)
diag(D) <- "NA"
D[upper.tri(D)] <- "NA"
D1=melt(D)
D1=subset(D1,!D1$value=="NA")
#样本对之间的物种替换(repl)
repl <- as.matrix(out1$repl)
diag(repl) <- "NA"
repl[upper.tri(repl)] <- "NA"
repl1=melt(repl)
repl1=subset(repl1,!repl1$value=="NA")
#样本对之间的丰富度差异(nest)
nest <- as.matrix(out1$nest)
diag(nest) <- "NA"
nest[upper.tri(nest)] <- "NA"
nest1=melt(nest)
nest1=subset(nest1,!nest1$value=="NA")
#合并数据nest-repl至data.frame:
dff=merge(D1,repl1,by=c("Var1","Var2"))
dff=merge(dff,nest1,by=c("Var1","Var2"))
colnames(dff)=c("site1","site2","D","repl","nest")
dff$site=paste(dff$site1,dff$site2,sep="_")
library(ggtern)
dff$D=as.numeric(dff$D)
dff$repl=as.numeric(dff$repl)
dff$nest=as.numeric(dff$nest)
#计算平均值
dm=as.data.frame(t(data.frame(mean=colMeans(dff[,3:5]))))
#绘图
p=ggtern(data=dff,aes(1-D,repl,nest))+
geom_point(alpha=0.2,size=3)+
stat_density_tern(
geom='polygon',
base = "ilr",
aes(fill=..level..,
alpha = ..level..))+
geom_point(data=dm,col="green4",size=5)+
scale_fill_gradient(low = "blue",
high = "red")+
labs(x ="1-β",y = "Repl",z = "Nest",
title = "",fill = "level")+
guides(alpha = "none",position="bottom")+
theme_rgbw()+
theme(legend.position = "bottom",
legend.key = element_rect(fill = NA),
text=element_text(size=16, family="serif"))
p
ggsave(filename="三元相图.pdf",width = 10,height = 10)
#输出表格
write.csv(dff,"repl_nset.csv",row.names = F)
如在余等(2022)的文章中,Jaccard 指数法显示在灌木植物中,周转和嵌套对 β 多样性的贡献分别为 82%和 18%;在草本植物中,周转和嵌套对 β 多样性的贡献分别为 95%和 5%。
有需要也可@TB:西北工作室