Reusing Common Methods and Classes

Covers: Chapter 5 - Common Bioconductor methods and classes.

Core principles

  • Interoperability is required: packages are generally NOT accepted unless they demonstrate interoperability, typically by reusing existing Bioconductor classes and methods where appropriate.
  • Bioconductor uses the S4 object system for genomic data because it provides formal class definitions, multiple inheritance, and validity checking.
  • New classes require strong justification and must clearly describe how they interoperate with existing Bioconductor infrastructure.
  • Before creating new classes, discuss the proposal on the bioc-devel mailing list or Bioconductor Slack for community feedback.

Classes to reuse (by data type)

Data type Recommended class / package
Count matrices, microarray data SummarizedExperiment::SummarizedExperiment()
Genomic coordinates GenomicRanges::GRanges()
Multi-sample genomic coordinates GenomicRanges::GRangesList()
Variable-length / ragged coordinates RaggedExperiment::RaggedExperiment()
DNA/RNA/protein sequences Biostrings::*StringSet()
Gene sets / collections BiocSet::BiocSet() or GSEABase equivalents
Multi-omics integration MultiAssayExperiment::MultiAssayExperiment()
Single-cell data SingleCellExperiment::SingleCellExperiment()
Mass spectrometry Spectra::Spectra()

Import / parsing methods to reuse

Use existing importers instead of writing custom parsers:

  • Genomic file formats (BED, GFF, etc.): rtracklayer
  • VCF: VariantAnnotation
  • BAM / sequencing alignments: Rsamtools, GenomicAlignments
  • FASTA sequences: Biostrings
  • Mass spectrometry data: Spectra

When importing Bioconductor classes

  • Import the full class package (via import()) so that full class functionality is inherited automatically (see namespace guidance in metadata-files.md).

Source: Reusing Bioconductor methods and classes Fetched 2026-08-14 from contributions.bioconductor.org (Bioconductor devel guide).


This site uses Just the Docs, a documentation theme for Jekyll.