Skip to content

Pyteomics v5 compatibility: Peptidoform fails for user-defined modification names #151

Description

@RalfG

Peptidoform objects with non-UNIMOD/PSI-MS modification names cannot be constructed under pyteomics 5, blocking a pyteomics 5 compatibility upgrade.

pyteomics 5 changed proforma.parse() to eagerly resolve modification names against UNIMOD and PSI-MS databases during parsing. Any name not found in a database raises KeyError instead of falling back to a GenericModification as in v4.

To reproduce:

from psm_utils import Peptidoform

Peptidoform("AC[Carbamidomethyl]DEK")   # OK — name is in UNIMOD
Peptidoform("AC[Cmm]DEK")               # KeyError: 'Cmm'
Peptidoform("ACM[Oxidation (M)]EK")     # KeyError: 'Oxidation (M)'

Issues in practice:

  • io.maxquant: MaxQuant uses names like Oxidation (M) and Acetyl (Protein N-term) that are not valid UNIMOD terms and cannot be parsed under pyteomics 5. Also see Peptidoforms parsed from MaxQuant output are not always valid #138.
  • Any downstream tool passing user-defined or search-engine-specific modification names through Peptidoform will break.

For now, the Pyteomics dependency is capped to < 5 in psm_utils 1.5.5.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No fields configured for Task.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions