微生物群落和环境因子相关性:Bioenv & bvStep
微生物群落和环境因子相关性:Bioenv & bvStep
2020-11-192020-11-19 17:20:57阅读 1350
本文介绍两个分析微生物群落和环境因子相关性的工具。
Bioenv
Bioenv比较常用,是vegan包中的函数。功能:找到与群落差异有最大(秩)相关性的环境变量的最佳子集
1library(vegan) 2#说明 3bioenv(comm, env, method = "spearman", index = "bray", 4 upto = ncol(env), trace = FALSE, partial = NULL, 5 metric = c("euclidean", "mahalanobis", "manhattan", "gower"), 6 parallel = getOption("mc.cores"), ...) 7comm:群落 8env:环境因子 9method:相关性方法,同cor函数10index:群落不相似性矩阵的构建方法。同vegdist函数11upto:子集中最多元素个数12partial:是否做partial分析13metric:环境因子矩阵构建方法,有四种方法。
对于p个环境因子,存在2^p-1个子集,因此环境因子多的时候会非常非常非常慢。20个变量包含>1e6组合。
1#例子 2data(varespec) 3data(varechem) 4sol <- bioenv(wisconsin(varespec) ~ log(N) + P + K + Ca + pH + Al, varechem) 5#结果给出了不同数量环境因子条件下相关性最高的组合 6summary(sol) 7 size correlation 8P 1 0.2513 9P Al 2 0.400410P Ca Al 3 0.400511P Ca pH Al 4 0.361912log(N) P Ca pH Al 5 0.321613log(N) P K Ca pH Al 6 0.2822
bvStep
bvStep在sinkr包中。功能和Bioenv一样。在环境因子很多的时候表现更好。
1# install.packages("remotes") 2# remotes::install_github("marchtaylor/sinkr") 3library('sinkr') 4#说明 5bvStep( 6 fix.mat, 7 var.mat, 8 fix.dist.method = "bray", 9 var.dist.method = "euclidean",10 scale.fix = FALSE,11 scale.var = TRUE,12 max.rho = 0.95,13 min.delta.rho = 0.001,14 random.selection = TRUE,15 prop.selected.var = 0.2,16 num.restarts = 10,17 var.always.include = NULL,18 var.exclude = NULL,19 output.best = 1020)21fix.mat:固定的群落或环境因子数据(一般是群落)22var.mat:可变的群落或环境因子数据(一般是环境因子)23fix.dist.method :计算固定数据的不相似矩阵(默认bray)24var.dist.metho:计算可变数据的不相似矩阵(默认欧氏距离)25scale.fix:固定数据是否中心化和标准化(默认否)26scale.va:可变数据是否中心化和标准化(默认是)27max.rho:最大Spearman 相关性,用于停止计算,默认0.9528min.delta.rho:Spearman 最小的变化29random.selection:是否随机开始30prop.selected.var:每次重新开始包含的变量比例31num.restarts:重新开始次数,默认5032var.always.include:每次重新开始包含的环境因子33output.best:结果返回多少种组合,默认10
可以先经过一轮初步筛选,得到相关性比较高的因子后,再进行二次筛选。
1#例子 2library(vegan) 3data(varespec) 4data(varechem) 5set.seed(1) 6res.biobio1 <- bvStep(wisconsin(varespec), wisconsin(varespec), 7 fix.dist.method="bray", var.dist.method="bray", 8 scale.fix=FALSE, scale.var=FALSE, 9 max.rho=0.95, min.delta.rho=0.001,10 random.selection=TRUE,11 prop.selected.var=0.3,12 num.restarts=50,13 output.best=10,14 var.always.include=NULL15)16res.biobio1 17#结果中包含相关性最高的组合,和不同因子数相关性最高的结果。18$order.by.best19 var.incl n.var rho201 3,4,13,15,24,28,29,30,35,37,39 11 0.8404258212 3,4,13,15,24,28,29,30,35,37,39,44 12 0.8385896223 4,13,15,24,28,29,30,35,37,39 10 0.8346131234 4,15,17,24,26,29,34,35,37,43 10 0.8302690245 3,4,15,17,24,26,29,34,35,37,43 11 0.8296674256 3,4,5,15,22,23,29,38,42 9 0.8294197267 4,5,15,19,25,26,29,38 8 0.8286999278 3,4,5,15,17,22,23,29,38,42 10 0.8275624289 4,5,15,19,26,29,38 7 0.82606702910 4,5,14,15,19,25,26,29,38 9 0.82493463031$order.by.i.comb32 var.incl n.var rho331 26 1 0.5186498342 23,26 2 0.6100455353 15,26,29 3 0.6873777364 15,19,26,29 4 0.7428844375 4,15,19,26,29 5 0.7760409386 4,15,19,26,29,38 6 0.8038093397 4,5,15,19,26,29,38 7 0.8260670408 4,5,15,19,25,26,29,38 8 0.8286999419 3,4,5,15,22,23,29,38,42 9 0.82941974210 4,13,15,24,28,29,30,35,37,39 10 0.83461314311 3,4,13,15,24,28,29,30,35,37,39 11 0.84042584412 3,4,13,15,24,28,29,30,35,37,39,44 12 0.83858964513 2,3,6,7,11,12,13,14,16,35,42,43,44 13 0.71571584647$best.model.vars48[1] "Rhodtome,Vaccmyrt,Dicrpoly,Pleuschr,Cladstel,Cladgrac,Cladfimb,Cladcris,Cetreric,Flavniva,Stersp"4950$best.model.rho51[1] 0.84042585253$var.always.include54NULL5556$var.exclude57[1] 8 20 21 325859#23,26,29一直存在,因此第二次筛选将这几个样本包含进去。60set.seed(1)61res.biobio2 <- bvStep(wisconsin(varespec), wisconsin(varespec), 62 fix.dist.method="bray", var.dist.method="bray",63 scale.fix=FALSE, scale.var=FALSE, 64 max.rho=0.95, min.delta.rho=0.001,65 random.selection=TRUE,66 prop.selected.var=0.3,67 num.restarts=50,68 output.best=10,69 var.always.include=c(23,26,29)70)71res.biobio2 # Best rho equals 0.895 (15 of 44 variables)7273#最优的组合包含15个环境因子74$best.model.vars75[1] "Vaccmyrt,Vaccviti,Polypili,Pohlnuta,Cladarbu,Cladrang,Cladcocc,Cladcorn,Cladgrac,Cladfimb,Cladcris,Cladamau,Cetreric,Nepharct,Cladcerv"
sinkr包重点包含了多变量方法和地理数据的处理。
sinkr也有做bioenv的函数为bioEnv。
本文分享自微信公众号 - Listenlii(gh_1a9e56035563),作者:水岸风堤
原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。
原始发表时间:2020-11-15
本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。
举报
赞 (0)