
HUPO-PSI Recommendation · Working Draft
File Format Specification¶
An open, columnar, random-access file format for storing mass spectra, chromatograms, and rich instrument metadata. It is designed to succeed mzML for modern, large-scale mass spectrometry.
This is a working draft
This document is a DRAFT under active revision and has not yet been ratified through the HUPO-PSI Document Process. Content, schemas, and controlled-vocabulary terms may change. Feedback is explicitly solicited, please open an issue.
Abstract¶
mzPeak is an open, next-generation file format for mass spectrometry data. Advances in MS instrumentation have sharply increased the volume and dimensionality. Established open formats struggle with the resulting file sizes, data-access patterns, and metadata demands. mzPeak is designed to address these needs as a community standard, the motivation and design rationale are set out in the accompanying white paper (1).
The on-disk structure is language-independent, but uses widely available libraries across many languages to decode a entries without parsing an entire run. It works with any byte storage, on local disk, object storage, or over HTTP. This document specifies that format: its container, data layouts, index file, and metadata model.
What you'll find here¶
-
Introduction
Why mzPeak exists, what problems it solves, and a high-level tour of an archive.
-
Foundations
A short Parquet primer and how multiple Parquet files are bundled into one archive.
-
Data Layouts
Metadata tables, the array index, and the point & chunked signal layouts.
-
Archive Organization
The
mzpeak_index.jsonfile, data kinds, and entity types that organise a run. -
File Schemas
Concrete column-level schemas for spectra, chromatograms, and wavelength spectra.
-
Implementations
The read/write libraries — Rust, Python, R, C#, Java, JavaScript/TypeScript, and C++.
-
Tools
Converters, the conformance validator, browser viewers, and example data.
-
Reference
Glossary, bibliography, authorship, and the intellectual-property statement.
Reference implementations¶
mzPeak is backed by seven independent, from-scratch implementations (not bindings to a single core):
- Rust: read/write reference implementation · HUPO-PSI/mzPeak
- Python: read-only, zero-copy Arrow/Pandas API · mzpeak_prototyping
- R: read-only,
dplyr-compatible access · mzpeak_prototyping - C#: read/write · HUPO-PSI/mzPeak.NET
- Java: read/write demonstrator · okohlbacher/mzPeakJ
- JavaScript / TypeScript: read-only, runs in the browser, Node, and Deno · online viewer
- C++: read-only, work in progress · OpenMS/mzpeak
See Implementations for details, and Tools for converters, the conformance validator, and viewers.
Status of this document¶
This document provides information to the proteomics community about the mzPeak file format. Distribution is unlimited. It will be ratified via the HUPO Proteomics Standards Initiative (PSI) Document Process, and any alterations must also follow the HUPO-PSI Document Process.
Version: Draft 6 of version 0.9