From f72d8e97e9dbcd49e1c74899d645563d47bc2bb0 Mon Sep 17 00:00:00 2001 From: Lev Levitsky Date: Fri, 15 Aug 2025 15:42:01 +0200 Subject: [PATCH] Show unknown modifications as delta mass in peptidoform --- psm_utils/io/mzid.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/psm_utils/io/mzid.py b/psm_utils/io/mzid.py index e10883b..3dfeca8 100644 --- a/psm_utils/io/mzid.py +++ b/psm_utils/io/mzid.py @@ -20,7 +20,7 @@ from psm_utils import __version__ from psm_utils.io._base_classes import ReaderBase, WriterBase -from psm_utils.io.exceptions import PSMUtilsIOException +from psm_utils.io.exceptions import PSMUtilsIOException, ModificationException from psm_utils.peptidoform import Peptidoform from psm_utils.psm import PSM from psm_utils.psm_list import PSMList @@ -189,7 +189,15 @@ def _parse_peptidoform(seq: str, modification_list: list[dict], charge: Union[in # Add modification labels for mod in modification_list: - peptide[int(mod["location"])] += f"[{mod['name']}]" + name = mod.get("name") + if name and name != "unknown modification": + tag = f"[{mod['name']}]" + elif "monoisotopicMassDelta" in mod: + s = mod["monoisotopicMassDelta"] + tag = f"[{s:+.5f}]" + else: + raise ModificationException(f"Not enough information about modification: {mod}") + peptide[int(mod["location"])] += tag # Add dashes between residues and termini, and join sequence peptide[0] = peptide[0] + "-" if peptide[0] else ""