Some mzML files are self-describing: their whole experiment is encoded into the
first spectrum as synthetic peaks in the m/z 5–12 window, laid along a Hilbert
curve (SpectraCodec).
Drop a folder of them in and this pulls the embedded metadata out of every file — decoded in
parallel across your CPU cores by a Rust → WASM engine — and gives you one combined
metadata table (TSV / JSON). Everything runs locally; only the first spectrum of each file is read.
| # | file | unique_file_id | category | genus / strain | closest 16S | timepoint | OD600 | mode | files | fasta |
|---|
Decoding mirrors SpectraCodec.decode_message_from_file: the first spectrum's peaks are filtered to m/z 5–12, intensity 100–1000, mapped to Hilbert coordinates, walked back to bit positions, then base64-decoded and zlib-inflated to the payload JSON. The inflate + filtering run in JS (native DecompressionStream); the Hilbert walk runs in a Rust → WASM module; the whole thing runs in a pool of Web Workers. Each run is joined to its row in the embedded manifest by lcms_run_uuid. Example dataset: lbnl-metabolomics/ExoW3-NLDM.