De Novo - DDA - HCD#
This module compares the peptide sequencing accuracy of de novo models and algorithms for data acquired with data-dependent acquisition (DDA) on orbitrap instruments. Users can load their data and inspect the results privately. They can also make their outputs public by providing the associated parameter file and submitting the benchmark run to ProteoBench. By doing so, their workflow output will be stored alongside all other benchmark runs in ProteoBench and will be accessible to the entire community.
Beware, deep learning models can be trained (and thus overfit) on the provided test data, which will result in a biased performance comparison. Therefore, if you retrained any of the models compatible with ProteoBench, we advise to explicitly describe the training data and training procedure used in the Comments for submission field before uploading the datapoint.
We believe the module can be used to evaluate the impact of the following characteristics on the identification accuracy of the de novo tools:
Post-translational modifications (PTMs)
Missing fragments
Peptide length
Levels of noise relative to the signal from the precursor ion
Species-specific sequence biases
This module will also reflect which tools outperform others in specific scenarios as defined above. Additionally, the effect of post-processing the de novo results can be investigated side-by-side with the original results (if uploaded separately). If post-processed, a description of how the original de novo results were acquired and the used post-processing method must be explicitly stated in the metadata section to safeguard transparency.
If metadata for specific (post-processing) tools are not supported, feel free to contact the team of ProteoBench or create a pull request to propose this feature yourself.
Data set#
The widely used ‘balanced’ nine species dataset from Noble et al., 2024 (first used here: Li et al., 2017) was used as a benchmark dataset. This dataset is composed of nine species, generated in different research groups (see Table 1) and was searched using Tide-Percolator. The PSMs were filtered at PSM-level FDR at 1% and all peptides shared between any species were removed. Further downsampling of the data ultimatly results in 779,879 PSMs. For more detailed information on how the nine-species benchmark was developed, see Noble et al., 2024.
Table 1: Benchmark dataset statistics (Noble et al., 2024)
PRIDE |
Species |
Instrument |
Spectra |
PSMs |
|---|---|---|---|---|
Vigna Mungo |
QExactive |
932,848 |
102,255 |
|
Mus musculus |
LTQ-Orbitrap Velos |
306,786 |
25,522 |
|
Methanosarcina mazei |
QExative Plus |
3,728,183 |
100,485 |
|
Bacillus subtilis |
QExactive |
4,336,428 |
113,234 |
|
Candidatus endoloripes |
Q Exactive Plus Hybrid |
2,272,023 |
82,514 |
|
Solanum lycopersicum |
QExactive |
603,506 |
100,056 |
|
Saccharomyces cervisiae |
Q-Exactive Plus |
1,477,397 |
108,973 |
|
Apis mellifera |
QExactive |
823,169 |
102,285 |
|
Homo sapiens |
QExactive |
684,821 |
44,555 |
|
Total |
15,165,161 |
779,879 |
To build the benchmark dataset, the file (nine-species-balanced.zip) was downloaded from here: zenodo. In this zip-file, each species is represented by a separate mgf-file. We combined the mgf-files and reannotate the spectrum identifiers to prevent duplicate identifiers.
We recommend downloading the parsed and combined dataset from the ProteoBench server here: Data
Metric calculation#
The performance is evaluated at both the amino acid and peptide level. As introduced by DeepNovo, a correct amino acid whose mass differs by less than 0.1 Da from the corresponding ground truth amino acid. Additionally, this predicted amino acid must have either a prefix or suffix that differs by no more than 0.5 Da in mass from the corresponding amino acid sequence in the ground truth peptide. Correct peptides are defined as sequences where all amino acid predictions meet these criteria, ensuring that only fully accurate predictions are considered correct at the peptide level. In the module, this mode of evaluation is called ‘mass-based’. However, a more strict evaluation mode can be selected and is termed ‘exact mode’. In this mode, the two sequences should be exactly the same, where also cases such as deamidated-Q and E are considered incorrect. Only isoleucine and leucine substitutions are allowed.
Main benchmarking plot#
The main accuracy plot provides a global overview of de novo sequencing performance across the evaluated tools. It visualizes the relationship between peptide-level identification performance and amino-acid level sequence accuracy. Each point in the plot corresponds to a de novo sequencing tool and shows the amino acid and peptide level accuracy. The plot combines two levels of evaluation:
X-axis – Peptide-level metric
The x-axis displays either peptide-level precision or recall, depending on the selected setting.
Y-axis – Amino-acid level metric
The y-axis always shows the corresponding amino-acid level metric, measuring how accurately the individual residues in the predicted sequences match the ground truth.
This design allows the plot to simultaneously capture both identification reliability and sequence-level correctness.
The Precision vs Recall setting determines which peptide-level metric is shown on the x-axis. Precision measures how many reported peptide predictions are correct:
Precision = correct predictions ÷ predictions above threshold
This view emphasizes the reliability of reported identifications. Tools that achieve high precision produce predictions that are more likely to be correct.
Recall measures how many spectra were successfully identified:
Recall = correct predictions ÷ total number of spectra
This view emphasizes the coverage of the dataset, indicating how many spectra a tool can successfully sequence.
The evaluation mode determines how predictions are classified as correct.
In exact evaluation mode, a prediction is considered correct only if the predicted peptide sequence exactly matches the ground-truth sequence, including both amino acids and modifications. This represents the strictest accuracy definition. In mass-based evaluation mode, predictions are considered correct when they match the ground-truth sequence based on cumulative fragment masses, even if the exact amino-acid sequence differs. The algorithm identifies the longest mass-matching prefix and suffix between the predicted and reference peptide sequences. Two mass tolerances are used during this process:
Cumulative mass threshold – maximum allowed difference between cumulative fragment masses (50 ppm)
Individual mass threshold – maximum allowed difference between individual amino-acid masses (20 ppm)
This evaluation accounts for typical ambiguities in mass spectrometry data. Match-based evaluation therefore counts both exact matches and mass-equivalent matches, while exact evaluation only counts perfect sequence matches.
In-depth plots#
The in-depth section provides a more detailed picture of the (relative) performance of the de novo tools.
PTMs#
Firstly, the ability of the tool to accurately predict several PTM’s can be evaluated. Since the ground-truth dataset was generated by searching against specific modifications, only these are supported. In Table 2, an overview of supported PTMs and their statistics are stated. Two types of plots are created for this: (i) an overview plot and (ii) PTM-specific plots. In the overview plot, the precision across all modifications are plotted together where precision is defined as the proportion of correctly predicted modifications over all peptides containing this modification in the ground-truth. A correct prediction does not require a fully correctly predicted peptide, only the specific amino acid with its PTM at the correct position. In the PTM-specific plots, this precision is plotted against the precision calculated as the proportion over all peptides containing this modification in the predicted peptide list. By doing so, biased precision estimates are handled in cases when the de novo tool would predict PTMs abundantly yet erroneously.
Table 2. PTMs in the ground-truth dataset
PTM |
Occurrences |
Fixed |
|---|---|---|
Carbamidomethylation (C) |
118,133 |
True |
Methionine Oxidation |
62,815 |
False |
N-terminal Acetylation |
11,373 |
False |
N-terminal Carbamylation |
19,993 |
False |
N-terminal ammonia-loss |
18,352 |
False |
Asparagine deamidation |
59,437 |
False |
Glutamine deamidation |
25,212 |
False |
Spectrum characteristics#
Secondly, the ability of the tool to correctly predict spectra with specific characteristics can be evaluated. As shown in previous benchmark publications (Denis et al, Muth et al, McDonnel et al, van Puyenbroeck et al), the accuracy of any de novo tool is dependent on several spectrum properties. To show this effect, we calculate precision on a selection of PSMs subsetted by each of the following characteristics:
Missing fragmentation sites: The number of missing complementary (b and y) ions
Peptide length: Not specifically a spectrum characteristic, but reported to impact the performance of de novo tools
The precision is calculated on the peptide level as the proportion of correct peptides among the predictions made by the de novo tool
Species#
Protein sequences can differ considerably between species. Therefore, particularly for deep learning methods, models trained on data from one species might not be directly applicable to predict peptide sequences from other species. To roughly explore these differences, precision is calculated as above for each species separately.
Beware, this set up was meant to work as training-test split procedure, where the data of eight species was used to train a model and evaluated on the unseen spectra from the excluded species. Here, we do not use it as intented since training the models is not directly supported in ProteoBench. If the user wants to use this feature as intented, the predictions should be generated accordingly as described. The results should be concatenated into a single result file in the format compatible with ProteoBench (see below).
How to use#
Input data for private visualization of your benchmark run(s)#
The module is flexible in terms of what workflow the participants can run. However, to ensure a fair comparison of the different de novo models, we suggest supporting the PTMs listed in Table 2.
Submit your run for public usage#
When you have successfully uploaded and visualized a benchmark run, we strongly encourage you to add the result to the online repository. This way, your run will be available to the entire community and can be compared to all other uploaded benchmark runs. By doing so, your workflow outputs, parameters and calculated metrics will be stored and publicly available.
To submit your run for public usage, you need to upload the parameter file associated to your run in the field Meta data for searches. Currently, we accept outputs from AdaNovo, Casanovo, InstaNovo, PepNet, π-HelixNovo, and π-PrimeNovo. Please fill the Comments for submission if needed, and confirm that the metadata is correct (corresponds to the benchmark run) before checking the button I confirm that the metadata is correct. Then the button I really want to upload it will appear to trigger the submission.
Important tool-specific settings#
Table 3 provides an overview of the required input files for public submission. More detailed instructions are provided for each individual tool in the following section.
Table 3. Overview of input files required for metric calculation and public submission
Tool |
Input file |
Parameter File |
|---|---|---|
AdaNovo |
results.mztab |
config.yaml |
Casanovo |
results.mztab |
config.yaml |
InstaNovo |
results.csv |
config.yaml |
PepNet |
results.tsv |
/ * |
π-HelixNovo |
results.tsv |
config.yaml |
π-PrimeNovo |
results.tsv |
config.yaml |
* PepNet does not have adaptable parameters, so no parameter file is required
AdaNovo#
[FLAG for review] Add AdaNovo-specific instructions and the column names parsed from
results.mztab. Verify the GitHub/documentation URL to link the tool name.
To generate data compatible with ProteoBench:
Set up Casanovo according to the developers instructions here and run the model on the provided MGF file. Be sure not to change the file name or the spectrum identifiers.
Upload
results.mztabfor metric calculation in the ProteoBench platform. For public submission, also provideconfig.yaml.
Once uploaded to ProteoBench, the following columns from results.mztab are considered:
spectra_ref: Contains the spectrum identifier to map the ground-truth identifications with. The spectrum identifier is extracted as the number in
index=<number>sequence: The predicted de novo sequence.
search_engine_score[1]: The peptide confidence score. Used for precision-recall curve construction (Currently not implemented).
opt_ms_run[1]_aa_scores: Amino acid-level confidence scores. Used for precision-recall curve construction (Currently not implemented).
Casanovo#
To generate data compatible with ProteoBench:
Set up Casanovo according to the developers instructions here and run the model on the provided MGF file. Be sure not to change the file name or the spectrum identifiers.
Upload
results.mztabfor metric calculation in the ProteoBench platform. For public submission, also provideconfig.yaml.
Once uploaded to ProteoBench, the following columns from results.mztab are considered:
spectra_ref: Contains the spectrum identifier to map the ground-truth identifications with. The spectrum identifier is extracted as the number in
index=<number>sequence: The predicted de novo sequence.
search_engine_score[1]: The peptide confidence score. Used for precision-recall curve construction (Currently not implemented).
opt_ms_run[1]_aa_scores: Amino acid-level confidence scores. Used for precision-recall curve construction (Currently not implemented).
InstaNovo (coming soon)#
PepNet#
To generate data compatible with ProteoBench:
Set up PepNet according to the developers instructions here and run the model on the the provided MGF file or use the webpage and provide the spectra from the MGF file or use the webpage. Be sure not to change the file name or the spectrum identifiers.
Upload
results.tsvfor metric calculation. No parameter file is required for PepNet, as it does not have adaptable parameters.
Once uploaded to ProteoBench, the following columns from results.tsv are considered:
TITLE: Contains the spectrum identifier to map the ground-truth identifications with. The spectrum identifier is extracted as the number in
scan=<number>DENOVO: The predicted de novo sequence.
Score: The peptide confidence score. Used for precision-recall curve construction (Currently not implemented).
Positional Score: Amino acid-level confidence scores. Used for precision-recall curve construction (Currently not implemented).
π-HelixNovo#
To generate data compatible with ProteoBench:
Set up π-HelixNovo according to the developers instructions here and run the model on the provided MGF file. Be sure not to change the file name or the spectrum identifiers.
Upload
results.tsvfor metric calculation in the ProteoBench platform. For public submission, also provideconfig.yaml.
Once uploaded to ProteoBench, the following columns from results.tsv are considered:
0: Contains the spectrum identifier to map the ground-truth identifications with. The spectrum identifier is extracted as the number in
scan=<number>1: The predicted de novo sequence.
2: The peptide confidence score. Used for precision-recall curve construction (Currently not implemented).
The positional scores for this model are set equal to the amino acid scores. Note that other versions of π-HelixNovo have this option.
π-PrimeNovo#
To generate data compatible with ProteoBench:
Set up π-PrimeNovo according to the developers instructions here and run the model on the provided MGF file. Be sure not to change the file name or the spectrum identifiers.
Upload
results.tsvfor metric calculation in the ProteoBench platform. For public submission, also provideconfig.yaml.
Once uploaded to ProteoBench, the following columns from results.tsv are considered:
label: Contains the spectrum identifier to map the ground-truth identifications with. The spectrum identifier is extracted as the number in
scan=<number>prediction: The predicted de novo sequence.
score: The peptide confidence score. Used for precision-recall curve construction (Currently not implemented).
The positional scores for this model are set equal to the amino acid scores.
toml file description#
Each software tool produces specific output file formats. We made .toml files that describe where to find the information needed in each type of input. These can be found in proteobench/io/parsing/io_parse_settings.
[mapper] mapping between the headers in the input file (left-hand side) and the header of the intermediate file generated by ProteoBench.
"spectrum_id"= identifier used to match the prediction to the ground-truth PSM"sequence"= predicted peptide sequence"score"= per-prediction confidence score reported by the de novo tool"aa_scores"(optional) = per-prediction confidence scores on the amino acid level reported by the de novo tool
[spectrum_id_mapper] Defines a regex on how to extract the spectrum identifier (number) from the
spectrum_idcolumn.[sequence_mapper.replacement_dict] A mapping list which renames modifications from the
sequencecolumn. This will make uniform modification parsing with outputs from all the supported de novo tools more straightforward.[modifications_parser] Specifies how to parse the modifications. Parameters:
"parse_column"= name of the column in the input file that contains the peptide sequence with localised modifications. This column will be parsed and converted to ProForma notation. Example:"parse_column" = "sequence"."before_aa"= indicates whether the modification tag appears before the amino acid it modifies in the input file. Set to true for formats like [+57.0215]C (tag precedes the residue), and false for formats like C[+57.0215] (tag follows the residue). This controls both how character positions are counted in the input and where the converted tag is inserted in the output ProForma sequence."isalpha"= when true, only alphabetic characters are retained when stripping the bare sequence from the modified sequence string. Example: from “NE[+57.0214]CVVVIR”, the tag [+57.0214] is removed because its characters are non-alphabetic, leaving “NECVVVIR”. Set to false if the modification notation uses only letters (e.g., lowercase letters for modifications)."isupper"= when true, only uppercase characters are retained when stripping the bare sequence. Use this when modifications or ambiguous residues are represented by lowercase letters in the input. Example: from “NEYpCVVVIR”, the lowercase p is removed. Can be combined with isalpha: when both are true, only uppercase alphabetic characters are kept."pattern"= regular expression that identifies and extracts modification tags from the modified sequence string. After removing all matches, only the bare amino acid sequence should remain. Example: “\[([^]]+)\]” matches any bracketed tag such as [+57.0215] or [Oxidation]. You can test your Python regex at regex101.com."modification_dict"= mapping from modification tags as they appear in the input file (left-hand side) to their standardised ProForma names (right-hand side). Example: {“+57.0215” = “Carbamidomethyl”, “+15.9949” = “Oxidation”}. Tags not present in the dictionary are passed through as-is (still wrapped in brackets in the output). The replacement is applied before ProForma formatting.
Result Description#
After uploading an output file, a table is generated. The table is built by left-joining the de novo predictions onto the ground-truth dataset: every ground-truth spectrum is retained, and rows where the tool made no prediction will have NaN for the prediction columns. It contains the following columns:
Identification
Column |
Description |
|---|---|
|
Integer scan ID extracted from the spectrum identifier, used to join predictions to ground-truth PSMs |
|
Predicted peptide sequence in ProForma notation |
|
Ground-truth peptide sequence in ProForma notation |
|
Per-peptide confidence score reported by the de novo tool |
|
List of per-amino-acid confidence scores; if not provided by the tool, the peptide score is used for each position |
|
Raw spectrum title from the ground-truth MGF file |
|
Precursor m/z of the spectrum |
|
Retention time of the spectrum |
|
Species/dataset the spectrum originates from |
Match evaluation (added by the scoring module)
Column |
Description |
|---|---|
|
|
|
|
|
Boolean array indexed to the ground-truth sequence length; |
|
Boolean array indexed to the predicted sequence length; |
|
Boolean array indexed to the ground-truth sequence; |
|
Boolean array indexed to the predicted sequence; |
Spectrum characteristics (pre-computed in the ground-truth file)
Column |
Description |
|---|---|
|
Length of the ground-truth peptide; N-terminal modification tokens are counted separately |
|
Number of missing complementary b/y ion pairs in the spectrum |
|
Fraction of fragmentation sites that are missing |
|
Fraction of total intensity (TIC) explained by annotated y-ions |
|
Fraction of TIC explained by annotated b-ions |
|
Fraction of TIC explained by annotated b- and y-ions combined |
|
Fraction of TIC explained by all annotated peaks |
|
Cosine similarity between observed and MS2PIP-predicted spectrum |
|
Cosine similarity for b-ions only |
|
Cosine similarity for y-ions only |
|
Pearson correlation between observed and predicted spectrum |
|
Dot product between observed and predicted spectrum |
PTM flags — ground truth (True if the PTM is present in the ground-truth peptide)
Column |
Modification |
|---|---|
|
Methionine oxidation ( |
|
Glutamine deamidation ( |
|
Asparagine deamidation ( |
|
N-terminal acetylation ( |
|
N-terminal carbamylation ( |
|
N-terminal ammonia loss ( |
PTM flags — de novo prediction (True if the PTM is present in the predicted peptide; None if the prediction could not be parsed)
Column |
Modification |
|---|---|
|
Methionine oxidation |
|
Glutamine deamidation |
|
Asparagine deamidation |
|
N-terminal acetylation |
|
N-terminal carbamylation |
|
N-terminal ammonia loss |
Define Parameters#
To make the results available to the entire community, you need to provide the parameter file that corresponds to your analysis. You can upload it in the drag and drop area in the “Add results to online repository” section (under “Download calculated metrics”). See here for all compatible parameter files.
In this module, we keep track of the following parameters. If you feel that some important information is missing, please add it in the Comments for submission field.
Parameter |
Description |
|---|---|
Software name |
Name of the de novo sequencing tool used |
Software tool version |
Version of the tool |
Model checkpoint identifier |
Identifier of the model weights or checkpoint used (e.g. a filename, tag, or URL) |
Number of beams |
Number of beams used during beam-search decoding |
Number of peaks considered in the spectrum |
Maximum number of peaks retained per spectrum before prediction |
Precursor mass tolerance |
Precursor mass tolerance applied, including the unit (e.g. |
Minimum peptide length |
Minimum peptide length considered for prediction |
Maximum peptide length |
Maximum peptide length considered for prediction |
Minimum m/z value |
Minimum fragment m/z value considered |
Maximum m/z value |
Maximum fragment m/z value considered |
Minimum intensity value |
Minimum fragment intensity threshold applied |
Maximum intensity value |
Maximum fragment intensity threshold applied |
Tokens |
The set of amino acids and modifications the model can predict (its vocabulary) |
Minimum precursor charge |
Minimum precursor charge state considered |
Maximum precursor charge |
Maximum precursor charge state considered |
Remove precursor peaks |
Whether precursor peaks are removed from the spectrum before prediction |
Isotope error range |
Allowed isotope error range during precursor matching |
Decoding strategy |
Strategy used to generate predictions (e.g. beam search, greedy) |
Once you confirm that the metadata is correct (and corresponds to the results file you uploaded before generating the plots), a button will appear. Press it to submit.
If some parameters are not captured by the parameter file, it is important that you provide them in the “Comments for submission” field.
Once submitted, you will see a weblink directing you to a pull request on the GitHub repository of the module. Please write down its number to keep track of your submission. If everything looks good, one of the reviewers will accept it and make your data public. This will take a few working days.
Please contact us if you have any issue. To do so, you can create an issue on our GitHub, or send us an email.