Releases: CompOmics/psm_utils
Releases · CompOmics/psm_utils
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
v1.2.0
Added
- ✨
io.alphadia: Read support for AlphaDIAprecursors.tsv(#103 by @rodvrees) - ✨
io.fragpipe: Read support for FragPipepsm.tsv(#103 by @rodvrees) - ✨
io.diann: Read support for DIA-NN TSV (#103 by @rodvrees)
Changed
- 💥
psm_list: When returning a PSM property across the full PSMList (e.g.psm_list["peptidoform"]),np.fromiteris now used instead ofnp.array. This fixes an issue where if all peptidoforms have the same length, a 3D array of parsed sequences (amino acids and modifications) was be returned instead of an array ofPeptidoformobject. However, this does mean that all resulting arrays will have theobjectdtype instead of the previously coerced dtypes. This might lead to issues downstream. (#102) - ➖
io.idxml: Make pyOpenMS an optional dependency, working around OpenMS/OpenMS#7600 for now. Foridxmlsupport, install psm_utils with theidxmlextra dependencies. (#107 by @paretje)
Fixed
- 🐛
io.pepxml: Fix modification location and mass parsing. Position had an off-by-one error and the reported mass was the sum of the residue and modification instead of the modification alone. (fixes #100, #104)
New Contributors
Full Changelog: v1.1.1...v1.2.0
v1.1.1
Fixed
io: Fix Sage filename pattern for automatic file type inference by @RalfG in #98io.flashlfq: Fix writing PSMs without protein accession by @RalfG in #98io.flashlfq: Fix column namesPeptide Monoisotopic MassandProtein Accessionby @RalfG in #97io.idxml: Fix parsing if spectra file name not present by @jonasscheid in #99
Full Changelog: v1.1.0...v1.1.1
v1.1.0
v1.0.1
v1.0.0
Added
peptidoform: Allow comparison between a peptidoform and a peptidoform string; allow direct indexing with square brackets, which indexes or slices parsed_sequence (in #89)
Fixed
io.tsv: Avoid flooding logs when reading a different file format by raising exception when three consecutive rows could not be parsed (in #88)