ChAMP 包提供了完整的分析illumina甲基化芯片的pipeline, 和普通的Bioconductor
包的安装一样,代码只有简单的两行
source("http://bioconductor.org/biocLite.R")
biocLite("ChAMP")
我用的电脑是windows 操作系统,64位的R-3.4.3,安装过程中除了网速较慢,花费一点时间安装之外,并没有出现任何的问题。在加载的时候,却发生了如下的错误
错误: package or namespace load failed for 'ChAMP' in inDL(x, as.logical(local), as.logical(now), ...):
无法载入共享目标对象‘D:/work/R-3.4.3/library/mvtnorm/libs/x64/mvtnorm.dll’::
`已达到了DLL数目的上限...
错误信息的意思很明显,达到了dll 文件的上限。那么默认的上限是多少呢?
google了好久,终于找到了解决方案。dll 文件就是windows操作系统下的动态链接库,在加载R包的过程中,如果这个R包有对应的动态链接库,那么就会加载进来。默认情况下最多允许加载100个动态链接库,当你需要加载的动态链接库超过了100时,就会出现上面的报错信息。
解决方案就是设置环境变量R_MAX_NUM_DLLS
, 不管是什么操作系统,R语言对应的环境变量都可以在.Renviron
文件中进行设置。
这个文件可以保存在任意目录下,文件中就一句话,内容如下
R_MAX_NUM_DLLS=500
500表示允许的最多的dll文件数目,设置好之后,重新启动R, 然后输入如下命令
normalizePath("d:/Documents/.Renviron", mustWork = FALSE)
第一个参数为.Renviron
文件的真实路径,然后在加载ChAMP
包就可以了
>> Package version 2.9.9 loaded <<
___ _ _ __ __ ___
/ __| |_ /_\ | \/ | _ \
| (__| ' \ / _ \| |\/| | _/
\___|_||_/_/ \_\_| |_|_|
------------------------------
出现上述的欢迎界面,就代表加载成功了。
ChAMP
的功能确实是更加的强大和完整,同时也意味它的依赖包会特别的多,从而出现dll文件达到上限的错误。本文记录的解决方案,适合于任何操作系统,希望可以帮助到大家。