Linux 下非 root 用户 Conda 安装生物信息 R 软件包 MetaboAnalystR 演示

前些天演示了一下 Linux 下非 root 用户 Conda 安装生物信息 R 软件包 CellMix( https://www.learndiary.com/2022/05/linux-conda-cellmix/ ),今天演示 Conda 安装一款比较新的生物信息 R 软件 MetaboAnalystR 3.2.0。这款软件于2017年底发布于 github 上面,现在最新的版本是3.2,仍在持续更新中。本文的演示环境是 Deepin 20.6 Linux、Miniconda3 版本 4.13.0、R 4.0.2、MetaboAnalystR 3.2.0(github 当前版本)、四川移动家庭宽带网络。视频演示地址:https://www.bilibili.com/video/BV1CY4y1E7UB?share_source=copy_web

一、安装方法概览
在当前(2022.06.27),在 MetaboAnalystR 的项目主页上( https://github.com/xia-lab/MetaboAnalystR ),介绍的安装是在系统中直接进行安装,在 Linux 中,这意味着必须要有 root 权限才能安装一些依赖的软件包。然后使用 devtools::install_github 进行在线安装,或者下载到本地用 R 命令进行本地安装。另外,值得注意的是,主页上的安装指南是适用于 3.0 系列版本的,比如,他介绍的 r-base 包是大于 3.6.1,而 r-base 4.0.0 版本的兼容性还在评估中。而现在的 MetaboAnalystR 版本是 3.2.0,在他现在最新的“DESCRIPTION”文件中( https://github.com/xia-lab/MetaboAnalystR/blob/ef307c533d0f0164d8483e0064d8239da05c526d/DESCRIPTION ),写的是 Depends: R (>= 4.0), methods。

我也看了网上的多篇安装文章,基本都比较复杂,要单独手工安装的依赖包比较多。这里演示的方法是使用 Conda 进行安装,可以无需 root 权限安装上一些必须的依赖包,然后,再使用专门的生物信息包管理器 BiocManager::install 直接从 github 进行在线安装最新版本 MetaboAnalystR 3.2.0。

二、安装步骤
1、Conda 和 R 环境安装
在上一篇安装 CellMix 的日记中已经详细介绍,这里不再赘述。参见: https://www.learndiary.com/2022/05/linux-conda-cellmix/ ,这篇日记中还有一些 R 包安装的知识点小结和一些有用的参考网址。
这里就直接从上次安装 CellMix 前备份的初始 R 4.0.2 环境克隆一个环境 MetaboAnalystR 用于安装演示,命令如下:

conda create -n MetaboAnalystR --clone cellmix_init
conda activate MetaboAnalystR

2、在 Conda 中安装依赖包

conda install -c conda-forge r-stringi r-curl r-cairo libnetcdf  # r-stringi 是因为网络原因可能在 R 环境下无法安装成功 stringi,r-curl 是 R 中安装 curl 包缺少 libcurl,r-cario 是 R 中安装 Cario 包缺少头部文件,libnetcdf 安装 R 包 ncdf4 需要的依赖

3、安装专门的生物信息软件管理器及依赖包

R # 进入 R 环境

在 R 环境下执行下列命令:

setRepositories() # 设置 R 包仓库,把1~8个仓库全选上
install.packages("BiocManager") #安装生物信息包管理器

这时会让选择CRAN镜像,我这里选“20: China (Guangzhou) [https]”,即输入20回车即可。

BiocManager::install("remotes") # github 在线安装需要

这时会询问是否更新旧的 'Cario'、'stringi'包,这时选不更新 n,后面有这样的询问同样选 n
Update all/some/none? [a/s/n]: n

4、安装 MetaboAnalystR 3.2.0

BiocManager::install("xia-lab/MetaboAnalystR")

这时会询问是否更新软件包,这里直接回车略过不更新。
然后,会提示安装147个软件包,后面还会警告包"locfit"找不到,如下:

Installing 147 packages: lattice, Matrix, MASS, survival, Biobase, BiocGenerics, rlang, Rcpp, codetools, ProtGenerics, iterators, foreach, doParallel, plyr, XML, zlibbioc, preprocessCore, affyio, utf8, crayon, cli, colorspace, vctrs, pkgconfig, pillar, magrittr, fansi, ellipsis, viridisLite, RColorBrewer, R6, munsell, lifecycle, labeling, farver, nlme, withr, tibble, scales, mgcv, isoband, gtable, glue, digest, ggplot2, limma, affy, S4Vectors, Rhdf5lib, ncdf4, later, fastmap, base64enc, lazyeval, jsonlite, htmltools, purrr, tidyselect, generics, cpp11, dplyr, yaml, sys, askpass, openssl, mime, bitops, formatR, futile.options, lambda.r, BH, snow, futile.logger, stringr, parallelly, listenv, globals, future, SQUAREM, numDeriv, progressr, future.apply, lava, KernSmooth, prodlim, class, nnet, rpart, timeDate, tidyr, lubridate, ipred, hardhat, gower, data.table, proxy, RcppParallel, cachem, bit, scrime, multtest, mzID, MALDIquant, pcaMethods, impute, vsn, IRanges, BiocParallel, mzR, promises, crosstalk, htmlwidgets, httr, caTools, gtools, fastmatch, gridExtra, reshape2, recipes, pROC, ModelMetrics, e1071, stringfish, RApiSerialize, prettyunits, hms, plogr, memoise, DBI, blob, bit64, graph, siggenes, MSnbase, plotly, igraph, gplots, glasso, fgsea, edgeR, crmn, caret, qs, Rserve, progress, RSQLite, RBGL
Warning: dependency ‘locfit’ is not available

这里我们不干预,让它自动完成安装。
上述命令长时间运行完成后,会报告依赖“edgeR”找不到。如下:

ERROR: dependency ‘edgeR’ is not available for package ‘MetaboAnalystR’

这里先安装上 locfit,命令如下:

install.packages("https://cran.r-project.org/src/contrib/Archive/locfit/locfit_1.5-9.4.tar.gz") #  最新的 locfit 需要 R 版本 >=4.1,这里手动安装较旧的版本 
BiocManager::install("xia-lab/MetaboAnalystR") # 再次安装目标包

这里会询问是否更新软件包,这里直接回车略过不更新。
然后会自动开始安装缺失的依赖包,信息如下:
Installing 1 packages: edgeR
最后,会自动安装上 MetaboAnalystR。

library("MetaboAnalystR") # 加载 "MetaboAnalystR" 成功

显示如下:
MetaboAnalystR 3.2.0 initialized Successfully !
https://github.com/xia-lab/MetaboAnalystR

5、设置环境变量

跟 MetaboAnalystR 主页( https://github.com/xia-lab/MetaboAnalystR )的安装方法不同,我发现用上面 conda 安装的方式需要设置一下环境变量,如下:

vim $HOME/miniconda3/envs/MetaboAnalystR/etc/conda/activate.d/env_vars.sh

内容如下:

export LD_LIBRARY_PATH=$HOME/miniconda3/envs/MetaboAnalystR/lib/R/lib

如果没有设置环境变量,在 R 环境下执行下列命令会出现错误:

> mSet <- InitDataObjects("conc", "stat", FALSE)
Starting Rserve:
 /home/learndiary/miniconda3/envs/MetaboAnalystR/lib/R/bin/R CMD /home/learndiary/miniconda3/envs/MetaboAnalystR/lib/R/library/Rserve/libs//Rserve --no-save 

/home/learndiary/miniconda3/envs/MetaboAnalystR/lib/R/library/Rserve/libs//Rserve: error while loading shared libraries: libR.so: cannot open shared object file: No such file or directory
[1] "MetaboAnalyst R objects initialized ..."
Warning message:
In system(cmd, wait = wait, ...) : 调用命令时发生了错误

6、sessionInfo

在不同的系统环境下,以下的输出结果或有少许差异。

> library("MetaboAnalystR")

MetaboAnalystR 3.2.0 initialized Successfully !
https://github.com/xia-lab/MetaboAnalystR

> sessionInfo()

R version 4.0.2 (2020-06-22)
Platform: x86_64-conda_cos6-linux-gnu (64-bit)
Running under: Deepin 20.6

Matrix products: default
BLAS/LAPACK: /home/learndiary/miniconda3/envs/MetaboAnalystR/lib/libopenblasp-r0.3.12.so

locale:
[1] LC_CTYPE=zh_CN.UTF-8 LC_NUMERIC=C
[3] LC_TIME=zh_CN.UTF-8 LC_COLLATE=zh_CN.UTF-8
[5] LC_MONETARY=zh_CN.UTF-8 LC_MESSAGES=zh_CN.UTF-8
[7] LC_PAPER=zh_CN.UTF-8 LC_NAME=C
[9] LC_ADDRESS=C LC_TELEPHONE=C
[11] LC_MEASUREMENT=zh_CN.UTF-8 LC_IDENTIFICATION=C

attached base packages:
[1] stats graphics grDevices utils datasets methods base

other attached packages:
[1] MetaboAnalystR_3.2.0

loaded via a namespace (and not attached):
[1] nlme_3.1-158 bitops_1.0-7 lubridate_1.8.0
[4] bit64_4.0.5 httr_1.4.3 RColorBrewer_1.1-3
[7] tools_4.0.2 utf8_1.2.2 R6_2.5.1
[10] rpart_4.1.16 KernSmooth_2.23-20 lazyeval_0.2.2
[13] DBI_1.1.3 BiocGenerics_0.36.1 colorspace_2.1-0
[16] nnet_7.3-17 withr_2.5.0 tidyselect_1.1.2
[19] gridExtra_2.3 bit_4.0.4 compiler_4.0.2
[22] cli_3.3.0 Biobase_2.50.0 Cairo_1.5-15
[25] plotly_4.10.0 stringfish_0.15.7 caTools_1.18.2
[28] scales_1.2.0 stringr_1.4.0 digest_0.6.29
[31] siggenes_1.64.0 htmltools_0.5.2 pkgconfig_2.0.3
[34] parallelly_1.32.0 scrime_1.3.5 fastmap_1.1.0
[37] limma_3.46.0 htmlwidgets_1.5.4 rlang_1.0.3
[40] RSQLite_2.2.14 impute_1.64.0 generics_0.1.2
[43] RApiSerialize_0.1.0 jsonlite_1.8.0 crmn_0.0.21
[46] BiocParallel_1.24.1 gtools_3.9.2.2 ModelMetrics_1.2.2.2
[49] dplyr_1.0.9 magrittr_2.0.3 Matrix_1.4-2
[52] Rcpp_1.0.8.3 munsell_0.5.0 fansi_1.0.3
[55] lifecycle_1.0.1 pROC_1.18.0 stringi_1.5.3
[58] edgeR_3.32.1 MASS_7.3-57 gplots_3.1.3
[61] plyr_1.8.7 recipes_0.2.0 grid_4.0.2
[64] blob_1.2.3 parallel_4.0.2 listenv_0.8.0
[67] crayon_1.5.1 lattice_0.20-45 splines_4.0.2
[70] multtest_2.46.0 locfit_1.5-9.4 pillar_1.7.0
[73] fgsea_1.16.0 igraph_1.3.2 reshape2_1.4.4
[76] future.apply_1.9.0 codetools_0.2-18 stats4_4.0.2
[79] fastmatch_1.1-3 glue_1.6.2 pcaMethods_1.82.0
[82] data.table_1.14.2 RcppParallel_5.1.5 vctrs_0.4.1
[85] foreach_1.5.2 tidyr_1.2.0 gtable_0.3.0
[88] purrr_0.3.4 qs_0.25.3 future_1.26.1
[91] cachem_1.0.6 ggplot2_3.3.6 gower_1.0.0
[94] prodlim_2019.11.13 viridisLite_0.4.0 class_7.3-20
[97] survival_3.3-1 glasso_1.11 timeDate_3043.103
[100] tibble_3.1.7 iterators_1.0.14 memoise_2.0.1
[103] hardhat_1.1.0 lava_1.6.10 globals_0.15.1
[106] ellipsis_0.3.2 caret_6.0-92 ipred_0.9-13
>

三、注意事项

1、各个系统的环境不同,可能需要安装的软件包也会有所差异,对于缺失的依赖包,如果 BiocManager::install() 安装不上,多半是某软件的版本不适合于此 R 版本,可以搜索一下符合要求的版本。然后,可以尝试以 install.packages(pkgs = "http://web.cbio.uct.ac.za/~renaud/CRAN/src/contrib/CellMix_1.6.2.tar.gz", type = "source") 或 install.packages("~/tmp/CellMix_1.6.2.tar.gz", repos=NULL, type="source") 的方法安装。

2、因为此文使用的安装方法不是官方网站使用的方法,如果哪位朋友运用此方法安装,在使用过程中碰到任何问题可以反馈给我。

四、参考网址

1、GitHub - xia-lab/MetaboAnalystR: R package for MetaboAnalyst https://github.com/xia-lab/MetaboAnalystR
2、Linux 下非 root 用户 Conda 安装生物信息 R 软件包 CellMix 演示 https://www.learndiary.com/2022/05/linux-conda-cellmix/
3、Linux系统conda虚拟环境添加环境变量 https://blog.csdn.net/u014611178/article/details/107833929
4、Install R https://docs.rstudio.com/resources/install-r/

发表评论

电子邮件地址不会被公开。 必填项已用*标注