Skip to contents

Basics

Install BiocPkgToolsPlus

R is an open-source statistical environment which can be easily modified to enhance its functionality via packages. BiocPkgToolsPlus is a R package available via the Bioconductor repository for packages. R can be installed on any operating system from CRAN after which you can install BiocPkgToolsPlus by using the following commands in your R session:

if (!requireNamespace("BiocManager", quietly = TRUE)) {
      install.packages("BiocManager")
  }

BiocManager::install("BiocPkgToolsPlus")

## Check that you have a valid Bioconductor installation
BiocManager::valid()

Required knowledge

BiocPkgToolsPlus is based on many other packages and in particular in those that have implemented the infrastructure needed for dealing with RNA-seq data (EDIT!). That is, packages like SummarizedExperiment (EDIT!).

If you are asking yourself the question “Where do I start using Bioconductor?” you might be interested in this blog post.

Asking for help

As package developers, we try to explain clearly how to use our packages and in which order to use the functions. But R and Bioconductor have a steep learning curve so it is critical to learn where to ask for help. The blog post quoted above mentions some but we would like to highlight the Bioconductor support site as the main resource for getting help: remember to use the BiocPkgToolsPlus tag and check the older posts. Other alternatives are available such as creating GitHub issues and tweeting. However, please note that if you want to receive help you should adhere to the posting guidelines. It is particularly critical that you provide a small reproducible example and your session information so package developers can track down the source of the error.

Citing BiocPkgToolsPlus

We hope that BiocPkgToolsPlus will be useful for your research. Please use the following information to cite the package and the overall approach. Thank you!

## Citation info
citation("BiocPkgToolsPlus")
#> To cite package 'BiocPkgToolsPlus' in publications use:
#> 
#>   kevinrue (2025). _Demonstration of a Bioconductor Package_.
#>   doi:10.18129/B9.bioc.BiocPkgToolsPlus
#>   <https://doi.org/10.18129/B9.bioc.BiocPkgToolsPlus>,
#>   https://github.com/kevinrue/BiocPkgToolsPlus/BiocPkgToolsPlus - R
#>   package version 0.99.0,
#>   <http://www.bioconductor.org/packages/BiocPkgToolsPlus>.
#> 
#>   kevinrue (2025). "Demonstration of a Bioconductor Package."
#>   _bioRxiv_. doi:10.1101/TODO <https://doi.org/10.1101/TODO>,
#>   <https://www.biorxiv.org/content/10.1101/TODO>.
#> 
#> To see these entries in BibTeX format, use 'print(<citation>,
#> bibtex=TRUE)', 'toBibtex(.)', or set
#> 'options(citation.bibtex.max=999)'.

Quick start to using to BiocPkgToolsPlus

Use cases

Getting packages under a biocViews term

out <- get_packages_by_view("Spatial")
#> 'getOption("repos")' replaces Bioconductor standard repositories, see
#> 'help("repositories", package = "BiocManager")' for details.
#> Replacement repositories:
#>     CRAN: https://p3m.dev/cran/__linux__/noble/latest
str(out)
#>  chr [1:79] "alabaster.sfe" "Banksy" "BatchSVG" "betaHMM" "BulkSignalR" ...

Getting packages at the intersection of multiple biocViews terms

out <- get_packages_by_views(c("Spatial", "SingleCell", "Sequencing"))
#> 'getOption("repos")' replaces Bioconductor standard repositories, see
#> 'help("repositories", package = "BiocManager")' for details.
#> Replacement repositories:
#>     CRAN: https://p3m.dev/cran/__linux__/noble/latest
str(out)
#>  chr [1:13] "DESpace" "knowYourCG" "miRspongeR" "mitology" "poem" ...

Getting biocViews co-occurrence counts

library("dplyr")
out <- get_view_cooccurrences("Spatial")
out |> arrange(desc(value))
#> # A tibble: 65 × 2
#>    package            value
#>    <chr>              <int>
#>  1 Transcriptomics       51
#>  2 SingleCell            49
#>  3 GeneExpression        42
#>  4 DataImport            18
#>  5 RNASeq                15
#>  6 Clustering            14
#>  7 ImmunoOncology        10
#>  8 DataRepresentation     8
#>  9 CellBasedAssays        7
#> 10 QualityControl         7
#> # ℹ 55 more rows

