Rarefy是最新的关于稀释(或稀疏/重抽)的R包,整合了近几年新出的各种方法,能够处理任何多样性度量,并计算给定分类、功能或系统发育指数的期望值。 最新的说明发布于2021-03-11。
1.Rarefy中的多样性指数,分为alpha,beta,系统发育及功能多样性四大类。 具体见链接: A quick introduction to rarefaction analisys using Rarefy https://cran.r-project.org/web/packages/Rarefy/vignettes/Rarefy_basics.html
- 分类学的空间显式稀疏曲线
1#install.packages("Rarefy")
2library(Rarefy)
3
4#data("duneFVG") #物种信息
5data("duneFVG.xy") #地理距离
6
7#计算采样单位之间的两两欧氏距离矩阵:
8dist_sp<-dist(duneFVG.xy$tot.xy)
9
10#directionalSAC函数可直接将空间显式稀疏曲线与经典稀疏进行比较:
11
12ser_rarefaction<-directionalSAC(duneFVG$total,dist_sp)
13
14plot(1:128,ser_rarefaction$N_Exact,xlab="M",ylab="Species richness",ylim=c(0,71),pch=1)
15points(1:128,ser_rarefaction$N_SCR,pch=2)
16legend("bottomright",legend=c("Classic Rarefaction","Spatially-explicit Rarefaction"),pch=1:2)
3.alpha多样性指数的稀释
代码语言:javascript复制 1#rare_alpha可用于比较空间和非空间显式稀释曲线。
2library(adiv)
3a<-list(NA,'Shannon')
4names(a)<-c('comm','method')
5#非空间显式
6rare_shannon<-rare_alpha(duneFVG$total,method="fun_div",random=999,fun_div='speciesdiv',args=a,mean=TRUE)
7#空间显式
8rare_shannon_sp<-rare_alpha(duneFVG$total,dist_sp,method="fun_div",random=999,fun_div='speciesdiv',args=a,mean=TRUE,spatial=TRUE)
9
10plot(rare_shannon[,1],ylab="Shannon index",xlab="Number of sampling units",type="l", ylim=range(rare_shannon,na.rm=TRUE))
11lines(rare_shannon[,2],lty=2)
12lines(rare_shannon[,3],lty=2)
13lines(rare_shannon_sp[,1],col=4)
14lines(rare_shannon_sp[,2],lty=2,col=4)
15lines(rare_shannon_sp[,3],lty=2,col=4)
16legend("bottomright",legend=c("Non spatially-explicit Rarefaction","Spatially-explicit Rarefaction"),lty=1,col=c(1,4))
17#当考虑到数据的空间结构时,预期多样性的增长速度低于其非空间显式的增长,从而导致物种多样性估计数较低。
4.beta多样性指数的稀释
代码语言:javascript复制 1#directionalSAC还可用于计算有向、归一化有向、无向、归一化无向beta多样性与采样量之间的函数。
2data(mite)
3data(mite.env)
4comm_matrix<-mite
5
6#沿环境梯度计算和比较有方向和无方向的beta多样性
7beta_directional<-directionalSAC(comm_matrix,mite.env$SubsDens)
8
9#直观地比较有方向和无方向的beta曲线。
10plot(1:70,beta_directional$Beta_M,xlab="M",ylab="Beta diversity",ylim=range(c(beta_directional$Beta_M_dir,beta_directional$Beta_M)))
11points(1:70,beta_directional$Beta_M_dir,pch=2)
12legend("bottomright",legend=c("Non-directional beta","Directional beta"),pch=1:2)
5.稀疏中的零模型
当群落在物种丰富度方面存在较大差异时,可能有必要标准化稀疏曲线。可使用基于重新抽样的零模型。 通过物种重采样和零模型模拟,构建了rao_perumue函数对期望的功能稀疏曲线进行检验,以排除外来物种的低功能多样性仅仅是由外来物种和本地物种数量不平衡造成的。分三步进行: 1)从M个采样单元(duneFVG 128个样地)抽取的S种物种(62种本地种)中,随机选取s种(s<S); 2)计算s的功能差异矩阵和稀释的Rao Q指数。 3)对于每次置换,重复第1步和第2步,然后对N个置换求平均稀疏曲线。
代码语言:javascript复制 1data(duneFVG.tr8) #species functional traits
2tr8_N<-duneFVG.tr8$traits.nat[,c(1,3,4)]
3tr8_D<-data.frame(duneFVG.tr8$traits.nat[,2])
4tr8_Q<-duneFVG.tr8$traits.nat[,5:15]
5tr8dist<-dist.ktab(ktab.list.df(list(tr8_N,tr8_D,tr8_Q)),type=c('N','D','Q'))
6
7#以本地物种和外来群落的两两功能距离作为参考群落,计算出标准化的功能稀疏曲线。
8rareperm<-rao_permuted(duneFVG$alien,tr8dist)
9
10#计算出本地和外来物种的功能稀疏曲线,并与标准化的功能稀疏进行比较
11tr8n_N<-duneFVG.tr8$traits.nat[,c(1,3,4)]
12tr8n_D<-data.frame(duneFVG.tr8$traits.nat[,2])
13tr8n_Q<-duneFVG.tr8$traits.nat[,5:15]
14tr8a_N<-duneFVG.tr8$traits.ali[,c(1,3,4)]
15tr8a_D<-data.frame(duneFVG.tr8$traits.ali[,2])
16tr8a_Q<-duneFVG.tr8$traits.ali[,5:15]
17tr8ndist<-dist.ktab(ktab.list.df(list(tr8n_N,tr8n_D,tr8n_Q)),type=c('N','D','Q'))
18tr8adist<-dist.ktab(ktab.list.df(list(tr8a_N,tr8a_D,tr8a_Q)),type=c('N','D','Q'))
19raren<-rare_Rao(duneFVG$native,tr8ndist)
20rarea<-rare_Rao(duneFVG$alien,tr8adist)
21
22plot(raren[,1], ylab="Rao QE",xlab="Number of sampling units",type="l",ylim=range(raren))
23lines(raren[,2],lty=2)
24lines(raren[,3],lty=2)
25lines(rareperm[,1],col=2)
26lines(rareperm[,2],lty=2,col=2)
27lines(rareperm[,3],lty=2,col=2)
28lines(rarea[,1],col=4)
29lines(rarea[,2],lty=2,col=4)
30lines(rarea[,3],lty=2,col=4)
31legend("bottomright", legend=c("Native species Functional Rarefaction","Standardized Functional Rarefaction","Alien species Functional Rarefaction"),lty=1,col=c(1,2,4))
32
33#本地物种及外来物种曲线之间的距离可以评估环境过滤效果。