Пакет R с зависимостями CRAN и Bioconductor

У меня есть пакет R, хранящийся на локальном сервере git. Этот пакет имеет ряд зависимостей - пакеты как от CRAN, так и от Bioconductor. С использованием devtools пакет, я могу установить из git напрямую:

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

Я заметил, что в процессе установки не удается установить все зависимости Bioconductor, но все зависимости CRAN установлены правильно.

Как я могу установить зависимости пакета (в DESCRIPTION файл), чтобы все зависимости пакета Bioconductor также были установлены правильно. Я заметил, что это не проблема, когда пакеты размещаются на зеркале Bioconductor и устанавливаются через biocLite()Это говорит о том, что, возможно, я мог бы решить эту проблему, перечислив набор зеркал для install.packages() выполнить поиск, прежде чем объявить, что пакет не найден. Есть ли способ получить все эти зависимости автоматически?

2 ответа

Решение

Краткий ответ:setRepositories(ind=1:2)

ТЛ; др

Документация для setRepositories говорит нам, что "список известных репозиториев по умолчанию хранится в файле" R_Home/etc/repositories "". We can track this down a couple of ways, but for convenience, let's read the table of repositories into R (this will cut off all of the commented documentation in that file, but you can pull that up with readLines if you're interested.

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

Imagine that each row has an index number. Когда вы звоните setRepositories(ind = 1:2) you are telling R to look at the repositories in rows 1 and 2.

Другой ответ для репозиториев GitHub заключается в использовании biocLite()

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

который отправляет devtools для пакетов github и CRAN / Bioconductor для других.

source() Команда устанавливает или обновляет пакет BiocInstaller, поэтому вариант, когда ваша версия BiocInstaller является текущей

BiocInstaller::biocLite("username/reposname")

Чтобы использовать devtools для вашего примера, но с правильными репозиториями Bioconductor для вашей версии R и 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.

Другие вопросы по тегам