Skip to content

spectrl 2.0.0: spectrum-only format

Choose a tag to compare

@pgarrett-scripps pgarrett-scripps released this 14 Sep 19:17

spectrl 2.0.0 introduces the spectrl.v2 format for measured mass spectra and acquisition context. Molecular identifications and fragment assignments are outside the format.

Breaking changes

  • Remove interp from the Python and TypeScript spectrum models and encoding APIs.
  • Reserve header key 7 and reject every occurrence in v2, including null.
  • Normal encoders, decoders, URL helpers, CLI commands, and the browser demo now use spectrl.v2.
  • Remove the optional Python ProForma validation dependency.

All other header keys retain their meanings. Existing array codecs, units, acquisition metadata, quality reports, and size-budget helpers remain available.

Reading archived v1 tokens

Use spectrl.legacy.decode_v1_token in Python or decodeV1Token from @spectrl-ms/spectrl/legacy in TypeScript. These explicit compatibility decoders return the spectrum and its legacy interpretation separately.

Review or save the interpretation before re-encoding the spectrum as v2. Do not change a token prefix by hand. Published v1 releases and their token semantics remain unchanged.

Validation

The release passed 365 Python tests, 180 TypeScript tests, decoder mutation checks, clean wheel and npm package installations, and browser regression tests. The manuscript analysis additionally verified normalized lossless reconstruction across 3,549 spectra from five public files and complete bidirectional corpus interoperability on 41 structurally varied spectra in default and lossless modes.