From db118b50f914139d877fbafd0101bccd4a968da4 Mon Sep 17 00:00:00 2001 From: Vincenth Brennsteiner Date: Wed, 14 Jan 2026 16:33:48 +0100 Subject: [PATCH 1/4] add missing columns for spectronaut version 20.0.250515.50606 in 'spectronaut_report' reader configuration; refactor 'spectronaut' and 'spectronaut_report' reader configurations and remove separate key 'precursor_id_columns' in favor of 'precursor_id' inside 'column_mapping' --- .../constants/const_files/psm_reader.yaml | 62 +++++-------------- 1 file changed, 16 insertions(+), 46 deletions(-) diff --git a/alphabase/constants/const_files/psm_reader.yaml b/alphabase/constants/const_files/psm_reader.yaml index 98959217..1e2a3129 100644 --- a/alphabase/constants/const_files/psm_reader.yaml +++ b/alphabase/constants/const_files/psm_reader.yaml @@ -162,41 +162,6 @@ modification_mappings: 'Phospho@T': 'pT' 'Phospho@Y': 'pY' 'Acetyl@Protein_N-term': 'a' - msfragger: - 'SATA@K': - - 'K(115.9932)' - 'SATA@Any_N-term': - - 'N-term(115.9932)' - 'SATA-Succinamide@K': - - 'K(247.0150)' - 'SATA-Succinamide@Any_N-term': - - 'N-term(247.0150)' - 'SATP@K': - - 'K(130.0088)' - 'SATP@Any_N-term': - - 'N-term(130.0088)' - 'SATP-Succinamide@K': - - 'K(261.0307)' - 'SATP-Succinamide@Any_N-term': - - 'N-term(261.0307)' - 'Acetyl@K': - - 'K(42.0105)' - 'mTRAQ@K': - - 'K(140.0949)' - 'mTRAQ@Any_N-term': - - 'N-term(140.0949)' - 'mTRAQ:13C(3)15N(1)@K': - - 'K(144.1020)' - 'mTRAQ:13C(3)15N(1)@Any_N-term': - - 'N-term(144.1020)' - 'mTRAQ:13C(6)15N(2)@K': - - 'K(148.1091)' - 'mTRAQ:13C(6)15N(2)@Any_N-term': - - 'N-term(148.1091)' - 'TMTpro@K': - - 'K(304.2071)' - 'TMTpro@Any_N-term': - - 'N-term(304.2071)' pfind: reader_type: pfind @@ -246,7 +211,7 @@ msfragger_psm_tsv: - 'TMTpro@K' - 'TMTpro@Any_N-term' mod_mass_tol: 0.1 - modification_mapping_type: 'msfragger' + modification_mapping_type: 'maxquant' msfragger_pepxml: reader_type: msfragger_pepxml @@ -314,16 +279,21 @@ spectronaut_report: fixed_C57: False column_mapping: 'raw_name': 'R.FileName' + 'sequence': 'PEP.StrippedSequence' + 'charge': ['charge', 'FG.Charge'] 'rt': ['EG.ApexRT','EG.MeanApexRT'] - 'mobility': ['FG.ApexIonMobility'] - 'proteins': ['PG.ProteinNames','PG.ProteinGroups'] - 'genes': 'PG.Genes' + 'mobility': 'FG.ApexIonMobility' + 'proteins': ['PG.ProteinNames','PG.ProteinGroups', 'PG.ProteinAccessions'] + 'precursor_mz': 'FG.PrecMz' 'uniprot_ids': 'PG.UniProtIds' - 'charge': 'charge' + 'genes': ['PG.Genes', 'PG.ProteinNames'] + 'fdr': 'EG.Qvalue' + 'intensity': 'PG.Quantity' + 'precursor_id': 'EG.PrecursorId' + 'precursor_intensity': 'EG.TotalQuantity (Settings)' + mod_seq_columns: - 'ModifiedSequence' - precursor_id_columns: - - "EG.PrecursorId" modification_mapping_type: 'maxquant' spectronaut: @@ -335,12 +305,14 @@ spectronaut: 'sequence': ['StrippedPeptide','PeptideSequence'] 'charge': 'PrecursorCharge' 'rt': ['RT','iRT','Tr_recalibrated','RetentionTime','NormalizedRetentionTime'] - 'ccs': 'CCS' - 'precursor_mz': 'PrecursorMz' 'mobility': ['Mobility','IonMobility','PrecursorIonMobility'] 'proteins': ['Protein Name','ProteinId','ProteinID','ProteinName','ProteinGroup','ProteinGroups'] + 'ccs': 'CCS' + 'precursor_mz': 'PrecursorMz' 'uniprot_ids': ['UniProtIds','UniProtID','UniprotId'] 'genes': ['Genes','Gene','GeneName','GeneNames'] + 'precursor_id': "EG.PrecursorId" + mod_seq_columns: - 'ModifiedPeptide' - 'ModifiedSequence' @@ -348,8 +320,6 @@ spectronaut: - 'ModifiedPeptideSequence' - 'LabeledSequence' - 'FullUniModPeptideName' - precursor_id_columns: - - "EG.PrecursorId" modification_mapping_type: 'maxquant' library_reader_base: From d50e199dfde3032534c4a5887558ac643ad4f6a8 Mon Sep 17 00:00:00 2001 From: Vincenth Brennsteiner Date: Wed, 14 Jan 2026 17:12:05 +0100 Subject: [PATCH 2/4] add missing columns for spectronaut version 20.0.250515.50606 in 'spectronaut_report' reader configuration; refactor 'spectronaut' and 'spectronaut_report' reader configurations and remove separate key 'precursor_id_columns' in favor of 'precursor_id' inside 'column_mapping' --- alphabase/constants/const_files/psm_reader.yaml | 9 ++++++--- alphabase/psm_reader/dia_psm_reader.py | 8 +++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/alphabase/constants/const_files/psm_reader.yaml b/alphabase/constants/const_files/psm_reader.yaml index 1e2a3129..bbb5e701 100644 --- a/alphabase/constants/const_files/psm_reader.yaml +++ b/alphabase/constants/const_files/psm_reader.yaml @@ -288,13 +288,15 @@ spectronaut_report: 'uniprot_ids': 'PG.UniProtIds' 'genes': ['PG.Genes', 'PG.ProteinNames'] 'fdr': 'EG.Qvalue' - 'intensity': 'PG.Quantity' - 'precursor_id': 'EG.PrecursorId' + 'intensity': 'EG.TotalQuantity (Settings)' 'precursor_intensity': 'EG.TotalQuantity (Settings)' mod_seq_columns: - 'ModifiedSequence' + - 'EG.PrecursorId' modification_mapping_type: 'maxquant' + precursor_id_columns: + - "EG.PrecursorId" spectronaut: reader_type: spectronaut @@ -311,7 +313,6 @@ spectronaut: 'precursor_mz': 'PrecursorMz' 'uniprot_ids': ['UniProtIds','UniProtID','UniprotId'] 'genes': ['Genes','Gene','GeneName','GeneNames'] - 'precursor_id': "EG.PrecursorId" mod_seq_columns: - 'ModifiedPeptide' @@ -321,6 +322,8 @@ spectronaut: - 'LabeledSequence' - 'FullUniModPeptideName' modification_mapping_type: 'maxquant' + precursor_id_columns: + - "EG.PrecursorId" library_reader_base: reader_type: library_reader_base diff --git a/alphabase/psm_reader/dia_psm_reader.py b/alphabase/psm_reader/dia_psm_reader.py index 3e6e8bae..cc0adfc3 100644 --- a/alphabase/psm_reader/dia_psm_reader.py +++ b/alphabase/psm_reader/dia_psm_reader.py @@ -126,9 +126,11 @@ class SpectronautReportReader(ModifiedSequenceReader): def _pre_process(self, df: pd.DataFrame) -> pd.DataFrame: """Spectronaut report-specific preprocessing of output data.""" - df[[self.mod_seq_column, PsmDfCols.CHARGE]] = df[ - self._precursor_id_column - ].str.split(".", expand=True, n=2) + # In case charge state column is missing, we splice it out of the precursor id column + if PsmDfCols.CHARGE not in df.columns: + df[[self.mod_seq_column, PsmDfCols.CHARGE]] = df[ + self._precursor_id_column + ].str.split(".", expand=True, n=2) df[PsmDfCols.CHARGE] = df[PsmDfCols.CHARGE].astype(np.int8) return df From 0f8fab598bbda902e113149c3539e534fd10ee69 Mon Sep 17 00:00:00 2001 From: Vincenth Brennsteiner Date: Wed, 14 Jan 2026 17:25:58 +0100 Subject: [PATCH 3/4] fix column order for tests --- alphabase/constants/const_files/psm_reader.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/alphabase/constants/const_files/psm_reader.yaml b/alphabase/constants/const_files/psm_reader.yaml index bbb5e701..710a0514 100644 --- a/alphabase/constants/const_files/psm_reader.yaml +++ b/alphabase/constants/const_files/psm_reader.yaml @@ -280,8 +280,8 @@ spectronaut_report: column_mapping: 'raw_name': 'R.FileName' 'sequence': 'PEP.StrippedSequence' - 'charge': ['charge', 'FG.Charge'] 'rt': ['EG.ApexRT','EG.MeanApexRT'] + 'charge': ['charge', 'FG.Charge'] 'mobility': 'FG.ApexIonMobility' 'proteins': ['PG.ProteinNames','PG.ProteinGroups', 'PG.ProteinAccessions'] 'precursor_mz': 'FG.PrecMz' @@ -307,10 +307,10 @@ spectronaut: 'sequence': ['StrippedPeptide','PeptideSequence'] 'charge': 'PrecursorCharge' 'rt': ['RT','iRT','Tr_recalibrated','RetentionTime','NormalizedRetentionTime'] + 'precursor_mz': 'PrecursorMz' 'mobility': ['Mobility','IonMobility','PrecursorIonMobility'] 'proteins': ['Protein Name','ProteinId','ProteinID','ProteinName','ProteinGroup','ProteinGroups'] 'ccs': 'CCS' - 'precursor_mz': 'PrecursorMz' 'uniprot_ids': ['UniProtIds','UniProtID','UniprotId'] 'genes': ['Genes','Gene','GeneName','GeneNames'] From e42a92bdcb568630acf35fc86007729c73f28ce1 Mon Sep 17 00:00:00 2001 From: Vincenth Brennsteiner Date: Thu, 15 Jan 2026 10:25:48 +0100 Subject: [PATCH 4/4] fix psm_reader.yaml --- .../constants/const_files/psm_reader.yaml | 43 ++++++++++++++++--- 1 file changed, 38 insertions(+), 5 deletions(-) diff --git a/alphabase/constants/const_files/psm_reader.yaml b/alphabase/constants/const_files/psm_reader.yaml index 710a0514..e6da43e0 100644 --- a/alphabase/constants/const_files/psm_reader.yaml +++ b/alphabase/constants/const_files/psm_reader.yaml @@ -162,6 +162,41 @@ modification_mappings: 'Phospho@T': 'pT' 'Phospho@Y': 'pY' 'Acetyl@Protein_N-term': 'a' + msfragger: + 'SATA@K': + - 'K(115.9932)' + 'SATA@Any_N-term': + - 'N-term(115.9932)' + 'SATA-Succinamide@K': + - 'K(247.0150)' + 'SATA-Succinamide@Any_N-term': + - 'N-term(247.0150)' + 'SATP@K': + - 'K(130.0088)' + 'SATP@Any_N-term': + - 'N-term(130.0088)' + 'SATP-Succinamide@K': + - 'K(261.0307)' + 'SATP-Succinamide@Any_N-term': + - 'N-term(261.0307)' + 'Acetyl@K': + - 'K(42.0105)' + 'mTRAQ@K': + - 'K(140.0949)' + 'mTRAQ@Any_N-term': + - 'N-term(140.0949)' + 'mTRAQ:13C(3)15N(1)@K': + - 'K(144.1020)' + 'mTRAQ:13C(3)15N(1)@Any_N-term': + - 'N-term(144.1020)' + 'mTRAQ:13C(6)15N(2)@K': + - 'K(148.1091)' + 'mTRAQ:13C(6)15N(2)@Any_N-term': + - 'N-term(148.1091)' + 'TMTpro@K': + - 'K(304.2071)' + 'TMTpro@Any_N-term': + - 'N-term(304.2071)' pfind: reader_type: pfind @@ -211,7 +246,7 @@ msfragger_psm_tsv: - 'TMTpro@K' - 'TMTpro@Any_N-term' mod_mass_tol: 0.1 - modification_mapping_type: 'maxquant' + modification_mapping_type: 'msfragger' msfragger_pepxml: reader_type: msfragger_pepxml @@ -290,7 +325,6 @@ spectronaut_report: 'fdr': 'EG.Qvalue' 'intensity': 'EG.TotalQuantity (Settings)' 'precursor_intensity': 'EG.TotalQuantity (Settings)' - mod_seq_columns: - 'ModifiedSequence' - 'EG.PrecursorId' @@ -307,13 +341,12 @@ spectronaut: 'sequence': ['StrippedPeptide','PeptideSequence'] 'charge': 'PrecursorCharge' 'rt': ['RT','iRT','Tr_recalibrated','RetentionTime','NormalizedRetentionTime'] + 'ccs': 'CCS' 'precursor_mz': 'PrecursorMz' 'mobility': ['Mobility','IonMobility','PrecursorIonMobility'] 'proteins': ['Protein Name','ProteinId','ProteinID','ProteinName','ProteinGroup','ProteinGroups'] - 'ccs': 'CCS' 'uniprot_ids': ['UniProtIds','UniProtID','UniprotId'] 'genes': ['Genes','Gene','GeneName','GeneNames'] - mod_seq_columns: - 'ModifiedPeptide' - 'ModifiedSequence' @@ -321,9 +354,9 @@ spectronaut: - 'ModifiedPeptideSequence' - 'LabeledSequence' - 'FullUniModPeptideName' - modification_mapping_type: 'maxquant' precursor_id_columns: - "EG.PrecursorId" + modification_mapping_type: 'maxquant' library_reader_base: reader_type: library_reader_base