Skip to content

1.0.582

Latest

Choose a tag to compare

@nbollis nbollis released this 09 Jul 23:19
00bc5cf

mzLib v1.0.582 Release Notes

Release date: July 2026
Source range: 1.0.581..1.0.582 (8 merged PRs)
Contributors: @trishorts, @nbollis, @pcruzparri


Highlights

  • New Feature: Added a canonical PSI CvParam value type in MzLibUtil — a reusable, serialization-agnostic model for controlled-vocabulary terms across mzML, mzIdentML, mzTab, and web APIs.
  • New Feature: Added 21 Koina prediction models across fragment intensity, CCS, crosslink, detectability, and retention time categories, with refactored shared infrastructure.
  • Performance: Made FromFile deconvolution feature loading lazy and I/O-free for equality/hash, so configuration-only code paths no longer parse feature files.
  • Dependency: Upgraded Thermo CommonCore RawFileReader to the native .NET 8 build (8.0.37) and reverted OpenMcdf to 2.3.1 to restore .raw reader compatibility.
  • Testing: Added reflection-based pepXML DTO coverage and unified Koina live tests under an ExternalService CI pattern that skips on outage but fails on contract breaks.

New Features

Canonical PSI CvParam type (#1087)

Adds MzLibUtil.CvParam, a small, serialization-agnostic record value type modeling the PSI cvParam — the common currency of mzML, mzIdentML, mzTab, and web APIs like PRIDE Archive. Properties include CvLabel, Accession, Name, Value, and optional unit fields, with init-only setters and value-equality semantics. The first consumer is the forthcoming PRIDE Archive client. No JSON/XML attributes or serializer dependencies are added to MzLibUtil; deserializers map wire fields by case-insensitive name matching.

Remaining Koina prediction models (#1073)

Adds 21 new concrete Koina model implementations across five prediction categories. The shared model infrastructure is refactored: request batching is deduplicated, neutral loss parsing is added, output extraction switches from positional to name-based, and a three-tier null/empty/populated convention validates parameters (collision energy, instrument type, fragmentation type). New model categories include Prosit 2019–2025 intensity variants, Ms2Pip variants (CID/TMT, HCD 2021, iTRAQ phospho, immuno HCD, TTOF/TimsTOF), AlphaPeptDeep MS2/CCS/RT generics, Altimeter 2024, UniSpec, Chronologer RT, DeepLC HeLa HF, crosslink intensity (Prosit 2023 XL, 2024 XL NMS), and detectability models. Contributed by @pcruzparri.

MostAbundantMassDiffPpm psmtsv column header (#1086)

Registers the optional "Most Abundant Mass Diff (ppm)" column in SpectrumMatchFromTsvHeader, making mzLib the single source of truth for psmtsv column names. MetaMorpheus can now reference the constant instead of duplicating the literal.


Enhancements

Lazy-load MS1 features in FromFileDeconvolutionParameters (#1085)

Replaces the eager feature-file parsing in FromFileDeconvolutionParameters with double-checked-locking lazy initialization. The constructor no longer reads, parses, or materializes the per-charge feature expansion — the cache is populated on first access. GetHashCode and Equals are now I/O-free and safe to call on an instance whose feature cache has not been materialized. This eliminates wasted memory and disk I/O in configuration-only code paths (TOML/XML loading, parameter grids, MetaMorpheus UI) and makes multi-scan reuse safe without up-front load cost.

Thermo CommonCore RawFileReader 8.0.37 (net8) upgrade (#1091)

Upgrades the checked-in Thermo CommonCore RawFileReader binaries from 5.0.0.7 (netstandard2.0) to the native .NET 8 build (8.0.37). Benefits include native net8 alignment, newer instrument/format scan-filter metadata, memory-mapped file I/O for raw access, and a cleaner dependency chain (OpenMcdf 2.3.0 binding). Includes TestRawFileReaderVersionCompat tests guarding every CommonCore API surface ThermoRawFileReader depends on. Also pins OpenMcdf to 2.3.1 — the same change as #1089 — since 8.0.37 is compiled against OpenMcdf 2.x and 3.x is an API-incompatible rewrite that breaks .raw reading.


Bug Fixes

  • OpenMcdf 3.x revert — Reverted the OpenMcdf upgrade from 3.1.3 back to 2.3.1 to restore Thermo .raw file reader functionality. OpenMcdf 3.x is an API-incompatible rewrite for which no compatible Thermo build exists (#1089).

Development & Test Infrastructure

  • pepXML DTO reflection coverage — Added PepXmlReflectionCoverageTests with three focused tests covering all 64 generated classes (~470 properties + 112 *Specified flags) in pepXML_v120.cs, achieving 100% line coverage on the 7,000-line generated file. No production code changed (#1082).
  • Koina ExternalService CI pattern — Adopted a shared ExternalServiceTestHelper pattern (mirroring MetaMorpheus) so live Koina tests run in a non-blocking CI job that skips on service outage (Assert.Ignore) while genuine contract breaks still fail loudly. The required build/test run now filters Category!=ExternalService (#1090).

Thanks

Thanks to @pcruzparri for the Koina model contributions (#1073)!


Full Changelog

1.0.581...1.0.582