This site is a development preview. As such the content and styling may not be final and is subject to change before going into production. To see more information about the redesign click here.

FAQ

This is the FAQ, currently under construction.

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 GeneRfold encountered this message:

> BiocManager::install("GeneRfold")
Bioconductor version 3.8 (BiocManager 1.30.3), R 3.5.1 Patched (2018-07-30
  r75013)
Installing package(s) 'GeneRfold'
Warning message:
package 'GeneRfold' is not available (for R version 3.5.1 Patched)

Visiting the list of package home pages shows that the package was not available on Windows, 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.

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. BiocManager::install() will automatically download packages from the correct repository. Similarly, if using older versions of R, BiocManager::install() will install the appropriate version of packages.

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.

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

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.

Citation

How do I cite Bioconductor?

Many packages provide a citation available from within R. Try

citation('DESeq')

for any installed package. To cite the project as a whole, use

citation('Biobase')