v1.5.0
Added
- ✨
io: Read/write support for JSON and CBOR formats. (#129) - ✨
io.percolator: Added support for Comet-style N- and C-terminal modifications (#121 and #131 by @ATPs)
Changed
- ♻️
stats.qvalues: Set the regular target–decoy formula explicitly in Pyteomics whenremove_decoy=Falseand apply the +1 correction (probability that the first excluded decoy out-scores the threshold PSM). This produces less overly conservative q-values (e.g., onexample_files/msms.txt). (#128) - ♻️
io.pepxml: Refactor spectrum naming logic to preferspectrumNativeIDwhen available (#122 by @julianu) - 🏷️ Typing: Adopted full MyPy typing across the codebase. (#125)
- 👷 CI: Replaced file-hash–based tests for
io.idxmlwith unit tests; added formatting checks. (#125)
Removed
- 💥 Dropped support for Python 3.9. (#125)
Fixed
- 🐛
io.mzid: Treat MS:1001460 “unknown modification” as a delta-mass–designated modification in peptidoforms so mass calculations remain possible. Previously rendered as[unknown modification]. (#126 by @levitsky) - 🐛
io.fragpipe: Build more comprehensive ProForma strings using “Assigned Modifications” from FragPipe output. (fixes #123; #124 by @levitsky) - 🐛
peptidoform: Allow residueXwith a MassModification to indicate a gap of known mass per ProForma §4.2.7; resolves failures computing theoretical mass for non-natural residues (fixes #127). (#130)
Full Changelog: v1.4.1...v1.5.0