# Using renv with Bioconductor

`renv` has been designed to work together as seamlessly as possible with the Bioconductor project. This vignette outlines some of the extra steps that may be required when using `renv` with packages obtained from Bioconductor.

## Initializing a Project

To initialize `renv` in a project using Bioconductor, you can pass the `bioconductor` argument to `renv::init()`:

    # use the latest-available Bioconductor release
    renv::init(bioconductor = TRUE)

    # use a specific version of Bioconductor
    renv::init(bioconductor = "3.14")

This will tell `renv` to activate the appropriate Bioconductor repositories, and to use those repositories when attempting to restore packages.

## Bioconductor Releases

Bioconductor prepares different versions of its package repositories, for use with different versions of R. The version of Bioconductor used within a particular `renv` project is stored both as a project setting, and also within the project lockfile. This allows you to “lock” a particular project to a particular Bioconductor release, even as new Bioconductor releases are made available for newer versions of R.

To set the version of Bioconductor used in a project, you can use:

    renv::settings$bioconductor.version("3.14")

If you later choose to upgrade R, you may need to upgrade the version of Bioconductor used as well.

If you want to override the Bioconductor repositories used by `renv`, you can also explicitly set the following option:

    options(renv.bioconductor.repos = c(...))