mzML¶
Status: Detected / refused · Vendor: HUPO PSI / MS vendors · Extensions:
.mzML,.mzMLb
mzML is the HUPO PSI XML standard for mass-spectrometry data. It is recognised by
nirs4all-formats for disambiguation but is not decoded into records: it is not a
NIRS / optical-spectroscopy format, and its primary X axis is m/z, which is
outside the current SpectralAxis model.
Instruments & software¶
Produced and consumed across the mass-spectrometry ecosystem (Thermo, Bruker,
SCIEX, Agilent and others) via the ProteoWizard / msconvert toolchain. mzML is a
useful design reference for nirs4all-formats’s data model, but its scope is MS, not
optical spectroscopy.
File structure¶
XML containers (.mzML, optionally indexedmzML-wrapped) holding <spectrum>
and <chromatogram> elements whose binary data arrays carry m/z, intensity and
time vectors, frequently zlib-compressed and/or MS-Numpress encoded. .mzMLb is
the HDF5-backed binary variant.
Why it is refused / where to go instead¶
The native registry sniffs XML .mzML / .mzMLb text containers (extension plus
a <mzML or <indexedmzML marker) at Confidence::Definite, then refuses on
read. The error counts the detected <spectrum> and <chromatogram> elements and
directs users to a dedicated MS toolkit:
pyteomics— pure-Python mzML reader/iterator.pymzML— streaming mzML access with spectrum/chromatogram objects.pyOpenMS— full OpenMS bindings for MS data.
The reader does not decode spectra, chromatograms, zlib arrays or MS-Numpress
payloads. If mzML support is ever needed it should be introduced as an explicit
adjacent MS model or a separate adapter, not as a silent optical-spectrum import
path that coerces m/z arrays into NIRS SpectralRecords.
Variants & support status¶
Variant |
Status |
Notes |
|---|---|---|
|
Detected / refused |
Refused with a pointer to |
|
Detected / refused |
Same path; recognised by the |
|
Documented only |
Listed in scope; not separately exercised. |
Limitations & known gaps¶
No decoding of any kind — this is a deliberate refusal, not a partial reader.
.mzMLbis documented but not separately covered by a fixture.
Reference readers¶
pyteomics, pymzML and pyOpenMS are the recommended tools and the references
named in the refusal message.
Samples & validation¶
Fixtures live under samples/mzml/ and assert the refusal behaviour:
Fixture |
Behaviour |
Notes |
|---|---|---|
|
refused |
MS1 spectrum collection |
|
refused |
Chromatogram example |
|
refused |
Chromatogram with MS-Numpress compression |