Bioconductor包的标准安装方法是:

source("https://bioconductor.org/biocLite.R")
biocLite(pkg_name)

这其实是非常不好的,多年以来,一直没有改进,试想一下,bioconductor的网站如果被人黑了,放一段危险的代码,然后你却傻傻地去source它,真的是画面太美!

Bioconductor终于是想要改变了,往CRAN上扔了一个叫BiocManager的包,以后通过CRAN安装这个包,再通过这个包来安装Bioconductor的包,显得安全多了,也不用大家费辣么多口水说你得先source一段网上的代码,当然这个BiocManager还不成熟,起码还没有在BiocInstaller加载的时候提示大家转而用BiocManager,也没有在Bioconductor的网页上介绍使用它来安装。

个人的经验嘛,我安装之后,加载出错,认不出我用的Bioconductor版本。

> require(BiocManager)
Loading required package: BiocManager
Error: package or namespace load failed for ‘BiocManager’:
 .onAttach failed in attachNamespace() for 'BiocManager', details:
  call: NULL
  error: invalid version specification ‘Bioconductor version cannot be validated; no internet connection?’

希望以后会好起来,然而现在你还只能傻傻地去source一段网上的代码。

今天要告诉大家一个小贴士,让你用install.packages来安装CRAN和Bioconductor所有的包,我最近就这么干,因为我回到广州之后,发现library(BiocInstaller)有些慢,而我是个没耐心的人。

你要做的很简单,在~/.Rprofile里加入以下两行:

options(BioC_mirror="https://mirrors.tuna.tsinghua.edu.cn/bioconductor")

utils::setRepositories(ind=1:2)

第一行,使用国内的镜像,我这里用的是清华大学的,第二行,设定install.packages从CRAN和Bioconductor中搜索包,其实你还可以让它支持比如R-Forge以及各种第三方的仓库。

然后你就可以愉快地使用install.packages来安装Bioconductor包了。

当然Bioconductor这帮人搞BiocInstaller或者BiocManager是有原因的,因为Bioconductor和R版本绑定,为了确保用户不把包安装在错误的版本上。而你自己强搞的话,是有可能乱搞的,所以如果你要用我这个小贴士的话,请确保你一直在使用最新版本的R。能力越大,责任越大。自己瞎搞得有能力解决搞出的各种问题。