Does a specific bioconductor version constrain versions of non-bioconductor packages?
1
2
Entering edit mode
Yannick Wurm ▴ 40
@yannick-wurm-5519
Last seen 2.7 years ago
United Kingdom

Hello,

in the "setup" script for my project (actually a Dockerfile), I have

apt-get -y install r-base=3.6.3-1bionic
Rscript -e 'install.packages("BiocManager")'
Rscript -e 'BiocManager::install(c("DT", "shiny", "vcfR", "htmlTable", "ggplot2", "tidyverse", "reshape", "dplyr", "jsonlite", "xml2", "biomaRt"), ask = FALSE, version = "3.10")'

I understand that a specific Bioconductor release version should imply that a specific version of each bioconductor is installed. What happens to base R packages? Are these similarly constrained? Or running this installation script now and in 6 months result in differnet package versions being installed?

Thanks! Yannick

reproducibility versions installing base-r • 985 views
ADD COMMENT
1
Entering edit mode
Mike Smith ★ 6.6k
@mike-smith
Last seen 35 minutes ago
EMBL Heidelberg

It's the latter. You'll get the latest available version of CRAN packages, regardless of the Bioconductor version. There might be constraints if the latest version in 6 months time requires a newer version of R, but otherwise assume you'll get whatever is most recent CRAN at the time.

This is actually true even for Bioconductor packages, in that bug fixes etc can be introduced to the release version, so you might end up with something slightly different, but the intention is for those to be non-breaking changes. So code should continue to work, but you might get different results.

If you really want reproducibility you probably need to build the container image now, and then use that in the future. It's also possible to install archive source tarballs for packages on both Biocondcutor and CRAN, but that would get really hard to maintain.

ADD COMMENT
0
Entering edit mode

Thanks very much @mike for the detailed reply. I don't like the idea of seeing different results :)

In light of this, I've been trying to use packrat - but that seems to struggle with bioconductor... A workaround could be to specify the URLs and do install.packages("http://xxxwhatever.tar.gz") for each package within the Dockerfile - but this is a bit unpleasant as it needs to be done in the correct order...

Cheers!

ADD REPLY

Login before adding your answer.

Traffic: 799 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6