The output can be used to instantly produce a wordcloud with a choice of packages, for instance BiocStyle::CRANpkg("wordcloud2"):

library("wordcloud2")
wordcloud2(out, minRotation = -pi/2, maxRotation = pi/2, size = 0.5)

Note that setting size to a value lower than 1 is a workaround sometimes needed to display the most frequent words, as per this thread.

Getting biocViews representation over time

The number of packages annotated by a single biocView term (or one of its children) can be obtained as follows:

out <- get_view_counts_over_time("Spatial")
#> 'getOption("repos")' replaces Bioconductor standard repositories, see
#> 'help("repositories", package = "BiocManager")' for details.
#> Replacement repositories:
#>     CRAN: https://p3m.dev/cran/__linux__/noble/latest
#> Checking for Bioc Release Update
out
#> # A tibble: 40 × 2
#>    date       count
#>    <date>     <int>
#>  1 2006-01-01     0
#>  2 2006-07-01     0
#>  3 2007-01-01     0
#>  4 2007-07-01     0
#>  5 2008-01-01     0
#>  6 2008-07-01     0
#>  7 2009-01-01     0
#>  8 2009-07-01     0
#>  9 2010-01-01     0
#> 10 2010-07-01     0
#> # ℹ 30 more rows

The output can be instantly plotted using BiocStyle::CRANpkg("ggplot2"):

library("ggplot2")
ggplot(out, aes(date, count)) +
  geom_point() +
  labs(
    title = "Spatial",
    y = "Packages",
    x = "Time"
  )
Count of 'Spatial' packages over time.

Count of ‘Spatial’ packages over time.

To get the counts for multiple biocViews terms, use get_views_counts_over_time():

out <- get_views_counts_over_time(c("Spatial", "SingleCell"))
#> 'getOption("repos")' replaces Bioconductor standard repositories, see
#> 'help("repositories", package = "BiocManager")' for details.
#> Replacement repositories:
#>     CRAN: https://p3m.dev/cran/__linux__/noble/latest
#> Checking for Bioc Release Update
out
#> # A tibble: 40 × 3
#>    date       Spatial SingleCell
#>    <date>       <int>      <int>
#>  1 2006-01-01       0          0
#>  2 2006-07-01       0          0
#>  3 2007-01-01       0          0
#>  4 2007-07-01       0          0
#>  5 2008-01-01       0          0
#>  6 2008-07-01       0          0
#>  7 2009-01-01       0          1
#>  8 2009-07-01       0          1
#>  9 2010-01-01       0          1
#> 10 2010-07-01       0          1
#> # ℹ 30 more rows

With a little bit more data wrangling, the output can also be plotted for all the terms at once, for instance:

library("tidyr")
library("ggplot2")
out|>
  pivot_longer(!date) |>
  ggplot(aes(date, value, colour = name)) +
  geom_point() +
  labs(
    y = "Packages",
    x = "Time",
    colour = "biocView"
  )
Count of 'Spatial' or 'SingleCell' packages over time.

Count of ‘Spatial’ or ‘SingleCell’ packages over time.

Getting a package-by-biocView membership matrix

out <- get_view_membership_matrix()
#> 'getOption("repos")' replaces Bioconductor standard repositories, see
#> 'help("repositories", package = "BiocManager")' for details.
#> Replacement repositories:
#>     CRAN: https://p3m.dev/cran/__linux__/noble/latest
out[1:5, 1:5]
#>           BiocViews Software AnnotationData ExperimentData Workflow
#> a4             TRUE     TRUE          FALSE          FALSE    FALSE
#> a4Base         TRUE     TRUE          FALSE          FALSE    FALSE
#> a4Classif      TRUE     TRUE          FALSE          FALSE    FALSE
#> a4Core         TRUE     TRUE          FALSE          FALSE    FALSE
#> a4Preproc      TRUE     TRUE          FALSE          FALSE    FALSE

Getting packages similar to a query package

out <- get_similar_packages("AUCell")
#> 'getOption("repos")' replaces Bioconductor standard repositories, see
#> 'help("repositories", package = "BiocManager")' for details.
#> Replacement repositories:
#>     CRAN: https://p3m.dev/cran/__linux__/noble/latest
out
#> # A tibble: 2,352 × 2
#>    package         similarity
#>    <chr>                <dbl>
#>  1 UCell                0.975
#>  2 awst                 0.969
#>  3 CellMixS             0.969
#>  4 CSOA                 0.969
#>  5 EasyCellType         0.969
#>  6 HVP                  0.969
#>  7 aggregateBioVar      0.963
#>  8 batchelor            0.963
#>  9 COTAN                0.963
#> 10 MAST                 0.963
#> # ℹ 2,342 more rows

