biomformat
Dependencies & Environment
Package-intrinsic requirements from the Bioconductor landing page — reproduce in any R environment.
- Version: 1.40.0 · Bioconductor: 3.23 · R: ≥ 4.6
- Imports: jsonlite, Matrix
- Install:
BiocManager::install("biomformat")
When to Use
- Reading BIOM format files (JSON or HDF5) into R using
read_biom(). - Extracting core observation data (OTU tables) as sparse matrices using
biom_data(). - Converting BIOM objects to
SummarizedExperimentobjects usingbiom_to_SummarizedExperiment(). - Constructing a BIOM object from standard R matrices and data frames using
make_biom(). - Converting BIOM data into a tidy long-format data frame for downstream analysis using
as_tibble.biom().
When NOT to Use
- For statistical analysis of microbiome data, use
phyloseqorDESeq2becausebiomformatis strictly an I/O and utility package. - For raw sequence processing, use
dada2becausebiomformatoperates on already-constructed contingency tables.
Data Requirements
- BIOM format files (v1 JSON or v2 HDF5).
- For manual construction via
make_biom(), a count matrix (features in rows, samples in columns) and optionaldata.frameobjects for observation and sample metadata.
Key Parameters
- data (default): The count matrix when using
make_biom(). - observation_metadata (default): Taxonomy or feature metadata
data.framewhen usingmake_biom(). - matrix_element_type ("int"): The data type of the matrix elements in
make_biom(). - rows (default): Character vector to subset features directly in
biom_data(). - columns (default): Character vector to subset samples directly in
biom_data().
Best Practices
- Use
read_biom()which automatically detects and routes HDF5 files toread_hdf5_biom(). - Use
as_tibble.biom()to convert data into a tidy long-format for downstreamdplyrandpurrrworkflows. - For large datasets (>2GB), use
write_hdf5_biom()instead ofwrite_biom()to avoid JSON serialization limits.
Common Pitfalls
- Attempting to print a massive BIOM object streams too much data; fix this by relying on the brief summary printed by default or using
biom_data()to inspect subsets. - Functions expecting standard matrices fail on sparse matrix classes; fix this by coercing with
as(biom_data(x), "matrix"). - Writing very large tables with
write_biom()fails due to JSON string limits; fix this by usingwrite_hdf5_biom()for HDF5 format.
Alternatives
phyloseq: Has many more utilities for interacting with and analyzing this kind of data.SummarizedExperiment: The standard Bioconductor container for rectangular feature-by-sample assay data (thoughbiomformatinteroperates with it).
Citations
- Paul J. McMurdie and Joseph N Paulson (2015). biomformat: An interface package for the BIOM file format. R/Bioconductor package version 1.0.0.
References
- Homepage: https://bioconductor.org/packages/biomformat
- Vignette: https://bioconductor.org/packages/release/bioc/vignettes/biomformat/inst/doc/biomformat.html
Run this on BioMate
This skill is the knowledge layer — when, why, and how to use biomformat. To run this analysis on your own data with managed compute, automated QC, and reproducible outputs, use BioMate — free to start.