基于模型的共现网络构建——考虑环境因子的影响

  目前很多构建共现网络的方法(sparCC、speicEASI、spearman correlation等等)均包含环境因子对网络的影响。例如,如果两个OTU均喜欢酸性环境,那么他们就会有很强的的相关性,所以由此构建的共现网络反映了环境因子和生物互作共同的影响,我们称其为raw co-occurrence network(原始共现网络)。与上述方法不同的是,基于模型的共现网络构建可以在其中考虑到环境因子的影响,从而将环境因子的影响排除出去,更好地反映微生物交互作用。不过也可能有其它未检测到的环境因子,因此也不能说完全就反映了微生物的交互,我们可称其为residual co-occurrence network(残差共现网络)。基于模型构建共现网络的包有很多:例如:HMSC、GLLVM、ecoCopulas、sjSDM,前三者多是应用于动植物的群落数据,对于处理OTU表这种动不动就上千上万个OTU的数据而言会消耗过多的计算时间。因此,根据计算时间,我们这里推荐使用sjSDM来进行计算。

1. sjSDM的安装,GPU or CPU?

  sjSDM的安装有两个版本,GPU版和CPU版,GPU版比CPU版有更快的计算速度,更适合我们的微生物数据。如果计算机是NVIDIA的显卡则推荐安装GPU版,如果是AMD的显卡则无法安装GPU版,只能安装CPU版。这里以R语言安装为例,python安装教程可直接前往该网站查看:s-jSDM - Fast and accurate Joint Species Distribution Modeling

install.packages("sjSDM")

  与安装其它R包不同的是,因为该包是基于python中的pytorch包,所以安装该包后还需安装包的诸多依赖——miniconda, sjSDM环境(包含python、pytorch)。

# GPU vesrion is recommanded for computers with nvidia graphics card
sjSDM::install_sjSDM(version = "gpu")
# CPU version is your only choose to use sjSDM if your graphics card is AMD  
sjSDM::install_sjSDM(version = "cpu")

是否安装成功?

library(sjSDM)

出现以下结果则说明安装成功:

## ── Attaching sjSDM ──────────────────────────────────────────────────── 1.0.1 ──

## ✓ torch  
## ✓ torch_optimizer  
## ✓ pyro  
## ✓ madgrad

此时切换到Rstudio中的terminal菜单栏,输入如下命令可以看到:
conda infor -e基于模型的共现网络构建——考虑环境因子的影响_第1张图片

2. sjSDM的运行
abund <- read.delim("otu.txt", row.names=1)
env <- read.delim("env.txt", row.names=1)
X <- scale(env)
Y <- abund[,colSums(abund>0)/nrow(abund) > 0.3]
#define your formula according to your research
model <- sjSDM(Y = Y, 
               env = linear(data = X, formula = ~I(pH^2)+pH+tn), 
               se = TRUE, 
               family=poisson("log"), 
               sampling = 100L
               )
m1 <- summary(model)
#save the model to your disk
saveRDS(model,"../Desktop/sjsdm_model.Rds")
#transfer covariance matrix to correlation matrix
mcor <- cov2cor(m1$cov)

这里我们就得到了物种的相关性矩阵mcor,然后再根据RMT的方法确定阈值并生成图文件。可参考之前的博客,利用随机矩阵理论(random matrix theory)确定微生物网络构建阈值。若想了解更多关于基于模型方法的应用可参考之前博客:基于模型的约束排序,并探究OTUs对pH的响应特征——单峰or线性?,其中也包含基于模型方法的比较新的文献资料。

你可能感兴趣的:(微生物共现网络构建及分析,r语言,学习)