Releases: CompOmics/psm_utils
Releases · CompOmics/psm_utils
Release list
v1.5.5
Fixed
io.pepxml: Fix aTypeErrorwhen none of the standard search engine scores are found and the fallback (score_keys[0]) is accessed (fixes #150)
Changed
- Pin version bounds for all core dependencies. Most notably,
pyteomicsis now constrained to< 5to avoid breaking changes introduced in the upcoming major release.
Full Changelog: v1.5.4...v1.5.5
v1.5.4
v1.5.3
Fixed
io.fragpipe: Fix parsing of modifications (support both splitting on,and,).io.tsv: Fix empty string values inprovenance_dataandmetadatabeing lost (converted toNone) when reading TSV files; empty rescoring feature values are now parsed asNaN(fixes #145).
v1.5.2
v1.5.1
Fixed
io.idxml: Fix compatibility with pyOpenMS 3.5+ for PeptideIdentificationList handling (also see OpenMS/OpenMS#8552).io.percolator: Fix missing ScanNr values when usingwrite_file(fixes CompOmics/ms2rescore#235).io.percolator: Fix missing style argument when checking whetherPercolatorTabWritersupportswrite_psm.io.pepxml: Fix robustness ofPepXMLReaderagainst missing params in file.
Full Changelog: v1.5.0.post1...v1.5.1
v1.5.0.post1
Fixed
- 🐛
io.cbor: Fixed lazy import of optional cbor2 package.
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
v1.4.1
v1.4.0
Added
- ✨
io.sage: Add parsing of ion mobility values (PR #113)
Fixed
- 🐛
io.percolator: Fix bug inPercolatorTabWriterwhere style parameter was not propagated (fixes #114, PR #117) - 📝 Docs: Explicitly set Sphinx configuration path for Read the Docs (fixes #115, PR #118)
New Contributors
Full Changelog: v1.3.0...v1.4.0
v1.3.0
Added
- ✨
io.idxml: Parse ion mobility from idXML files if present. - 🐍 Added support for Python 3.12 and 3.13
Removed
- 🐍 Removed support for Python 3.7
Fixed
- 🐛 Fix bug introduced in #102 where dtypes were not coerced anymore by Numpy, which lead to unexpected behavior downstream (e.g.,
psm_list["is_decoy"]would return an array of objects instead of bools) - 🩹 Fix potential downstream issues because pepxml-read PSM had
rescoring_features=None(partially fixes #108)
Full Changelog: v1.2.0...v1.3.0