[Bioc-devel] building R and bioconductor

Martin Morgan mtmorgan at fredhutch.org
Tue Apr 28 19:52:02 CEST 2015

On 04/28/2015 10:36 AM, Laurent Gatto wrote:
> Dear Stefano,
> On 28 April 2015 16:50, Berri, Stefano wrote:
>> Hi.
>> I need a very reproducible way of creating a R builds with a series of
>> CRAN and Bioconductor packages.
>> I want to be able to download a specific version or R, a specific
>> version of all packages and then install them in the right order (to
>> make sure every package has the dependencies at installation time). I

Downloading a specific version of Bioconductor packages retrospectively is 
challenging, unless the version is the final version in a release cycle. This is 
because the Bioc repository only contains one version of a package for each 
release, and while it is might be possible to dissect the svn logs of individual 
packages to identify when a DESCRIPTION file had a particular version, there may 
be several svn commits associated with the version (packages are only pushed to 
the public repository when a version changes at the time the build starts each 
day, so the first svn revision would be a good [but not infallible] bet as to 
the revision that was made public).

If you wish to take a snapshot 'now' and have it available in the future, then 
the tools Laurent mentions might be appropriate. I think I would rather (but 
maybe I'm just perverse in this respect) rsync ( 
http://bioconductor.org/about/mirrors/mirror-how-to/ and similar for CRAN) or 
manually create a 'CRAN-style' repository of source packages, and simply use 
this as the 'repos' argument (including pointing to a local file system) in 

To manually create a snapshot, I'd use tools::package_dependencies, and 
download.packages to get the required package source tar balls, then follow 
section 6.6 of RShowDoc("R-admin").


>> do not want to use install.packages or biocLite because they are not
>> very transparent/reproducible I have done it for R-3.0.2, but it has
>> been rather slow and boring (Try installing a package, see the
>> complaint, go into a working installation, load the package an figure
>> out the version of all the related packages).
>> I am wondering if there is an automated way, or a repository, to
>> recursively retrieve all the package versions required in a certain
>> version of R.
> Using biocLite, you will get the specific package versions required for
> your R version. If you want more control, I think packrat [1,2] from
> RStudio or this paper [3] by Gabe Becker et al. might helpful.
>    [1] https://rstudio.github.io/packrat/
>    [2] https://github.com/rstudio/packrat
>    [3] http://arxiv.org/abs/1501.02284
> You might also consider rolling out your own docker image.
>    [4] http://bioconductor.org/help/docker/
>> I am also looking into easybuild
>> (http://easybuild.readthedocs.org/en/latest/), and, also there,
>> knowing the exact path to all the packages in the right order seem
>> crucial.
>> how do install.packages or biocLite know what version is required and
>> where it is located?
> The locations are defined by getOption("repos") and biocinstallRepos()
> respectively. In the latter case, these will also depend on the version
> of R.
> Hope this helps.
> Best wishes,
> Laurent
>> Thanks a lot
>> Stefano
>> _______________________________________________
>> Bioc-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/bioc-devel
> _______________________________________________
> Bioc-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel

Computational Biology / Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N.
PO Box 19024 Seattle, WA 98109

Location: Arnold Building M1 B861
Phone: (206) 667-2793

More information about the Bioc-devel mailing list