[Bioc-devel] building R and bioconductor

Gabe Becker becker.gabe at gene.com
Tue Apr 28 19:53:32 CEST 2015

Hi all,

Laurent: Thanks for the shout-out! It's gratifying to see that people have
noticed what I'm doing.


As Laurent suggested, my switchr package (currently at
http://github.com/gmbecker/switchr , on CRAN soon) is designed to do this.
It has a few features which I think are relevant to what you're asking for:

   - It is designed to easily install cohorts of packages - or specific
   versions thereof.
   - It uses install.packages to get dependency issues right, while adding
   an extra layer that understands versions, and can retreive old versions
   from a variety of sources (github, CRAN Archive, Bioc previous releases and
   SVN, etc).
   - It provides a mechanism for describing cohorts of specific package
   versions (a SeedingManifest) in a form that can be
      - used to install the listed packages
      - deployed as a traditional repository (including integration
      testing) via my related GRANBase package
      - Published or distributed in a light-weight manner, e.g. as a github
      gist (via http://github.com/gmbecker/switchrGist )

I would argue that whatever approach you choose should deal with package
dependencies and installation order automatically. There should be no
reason for you to need to specify those yourself, and lots of downsides of
doing so. AFAIK RStudio's packrat and my switchr systems both have this

Some things switchr doesn't do:

   - Anything at the R-version level or above.
      - This is ripe for a combination with a docker-based approach. Carl
      Boettiger (cc'ed) is one of the people behind
      https://github.com/rocker-org/rocker and there was some discussion of
      incorporating switchr there for this purpose, but I don't know
if anything
      has happened with that yet.
   - Binary packages - Currently, you must have the ability to build all
   the packages you want from source on the destination system.

I'm happy to answer any further questions about switchr or to hear about
features you need that it doesn't seem to have yet.


On Tue, Apr 28, 2015 at 10:36 AM, Laurent Gatto <lg390 at cam.ac.uk> 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
> > 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

Gabriel Becker, Ph.D
Computational Biologist
Genentech Research

	[[alternative HTML version deleted]]

More information about the Bioc-devel mailing list