【问题标题】:Problems installing older version of Bioconductor's mixOmics packages in R在 R 中安装旧版本 Bioconductor 的 mixOmics 包时出现问题
【发布时间】:2022-02-25 12:17:36
【问题描述】:

我花了一天时间尝试在 R 中加载我保存在 renv 锁定文件中的适当包版本。

我使用了 RVAideMemoire 包,它与 bioconductor 中的 mixOmics 绑定,使用 renv::restore() 无法自动加载。

我按照此处列出的步骤安装了适当版本的 bioconductor (3.11) 以获得 moxOmics 版本 6.12.1。

R how to install a specified version of a bioconductor package?

不幸的是,我最终使用了 mixOmics 6.14.1 版。 我尝试使用以下方法加载早期版本:

BiocManager::install("mixOmics", version = '6.12.1')

导致以下错误:

Error: version '6.12.1' must have two components, e.g., '3.7'

这似乎有些不清楚,我认为最后的附加“.1”可能会导致问题,但我尝试加载版本时省略了最后一个“.1”,如图所示:

BiocManager::install("mixOmics", version = "6.12")

我又遇到了一个错误:

Error: unknown Bioconductor version '6.12'; see https://bioconductor.org/install

我在这里有点茫然。只要 mixOmics 软件包安装一直失败,renv::restore() 函数就不会完成更新,所以我似乎有点卡住了,直到我能解决这个问题。

编辑 只是为了提供有关 renv 错误的更多信息,这是我收到的消息:

错误:无法检索包“mixOmics” 另外:警告消息:
1:在 system2("curl", args$data(), stdout = TRUE, stderr = TRUE) : 运行命令 '"curl" --config "C:/Users/Corey/AppData/Local/Temp/RtmpuYYvKB/renv-tempdir-3d7050aa2ac3/renv-download-config-3d7076f57e1c"' 状态为 22
2:在下载器(url、destfile、type、request、headers)中: curl: (22) 请求的 URL 返回错误:404
3:在 system2("curl", args$data(), stdout = TRUE, stderr = TRUE) : 运行命令 '"curl" --config "C:/Users/Corey/AppData/Local/Temp/RtmpuYYvKB/renv-tempdir-3d7050aa2ac3/renv-download-config-3d701ff05e24"' 状态为 22
4: 在下载器(url, destfile, type, request, headers) 中: curl: (22) 请求的 URL 返回错误:404`

在尝试了使用的初步建议后
options(renv.settings.bioconductor.version = "3.11") renv::install("bioc::mixOmics@6.12.1")
我收到以下错误:

'getOption("repos")' 替换 Bioconductor 标准存储库,详见 '?repositories' 替换存储库:CRAN:https://cran.rstudio.com
查询可用二进制包的存储库...完成!
查询可用源包的存储库...完成! 检索“https://bioconductor.org/packages/3.12/bioc/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz”... 检索“https://bioconductor.org/packages/3.12/data/annotation/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz”... 检索“https://bioconductor.org/packages/3.12/data/experiment/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz”... 检索“https://bioconductor.org/packages/3.12/workflows/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz”... 检索“https://bioconductor.org/packages/3.12/books/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz”... 正在检索“https://cran.rstudio.com/src/contrib/Archive/mixOmics/mixOmics_6.12.1.tar.gz”...
错误:无法检索包“mixOmics”
另外:有24条警告(使用warnings()查看)

【问题讨论】:

    标签: r package bioconductor renv


    【解决方案1】:

    BiocManager::install() 不提供安装特定版本软件包的接口。 version 参数的文档指出:

    version: 'character(1)' Bioconductor 要安装的版本,例如, '版本=“3.8”'。特殊符号'version = "devel"' 安装当前的“开发”版本。

    也就是说,它与 Bioconductor 版本有关,而不是软件包版本。

    也就是说,您应该能够使用renv 来安装来自 Bioconductor 的特定版本的软件包。例如:

    options(renv.settings.bioconductor.version = "3.11")
    renv::install("bioc::mixOmics@6.12.1")
    

    您也可以使用renv::settings$bioconductor.version("3.11") 将所需版本的Bioconductor 存储为项目设置,供renvrestore() 期间使用。

    我使用了 RVAideMemoire 包,它与 bioconductor 中的 mixOmics 绑定,无法使用 renv::restore() 自动加载。

    我很想知道为什么 renv::restore() 不适合你。

    编辑:根据您的输出,您正在尝试使用 Bioconductor 3.12,但该版本的 Bioconductor 不提供 mixOmics 6.12.1。您需要设置 renv 使用的 Bioconductor 版本,如本答案中所述。 (您可能还需要安装最新版本的 renv 以获得对此的支持。)

    【讨论】:

    • 我更新了初始错误消息以及尝试您提供的方法时出现的错误
    • 在运行以下代码之前更新 renv 就可以了! options(renv.settings.bioconductor.version = "3.11") renv::install("bioc::mixOmics@6.12.1") 之后能够毫无意外地加载其余的包。谢谢!
    猜你喜欢
    • 2020-09-15
    • 2014-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-09
    • 2016-09-26
    • 2020-09-08
    相关资源
    最近更新 更多