【R数据处理】不同环境因子组合与群落变化相关性的BioEnv分析
BioEnv分析简介
BioEnv 分析是通过计算样本群落结构的距离矩阵和环境因子的距离矩阵,计算两个距离矩阵之间的相关系数,挑选出最佳的环境因子组合;
在默认情况下,计算物种(或者OTUs/ASVs)群落结构的距离矩阵时,使用 Bray-Curtis 距离;计算环境因子的距离矩阵时,使用Euliodean 欧式距离,计算相关性,则采用 spearman 相关系数。
这就意味着我们需要准备两个数据框(data.frame格式),一个是物种数据框,一个是环境因子数据框(包含所有检测的环境因子)。这两个数据框的行名均是样方名。物种数据框的列名为物种名或OTU名;环境因子数据框的列名为变量名。
数据的格式如下:
物种数据框数据
环境因子数据框格式:
以上数据是vegan包中自带的数据,对于自己的数据大家需要对行名进行定义,否者计算时容易出现错误。
代码运行和结果分析
library(vegan)
library(tidyverse)
#注意:如果环境变量太多如超过20个(1 h)可能会花费很长时间
data(varespec)
data(varechem)
bio_env <- bioenv(wisconsin(varespec) ~., data = varechem)
bio_env
结果报告分别指出,两个矩阵所用的相关性类型“spearman”相关性,物种矩阵使用的是“bray”距离,环境因子矩阵使用的是“euclidean”距离算法,最佳的模型有7个参数,分别是“P、 Mg、Al、Fe、Mn、Mo和Humdepth”,这七个因子构成的环境因子矩阵与物种矩阵的相关性最高为0.503
summary(bio_env)
使用summary函数可以详细的看到不同环境因子组成的矩阵分别与物种矩阵之间的相关性。
我们使用排序函数可以找到最优的组合,代码如下:
cbind(summary(bio_env)[[3]],summary(bio_env)[[2]]) %>%
as_tibble() %>%
arrange(desc(V2))
该方法的优点:
1)当环境因子较多时有助于挑选出与物种矩阵(群落分布/群落结构)最相关的环境因子组合;
2)为后续排序分析如RDA或者CCA、或mantel分析提供环境因子组合的选择的依据。
该方法的缺点:
1)运行时间较慢、当环境因子超过30个时单线程运算可能要超过2h;
2)最优的环境因子组合可能会遗漏最重要的环境因子,因此需要结合其它分析确定最优环境因子组合,如随机森林或者GLM分析。
该方法的参考文献:Clarke, K. R & Ainsworth, M. 1993. A method of linking multivariate community structure to environmental variables. Marine Ecology Progress Series, 92, 205–219.