hdmf
A hierarchical data modeling framework for modern science data standards
What it is and what it does
HDMF is a Python framework for working with hierarchical scientific data. It sits between your data and storage backends (primarily HDF5), letting you define schemas, validate data against those schemas, and read/write structured data without hand-coding serialization logic. The package is built on numpy, pandas, h5py, jsonschema, and ruamel-yaml, so it integrates naturally into scientific Python workflows. It's designed for teams building modern science data standards—you define your data model once, and HDMF handles the mechanics of storing and retrieving it consistently.
The package targets researchers and developers working with complex, nested scientific datasets. Rather than flattening data into tables or writing custom I/O code, you describe your hierarchy declaratively and let HDMF enforce structure. It's particularly useful when you need versioned, validated, reproducible data formats across multiple tools or institutions.
Use it for:
- Define and enforce a standardized data schema for multi-site neuroscience studies using HDF5 storage.
- Build a data interchange format for a scientific collaboration where data must be validated on read and write.
- Serialize complex nested Python objects (arrays, metadata, hierarchies) to HDF5 without manual I/O code.
- Version and validate scientific datasets against evolving schema definitions.
- Create a domain-specific data format (e.g., for medical imaging or genomics) with built-in schema support.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
HDMF provides APIs for defining hierarchical data models, reading and writing data to storage backends like HDF5, and representing structured data as Python objects.
Yes. HDMF is actively maintained, has no known vulnerabilities, low install friction, and a permissive license. Install it if you need to define, validate, and serialize hierarchical scientific data with schema enforcement. Skip it if your data is simple tabular or you prefer hand-coded I/O.
Install
hdmf on PyPI
pip
pip install hdmfuv
uv add hdmfpoetry
poetry add hdmfInstalling hdmf
Before you install
Low friction: pure Python wheel, active maintenance with a release 50 days ago, and five well-established runtime dependencies (h5py, jsonschema, numpy, pandas, ruamel-yaml).
License in practice
BSD-3-Clause permissive license allows commercial and private use with minimal restrictions; redistribution requires retaining copyright notice and disclaimer.
Quickstart
pip install hdmf
import hdmf
from hdmf.backends.hdf5 import HDF5IO
# Define and serialize hierarchical data structures
Requires Python 3.10 or later; h5py depends on HDF5 system libraries.
Verify before relying
- Whether the package is actively used in production scientific workflows beyond its citation count.
- Performance characteristics when handling large hierarchical datasets.
- Compatibility with newer HDF5 versions and potential breaking changes.
Package facts
| License | BSD-3-Clause (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 5 — h5py, jsonschema, numpy, pandas, ruamel-yaml |
| Maintenance | actively maintained — 50 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 390,197/month — #7,024 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: hdmf-6.1.0-py3-none-any.whl
Tags
More Medical Science Apps. packages
Client library for the Firecrawl API that…
permissive · top 5,000 on PyPI
pydicomPydicom reads, modifies, and writes DICOM…
permissive · top 5,000 on PyPI
PubChemPyPubChemPy is a Python wrapper around the…
permissive · top 5,000 on PyPI
vtkVTK is a 3D graphics, image processing, and…
permissive · top 5,000 on PyPI
pyhmmerPyHMMER provides Python bindings to HMMER3, a…
permissive · top 5,000 on PyPI
firecrawlA Python SDK for web scraping, crawling,…
permissive · top 5,000 on PyPI
tablesPyTables provides an object-oriented interface…
permissive · top 5,000 on PyPI
h5groveh5grove provides building blocks for serving…
permissive · top 15,000 on PyPI
pynwbPyNWB provides a high-level Python API for…
permissive · top 15,000 on PyPI
maggmaMaggma provides a unified interface for…
unclear · top 15,000 on PyPI
netCDF4netcdf4 provides a Python interface to read,…
permissive · top 5,000 on PyPI
coreapiA Python client library for interacting with…
permissive · top 5,000 on PyPI
highdicomHighdicom provides a high-level Python API for…
permissive · top 15,000 on PyPI
ncompressProvides LZW compression and decompression…
permissive · top 15,000 on PyPI
fastoboParses, loads, edits, and serializes OBO (Open…
permissive · top 15,000 on PyPI
PIMSPIMS provides a unified interface to read…
permissive · top 15,000 on PyPI