# Bioconductor Biobase

> Functions that are needed by many other packages or which replace R functions.

- Skill: `biomate-ai/bioconductor-biobase` (Agent Skill)
- Install (CLI): `npx skillmds@latest add biomate-ai/bioconductor-biobase`
- Raw SKILL.md: https://api.skillmd.com/api/skills/biomate-ai/bioconductor-biobase/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: biomate-ai (https://skillmd.com/u/biomate-ai)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/biomate-ai/bioconductor-biobase

---


# Biobase

Functions that are needed by many other packages or which replace R functions.

## Dependencies & Environment

> Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.

- **Version:** 2.72.0 · **Bioconductor:** 3.23 · **R:** ≥ 4.6
- **Depends:** BiocGenerics
- **Install:** `BiocManager::install("Biobase")`

## When to Use
- Coordinating high-throughput genomic data (e.g., microarray expression values) and phenotype metadata into a single, structured `ExpressionSet` object.
- Evaluating statistical functions across sample strata defined by covariates using `esApply`.
- Updating older, serialized instances of Bioconductor objects to their current class representations using `updateObject()`.

## When NOT to Use
- For modern single-cell or range-based sequencing data, use `SummarizedExperiment` or `SingleCellExperiment` instead because they natively support genomic coordinates and scale better to sparse, multi-assay datasets.
- For purely tabular data manipulation, use `dplyr` or `data.table` instead because `eSet` objects enforce strict matrix dimensions and metadata alignment that complicate simple tidy-data workflows.

## Data Requirements
- High-throughput data matrices (e.g., expression values) where rows represent features and columns represent samples.
- Sample covariates formatted as an `AnnotatedDataFrame`.
- Feature covariates formatted as an `AnnotatedDataFrame`.
- Normalization state: Typically normalized quantitative data (e.g., log-expression), though raw matrices can be stored.

## Key Parameters
- **assayData** (assayDataNew()): High-throughput data stored as a list, environment, or lockedEnvironment containing identically sized matrices.
- **phenoData** (AnnotatedDataFrame()): Sample covariates matching the column names of `assayData`.
- **featureData** (AnnotatedDataFrame()): Feature covariates matching the row names of `assayData`.
- **experimentData** (MIAME()): Experimental description and metadata.
- **annotation** (character()): Label identifying the associated annotation package.

## Best Practices
- Use accessor functions like `exprs()` and `pData()` to retrieve or assign data rather than accessing slots directly.
- Ensure that all matrices within `assayData` have identical row and column dimensions, and that `featureNames` and `sampleNames` match across all slots.
- Call `validObject()` after making structural modifications to an `eSet` to guarantee that the object remains internally consistent.
- Use `storageMode()` to check or set how `assayData` is stored, preferring `lockedEnvironment` to prevent accidental side-effects while maintaining memory efficiency.

## Common Pitfalls
- Modifying a `lockedEnvironment` directly causes an error; fix this by extracting the element, modifying it, and reassigning it, or using replacement methods like `exprs(obj) <- value`.
- Variable shadowing occurs when applying functions with `esApply`; fix this by ensuring the applied function correctly references the covariate names populated from the `pData` dataframe.
- Objects become transiently invalid during manual slot modification; fix this by calling `validObject()` after updates to ensure dimensional consistency across `assayData` and `phenoData`.

## Alternatives
- `SummarizedExperiment`: The modern Bioconductor standard for containerizing genomic data, supporting coordinate-based genomic ranges.
- `oligo`: Provides alternative, specialized class implementations for handling SNP and exon array data.
- `MultiAssayExperiment`: For integrating multiple different omics assays on the same set of biological specimens.

## Citations
- R. Gentleman, V. Carey, M. Morgan, S. Falcon and H. Khan. "esApply Introduction".
- Martin T. Morgan and H. Khan. "Biobase development and the new eSet".

## References
- Homepage: https://bioconductor.org/packages/Biobase
- Vignette: https://bioconductor.org/packages/release/bioc/vignettes/Biobase/inst/doc/ExpressionSetIntroduction.pdf

<!-- biomate-cta -->
---

## Run this on BioMate

This skill is the **knowledge layer** — when, why, and how to use `biobase`. To **run this analysis on your own data** with managed compute, automated QC, and reproducible outputs, use **[BioMate](https://www.biomate.ai?ref=kb&pkg=biobase)** — free to start.

▶ **[Open `biobase` on BioMate →](https://www.biomate.ai?ref=kb&pkg=biobase)**