Here is an example of you can cite your package inside the vignette:

Reproducibility

The BiocPkgToolsPlus package (kevinrue, 2025) was made possible thanks to:

  • R (R Core Team, 2025)
  • BiocStyle (Oleś, 2025)
  • knitr (Xie, 2025)
  • RefManageR (McLean, 2017)
  • rmarkdown (Allaire, Xie, Dervieux, McPherson, Luraschi, Ushey, Atkins, Wickham, Cheng, Chang, and Iannone, 2025)
  • sessioninfo (Wickham, Chang, Flight, Müller, and Hester, 2025)
  • testthat (Wickham, 2011)

This package was developed using biocthis.

Code for creating the vignette

## Create the vignette
library("rmarkdown")
system.time(render("BiocPkgToolsPlus.Rmd", "BiocStyle::html_document"))

## Extract the R code
library("knitr")
knit("BiocPkgToolsPlus.Rmd", tangle = TRUE)

Date the vignette was generated.

#> [1] "2025-10-22 08:40:39 UTC"

Wallclock time spent generating the vignette.

#> Time difference of 24.331 secs

R session information.

#> ─ Session info ───────────────────────────────────────────────────────────────────────────────────────────────────────
#>  setting  value
#>  version  R version 4.5.1 (2025-06-13)
#>  os       Ubuntu 24.04.3 LTS
#>  system   x86_64, linux-gnu
#>  ui       X11
#>  language en
#>  collate  en_US.UTF-8
#>  ctype    en_US.UTF-8
#>  tz       UTC
#>  date     2025-10-22
#>  pandoc   3.8.1 @ /usr/bin/ (via rmarkdown)
#>  quarto   1.7.32 @ /usr/local/bin/quarto
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────────────────────────────────────────────
#>  package          * version   date (UTC) lib source
#>  backports          1.5.0     2024-05-23 [1] RSPM (R 4.5.0)
#>  bibtex             0.5.1     2023-01-26 [1] RSPM (R 4.5.0)
#>  Biobase            2.69.1    2025-10-07 [1] Bioconductor 3.22 (R 4.5.1)
#>  BiocFileCache      2.99.6    2025-10-07 [1] Bioconductor 3.22 (R 4.5.1)
#>  BiocGenerics       0.55.4    2025-10-17 [1] Bioconductor 3.22 (R 4.5.1)
#>  BiocManager        1.30.26   2025-06-05 [2] CRAN (R 4.5.1)
#>  BiocPkgTools       1.27.12   2025-10-07 [1] Bioconductor 3.22 (R 4.5.1)
#>  BiocPkgToolsPlus * 0.99.0    2025-10-22 [1] Bioconductor
#>  BiocStyle        * 2.37.1    2025-10-07 [1] Bioconductor 3.22 (R 4.5.1)
#>  biocViews        * 1.77.4    2025-10-07 [1] Bioconductor 3.22 (R 4.5.1)
#>  bit                4.6.0     2025-03-06 [1] RSPM (R 4.5.0)
#>  bit64              4.6.0-1   2025-01-16 [1] RSPM (R 4.5.0)
#>  bitops             1.0-9     2024-10-03 [1] RSPM (R 4.5.0)
#>  blob               1.2.4     2023-03-17 [1] RSPM (R 4.5.0)
#>  bookdown           0.45      2025-10-03 [1] RSPM (R 4.5.0)
#>  bslib              0.9.0     2025-01-30 [2] RSPM (R 4.5.0)
#>  cachem             1.1.0     2024-05-16 [2] RSPM (R 4.5.0)
#>  cli                3.6.5     2025-04-23 [2] RSPM (R 4.5.0)
#>  curl               7.0.0     2025-08-19 [2] RSPM (R 4.5.0)
#>  DBI                1.2.3     2024-06-02 [1] RSPM (R 4.5.0)
#>  dbplyr             2.5.1     2025-09-10 [1] RSPM (R 4.5.0)
#>  desc               1.4.3     2023-12-10 [2] RSPM (R 4.5.0)
#>  digest             0.6.37    2024-08-19 [2] RSPM (R 4.5.0)
#>  dplyr            * 1.1.4     2023-11-17 [1] RSPM (R 4.5.0)
#>  DT                 0.34.0    2025-09-02 [1] RSPM (R 4.5.0)
#>  evaluate           1.0.5     2025-08-27 [2] RSPM (R 4.5.0)
#>  farver             2.1.2     2024-05-13 [1] RSPM (R 4.5.0)
#>  fastmap            1.2.0     2024-05-15 [2] RSPM (R 4.5.0)
#>  filelock           1.0.3     2023-12-11 [1] RSPM (R 4.5.0)
#>  fs                 1.6.6     2025-04-12 [2] RSPM (R 4.5.0)
#>  generics           0.1.4     2025-05-09 [1] RSPM (R 4.5.0)
#>  ggplot2          * 4.0.0     2025-09-11 [1] RSPM (R 4.5.0)
#>  gh                 1.5.0     2025-05-26 [2] RSPM (R 4.5.0)
#>  glue               1.8.0     2024-09-30 [2] RSPM (R 4.5.0)
#>  graph              1.87.0    2025-04-15 [1] Bioconductor 3.22 (R 4.5.0)
#>  gtable             0.3.6     2024-10-25 [1] RSPM (R 4.5.0)
#>  hms                1.1.4     2025-10-17 [1] RSPM (R 4.5.0)
#>  htmltools          0.5.8.1   2024-04-04 [2] RSPM (R 4.5.0)
#>  htmlwidgets        1.6.4     2023-12-06 [2] RSPM (R 4.5.0)
#>  httr               1.4.7     2023-08-15 [1] RSPM (R 4.5.0)
#>  httr2              1.2.1     2025-07-22 [2] RSPM (R 4.5.0)
#>  igraph             2.2.0     2025-10-13 [1] RSPM (R 4.5.0)
#>  jquerylib          0.1.4     2021-04-26 [2] RSPM (R 4.5.0)
#>  jsonlite           2.0.0     2025-03-27 [2] RSPM (R 4.5.0)
#>  knitr              1.50      2025-03-16 [2] RSPM (R 4.5.0)
#>  labeling           0.4.3     2023-08-29 [1] RSPM (R 4.5.0)
#>  lifecycle          1.0.4     2023-11-07 [2] RSPM (R 4.5.0)
#>  lubridate          1.9.4     2024-12-08 [1] RSPM (R 4.5.0)
#>  magrittr           2.0.4     2025-09-12 [2] RSPM (R 4.5.0)
#>  memoise            2.0.1     2021-11-26 [2] RSPM (R 4.5.0)
#>  pillar             1.11.1    2025-09-17 [2] RSPM (R 4.5.0)
#>  pkgconfig          2.0.3     2019-09-22 [2] RSPM (R 4.5.0)
#>  pkgdown            2.1.3     2025-05-25 [2] RSPM (R 4.5.0)
#>  plyr               1.8.9     2023-10-02 [1] RSPM (R 4.5.0)
#>  purrr              1.1.0     2025-07-10 [2] RSPM (R 4.5.0)
#>  R6                 2.6.1     2025-02-15 [2] RSPM (R 4.5.0)
#>  ragg               1.5.0     2025-09-02 [2] RSPM (R 4.5.0)
#>  rappdirs           0.3.3     2021-01-31 [2] RSPM (R 4.5.0)
#>  RBGL               1.85.0    2025-04-15 [1] Bioconductor 3.22 (R 4.5.0)
#>  RColorBrewer       1.1-3     2022-04-03 [1] RSPM (R 4.5.0)
#>  Rcpp               1.1.0     2025-07-02 [2] RSPM (R 4.5.0)
#>  RCurl              1.98-1.17 2025-03-22 [1] RSPM (R 4.5.0)
#>  readr              2.1.5     2024-01-10 [1] RSPM (R 4.5.0)
#>  RefManageR       * 1.4.0     2022-09-30 [1] RSPM (R 4.5.0)
#>  rlang              1.1.6     2025-04-11 [2] RSPM (R 4.5.0)
#>  rmarkdown          2.30      2025-09-28 [2] RSPM (R 4.5.0)
#>  RSQLite            2.4.3     2025-08-20 [1] RSPM (R 4.5.0)
#>  RUnit              0.4.33.1  2025-06-17 [1] RSPM (R 4.5.0)
#>  rvest              1.0.5     2025-08-29 [1] RSPM (R 4.5.0)
#>  S7                 0.2.0     2024-11-07 [1] RSPM (R 4.5.0)
#>  sass               0.4.10    2025-04-11 [2] RSPM (R 4.5.0)
#>  scales             1.4.0     2025-04-24 [1] RSPM (R 4.5.0)
#>  sessioninfo      * 1.2.3     2025-02-05 [2] RSPM (R 4.5.0)
#>  stringi            1.8.7     2025-03-27 [2] RSPM (R 4.5.0)
#>  stringr            1.5.2     2025-09-08 [2] RSPM (R 4.5.0)
#>  systemfonts        1.3.1     2025-10-01 [2] RSPM (R 4.5.0)
#>  textshaping        1.0.4     2025-10-10 [2] RSPM (R 4.5.0)
#>  tibble             3.3.0     2025-06-08 [2] RSPM (R 4.5.0)
#>  tidyr            * 1.3.1     2024-01-24 [1] RSPM (R 4.5.0)
#>  tidyselect         1.2.1     2024-03-11 [1] RSPM (R 4.5.0)
#>  timechange         0.3.0     2024-01-18 [1] RSPM (R 4.5.0)
#>  tzdb               0.5.0     2025-03-15 [1] RSPM (R 4.5.0)
#>  utf8               1.2.6     2025-06-08 [2] RSPM (R 4.5.0)
#>  vctrs              0.6.5     2023-12-01 [2] RSPM (R 4.5.0)
#>  withr              3.0.2     2024-10-28 [2] RSPM (R 4.5.0)
#>  wordcloud2       * 0.2.1     2018-01-03 [1] RSPM (R 4.5.0)
#>  xfun               0.53      2025-08-19 [2] RSPM (R 4.5.0)
#>  XML                3.99-0.19 2025-08-22 [1] RSPM (R 4.5.0)
#>  xml2               1.4.0     2025-08-20 [2] RSPM (R 4.5.0)
#>  yaml               2.3.10    2024-07-26 [2] RSPM (R 4.5.0)
#> 
#>  [1] /__w/_temp/Library
#>  [2] /usr/local/lib/R/site-library
#>  [3] /usr/local/lib/R/library
#>  * ── Packages attached to the search path.
#> 
#> ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Bibliography

