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.