[Bioc-devel] Biobase dependencies

Herve Pages hpages at fhcrc.org
Thu Oct 25 20:59:53 CEST 2007

Hi Pingou,

All the Bioconductor packages for a given release are distributed
across several repositories: software, data-annotation and data-experiment.
There is no guarantee that this set of repositories will be the same for
every new BioC release. So, in order to make this transparent for the user
(and to make his/her life a little bit easier), we provide the biocLite.R
script: it "knows" which repositories to use for your version of R.

More precisely. If you do:


then you'll see that a few objects are now defined in you session.
biocinstallRepos() is the function that returns the set of repositories
used by biocLite() for your version of R.
Note that, for completeness, biocinstallRepos() also includes a repository
called "extra" and a CRAN mirror. This is because some BioC package depend
(directly or indirectly) on packages located in these repos.
Also note that the URLs returned by biocinstallRepos() are browsable.

If you try this:


you'll see that biocLite() finds the ALL package (if you pay attention
to where it downloads it from, you'll see that it's hosted on the
data-experiment repo).

But people installing Biobase don't need to do this. They just need to


and biocLite() will take care of the dependencies.

Unless you use 'dependencies=TRUE' (note that all the install.packages args
can be used with biocLite), only the "strictly required" dependencies are
installed (recursively of course). "Strictly required" means "the packages
specified in the Depends and Imports fields".
To my knowledge, there are no circular dependencies in Bioconductor as long
as only the Depends and Imports edges are considered in the graph of

A lot of packages also use a Suggest field (e.g. Biobase suggests ALL,
Biostrings suggests BSgenome.Celegans.UCSC.ce2). Most of the times, people
don't need the suggested stuff. It could be that this stuff is only used in
the vignette or in some of the man pages (in the example section).
That's the case for Biostrings. Forcing people to install all the stuff
suggested by Biostrings (by putting it in the Depends field) would be a
bad idea. First it would introduce circular dependencies. Second it would
force them to download gigabytes of data that they don't need!

All this to say that I don't think that people using the RPM version of
Bioconductor should be forced to install the suggested stuff.


pingou wrote:
> Dear all,
> Trying to do the RPM of Bioconductor for Fedora and CentOs, I am
> updating my package to the last version.
> In the case of Biobase [1] I met a problem.
> To do a good installation through RPM, the packaging guide lines [2]
> require to run the R CMD check command.
> But Biobase, seems to need a library called "ALL", I have been looking 
> for a library called ALL in the Bioconductor repository, on the CRAN 
> website, through google and I could not find any.
> So my question is then, does this library exist ?
> If not why is it present on the DESCRIPTION file as 'R CMD check' check
> for the required library *but also* for the suggest library.
> When I try to package it, it returns me
>  >Namespace dependencies not required:
>  >  ALL
> This question in fact create some problems of circular dependencies to
> create the RPM
> For example BSgenome [3] needs Biostring [4] which need BSgenome...
> Should we not try to avoid this kind of dependencies so that the R CMD
> check can be apply without problem ?
> My two questions, and my two cents to this project,
> Thanks in advance,
> Best regards,
> P.Yves Chibon
> [1] http://bioconductor.org/packages/2.2/bioc/html/Biobase.html
> [2] http://fedoraproject.org/wiki/Packaging/R
> [3] http://bioconductor.org/packages/2.2/bioc/html/BSgenome.html
> [4] http://bioconductor.org/packages/2.2/bioc/html/Biostrings.html
> _______________________________________________
> Bioc-devel at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel

More information about the Bioc-devel mailing list