From d4410d4ff0d7553864609c7c2c9f3a91b2789b24 Mon Sep 17 00:00:00 2001 From: cal3502 Date: Thu, 17 Sep 2026 20:01:53 -0400 Subject: [PATCH] Added the Casanovo_5_2 Parser, as well as changed the metadata of the de_novo parsers to be under the de_novo file instead of vthe ident file --- .../parsers/de_novo/casanovo_5_2_parser.py | 225 ++++++++++++ pyiohat/parsers/de_novo/casanovo_5_parser.py | 2 +- pyiohat/parsers/de_novo/instanovo_1_parser.py | 2 +- tests/data/test_casanovo_5_2.mztab | 201 +++++++++++ .../test_engine_parser_casanovo_5_2.py | 324 ++++++++++++++++++ 5 files changed, 752 insertions(+), 2 deletions(-) create mode 100644 pyiohat/parsers/de_novo/casanovo_5_2_parser.py create mode 100644 tests/data/test_casanovo_5_2.mztab create mode 100644 tests/de_novo/test_engine_parser_casanovo_5_2.py diff --git a/pyiohat/parsers/de_novo/casanovo_5_2_parser.py b/pyiohat/parsers/de_novo/casanovo_5_2_parser.py new file mode 100644 index 0000000..faa7bb4 --- /dev/null +++ b/pyiohat/parsers/de_novo/casanovo_5_2_parser.py @@ -0,0 +1,225 @@ +"""Engine parser.""" + +import itertools + +import pandas as pd +import regex as re +from loguru import logger + +from pyiohat.parsers.de_novo_base_parser import DeNovoBaseParser +from pprint import pprint +from itertools import combinations +from chemical_composition import chemical_composition_kb +from pathlib import Path + + +class Casanovo_5_2_Parser(DeNovoBaseParser): + """File parser for Casanovo 5""" + + def __init__(self, *args, **kwargs): + """Initialize parser. + + Reads in data file and provides mappings. + """ + super().__init__(*args, **kwargs) + self.style = "casanovo_style_1" + + self.df = self._read_and_clean_mztab(self.input_file) + self.df.dropna(axis=1, how="all", inplace=True) + + self.mapping_dict = { + "sequence": "sequence", + "PSM_ID": "casanovo:PSM_ID", + "accession": "casanovo:accession", + "unique": "casanovo:unique", + "database": "casanovo:database", + "database_version": "casanovo:database_version", + "search_engine": "casanovo:search_engine", + "search_engine_score[1]": "casanovo:search_engine_score[1]", + "modifications": "modifications", + "retention_time": "retention_time_seconds", + "charge": "charge", + "exp_mass_to_charge": "exp_mz", + "calc_mass_to_charge": "calc_mz", + "spectra_ref": "spectrum_id", + "pre": "sequence_pre_aa", + "post": "sequence_post_aa", + "start": "sequence_start", + "end": "sequence_end", + "opt_ms_run[1]_aa_scores": "casanovo:opt_global_aa_scores", + "opt_ms_run[1]_proforma": "casanovo:opt_global_cv_MS:1003169_proforma_peptidoform_sequence", + } + self.df.rename(columns=self.mapping_dict, inplace=True) + + if "retention_time_seconds" not in self.df.columns: + self.df["retention_time_seconds"] = None + self.df.columns = self.df.columns.str.lstrip(" ") + if not "modifications" in self.df.columns: + self.df["modifications"] = "" + self.reference_dict.update({k: None for k in self.mapping_dict.values()}) + self.metadata = { + "File Origin": "Casanovo", + "Version": [4.0, 4.1, 4.2, 4.3], + "bigger_scores_better": True, + "validation_score_field": "casanovo:search_engine_score[1]", + "Parser": "pyiohat/parsers/de_novo/casanovo_5_2_parser.py", + } + + def _read_and_clean_mztab(self, filepath): + """ + Read mzTab file and get rid of rows that are not needed by pyiohat. + + Args: + filepath (str or Path): path to mzTab file + + Returns: + pd.DataFrame: cleaned dataframe + """ + skip = next( + i for i, line in enumerate(open(filepath)) if line.startswith("PSH\t") + ) + df = pd.read_csv(filepath, sep="\t", skiprows=skip, header=0) + df = df.iloc[:, 1:] + df = df.reset_index(drop=True) + return df + + def parse_sequence_modifications(self): + """ + Parse the mzTab modifications column into pyiohat format. + mzTab format: '3-Carbamidomethyl (C):UNIMOD:4' or multiple separated by '|' + pyiohat format: 'Carbamidomethyl:3;Oxidation:6' + """ + if "modifications" not in self.df.columns: + self.df["modifications"] = None + return + + parsed = [] + for raw in self.df["modifications"]: + if pd.isna(raw) or raw == "null" or raw == "": + parsed.append(None) + continue + + mod_strings = [] + # mzTab can have multiple mods separated by '|' + for entry in str(raw).split(";"): + entry = entry.strip() + # Format: '{position}-{mod_name} ({aa}):UNIMOD:{id}' + # e.g. '3-Carbamidomethyl (C):UNIMOD:4' + match = re.match(r"^(\d+)-([^:]+?)(?:\s*\([^)]+\))?:UNIMOD:\d+$", entry) + if match: + position = match.group(1) + mod_name = match.group(2).strip() + mod_strings.append(f"{mod_name}:{position}") + else: + mass_match = re.match(r"^(\d+)-\[([+-]?\d+\.?\d*)\]$", entry) + if mass_match: + position = mass_match.group(1) + mass = mass_match.group(2) + try: + matched_names = self.mod_mapper.mass_to_names( + float(mass), decimals=4 + ) + if len(matched_names) > 0: + print( + f"Warning: mass {mass} matched {len(matched_names)} " + f"name(s) {matched_names}; only using first match " + f"'{matched_names[0]}'" + ) + mod_strings.append( + f"{matched_names[0]}:{position}" + ) # position 0 as placeholder + else: + print( + f"Warning: mod_mapper lookup failed for mass {mass}: no UNIMOD match found" + ) + + except Exception as e: + print( + f"Warning: mod_mapper lookup failed for mass {mass}: {e}" + ) + + else: + # Fallback: keep raw entry so nothing is silently lost + mod_strings.append(entry) + + parsed.append(";".join(mod_strings) if mod_strings else None) + + self.df["modifications"] = parsed + + def _extract_scan_number(self): + """ + Extract scan number from spectra_ref column. + + Converts mzTab format 'ms_run[1]:controllerType=0 controllerNumber=1 scan=2096' + to just '2096' + """ + if "spectrum_id" in self.df.columns: + # Extract scan number from the format: scan=XXXX + self.df["spectrum_id"] = self.df["spectrum_id"].str.extract(r"scan=(\d+)")[ + 0 + ] + + @classmethod + def check_parser_compatibility(cls, file): + """Assert compatibility between file and parser. + + Args: + file (str): path to input file + + Returns: + bool: True if parser and file are compatible + + """ + is_mztab = file.as_posix().endswith(".mztab") + + with open(file.as_posix()) as f: + head = next((line for line in f if line.startswith("PSH\t")), "") + + head = set(head.rstrip("\n").split("\t")) + ref_columns = { + "PSH", + "sequence", + "PSM_ID", + "accession", + "unique", + "database", + "database_version", + "search_engine", + "search_engine_score[1]", + "modifications", + "retention_time", + "charge", + "exp_mass_to_charge", + "calc_mass_to_charge", + "spectra_ref", + "pre", + "post", + "start", + "end", + "opt_global_aa_scores", + "opt_global_cv_MS:1003169_proforma_peptidoform_sequence", + } + columns_match = len(ref_columns.difference(head)) == 0 + return is_mztab and columns_match + + def unify(self): + """ + Primary method to read and unify engine output. + + Returns: + self.df (pd.DataFrame): unified dataframe + """ + self.df["search_engine"] = "casanovo_5_2" + + self.parse_sequence_modifications() + + self._extract_scan_number() + + if "retention_time_seconds" in self.df.columns: + self.df["retention_time_seconds"] = self.df[ + "retention_time_seconds" + ].astype(float) + + self.process_unify_style() + + return self.df diff --git a/pyiohat/parsers/de_novo/casanovo_5_parser.py b/pyiohat/parsers/de_novo/casanovo_5_parser.py index 6d59572..db35936 100644 --- a/pyiohat/parsers/de_novo/casanovo_5_parser.py +++ b/pyiohat/parsers/de_novo/casanovo_5_parser.py @@ -62,7 +62,7 @@ def __init__(self, *args, **kwargs): "Version": [4.0, 4.1, 4.2, 4.3], "bigger_scores_better": True, "validation_score_field": "casanovo:search_engine_score[1]", - "Parser": "pyiohat/parsers/ident/casanovo_5_parser.py", + "Parser": "pyiohat/parsers/de_novo/casanovo_5_parser.py", } def _read_and_clean_mztab(self, filepath): diff --git a/pyiohat/parsers/de_novo/instanovo_1_parser.py b/pyiohat/parsers/de_novo/instanovo_1_parser.py index 66564c7..d566d9e 100644 --- a/pyiohat/parsers/de_novo/instanovo_1_parser.py +++ b/pyiohat/parsers/de_novo/instanovo_1_parser.py @@ -86,7 +86,7 @@ def __init__(self, *args, **kwargs): "Version": [4.0, 4.1, 4.2, 4.3], "bigger_scores_better": True, "validation_score_field": "instanovo:transformer_log_probabilities", - "Parser": "pyiohat/parsers/ident/instanovo_1_parser.py", + "Parser": "pyiohat/parsers/de_novo/instanovo_1_parser.py", } def parse_sequence_modifications(self): diff --git a/tests/data/test_casanovo_5_2.mztab b/tests/data/test_casanovo_5_2.mztab new file mode 100644 index 0000000..70f460f --- /dev/null +++ b/tests/data/test_casanovo_5_2.mztab @@ -0,0 +1,201 @@ +MTD mzTab-version 1.0.0 +MTD mzTab-mode Summary +MTD mzTab-type Identification +MTD description Casanovo identification file 15efc4a8cccfe66521f07ab0057f6cfd_1_of_1.casanovo +MTD software[1] "[MS, MS:1003281, Casanovo, 5.1.2]" +MTD psm_search_engine_score[1] "[MS, MS:1001143, search engine specific score for PSMs, ]" +MTD fixed_mod[1] "[MS, MS:1002453, No fixed modifications searched, ]" +MTD variable_mod[1] "[MS, MS:1002454, No variable modifications searched,]" +MTD software[1]-setting[1] model = /home/cal3502/.cache/casanovo/casanovo_v5_0_0_v5_0_0.ckpt +MTD software[1]-setting[2] config_filename = /tmp/u_profitable_government_mortgages_intentional_soap/u_helpless_bear_vacates_last_pickle/casanovo_yaml/casanovo.yaml +MTD software[1]-setting[3] precursor_mass_tol = 50.0 +MTD software[1]-setting[4] "isotope_error_range = (0, 1)" +MTD software[1]-setting[5] min_peptide_len = 6 +MTD software[1]-setting[6] max_peptide_len = 100 +MTD software[1]-setting[7] predict_batch_size = 1024 +MTD software[1]-setting[8] top_match = 1 +MTD software[1]-setting[9] accelerator = auto +MTD software[1]-setting[10] devices = None +MTD software[1]-setting[11] n_beams = 1 +MTD software[1]-setting[12] enzyme = trypsin +MTD software[1]-setting[13] digestion = full +MTD software[1]-setting[14] missed_cleavages = 0 +MTD software[1]-setting[15] max_mods = 1 +MTD software[1]-setting[16] allowed_fixed_mods = C:C[Carbamidomethyl] +MTD software[1]-setting[17] "allowed_var_mods = M:M[Oxidation],N:N[Deamidated],Q:Q[Deamidated],nterm:[Acetyl]-,nterm:[Carbamyl]-,nterm:[Ammonia-loss]-,nterm:[+25.980265]-" +MTD software[1]-setting[18] random_seed = 454 +MTD software[1]-setting[19] n_log = 1 +MTD software[1]-setting[20] tb_summarywriter = False +MTD software[1]-setting[21] log_metrics = False +MTD software[1]-setting[22] log_every_n_steps = 50 +MTD software[1]-setting[23] lance_dir = None +MTD software[1]-setting[24] val_check_interval = 50000 +MTD software[1]-setting[25] min_peaks = 20 +MTD software[1]-setting[26] max_peaks = 150 +MTD software[1]-setting[27] min_mz = 50.0 +MTD software[1]-setting[28] max_mz = 2500.0 +MTD software[1]-setting[29] min_intensity = 0.01 +MTD software[1]-setting[30] remove_precursor_tol = 2.0 +MTD software[1]-setting[31] max_charge = 4 +MTD software[1]-setting[32] dim_model = 512 +MTD software[1]-setting[33] n_head = 8 +MTD software[1]-setting[34] dim_feedforward = 1024 +MTD software[1]-setting[35] n_layers = 9 +MTD software[1]-setting[36] dropout = 0.0 +MTD software[1]-setting[37] dim_intensity = None +MTD software[1]-setting[38] warmup_iters = 100000 +MTD software[1]-setting[39] cosine_schedule_period_iters = 600000 +MTD software[1]-setting[40] learning_rate = 0.0005 +MTD software[1]-setting[41] weight_decay = 1e-05 +MTD software[1]-setting[42] train_label_smoothing = 0.01 +MTD software[1]-setting[43] train_batch_size = 32 +MTD software[1]-setting[44] max_epochs = 30 +MTD software[1]-setting[45] shuffle = True +MTD software[1]-setting[46] shuffle_buffer_size = 10000 +MTD software[1]-setting[47] num_sanity_val_steps = 0 +MTD software[1]-setting[48] calculate_precision = False +MTD software[1]-setting[49] accumulate_grad_batches = 1 +MTD software[1]-setting[50] gradient_clip_val = 1.0 +MTD software[1]-setting[51] gradient_clip_algorithm = norm +MTD software[1]-setting[52] precision = 32-true +MTD software[1]-setting[53] replace_isoleucine_with_leucine = True +MTD software[1]-setting[54] massivekb_tokenizer = False +MTD software[1]-setting[56] n_workers = 0 +MTD ms_run[1]-location file:///tmp/u_profitable_government_mortgages_intentional_soap/u_helpless_bear_vacates_last_pickle/mzML_file/POL11409X003__A_2_92-59213.mzML +PSH sequence PSM_ID accession unique database database_version search_engine search_engine_score[1] modifications retention_time charge exp_mass_to_charge calc_mass_to_charge spectra_ref pre post start end opt_global_aa_scores opt_global_cv_MS:1003169_proforma_peptidoform_sequence +PSM GYLHSEER 1 decoy_HVO_C0068 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 7.62E-08 null null 2 496.2480774 495.7355652 ms_run[1]:controllerType=0 controllerNumber=1 scan=1336 null null null null "0.83129,0.00778,0.31565,0.01062,0.12101,0.25746,0.33772,0.33907" GYLHSEER +PSM ELAAAVGEHLR 2 HVO_B0070 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.38E-11 0-Acetyl (N-term):UNIMOD:1 null 3 403.2326965 403.2191772 ms_run[1]:controllerType=0 controllerNumber=1 scan=3368 null null null null "0.17856,0.25036,0.13363,0.08228,0.04834,0.01811,0.05991,0.13480,0.85164,0.02245,0.36230" [Acetyl]-ELAAAVGEHLR +PSM FDWMSEMLCANLGSNCMGR 3 decoy_HVO_2696 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 7.06E-27 4-Oxidation (M):UNIMOD:35; 9-Carbamidomethyl (C):UNIMOD:4; 16-Carbamidomethyl (C):UNIMOD:4 null 3 765.6153564 765.6420898 ms_run[1]:controllerType=0 controllerNumber=1 scan=3784 null null null null "0.34844,0.07478,0.01333,0.00688,0.10202,0.07708,0.00912,0.07523,0.01661,0.03635,0.03048,0.01399,0.15970,0.05527,0.02850,0.03854,0.00023,0.98866,0.99399" FDWM[Oxidation]SEMLC[Carbamidomethyl]ANLGSNC[Carbamidomethyl]MGR +PSM VTTMIGQPLK 4 decoy_HVO_2558 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.78E-10 4-Oxidation (M):UNIMOD:35 null 2 552.307251 552.3101196 ms_run[1]:controllerType=0 controllerNumber=1 scan=3785 null null null null "0.95711,0.00521,0.98524,0.98211,0.02661,0.15884,0.01515,0.02431,0.05148,0.98718" VTTM[Oxidation]IGQPLK +PSM ILSLEQQTK 5 HVO_2290 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 8.99E-10 0-Carbamyl (N-term):UNIMOD:5 null 3 368.5402222 368.2082825 ms_run[1]:controllerType=0 controllerNumber=1 scan=3786 null null null null "0.36661,0.04263,0.07580,0.00837,0.07192,0.36985,0.05704,0.06100,0.98941" [Carbamyl]-ILSLEQQTK +PSM VPLQTTALGK 6 HVO_B0114 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.43E-10 null null 2 514.3021851 514.3109131 ms_run[1]:controllerType=0 controllerNumber=1 scan=3852 null null null null "0.92281,0.97700,0.22352,0.04764,0.02021,0.01788,0.01215,0.48551,0.00714,0.98989" VPLQTTALGK +PSM LEHFLDISHTK 7 decoy_HVO_1716 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 7.35E-15 0-Carbamyl (N-term):UNIMOD:5 null 3 461.8918457 461.5736389 ms_run[1]:controllerType=0 controllerNumber=1 scan=3860 null null null null "0.07617,0.25822,0.13785,0.01885,0.04452,0.06857,0.07036,0.05378,0.02835,0.00047,0.94572" [Carbamyl]-LEHFLDISHTK +PSM LAHGHPNHPDR 8 HVO_0010 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.000862823 null null 3 417.5427246 417.5427856 ms_run[1]:controllerType=0 controllerNumber=1 scan=3878 null null null null "0.98267,0.87034,0.38089,0.21403,0.02419,0.99143,0.93238,0.61060,0.99068,0.93759,0.98739" LAHGHPNHPDR +PSM HHYEEGR 9 HVO_2690 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.910032417 null null 2 464.2059326 464.2070007 ms_run[1]:controllerType=0 controllerNumber=1 scan=3895 null null null null "0.99058,0.99216,0.99266,0.97773,0.98058,0.99208,0.99052" HHYEEGR +PSM IHGVPK 10 HVO_A0491 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.14E-07 null null 2 325.7084961 325.7028198 ms_run[1]:controllerType=0 controllerNumber=1 scan=3909 null null null null "0.48527,0.02043,0.08698,0.00038,0.99023,0.99038" IHGVPK +PSM AHPDPSSSPSHGSR 11 HVO_2297 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.496831715 null null 3 473.5524597 473.5516968 ms_run[1]:controllerType=0 controllerNumber=1 scan=3922 null null null null "0.98927,0.98692,0.98203,0.96763,0.98960,0.99059,0.98976,0.99148,0.99176,0.98510,0.96741,0.97750,0.63113,0.96448" AHPDPSSSPSHGSR +PSM HQELTAR 12 HVO_A0478 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.14E-09 0-Carbamyl (N-term):UNIMOD:5 null 2 449.7416077 449.2304688 ms_run[1]:controllerType=0 controllerNumber=1 scan=3927 null null null null "0.38626,0.00070,0.84506,0.18056,0.00118,0.07014,0.92603" [Carbamyl]-HQELTAR +PSM TPAESMGSGR 13 HVO_2563 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.175607631 6-Oxidation (M):UNIMOD:35 null 2 504.7246704 504.7243652 ms_run[1]:controllerType=0 controllerNumber=1 scan=3959 null null null null "0.99178,0.99225,0.99134,0.98720,0.98627,0.98374,0.99008,0.81218,0.24092,0.97949" TPAESM[Oxidation]GSGR +PSM DVHPEQK 14 HVO_1426 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 6.63E-09 0-Carbamyl (N-term):UNIMOD:5 null 2 448.7058105 448.2170105 ms_run[1]:controllerType=0 controllerNumber=1 scan=3962 null null null null "0.05604,0.05147,0.97383,0.23302,0.09444,0.02373,0.00457" [Carbamyl]-DVHPEQK +PSM IEEQLDQR 15 HVO_2291_A null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.46E-11 0-Carbamyl (N-term):UNIMOD:5 null 2 537.7704468 537.2647705 ms_run[1]:controllerType=0 controllerNumber=1 scan=3998 null null null null "0.15666,0.06199,0.03078,0.02294,0.19626,0.01403,0.00134,0.97934" [Carbamyl]-IEEQLDQR +PSM IDHDRPTR 16 HVO_B0018 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.888064426 null null 2 505.2624207 505.2622681 ms_run[1]:controllerType=0 controllerNumber=1 scan=4009 null null null null "0.99058,0.97750,0.99019,0.99176,0.99423,0.99128,0.96489,0.99250" IDHDRPTR +PSM RPVAHR 17 decoy_HVO_2774 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.47E-05 null null 2 368.2223206 368.2222595 ms_run[1]:controllerType=0 controllerNumber=1 scan=4010 null null null null "0.23614,0.98495,0.96333,0.24126,0.00073,0.88708" RPVAHR +PSM DLHGELPR 18 decoy_HVO_2154 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 6.53E-09 null null 3 312.8384399 312.8347473 ms_run[1]:controllerType=0 controllerNumber=1 scan=4035 null null null null "0.00222,0.35611,0.01581,0.03875,0.26010,0.05326,0.99245,0.99097" DLHGELPR +PSM QEHLLPR 19 decoy_HVO_A0039 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.05E-09 0-Carbamyl (N-term):UNIMOD:5; 1-Deamidated (Q):UNIMOD:7 null 2 468.7541809 468.7484741 ms_run[1]:controllerType=0 controllerNumber=1 scan=4043 null null null null "0.09879,0.05587,0.03157,0.04696,0.00026,0.99051,0.99244" [Carbamyl]-Q[Deamidated]EHLLPR +PSM VVHMGGEK 20 HVO_1981 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.57E-06 4-Oxidation (M):UNIMOD:35 null 2 436.7189026 436.7183228 ms_run[1]:controllerType=0 controllerNumber=1 scan=4047 null null null null "0.98900,0.47042,0.98611,0.37303,0.04199,0.08426,0.00395,0.66072" VVHM[Oxidation]GGEK +PSM ALTDDDHAR 21 HVO_2934 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.69E-10 null null 2 507.2548523 507.2359009 ms_run[1]:controllerType=0 controllerNumber=1 scan=4052 null null null null "0.96790,0.02862,0.03440,0.03128,0.02695,0.00035,0.98997,0.98791,0.98905" ALTDDDHAR +PSM QHLTDEAR 22 HVO_1857 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.36E-10 0-Carbamyl (N-term):UNIMOD:5; 1-Deamidated (Q):UNIMOD:7 null 3 338.5055542 338.493042 ms_run[1]:controllerType=0 controllerNumber=1 scan=4058 null null null null "0.02664,0.11908,0.17892,0.04200,0.03236,0.00032,0.99194,0.98847" [Carbamyl]-Q[Deamidated]HLTDEAR +PSM CQILFR 23 HVO_C0011 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.04E-07 1-Carbamidomethyl (C):UNIMOD:4; 2-Deamidated (Q):UNIMOD:7 null 2 419.2383423 419.2179565 ms_run[1]:controllerType=0 controllerNumber=1 scan=4059 null null null null "0.24702,0.08203,0.04154,0.40255,0.00031,0.99225" C[Carbamidomethyl]Q[Deamidated]ILFR +PSM SSLLDR 24 "decoy_HVO_A0156,decoy_HVO_A0158" null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 9.30E-09 0-Acetyl (N-term):UNIMOD:1 null 2 367.1993408 366.697937 ms_run[1]:controllerType=0 controllerNumber=1 scan=4064 null null null null "0.13144,0.16763,0.16578,0.14395,0.09501,0.00019" [Acetyl]-SSLLDR +PSM DDFQCQVCGR 25 HVO_2824 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.80E-12 5-Carbamidomethyl (C):UNIMOD:4; 6-Deamidated (Q):UNIMOD:7; 8-Carbamidomethyl (C):UNIMOD:4 null 3 429.1777649 429.1694031 ms_run[1]:controllerType=0 controllerNumber=1 scan=4069 null null null null "0.22646,0.08963,0.09223,0.03906,0.08181,0.01757,0.07266,0.00038,0.99209,0.99090" DDFQC[Carbamidomethyl]Q[Deamidated]VC[Carbamidomethyl]GR +PSM SDYYVYSK 26 HVO_2284A null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 4.86E-10 null null 2 512.753479 512.7347412 ms_run[1]:controllerType=0 controllerNumber=1 scan=4074 null null null null "0.98552,0.28187,0.00746,0.02906,0.02424,0.00034,0.98740,0.99301" SDYYVYSK +PSM VDADGEEALDAYWR 27 decoy_HVO_B0015 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.74E-16 null null 3 537.2184448 537.2425537 ms_run[1]:controllerType=0 controllerNumber=1 scan=4075 null null null null "0.21044,0.04495,0.05772,0.09400,0.05030,0.04580,0.08754,0.09528,0.02650,0.13046,0.58083,0.24068,0.00059,0.98992" VDADGEEALDAYWR +PSM IGHPAPNFK 28 sp|PRDX1_HUMAN| null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.82E-10 0-Carbamyl (N-term):UNIMOD:5 null 3 342.1711121 341.8504944 ms_run[1]:controllerType=0 controllerNumber=1 scan=4077 null null null null "0.15120,0.25780,0.13961,0.08184,0.04142,0.04591,0.04317,0.00801,0.97377" [Carbamyl]-IGHPAPNFK +PSM LMQTEDNTGHK 29 HVO_0354 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.815521466 2-Oxidation (M):UNIMOD:35 null 3 430.531311 430.5312195 ms_run[1]:controllerType=0 controllerNumber=1 scan=4098 null null null null "0.99271,0.99425,0.98536,0.99089,0.98638,0.92376,0.98317,0.98977,0.98861,0.98760,0.98714" LM[Oxidation]QTEDNTGHK +PSM QPLFSER 30 HVO_1050 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 4.75E-09 0-Acetyl (N-term):UNIMOD:1 null 3 306.8349304 306.8274841 ms_run[1]:controllerType=0 controllerNumber=1 scan=4099 null null null null "0.03772,0.04306,0.62208,0.31357,0.04472,0.00034,0.99251" [Acetyl]-QPLFSER +PSM IHTHIQVGTR 31 HVO_B0130 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 6.11E-11 null null 3 388.2155457 387.8877563 ms_run[1]:controllerType=0 controllerNumber=1 scan=4111 null null null null "0.97792,0.01861,0.31950,0.09171,0.06526,0.02433,0.03841,0.17485,0.01131,0.96055" IHTHIQVGTR +PSM MNASHGNVEHR 32 HVO_0806 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.680985226 null null 2 626.2871094 626.2860107 ms_run[1]:controllerType=0 controllerNumber=1 scan=4129 null null null null "0.99310,0.98676,0.98763,0.98760,0.98817,0.99016,0.99041,0.98954,0.98443,0.76962,0.99008" MNASHGNVEHR +PSM MNASHGNVEHR 33 HVO_0806 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.881579595 null null 3 417.8598328 417.8597717 ms_run[1]:controllerType=0 controllerNumber=1 scan=4134 null null null null "0.99074,0.98506,0.99007,0.98931,0.98907,0.98770,0.98979,0.98997,0.99036,0.99251,0.98977" MNASHGNVEHR +PSM HAQEAEMEEDQQK 34 decoy_HVO_1590 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 9.43E-17 null null 3 524.9082031 524.8913574 ms_run[1]:controllerType=0 controllerNumber=1 scan=4146 null null null null "0.44495,0.15392,0.05818,0.08476,0.01073,0.08387,0.00686,0.10968,0.14097,0.00167,0.06558,0.07189,0.37681" HAQEAEMEEDQQK +PSM LLSELMR 35 decoy_HVO_1927 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.05E-08 null null 2 431.7485046 431.2467346 ms_run[1]:controllerType=0 controllerNumber=1 scan=4150 null null null null "0.45223,0.01037,0.93249,0.24791,0.03553,0.00028,0.98454" LLSELMR +PSM MNASHGNVEHR 36 HVO_0806 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 6.22E-07 1-Oxidation (M):UNIMOD:35 null 3 423.1913757 423.1913757 ms_run[1]:controllerType=0 controllerNumber=1 scan=4166 null null null null "0.99046,0.03764,0.00216,0.57444,0.27662,0.98895,0.62153,0.89607,0.09088,0.99031,0.99090" M[Oxidation]NASHGNVEHR +PSM NWVEHLGR 37 HVO_A0221 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 7.82E-11 0-Carbamyl (N-term):UNIMOD:5; 1-Deamidated (N):UNIMOD:7 null 3 352.1844788 352.1736755 ms_run[1]:controllerType=0 controllerNumber=1 scan=4171 null null null null "0.02194,0.00039,0.75081,0.16616,0.36878,0.37461,0.00053,0.98984" [Carbamyl]-N[Deamidated]WVEHLGR +PSM YGHRPGR 38 HVO_1173 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 9.61E-07 null null 2 421.7228394 421.7226257 ms_run[1]:controllerType=0 controllerNumber=1 scan=4186 null null null null "0.34873,0.24915,0.00028,0.04169,0.98859,0.98408,0.98898" YGHRPGR +PSM GGSRPPSPYSR 39 HVO_2406 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.31E-11 null null 2 580.7817383 580.7940063 ms_run[1]:controllerType=0 controllerNumber=1 scan=4210 null null null null "0.98380,0.15146,0.09301,0.07670,0.09877,0.14464,0.33477,0.04576,0.00032,0.17912,0.99204" GGSRPPSPYSR +PSM MVEGFFDR 40 sp|DHE3_BOVIN| null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 7.62E-07 1-Oxidation (M):UNIMOD:35 null 2 509.2457275 508.7289429 ms_run[1]:controllerType=0 controllerNumber=1 scan=4212 null null null null "0.96605,0.89911,0.85885,0.00439,0.07647,0.04461,0.07208,0.95549" M[Oxidation]VEGFFDR +PSM FHIYNFYR 41 decoy_HVO_0178 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.24E-11 null null 3 387.5230713 387.1943054 ms_run[1]:controllerType=0 controllerNumber=1 scan=4219 null null null null "0.03352,0.44270,0.07211,0.00020,0.59575,0.25893,0.00038,0.98908" FHIYNFYR +PSM VAETSMTGK 42 HVO_0455 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.000259496 6-Oxidation (M):UNIMOD:35 null 2 470.2264099 470.2261963 ms_run[1]:controllerType=0 controllerNumber=1 scan=4224 null null null null "0.98888,0.01861,0.99086,0.06242,0.98926,0.73553,0.99013,0.33036,0.96729" VAETSM[Oxidation]TGK +PSM TPAESMGSGR 43 HVO_2563 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.037020948 6-Oxidation (M):UNIMOD:35 null 2 504.7244568 504.7243652 ms_run[1]:controllerType=0 controllerNumber=1 scan=4233 null null null null "0.99151,0.98945,0.98932,0.98801,0.98860,0.97494,0.99289,0.66148,0.06201,0.99365" TPAESM[Oxidation]GSGR +PSM IVSGHGSETR 44 HVO_1130 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.000798958 null null 2 522.2695313 521.7674561 ms_run[1]:controllerType=0 controllerNumber=1 scan=4234 null null null null "0.99004,0.31488,0.99050,0.55932,0.98972,0.99048,0.48051,0.16192,0.09469,0.64800" IVSGHGSETR +PSM ELAHHVHR 45 "HVO_A0011,HVO_A0436" null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.518611981 null null 3 333.5132751 333.5141296 ms_run[1]:controllerType=0 controllerNumber=1 scan=4235 null null null null "0.68987,0.88548,0.98908,0.90277,0.99074,0.99032,0.99069,0.98771" ELAHHVHR +PSM SEPNAHPR 46 decoy_HVO_2038 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 4.29E-08 0-Acetyl (N-term):UNIMOD:1 null 2 475.7441711 475.2279053 ms_run[1]:controllerType=0 controllerNumber=1 scan=4238 null null null null "0.09711,0.19980,0.53241,0.11981,0.05762,0.40077,0.00154,0.98586" [Acetyl]-SEPNAHPR +PSM IHSHPR 47 decoy_HVO_0258 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.13E-07 0-Carbamyl (N-term):UNIMOD:5 null 2 395.7189026 395.2093201 ms_run[1]:controllerType=0 controllerNumber=1 scan=4249 null null null null "0.20245,0.03706,0.01369,0.40045,0.00529,0.98891" [Carbamyl]-IHSHPR +PSM VFLPPFER 48 HVO_2088 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.09E-10 0-Acetyl (N-term):UNIMOD:1 null 3 349.8492737 349.5271301 ms_run[1]:controllerType=0 controllerNumber=1 scan=4263 null null null null "0.03198,0.02718,0.17968,0.08414,0.45372,0.00026,0.98323,0.07226" [Acetyl]-VFLPPFER +PSM ELESLPEQTTDDR 49 HVO_0710 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.14E-16 8-Deamidated (Q):UNIMOD:7 null 2 767.8167725 767.3493652 ms_run[1]:controllerType=0 controllerNumber=1 scan=4265 null null null null "0.48744,0.13890,0.08484,0.11349,0.08512,0.13014,0.10075,0.01463,0.05324,0.03200,0.02351,0.00027,0.99096" ELESLPEQ[Deamidated]TTDDR +PSM EDGYYEYADRPR 50 decoy_HVO_1160 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 5.89E-16 null null 3 564.7929 564.7929 ms_run[1]:controllerType=0 controllerNumber=1 scan=4266 null null null null "0.16235,0.05483,0.05011,0.02994,0.03338,0.15960,0.00886,0.20718,0.10309,0.04220,0.00106,0.99253" EDGYYEYADRPR +PSM LEDQIEEK 51 HVO_B0118 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 6.43E-09 0-Carbamyl (N-term):UNIMOD:5 null 2 524.2705688 523.7536621 ms_run[1]:controllerType=0 controllerNumber=1 scan=4274 null null null null "0.22424,0.05879,0.01012,0.07166,0.20934,0.19003,0.95340,0.01796" [Carbamyl]-LEDQIEEK +PSM DAAIDVHVR 52 HVO_0879 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 4.73E-11 0-Carbamyl (N-term):UNIMOD:5 null 2 519.776001 519.7699585 ms_run[1]:controllerType=0 controllerNumber=1 scan=4275 null null null null "0.11336,0.19318,0.20993,0.02999,0.05299,0.00786,0.00097,0.87341,0.98740" [Carbamyl]-DAAIDVHVR +PSM AAEEEIQATR 53 HVO_1697 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.70E-10 7-Deamidated (Q):UNIMOD:7 null 3 373.8660583 373.5156555 ms_run[1]:controllerType=0 controllerNumber=1 scan=4276 null null null null "0.97982,0.01220,0.08646,0.28910,0.29426,0.14450,0.03051,0.00045,0.98949,0.99223" AAEEEIQ[Deamidated]ATR +PSM EIVTAIEER 54 decoy_HVO_1189 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 4.18E-11 0-Carbamyl (N-term):UNIMOD:5 null 3 368.5281677 368.1961365 ms_run[1]:controllerType=0 controllerNumber=1 scan=4294 null null null null "0.02248,0.08679,0.03533,0.13556,0.08801,0.16540,0.00032,0.98329,0.98851" [Carbamyl]-EIVTAIEER +PSM CHQLVSCPR 55 sp|EGF_HUMAN| null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.99E-12 0-Carbamyl (N-term):UNIMOD:5; 1-Carbamidomethyl (C):UNIMOD:4; 7-Carbamidomethyl (C):UNIMOD:4 null 3 400.5228882 400.5184937 ms_run[1]:controllerType=0 controllerNumber=1 scan=4295 null null null null "0.01678,0.24683,0.02481,0.05492,0.03621,0.08142,0.00025,0.99246,0.98839" [Carbamyl]-C[Carbamidomethyl]HQLVSC[Carbamidomethyl]PR +PSM DPQNVEHR 56 HVO_1541 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.697891691 null null 2 497.7380676 497.7386475 ms_run[1]:controllerType=0 controllerNumber=1 scan=4301 null null null null "0.99018,0.98673,0.84678,0.98795,0.98981,0.88884,0.98999,0.99096" DPQNVEHR +PSM IELPEHTGR 57 decoy_HVO_1854 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.38E-09 null null 2 526.7785034 526.2801514 ms_run[1]:controllerType=0 controllerNumber=1 scan=4303 null null null null "0.39638,0.00358,0.05029,0.05970,0.05499,0.15899,0.82400,0.27633,0.40437" IELPEHTGR +PSM VYHNAPETK 58 HVO_0860 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.95E-07 null null 2 529.7671509 529.7669067 ms_run[1]:controllerType=0 controllerNumber=1 scan=4308 null null null null "0.98553,0.86973,0.94245,0.57991,0.08147,0.54599,0.01016,0.00094,0.98622" VYHNAPETK +PSM HVEDPDGDHAEK 59 HVO_B0268 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.019678731 null null 3 450.1974487 450.196991 ms_run[1]:controllerType=0 controllerNumber=1 scan=4312 null null null null "0.99180,0.98913,0.98555,0.99083,0.97810,0.83785,0.99091,0.92020,0.91773,0.13530,0.22535,0.99230" HVEDPDGDHAEK +PSM EMVIFNR 60 "decoy_HVO_0263,decoy_HVO_0528,decoy_HVO_0922,decoy_HVO_1519,decoy_HVO_1525,decoy_HVO_A0420,decoy_HVO_A0483,decoy_HVO_B0152,decoy_HVO_B0234,decoy_HVO_C0039,decoy_HVO_C0071" null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.10E-07 2-Oxidation (M):UNIMOD:35 null 3 309.1580811 308.8250732 ms_run[1]:controllerType=0 controllerNumber=1 scan=4313 null null null null "0.34382,0.00755,0.03613,0.05263,0.02517,0.91286,0.97583" EM[Oxidation]VIFNR +PSM AFALTEAK 61 HVO_1558 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.31E-08 null null 2 425.7485046 425.7370605 ms_run[1]:controllerType=0 controllerNumber=1 scan=4314 null null null null "0.98050,0.00716,0.05168,0.08790,0.00043,0.98181,0.98887,0.98812" AFALTEAK +PSM DLHTHFR 62 HVO_B0125 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.18E-08 null null 2 463.2337036 463.2355347 ms_run[1]:controllerType=0 controllerNumber=1 scan=4317 null null null null "0.83316,0.94131,0.06992,0.07937,0.01257,0.00059,0.99318" DLHTHFR +PSM LMQTEDNTGHK 63 HVO_0354 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.053482909 2-Oxidation (M):UNIMOD:35 null 2 645.2937622 645.2932129 ms_run[1]:controllerType=0 controllerNumber=1 scan=4323 null null null null "0.99351,0.99190,0.98987,0.99141,0.99020,0.97915,0.98781,0.98913,0.06055,0.98351,0.98994" LM[Oxidation]QTEDNTGHK +PSM MQEIYDR 64 decoy_HVO_2456 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 9.95E-09 0-Acetyl (N-term):UNIMOD:1 null 2 499.2247009 498.7263794 ms_run[1]:controllerType=0 controllerNumber=1 scan=4325 null null null null "0.01980,0.06833,0.11544,0.02584,0.38534,0.00752,0.86037" [Acetyl]-MQEIYDR +PSM GQTSPTSPMGHK 65 HVO_1304 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.86E-06 9-Oxidation (M):UNIMOD:35 null 3 415.196106 415.1960144 ms_run[1]:controllerType=0 controllerNumber=1 scan=4326 null null null null "0.99265,0.96359,0.07586,0.31704,0.99083,0.97935,0.97195,0.97897,0.01701,0.09569,0.32669,0.25584" GQTSPTSPM[Oxidation]GHK +PSM CQILFR 66 HVO_C0011 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.40E-07 1-Carbamidomethyl (C):UNIMOD:4; 2-Deamidated (Q):UNIMOD:7 null 2 419.7301636 419.2179565 ms_run[1]:controllerType=0 controllerNumber=1 scan=4338 null null null null "0.40209,0.02414,0.05088,0.63209,0.00123,0.89329" C[Carbamidomethyl]Q[Deamidated]ILFR +PSM TIQSGDR 67 HVO_2072 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.284177801 null null 2 388.6986389 388.6984558 ms_run[1]:controllerType=0 controllerNumber=1 scan=4341 null null null null "0.99200,0.98380,0.98173,0.98920,0.34205,0.89591,0.98889" TIQSGDR +PSM DQMAEMK 68 decoy_HVO_0123 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.56E-07 0-Acetyl (N-term):UNIMOD:1 null 2 447.7026062 447.688385 ms_run[1]:controllerType=0 controllerNumber=1 scan=4344 null null null null "0.00713,0.37260,0.00457,0.04943,0.44253,0.98827,0.98744" [Acetyl]-DQMAEMK +PSM MWTDPVR 69 HVO_A0295 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 7.46E-10 0-Carbamyl (N-term):UNIMOD:5; 1-Oxidation (M):UNIMOD:35 null 3 322.162384 321.8165894 ms_run[1]:controllerType=0 controllerNumber=1 scan=4347 null null null null "0.00388,0.00312,0.03827,0.04259,0.98697,0.92438,0.04183" [Carbamyl]-M[Oxidation]WTDPVR +PSM ELIDDSTK 70 HVO_0109 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.29E-09 0-Carbamyl (N-term):UNIMOD:5 null 2 482.7422485 482.2350769 ms_run[1]:controllerType=0 controllerNumber=1 scan=4348 null null null null "0.06034,0.08563,0.04189,0.44331,0.12031,0.07158,0.00160,0.99012" [Carbamyl]-ELIDDSTK +PSM MEYLEITGK 71 HVO_0379_B null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.70E-11 0-Acetyl (N-term):UNIMOD:1; 1-Oxidation (M):UNIMOD:35 null 3 381.1697998 381.1863708 ms_run[1]:controllerType=0 controllerNumber=1 scan=4352 null null null null "0.17510,0.17048,0.02547,0.03658,0.41922,0.02963,0.09468,0.00084,0.99068" [Acetyl]-M[Oxidation]EYLEITGK +PSM VFDDIEFER 72 decoy_HVO_A0574 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.18E-11 0-Carbamyl (N-term):UNIMOD:5 null 3 405.1904907 404.8558655 ms_run[1]:controllerType=0 controllerNumber=1 scan=4357 null null null null "0.03104,0.00784,0.52681,0.12570,0.10760,0.02301,0.00083,0.98143,0.98904" [Carbamyl]-VFDDIEFER +PSM HLQWLWR 73 HVO_1875 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 4.72E-11 null null 3 346.8527527 346.8592224 ms_run[1]:controllerType=0 controllerNumber=1 scan=4361 null null null null "0.08837,0.12898,0.06135,0.00309,0.07116,0.00032,0.99213" HLQWLWR +PSM NWVEHLGR 74 HVO_A0221 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.93E-10 0-Carbamyl (N-term):UNIMOD:5; 1-Deamidated (N):UNIMOD:7 null 3 352.5108948 352.1736755 ms_run[1]:controllerType=0 controllerNumber=1 scan=4363 null null null null "0.04264,0.00090,0.92980,0.62961,0.05131,0.15001,0.00114,0.98808" [Carbamyl]-N[Deamidated]WVEHLGR +PSM LAASESLAGK 75 decoy_HVO_A0179 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.46E-09 null null 2 474.2562866 473.7638245 ms_run[1]:controllerType=0 controllerNumber=1 scan=4377 null null null null "0.88937,0.98598,0.92188,0.31581,0.04526,0.18616,0.00433,0.00027,0.99008,0.99231" LAASESLAGK +PSM QNVHLSR 76 HVO_A0076 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.96E-07 0-Acetyl (N-term):UNIMOD:1 null 2 448.738678 448.2408447 ms_run[1]:controllerType=0 controllerNumber=1 scan=4383 null null null null "0.20646,0.02015,0.02766,0.32213,0.15791,0.03415,0.98962" [Acetyl]-QNVHLSR +PSM MSDELPTAK 77 HVO_1841_A null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.09E-10 1-Oxidation (M):UNIMOD:35 null 2 504.7646179 504.2393188 ms_run[1]:controllerType=0 controllerNumber=1 scan=4388 null null null null "0.65250,0.09249,0.04973,0.14858,0.06964,0.07726,0.05525,0.00085,0.98336" M[Oxidation]SDELPTAK +PSM LMQTEDNTGHK 78 HVO_0354 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.29E-09 2-Oxidation (M):UNIMOD:35 null 3 430.5307617 430.5312195 ms_run[1]:controllerType=0 controllerNumber=1 scan=4389 null null null null "0.99029,0.87186,0.03190,0.04496,0.10913,0.13293,0.04243,0.01059,0.98671,0.42439,0.98311" LM[Oxidation]QTEDNTGHK +PSM LVGEGHAMR 79 HVO_A0525 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.14E-08 0-Carbamyl (N-term):UNIMOD:5 null 2 506.7621765 506.7532654 ms_run[1]:controllerType=0 controllerNumber=1 scan=4390 null null null null "0.59462,0.33202,0.28101,0.00082,0.04585,0.81912,0.64397,0.02981,0.96627" [Carbamyl]-LVGEGHAMR +PSM MPEEVLFK 80 HVO_A0048 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.44E-10 1-Oxidation (M):UNIMOD:35 null 3 336.8457947 336.8405457 ms_run[1]:controllerType=0 controllerNumber=1 scan=4395 null null null null "0.47607,0.03338,0.08475,0.06813,0.04935,0.08163,0.00040,0.98780" M[Oxidation]PEEVLFK +PSM DVAYKPSSYR 81 HVO_0741 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 5.73E-11 0-Acetyl (N-term):UNIMOD:1 null 2 614.2901001 614.303894 ms_run[1]:controllerType=0 controllerNumber=1 scan=4402 null null null null "0.11765,0.01947,0.11825,0.02862,0.00616,0.96420,0.20288,0.27056,0.02319,0.98993" [Acetyl]-DVAYKPSSYR +PSM NGEAQAHAEER 82 HVO_0717 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.098112788 1-Deamidated (N):UNIMOD:7 null 2 606.7665405 606.765625 ms_run[1]:controllerType=0 controllerNumber=1 scan=4403 null null null null "0.61435,0.36807,0.62915,0.99017,0.98810,0.98941,0.98841,0.88211,0.92658,0.89969,0.98962" N[Deamidated]GEAQAHAEER +PSM CSHQTTLEQR 83 HVO_C0045 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.45E-15 0-Acetyl (N-term):UNIMOD:1; 1-Carbamidomethyl (C):UNIMOD:4 null 3 434.5242615 434.5349426 ms_run[1]:controllerType=0 controllerNumber=1 scan=4404 null null null null "0.01501,0.00315,0.56580,0.16235,0.03057,0.08426,0.10289,0.00775,0.00040,0.99105" [Acetyl]-C[Carbamidomethyl]SHQTTLEQR +PSM MSNETGYPHHK 84 HVO_1133 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.16E-08 1-Oxidation (M):UNIMOD:35 null 3 439.527771 439.527771 ms_run[1]:controllerType=0 controllerNumber=1 scan=4405 null null null null "0.26848,0.04884,0.02308,0.01352,0.01750,0.59918,0.28463,0.99172,0.99361,0.99021,0.98354" M[Oxidation]SNETGYPHHK +PSM LWQLLCR 85 HVO_B0087 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.43E-09 0-Acetyl (N-term):UNIMOD:1; 6-Carbamidomethyl (C):UNIMOD:4 null 2 515.7810669 515.7787476 ms_run[1]:controllerType=0 controllerNumber=1 scan=4406 null null null null "0.03266,0.00725,0.03799,0.04325,0.54981,0.01173,0.98018" [Acetyl]-LWQLLC[Carbamidomethyl]R +PSM MNASHGNVEHR 86 HVO_0806 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.56480919 null null 2 626.777771 626.2860107 ms_run[1]:controllerType=0 controllerNumber=1 scan=4412 null null null null "0.99252,0.63447,0.98859,0.98717,0.98987,0.98965,0.98209,0.99179,0.99097,0.99092,0.98984" MNASHGNVEHR +PSM MQQEAEQHAEEDK 87 HVO_1590 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.190680162 1-Oxidation (M):UNIMOD:35 null 2 795.3311768 794.8308716 ms_run[1]:controllerType=0 controllerNumber=1 scan=4413 null null null null "0.99110,0.98934,0.98574,0.71135,0.99048,0.65346,0.78294,0.98824,0.99137,0.69868,0.83745,0.98915,0.97448" M[Oxidation]QQEAEQHAEEDK +PSM LWQLLCR 88 HVO_B0087 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.22E-10 0-Acetyl (N-term):UNIMOD:1; 6-Carbamidomethyl (C):UNIMOD:4 null 3 344.1891785 344.1882629 ms_run[1]:controllerType=0 controllerNumber=1 scan=4415 null null null null "0.06248,0.00455,0.05098,0.10569,0.15802,0.00052,0.99143" [Acetyl]-LWQLLC[Carbamidomethyl]R +PSM EAQDEVTFYR 89 HVO_1426 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.60E-12 0-Carbamyl (N-term):UNIMOD:5 null 2 651.2841797 650.7938843 ms_run[1]:controllerType=0 controllerNumber=1 scan=4416 null null null null "0.07883,0.06757,0.00772,0.01811,0.01195,0.08569,0.71588,0.06454,0.04634,0.99061" [Carbamyl]-EAQDEVTFYR +PSM EILQIHTR 90 HVO_2380 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.09E-09 0-Carbamyl (N-term):UNIMOD:5 null 3 351.5244141 351.5330505 ms_run[1]:controllerType=0 controllerNumber=1 scan=4418 null null null null "0.05337,0.10671,0.04740,0.26745,0.10240,0.07163,0.00598,0.98862" [Carbamyl]-EILQIHTR +PSM EHGVHGK 91 decoy_HVO_0401 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.94E-07 null null 2 382.1960754 382.1959229 ms_run[1]:controllerType=0 controllerNumber=1 scan=4420 null null null null "0.00625,0.37545,0.00618,0.01392,0.99255,0.98886,0.99143" EHGVHGK +PSM GQTSPTSPMGHK 92 HVO_1304 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.624232894 9-Oxidation (M):UNIMOD:35 null 2 622.2907104 622.2904053 ms_run[1]:controllerType=0 controllerNumber=1 scan=4426 null null null null "0.98916,0.97538,0.99025,0.99220,0.99058,0.99004,0.99128,0.99152,0.99457,0.99131,0.71766,0.97490" GQTSPTSPM[Oxidation]GHK +PSM MNASHGNVEHR 93 HVO_0806 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.002814606 null null 3 418.186554 417.8597717 ms_run[1]:controllerType=0 controllerNumber=1 scan=4427 null null null null "0.99343,0.09837,0.96895,0.13134,0.99184,0.98909,0.98048,0.98874,0.96679,0.98916,0.25104" MNASHGNVEHR +PSM MTEYTDEEQR 94 HVO_1186 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.05E-14 null null 4 326.1453857 326.1383057 ms_run[1]:controllerType=0 controllerNumber=1 scan=4428 null null null null "0.07869,0.06957,0.03574,0.02117,0.04680,0.08713,0.12049,0.05879,0.00026,0.99055" MTEYTDEEQR +PSM LLATHLQR 95 HVO_0078 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.12E-09 7-Deamidated (Q):UNIMOD:7 null 3 318.513855 318.1906128 ms_run[1]:controllerType=0 controllerNumber=1 scan=4429 null null null null "0.87852,0.02232,0.00110,0.84910,0.56963,0.27123,0.00040,0.99265" LLATHLQ[Deamidated]R +PSM LTEENK 96 decoy_sp|K1C15_SHEEP| null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.05E-07 null null 2 367.1994934 367.1899414 ms_run[1]:controllerType=0 controllerNumber=1 scan=4430 null null null null "0.47540,0.18367,0.20815,0.03277,0.03328,0.01046" LTEENK +PSM MQQEAEQHAEEDK 97 HVO_1590 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 4.48E-05 1-Oxidation (M):UNIMOD:35 null 3 530.2227173 530.2230225 ms_run[1]:controllerType=0 controllerNumber=1 scan=4431 null null null null "0.97718,0.68301,0.15759,0.19718,0.23238,0.12606,0.35723,0.98346,0.99068,0.50162,0.70921,0.60733,0.99173" M[Oxidation]QQEAEQHAEEDK +PSM HVGFFTELAR 98 HVO_1086 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.15E-10 null null 2 588.7902222 588.8116455 ms_run[1]:controllerType=0 controllerNumber=1 scan=4432 null null null null "0.98773,0.97659,0.64921,0.04826,0.06744,0.00449,0.06589,0.00450,0.05762,0.74611" HVGFFTELAR +PSM DALAEMYR 99 HVO_1756 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.20E-08 6-Oxidation (M):UNIMOD:35 null 2 493.2308655 492.7263489 ms_run[1]:controllerType=0 controllerNumber=1 scan=4434 null null null null "0.84952,0.30341,0.21991,0.08918,0.04526,0.06498,0.02618,0.03109" DALAEM[Oxidation]YR +PSM GTGHTSHK 100 decoy_HVO_2542 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.37E-08 null null 2 413.2221069 412.7041016 ms_run[1]:controllerType=0 controllerNumber=1 scan=4436 null null null null "0.92160,0.05321,0.02975,0.48600,0.11553,0.00017,0.99273,0.99073" GTGHTSHK +PSM HMLEEGHEGR 101 HVO_2661 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.00340108 2-Oxidation (M):UNIMOD:35 null 3 404.1806641 404.1805115 ms_run[1]:controllerType=0 controllerNumber=1 scan=4439 null null null null "0.99116,0.94322,0.07649,0.05383,0.97965,0.99137,0.99289,0.97191,0.96578,0.98567" HM[Oxidation]LEEGHEGR +PSM MAPTDESPR 102 HVO_A0497 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 8.39E-11 0-Carbamyl (N-term):UNIMOD:5; 1-Oxidation (M):UNIMOD:35 null 2 532.2124634 531.7296753 ms_run[1]:controllerType=0 controllerNumber=1 scan=4440 null null null null "0.00073,0.06756,0.02102,0.05382,0.72361,0.88698,0.28473,0.12102,0.06904" [Carbamyl]-M[Oxidation]APTDESPR +PSM HVIPGIK 103 HVO_C0069 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 5.19E-08 null null 2 382.7296448 382.2448425 ms_run[1]:controllerType=0 controllerNumber=1 scan=4441 null null null null "0.59940,0.08164,0.02795,0.17268,0.24605,0.00367,0.24822" HVIPGIK +PSM CDDLVNER 104 decoy_HVO_0580 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.12E-09 1-Carbamidomethyl (C):UNIMOD:4 null 2 511.2084351 510.7243347 ms_run[1]:controllerType=0 controllerNumber=1 scan=4442 null null null null "0.29449,0.06027,0.05189,0.05526,0.04436,0.03704,0.06848,0.19869" C[Carbamidomethyl]DDLVNER +PSM LPTEDKPK 105 decoy_HVO_1527 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.93E-09 0-Carbamyl (N-term):UNIMOD:5 null 2 485.7697449 485.7637939 ms_run[1]:controllerType=0 controllerNumber=1 scan=4443 null null null null "0.24143,0.02200,0.05041,0.17393,0.02181,0.00196,0.99055,0.99050" [Carbamyl]-LPTEDKPK +PSM NPSQENFK 106 decoy_sp|SSPA_STAAU| null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.57E-09 null null 2 482.2089233 482.2301636 ms_run[1]:controllerType=0 controllerNumber=1 scan=4445 null null null null "0.04214,0.08057,0.09336,0.02553,0.19926,0.13289,0.00753,0.99070" NPSQENFK +PSM SGVADALMEDLAGHAAR 107 decoy_HVO_2423 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.74E-18 8-Oxidation (M):UNIMOD:35 null 3 567.586853 567.2738037 ms_run[1]:controllerType=0 controllerNumber=1 scan=4446 null null null null "0.88651,0.41213,0.06373,0.41564,0.05553,0.04996,0.38590,0.01514,0.11826,0.05253,0.03769,0.08427,0.17045,0.40009,0.17123,0.07648,0.00100" SGVADALM[Oxidation]EDLAGHAAR +PSM EYEGIIYK 108 HVO_0887 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.66E-11 0-Acetyl (N-term):UNIMOD:1 null 2 529.2674561 528.7660522 ms_run[1]:controllerType=0 controllerNumber=1 scan=4450 null null null null "0.06697,0.02893,0.08388,0.04274,0.08940,0.10413,0.00042,0.98927" [Acetyl]-EYEGIIYK +PSM APTFER 109 decoy_HVO_2680 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.89E-07 null null 2 360.6927795 360.6873779 ms_run[1]:controllerType=0 controllerNumber=1 scan=4451 null null null null "0.93612,0.07339,0.01794,0.00033,0.98871,0.99092" APTFER +PSM ELEQEIEER 110 HVO_A0061 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 6.72E-11 4-Deamidated (Q):UNIMOD:7 null 3 392.8630981 392.5190735 ms_run[1]:controllerType=0 controllerNumber=1 scan=4452 null null null null "0.07956,0.25866,0.01293,0.00735,0.16140,0.00030,0.94186,0.98796,0.77879" ELEQ[Deamidated]EIEER +PSM QINILSNR 111 decoy_HVO_1953 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 6.63E-12 1-Deamidated (Q):UNIMOD:7 null 2 479.7458496 479.7694092 ms_run[1]:controllerType=0 controllerNumber=1 scan=4453 null null null null "0.16043,0.05421,0.08112,0.03075,0.04602,0.09829,0.09997,0.00068" Q[Deamidated]INILSNR +PSM EIHEEIK 112 decoy_HVO_2289 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 7.11E-09 0-Carbamyl (N-term):UNIMOD:5 null 3 314.1639709 314.1626282 ms_run[1]:controllerType=0 controllerNumber=1 scan=4455 null null null null "0.01800,0.07120,0.55582,0.35799,0.16414,0.35218,0.00049" [Carbamyl]-EIHEEIK +PSM LHLEDLR 113 decoy_HVO_1799 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 8.89E-07 0-Carbamyl (N-term):UNIMOD:5 null 2 470.2430725 469.7562866 ms_run[1]:controllerType=0 controllerNumber=1 scan=4457 null null null null "0.02244,0.09179,0.02918,0.01569,0.98600,0.97862,0.98821" [Carbamyl]-LHLEDLR +PSM NPHPDR 114 HVO_B0336 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.003000472 null null 2 368.1662903 368.1802368 ms_run[1]:controllerType=0 controllerNumber=1 scan=4463 null null null null "0.31948,0.02138,0.98273,0.97121,0.47167,0.98858" NPHPDR +PSM QGPHTTADDPSR 115 HVO_2209 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 9.65E-06 null null 2 641.7960815 641.2945557 ms_run[1]:controllerType=0 controllerNumber=1 scan=4464 null null null null "0.66116,0.88220,0.74546,0.92101,0.11355,0.06980,0.05390,0.06088,0.98181,0.99063,0.98283,0.98222" QGPHTTADDPSR +PSM AVVAHEHR 116 HVO_2833 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.45E-08 null null 2 460.2395935 459.7488403 ms_run[1]:controllerType=0 controllerNumber=1 scan=4468 null null null null "0.97045,0.01868,0.20172,0.07729,0.00018,0.71839,0.97108,0.98970" AVVAHEHR +PSM QISVIHER 117 decoy_HVO_1515 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.70E-10 0-Carbamyl (N-term):UNIMOD:5; 1-Deamidated (Q):UNIMOD:7 null 2 513.7702026 513.2723389 ms_run[1]:controllerType=0 controllerNumber=1 scan=4471 null null null null "0.07440,0.14921,0.11383,0.04368,0.06847,0.29473,0.70297,0.00035" [Carbamyl]-Q[Deamidated]ISVIHER +PSM GLDDDMSR 118 decoy_HVO_2436 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.65E-06 6-Oxidation (M):UNIMOD:35 null 2 462.7077942 462.6899719 ms_run[1]:controllerType=0 controllerNumber=1 scan=4472 null null null null "0.98958,0.77708,0.45916,0.14786,0.08631,0.02775,0.05385,0.39735" GLDDDM[Oxidation]SR +PSM AVVAHEHR 119 HVO_2833 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.13E-09 null null 3 307.1630249 306.8349915 ms_run[1]:controllerType=0 controllerNumber=1 scan=4474 null null null null "0.97760,0.00429,0.04942,0.00545,0.00151,0.67806,0.99196,0.99081" AVVAHEHR +PSM DIWTQIMER 120 HVO_2276 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.64E-12 7-Oxidation (M):UNIMOD:35 null 2 604.7702637 604.2924805 ms_run[1]:controllerType=0 controllerNumber=1 scan=4480 null null null null "0.62216,0.10626,0.00288,0.09686,0.02309,0.10458,0.00030,0.27456,0.99024" DIWTQIM[Oxidation]ER +PSM HSSAQEHQK 121 decoy_HVO_0880 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.82E-09 5-Deamidated (Q):UNIMOD:7 null 2 526.7666016 526.7414551 ms_run[1]:controllerType=0 controllerNumber=1 scan=4481 null null null null "0.80325,0.16365,0.05505,0.08591,0.00137,0.66266,0.64091,0.33456,0.01520" HSSAQ[Deamidated]EHQK +PSM HDPDIYPPHDR 122 HVO_1079 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.01E-12 null null 2 681.2942505 681.3153076 ms_run[1]:controllerType=0 controllerNumber=1 scan=4482 null null null null "0.93118,0.12889,0.08984,0.29178,0.01676,0.01098,0.06186,0.05085,0.17709,0.01143,0.27642" HDPDIYPPHDR +PSM IRPDDR 123 "HVO_1223,decoy_HVO_1223" null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.000133929 null null 2 386.7246399 386.2089539 ms_run[1]:controllerType=0 controllerNumber=1 scan=4488 null null null null "0.99165,0.95844,0.11998,0.00251,0.48123,0.98571" IRPDDR +PSM QGPHTTADDPSR 124 HVO_2209 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 6.75E-07 null null 3 427.8658142 427.865448 ms_run[1]:controllerType=0 controllerNumber=1 scan=4489 null null null null "0.88156,0.77879,0.00349,0.74719,0.01628,0.25868,0.83377,0.11329,0.98932,0.99055,0.98695,0.99064" QGPHTTADDPSR +PSM AFEDPHGR 125 decoy_HVO_0266 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 5.34E-06 0-Acetyl (N-term):UNIMOD:1 null 2 485.7216797 485.7224731 ms_run[1]:controllerType=0 controllerNumber=1 scan=4491 null null null null "0.17951,0.01605,0.01245,0.93509,0.99093,0.97041,0.17362,0.96330" [Acetyl]-AFEDPHGR +PSM LDDHTQTGK 126 decoy_HVO_B0153 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 4.70E-10 null null 3 339.1737976 338.8331604 ms_run[1]:controllerType=0 controllerNumber=1 scan=4492 null null null null "0.82020,0.02570,0.07647,0.05131,0.16747,0.01438,0.13503,0.08953,0.19744" LDDHTQTGK +PSM DPHPDIPDHYR 127 decoy_HVO_1079 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.37E-13 null null 3 454.5317688 454.5459595 ms_run[1]:controllerType=0 controllerNumber=1 scan=4493 null null null null "0.27374,0.11783,0.09011,0.04475,0.05055,0.00766,0.02962,0.42407,0.09929,0.00864,0.62821" DPHPDIPDHYR +PSM VTDAPATHEK 128 HVO_B0061 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.063272183 null null 2 534.769165 534.7696533 ms_run[1]:controllerType=0 controllerNumber=1 scan=4494 null null null null "0.99120,0.98972,0.98843,0.98355,0.99091,0.98561,0.51204,0.99141,0.98154,0.13779" VTDAPATHEK +PSM AFEDPHGR 129 decoy_HVO_0266 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 6.27E-08 0-Acetyl (N-term):UNIMOD:1 null 3 324.1496277 324.1507263 ms_run[1]:controllerType=0 controllerNumber=1 scan=4495 null null null null "0.00402,0.00988,0.19983,0.37478,0.99193,0.95144,0.02279,0.99080" [Acetyl]-AFEDPHGR +PSM EADLIQR 130 decoy_HVO_B0316 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.51E-08 6-Deamidated (Q):UNIMOD:7 null 2 423.738678 423.2217712 ms_run[1]:controllerType=0 controllerNumber=1 scan=4499 null null null null "0.34145,0.42888,0.07462,0.04739,0.08257,0.00062,0.95496" EADLIQ[Deamidated]R +PSM MIYSVDVR 131 HVO_0127 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.51E-08 0-Acetyl (N-term):UNIMOD:1; 1-Oxidation (M):UNIMOD:35 null 2 520.7474365 520.7576904 ms_run[1]:controllerType=0 controllerNumber=1 scan=4500 null null null null "0.03913,0.10720,0.02527,0.08511,0.00320,0.83770,0.63533,0.98977" [Acetyl]-M[Oxidation]IYSVDVR +PSM CELNLNFER 132 decoy_HVO_2276 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 9.93E-12 1-Carbamidomethyl (C):UNIMOD:4; 4-Deamidated (N):UNIMOD:7 null 3 399.5305176 399.1852417 ms_run[1]:controllerType=0 controllerNumber=1 scan=4502 null null null null "0.35565,0.13858,0.12566,0.00207,0.04790,0.05900,0.00028,0.98920,0.99152" C[Carbamidomethyl]ELN[Deamidated]LNFER +PSM MAIPGEFLDR 133 decoy_HVO_0506 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 3.27E-12 0-Carbamyl (N-term):UNIMOD:5; 1-Oxidation (M):UNIMOD:35 null 3 403.5145264 403.1974182 ms_run[1]:controllerType=0 controllerNumber=1 scan=4506 null null null null "0.01972,0.09929,0.06025,0.03308,0.04153,0.07061,0.00031,0.95686,0.98767,0.99032" [Carbamyl]-M[Oxidation]AIPGEFLDR +PSM TAEDGGHATETGESAGR 134 HVO_A0562 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 0.000707354 null null 3 549.2400513 549.2398071 ms_run[1]:controllerType=0 controllerNumber=1 scan=4507 null null null null "0.98963,0.97781,0.53402,0.29493,0.42691,0.24925,0.97216,0.99014,0.98919,0.97605,0.99114,0.98901,0.53663,0.98898,0.53980,0.17039,0.99034" TAEDGGHATETGESAGR +PSM WELHLVCK 135 HVO_2434 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 2.52E-12 0-Acetyl (N-term):UNIMOD:1; 7-Carbamidomethyl (C):UNIMOD:4 null 2 563.7778931 563.7893066 ms_run[1]:controllerType=0 controllerNumber=1 scan=4510 null null null null "0.00332,0.05664,0.07019,0.10246,0.06793,0.05957,0.00047,0.99097" [Acetyl]-WELHLVC[Carbamidomethyl]K +PSM WEVHLIDDR 136 decoy_HVO_B0155 null null null "[MS, MS:1003281, Casanovo, 5.1.2]" 1.86E-12 0-[+25.9803] null 4 302.8878174 302.8980713 ms_run[1]:controllerType=0 controllerNumber=1 scan=4511 null null null null "0.00000,0.01735,0.57495,0.41778,0.00035,0.99132,0.59950,0.97581,0.99021" [+25.980265]-WEVHLIDDR diff --git a/tests/de_novo/test_engine_parser_casanovo_5_2.py b/tests/de_novo/test_engine_parser_casanovo_5_2.py new file mode 100644 index 0000000..fcbd4ef --- /dev/null +++ b/tests/de_novo/test_engine_parser_casanovo_5_2.py @@ -0,0 +1,324 @@ +import pytest + +from pyiohat.parsers.de_novo.casanovo_5_2_parser import Casanovo_5_2_Parser + + +def test_engine_parsers_casanovo_init(): + input_file = pytest._test_path / "data" / "test_casanovo_5_2.mztab" + parser = Casanovo_5_2_Parser( + input_file, + params={ + "cpus": 2, + "enzyme": "(?<=[KR])(?![P])", + "terminal_cleavage_site_integrity": "any", + "modifications": [ + { + "aa": "M", + "type": "opt", + "position": "any", + "name": "Oxidation", + }, + { + "aa": "C", + "type": "fix", + "position": "any", + "name": "Carbamidomethyl", + }, + { + "aa": "*", + "type": "opt", + "position": "Prot-N-term", + "name": "Acetyl", + }, + ], + }, + ) + + +def test_engine_parsers_casanovo_metadata(): + input_file = pytest._test_path / "data" / "test_casanovo_5_2.mztab" + parser = Casanovo_5_2_Parser( + input_file, + params={ + "cpus": 2, + "enzyme": "(?<=[KR])(?![P])", + "terminal_cleavage_site_integrity": "any", + "modifications": [ + { + "aa": "M", + "type": "opt", + "position": "any", + "name": "Oxidation", + }, + { + "aa": "C", + "type": "fix", + "position": "any", + "name": "Carbamidomethyl", + }, + { + "aa": "*", + "type": "opt", + "position": "Prot-N-term", + "name": "Acetyl", + }, + ], + }, + ) + assert parser.metadata + + +def test_engine_parsers_casanovo_check_parser_compatibility(): + input_file = pytest._test_path / "data" / "test_casanovo_5_2.mztab" + assert Casanovo_5_2_Parser.check_parser_compatibility(input_file) is True + + +def test_engine_parsers_casanovo_check_dataframe_integrity(): + input_file = pytest._test_path / "data" / "test_casanovo_5_2.mztab" + rt_lookup_path = pytest._test_path / "data" / "casanovo_lookup.csv" + db_path = pytest._test_path / "data" / "Hfvol_prot_250410.fasta" + + parser = Casanovo_5_2_Parser( + input_file, + params={ + "cpus": 2, + "rt_pickle_name": rt_lookup_path, + "database": db_path, + "enzyme": "(?<=[KR])(?![P])", + "terminal_cleavage_site_integrity": "any", + "modifications": [ + { + "aa": "M", + "type": "opt", + "position": "any", + "name": "Oxidation", + }, + { + "aa": "C", + "type": "fix", + "position": "any", + "name": "Carbamidomethyl", + }, + { + "aa": "*", + "type": "opt", + "position": "Prot-N-term", + "name": "Acetyl", + }, + ], + "15N": False, + }, + ) + df = parser.unify() + assert len(df) == 136 + assert pytest.approx(df["ucalc_mz"].mean(), abs=1e-3) == 455.669 + assert pytest.approx(df["exp_mz"].mean(), abs=1e-3) == 460.018 + + assert df["modifications"].str.contains("Carbamyl:0").sum() == 27 + assert df["modifications"].str.contains("Oxidation:").sum() == 29 + assert ( + df["modifications"].str.count("Carbamidomethyl:") + == df["sequence"].str.count("C") + ).all() + assert df["modifications"].str.count(":").sum() == 105 + assert (df["raw_data_location"] == "path/for/glory.mzML").all() + + +def test_map_mod_translation_casanovo(): + import pandas as pd + + input_file = pytest._test_path / "data" / "test_casanovo_5_2.mztab" + db_path = pytest._test_path / "data" / "Hfvol_prot_250410.fasta" + rt_lookup_path = pytest._test_path / "data" / "casanovo_lookup.csv" + + parser = Casanovo_5_2_Parser( + input_file, + params={ + "cpus": 2, + "database": db_path, + "rt_pickle_name": rt_lookup_path, + "enzyme": "(?<=[KR])(?!P)", + "terminal_cleavage_site_integrity": "any", + "modifications": [ + { + "aa": "M", + "type": "opt", + "position": "any", + "name": "Oxidation", + }, + ], + }, + ) + # Manual injection of a dataframe to test specific mapping logic. + # NOTE: the new parser reads modifications from a separate mzTab-style + # "modifications" column (e.g. "2-Oxidation (M):UNIMOD:35"), not from + # bracket notation embedded directly in the sequence string. + parser.df = pd.DataFrame( + { + "sequence": ["LMDKPEQLR"], + "modifications": ["2-Oxidation (M):UNIMOD:35"], + "spectrum_id": ["ms_run[1]:controllerType=0 controllerNumber=1 scan=4303"], + "charge": [2], + "casanovo:search_engine_score[1]": [0.99], + "protein_id": [None], + "exp_mz": [447.34625], + "retention_time_seconds": [213.85], + } + ) + df = parser.unify() + # Resolved name should carry the same position the mass-shift entry specified. + assert df["modifications"].iloc[0] == "Oxidation:2" + assert df["sequence"].iloc[0] == "LMDKPEQLR" + + +def test_map_mod_translation_casanovo_mass_shift(): + """Mass-only modification (no UNIMOD name in mzTab) should resolve via + mod_mapper.mass_to_names(), leaving nothing but the mass delta if unresolved. + """ + import pandas as pd + + input_file = pytest._test_path / "data" / "test_casanovo_5_2.mztab" + db_path = pytest._test_path / "data" / "Hfvol_prot_250410.fasta" + rt_lookup_path = pytest._test_path / "data" / "casanovo_lookup.csv" + + parser = Casanovo_5_2_Parser( + input_file, + params={ + "cpus": 2, + "database": db_path, + "rt_pickle_name": rt_lookup_path, + "enzyme": "(?<=[KR])(?!P)", + "terminal_cleavage_site_integrity": "any", + "modifications": [ + { + "aa": "M", + "type": "opt", + "position": "any", + "name": "Oxidation", + }, + ], + }, + ) + + parser.df = pd.DataFrame( + { + "sequence": ["LMDKPEQLR"], + "modifications": ["2-[15.9949]"], + "spectrum_id": ["ms_run[1]:controllerType=0 controllerNumber=1 scan=4266"], + "charge": [2], + "casanovo:search_engine_score[1]": [0.98], + "protein_id": [None], + "exp_mz": [447.34625], + "retention_time_seconds": [214.10], + } + ) + + df = parser.unify() + + assert df["modifications"].iloc[0] == "Oxidation:2" + assert df["sequence"].iloc[0] == "LMDKPEQLR" + + +def test_map_mod_translation_casanovo_mass_shift_no_mass_to_name(capsys): + """Mass-only modification (no UNIMOD name in mzTab) should resolve via + mod_mapper.mass_to_names(), leaving nothing but the mass delta if unresolved. + """ + import pandas as pd + + input_file = pytest._test_path / "data" / "test_casanovo_5_2.mztab" + db_path = pytest._test_path / "data" / "Hfvol_prot_250410.fasta" + rt_lookup_path = pytest._test_path / "data" / "casanovo_lookup.csv" + + parser = Casanovo_5_2_Parser( + input_file, + params={ + "cpus": 2, + "database": db_path, + "rt_pickle_name": rt_lookup_path, + "enzyme": "(?<=[KR])(?!P)", + "terminal_cleavage_site_integrity": "any", + "modifications": [ + { + "aa": "M", + "type": "opt", + "position": "any", + "name": "Oxidation", + }, + ], + }, + ) + + parser.df = pd.DataFrame( + { + "sequence": ["LMDKPEQLR"], + "modifications": ["0-[+25.980265]"], + "spectrum_id": ["ms_run[1]:controllerType=0 controllerNumber=1 scan=4266"], + "charge": [2], + "casanovo:search_engine_score[1]": [0.98], + "protein_id": [None], + "exp_mz": [564.7929], + "retention_time_seconds": [214.10], + } + ) + capsys.readouterr() + df = parser.unify() + + # Check that warning that mass to names was unsuccessful is dusplayed. + captured = capsys.readouterr() + assert "Warning" in captured.out + assert "25.980265" in captured.out + assert "no UNIMOD match found" in captured.out + # Modifications column should be empty. + assert not df["modifications"].iloc[0] or pd.isna(df["modifications"].iloc[0]) + # Verify that mass_delta is strictly between 25 and 28 + assert 25 < df["mass_delta"].iloc[0] < 28 + + assert df["sequence"].iloc[0] == "LMDKPEQLR" + + +def test_map_mod_translation_casanovo_multiple_mass_shifts(): + """Multiple mass-shift modifications (no UNIMOD names) that cannot be resolved + should result in an empty modifications column. + """ + import pandas as pd + + input_file = pytest._test_path / "data" / "test_casanovo_5_2.mztab" + db_path = pytest._test_path / "data" / "Hfvol_prot_250410.fasta" + rt_lookup_path = pytest._test_path / "data" / "casanovo_lookup.csv" + + parser = Casanovo_5_2_Parser( + input_file, + params={ + "cpus": 2, + "database": db_path, + "rt_pickle_name": rt_lookup_path, + "enzyme": "(?<=[KR])(?!P)", + "terminal_cleavage_site_integrity": "any", + "modifications": [ + { + "aa": "M", + "type": "opt", + "position": "any", + "name": "Oxidation", + }, + ], + }, + ) + + parser.df = pd.DataFrame( + { + "sequence": ["LMDKPEQLR"], + "modifications": ["0-[+25.980265];3-[+18.010565]"], + "spectrum_id": ["ms_run[1]:controllerType=0 controllerNumber=1 scan=4266"], + "charge": [2], + "casanovo:search_engine_score[1]": [0.98], + "protein_id": [None], + "exp_mz": [578.295], + "retention_time_seconds": [214.10], + } + ) + df = parser.unify() + # When multiple mass shifts cannot be resolved, modifications column should be empty + assert not df["modifications"].iloc[0] or pd.isna(df["modifications"].iloc[0]) + + assert df["sequence"].iloc[0] == "LMDKPEQLR"