This vignette was generated using BiocStyle (Oleś, 2025) with knitr (Xie, 2025) and rmarkdown (Allaire, Xie, Dervieux et al., 2025) running behind the scenes.

Citations made with RefManageR (McLean, 2017).

[1] J. Allaire, Y. Xie, C. Dervieux, et al. rmarkdown: Dynamic Documents for R. R package version 2.30. 2025. URL: https://github.com/rstudio/rmarkdown.

[2] kevinrue. Demonstration of a Bioconductor Package. https://github.com/kevinrue/BiocPkgToolsPlus/BiocPkgToolsPlus - R package version 0.99.0. 2025. DOI: 10.18129/B9.bioc.BiocPkgToolsPlus. URL: http://www.bioconductor.org/packages/BiocPkgToolsPlus.

[3] M. W. McLean. “RefManageR: Import and Manage BibTeX and BibLaTeX References in R”. In: The Journal of Open Source Software (2017). DOI: 10.21105/joss.00338.

[4] A. Oleś. BiocStyle: Standard styles for vignettes and other Bioconductor documents. R package version 2.37.1. 2025. DOI: 10.18129/B9.bioc.BiocStyle. URL: https://bioconductor.org/packages/BiocStyle.

[5] R Core Team. R: A Language and Environment for Statistical Computing. R Foundation for Statistical Computing. Vienna, Austria, 2025. URL: https://www.R-project.org/.

[6] H. Wickham. “testthat: Get Started with Testing”. In: The R Journal 3 (2011), pp. 5–10. URL: https://journal.r-project.org/archive/2011-1/RJournal_2011-1_Wickham.pdf.

[7] H. Wickham, W. Chang, R. Flight, et al. sessioninfo: R Session Information. R package version 1.2.3. 2025. URL: https://github.com/r-lib/sessioninfo#readme.

[8] Y. Xie. knitr: A General-Purpose Package for Dynamic Report Generation in R. R package version 1.50. 2025. URL: https://yihui.org/knitr/.