[R] Setting bioconductor repository in .Rprofile. Is there a permanent way?

Martin Morgan mtmorgan at fhcrc.org
Mon Jan 24 19:56:17 CET 2011


On 01/24/2011 10:45 AM, Kevin Wright wrote:
> I currently set the Bioconductor repository in my .Rprofile using this
> code (which needs editing for every version number change of
> Bioconductor):
> 
> # Choose repositories
> repos <- structure(c(CRAN="http://streaming.stat.iastate.edu/CRAN",
>                      CRANextra="http://www.stats.ox.ac.uk/pub/RWin",
>                      BioCsoft="http://www.bioconductor.org/packages/2.7/bioc",
>                      Rforge="http://r-forge.r-project.org"))
> options(repos=repos)
> rm(repos)
> 
> I'd like to avoid editing the version number.  One hack to do so is
> this code that adds all repositories.
> 
> setRepositories(ind=1:10)
> r <- getOption("repos")
> r <- r[!is.na(r)]
> options(repos=r)
> 
> Is there a simpler way?  I've searched for quite a while without
> finding an answer.
> 
> 
> Incidentally, the help page for "options" says:
> A Bioconductor mirror can be selected by setting
> options("BioC_mirror"): the default value is
> "http://www.bioconductor.org".
> The word "default" is a bit confusing here, because when I start R, I see:

one possibility is to

  source('http://bioconductor.org/biocLite.R')

in .Rprofile, after which biocinstallRepos() provides the correct bioc
repositories for the version of R in use; it does clutter the .GlobalEnv
a little and would be irritating if, e.g., on a laptop,  internet access
were slow or not reliable. For the latter I wrote

makeActiveBinding("biocLite", local({
    env <- new.env()
    function() {
        if (!exists("biocLite", envir=env, inherits=FALSE)) {
            evalq(source("http://bioconductor.org/biocLite.R",
                         local=TRUE),
                  env)
        }
        env[["biocLite"]]
    }
}), .GlobalEnv)

which doesn't make the connection until one accesses the biocLite variable.

Martin

> 
> R> options()$BioC_mirror
> NULL
> 
> 


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

Location: M1-B861
Telephone: 206 667-2793



More information about the R-help mailing list