Пакет 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.