今年8月份写了一篇文章介绍了normalized stochasticity ratio (NST),可以计算随机性和确定性的比例。详见:
最近文章的作者将该方法打包上传到了CRAN中。
终于可以愉快的使用啦~~
NST可以根据不同的相似性矩阵和不同的零模型算法,以及以前的一些指标,如Stochasticity Ratio (ST), Standard Effect Size (SES), modified Raup-Crick metrics (RC)等来计算。
1install.packages("NST")
2library(NST)
在考虑丰度的零模型基础上随机化群落时,将丰度分配给物种。根据指定的概率,个体被随机分为不同的种类。 samp.ab: 样本的总丰度 prob.ab:在一个特定的样本中,每个物种的个体被抽取的概率。
1data(tda)
2comm=tda$comm
3comm.b=comm
4comm.b[comm.b>0]=1
5samp.ab=rowSums(comm)
6prob.ab=matrix(colSums(comm),nrow=nrow(comm),ncol=ncol(comm),byrow=TRUE)
7comm.rand=ab.assign(comm.b,samp.ab,prob.ab)
可计算21种beta多样性指数
对多样性指数值设置一个上限
这个很有用,可将beta多样性的矩阵转化为3列的形式。前两列为样本,第三列为相似性
1data(tda)
2comm=tda$comm
3bray=beta.g(comm,dist.method="bray")
4bray.3col=dist.3col(bray)
最重要的函数,计算NST。有多种距离矩阵及零模型构建的方法可选。不同方法得到的结果存在一定的差异。详见我之前文章的介绍。
1data(tda)
2comm=tda$comm
3group=tda$group
4tnst=tNST(comm=comm, group=group, dist.method="jaccard",
5 abundance.weighted=TRUE, rand=20,
6 nworker=1, null.model="PF", between.group=TRUE,
7 SES=TRUE, RC=TRUE)
检验各组ST、NST的分布情况及各组ST、NST差异的显著性。
1nst.bt=nst.boot(nst.result=tnst, group=NULL, rand=99,
2 trace=TRUE, two.tail=FALSE, out.detail=FALSE,
3 between.group=FALSE, nworker=1)
ST和NST组间进行Permutational multivariate ANOVA
1nst.pova=nst.panova(nst.result=tnst, rand=99)