R包与CRAN和Bioconductor依赖

时间:2016-01-05 17:06:57

标签: r package bioconductor cran

我有一个存储在本地git服务器上的R包。这个软件包有一系列的依赖 - 来自CRAN和Bioconductor的软件包。使用devtools包,我可以直接从git安装:

library(devtools)
install_git("http://mygitserver.com/username/reponame")

我注意到此安装过程无法安装所有Bioconductor依赖项,但所有CRAN依赖项都已正确安装。

如何设置软件包的依赖项(在DESCRIPTION文件中),以便正确安装所有Bioconductor软件包依赖项。我已经注意到,当这些包托管在Bioconductor镜像上并通过biocLite()进行安装时,这不是问题,这表明我可以通过列出install.packages()的一组镜像来解决这个问题。在声明无法找到包之前。有没有办法自动获取所有这些依赖项?

2 个答案:

答案 0 :(得分:1)

答案简短: setRepositories(ind=1:2)

TL;博士

setRepositories的文档告诉我们,已知存储库的默认列表存储在文件' R_Home / etc / repositories'"中。我们可以通过几种方式跟踪这一点,但为方便起见,让我们将存储库表读入R(这将切断该文件中的所有注释文档,但您可以使用{{1如果你感兴趣的话。

readLines

想象一下,每一行都有一个索引号。当您致电read.table(file.path(R.home(), "etc", "repositories"), sep = "\t") menu_name URL default source win.binary mac.binary CRAN CRAN @CRAN@ TRUE TRUE TRUE TRUE BioCsoft BioC software %bm/packages/%v/bioc FALSE TRUE TRUE TRUE BioCann BioC annotation %bm/packages/%v/data/annotation FALSE TRUE TRUE TRUE BioCexp BioC experiment %bm/packages/%v/data/experiment FALSE TRUE TRUE TRUE BioCextra BioC extra %bm/packages/%v/extra FALSE TRUE TRUE TRUE CRANextra CRAN (extras) http://www.stats.ox.ac.uk/pub/RWin FALSE TRUE TRUE TRUE Omegahat Omegahat http://www.omegahat.org/R FALSE TRUE FALSE FALSE R-Forge R-Forge http://R-Forge.R-project.org FALSE TRUE TRUE TRUE rforge.net rforge.net http://www.rforge.net FALSE TRUE TRUE TRUE CRANextra[https] CRAN (extras, https) https://www.stats.ox.ac.uk/pub/RWin FALSE TRUE TRUE TRUE R-Forge[https] R-Forge [https] https://R-Forge.R-project.org FALSE TRUE TRUE TRUE rforge.net[https] rforge.net [https] https://www.rforge.net FALSE TRUE TRUE TRUE 时,您要告诉R查看第1行和第2行中的存储库。

答案 1 :(得分:1)

github存储库的另一个答案是使用biocLite()

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

发送给devithols用于github包,并发送到CRAN / Bioconductor用于其他包。

source()命令会安装或更新BiocInstaller软件包,因此当您的BiocInstaller版本为最新版本时的变体是

BiocInstaller::biocLite("username/reposname")

为您的exmaple使用devtools,但为您的R和Bioconductor版本使用正确的Bioconductor存储库

install_git("http://mygitserver.com/username/reponame", 
            repos=BiocInstaller::biocinstallRepos())

repos参数最终传递给install.packages()。更具体地说,对我来说,我有

> biocinstallRepos()
                                               BioCsoft 
           "https://bioconductor.org/packages/3.3/bioc" 
                                                BioCann 
"https://bioconductor.org/packages/3.3/data/annotation" 
                                                BioCexp 
"https://bioconductor.org/packages/3.3/data/experiment" 
                                              BioCextra 
          "https://bioconductor.org/packages/3.3/extra" 
                                                   CRAN 
                             "https://cran.rstudio.com" 

使用第二个注释包,BioCann,url。