目前很多构建共现网络的方法(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
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线性?,其中也包含基于模型方法的比较新的文献资料。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)