FAQ

Package Installation

BiocManager::install() warns that a package is not available

Bioconductor has a ‘release’ and a ‘devel’ branch. The ‘release’ branch is intended for most users, and is available using the current version of R. New packages are first added to the ‘devel’ branch, and then become available after the next Bioconductor release, typically in April and October. See Why use BiocManager::install()? for more information about our release policy, and these instructions if you wish to use the devel branch.

Most Bioconductor packages are available for Windows, Mac OS, and Linux operating systems. A few packages are not available on one or more platforms. This usually occurs because the package relies on additional software that is not available for the operating system. For instance, a user trying to install Rcollectl encountered this message:

    > BiocManager::install("Rcollectl")
    Bioconductor version 3.18 (BiocManager 1.30.22), R 4.3.2 Patched (2023-11-07
      r85494)
    Installing package(s) 'Rcollectl'
    Warning message:
    package 'Rcollectl' is not available (for R version 4.3.2 Patched)

Visiting the list of package home pages shows that the package was not available on Windows or Mac OS, the platform on which the user was trying to install the package. If the package Description does not indicate why the package is not available, please feel free to ask on the Bioconductor support site. You can also see if any platform is not supported on the package build report pages

It’s useful to check that the package name is spelt correctly, with correct capitalization!

Package XXX fails to install

A common reason for a package to fail to install is that R or Bioconductor software dependencies are not satisfied, as shown here from a user trying to install the affyPLM package:

    ...
    ** inst
    ** preparing package for lazy loading
    Error: package 'affy' required by 'affyPLM' could not be found
    Execution halted
    ERROR: lazy loading failed for package 'affyPLM'

Be sure to use BiocManager::install to install packages that are appropriate for your system and version of R. Be sure that your installed packages are up-to-date by following update packages.

Less commonly, packages may install but then fail to load, as here with the Rsamtools package:

    Error in dyn.load(file, DLLpath = DLLpath, ...) :
    unable to load shared library
    '/usr/local/lib64/R/library/Rsamtools/libs/Rsamtools.so':
      /usr/local/lib64/R/library/Rsamtools/libs/Rsamtools.so: undefined symbol: ecrc32

This is likely a system configuration issue, e.g., a Windows PATH environment variable is not set correctly, or the Linux ldconfig program or LD_LIBRARY_PATH environment variable is incorrect.

Packages may also fail to install because third party software is not available. This often happens during the configure part of the package installation process, as illustrated here with the XML package:

    * Installing *source* package 'XML' ...
    ...
    checking for xml2-config... no
    Cannot find xml2-config
    ERROR: configuration failed for package 'XML'

These types of errors can sometimes be easily solved (installing necessary libraries or other software, perhaps referenced on the package home page). It will often be necessary to understand your system more thoroughly than you’d like, perhaps with the assistance of the Bioconductor support site.

Installing packages from the development repository

To install a package from the development version of the Bioconductor repository, install and use the development version of R and BiocManager::install(version='devel'). See Using ‘Devel’ Version of Bioconductor

Package Use

How can I find information about using a package?

There are three main steps to using a package. (1) Identify an appropriate package. Do this using biocViews to browse available software. (2) Explore overall package functionality and work flows. Do this by reading the package vignettes, listed on the page describing the package and available from biocViews. For instance, locate IRanges vignettes. (3) Find help on particular functions, e.g.,

    library(IRanges)
    help(package="IRanges")  ## overview
    ?findOverlaps            ## specific function

For a more exploratory interface to the help system, try

    help.start()

If you are new to R, then it will help to enter into the process knowing that some basic R skills are assumed by the vignettes and help pages; spend some time learning R itself.

Library ERROR: No Package Called xxx

A package must be installed before it can be loaded with library(). Also all package dependencies should be installed. If a package or package dependency is not installed you may often see something similar to the following

	library(BiocFileCache)
	Error in library(BiocFileCache) : there is no package called 'BiocFileCache'

You must first install the package with BiocManager

	BiocManager::install("BiocFileCache")
	library(BiocFileCache)

It’s useful to check that the package name is spelt correctly, with correct capitalization! Remember R is case sensitive! If ERROR persists, reach out on the Bioconductor support site

Annotations

Different sources (e.g., annotation packages, biomaRt, manufacturer, UCSC, GO) disagree. Why?

Different sources take different approaches to managing annotations. The annotation packages in Bioconductor are based on downloads obtained shortly before each Bioconductor release, and so can lag by six months (at the end of the release cycle) compared to on-line resources. The advantage of this approach is that the annotations do not change unexpectedly during development of an analysis, while the disadvantage is that the resource is not quite up-to-date with current understanding. To find out information about data sources used for each annotation package, try a command analogous to

library(org.Hs.eg.db)
org.Hs.eg_dbInfo()

Bioconductor packages can help further investigate discrepancies, e.g., AnnotationDbi, rtracklayer, Biostrings, and BSgenome (e.g., BSgenome.Hsapiens.UCSC.hg17).

Developing Packages

Bioconductor Package Development Guidelines

See the guidelines for Bioconductor package development, maintenance, and peer review.

What packages belong in the Depends:, Imports:, or Suggests: fields?

Two relevant mailing list posts (a, b) address this. Generally, packages whose code you use in your own package should where ever possible be Import:’ed. Packages required for vignettes are often Suggest:’ed. Depends: is appropriate for packages that cannot be Import:’ed (e.g., because they do not have a NAMESPACE) or for packages that provide essential functionality needed by the user of your package, e.g., your functions always return GRanges objects, so the user will necessarily need GenomicRanges on their search path.

Troubleshooting the Build Report

Package maintainers are expected to monitor their packages. If a package starts failing on the Bioconductor build system, it is a maintainers responsibility to investigate and push any changes to the Bioconductor package repository to ensure a clean build report. Some tips on reproducing ERRORs and commonly known issues can be found on the Troubleshooting Build Report section of the contributions guidelines.

Citation

How do I cite Bioconductor?

Many packages provide a citation available from within R. Try the following on any installed package:

    citation('DESeq')

To cite the project as a whole, use

    citation('Biobase')

Connecting With Bioconductor Community

Where To Ask Questions

Most questions are appropriate to ask on the Bioconductor support site. Package development questions are best asked on the bioc-devel mailing list. The Bioconductor slack also has specialized channels for areas of research that may be helpful.

Connect With Bioconductor Community

See Support Forums for a listing of ways to connect with the community.