DDA identification - de novo #356
Replies: 5 comments 2 replies
|
This is the updated nine-species benchmark dataset that was suggested as evaluation data and since then has been fully published: https://www.nature.com/articles/s41597-024-04068-4 |
|
The de novo module is implemented with an initial set of datapoint submissions. All checkpoint links below were verified (GitHub Releases API, Zenodo/FigShare/HuggingFace pages, or Submitted datapoints
Many more datapoints can still be added. Below is a comprehensive, tool-by-tool overview of additional checkpoints and tools, verified against the developers' GitHub releases, Zenodo/FigShare records, and HuggingFace Hub. Tick off items as they get submitted. 1. CasanovoRepo: Noble-Lab/casanovo.
2. InstaNovoRepo: instadeepai/InstaNovo.
3. pi-HelixNovoRepo: PHOENIXcenter/pi-HelixNovo —
4. pi-PrimeNovoRepo: PHOENIXcenter/pi-PrimeNovo (mirrored at BEAM-Labs/pi-PrimeNovo). Checkpoints are distributed via Google Drive links in the README.
5. AdaNovo / ContraNovoNo additional checkpoints found: both Westlake-OmicsAI/adanovo_v1 and BEAM-Labs/ContraNovo currently ship exactly the one checkpoint already submitted above, and no "v2" successor repo exists for either as of 2026-08. 6. New tools not yet in the benchmarkVerified as having both an open repo and an actually downloadable pretrained checkpoint.
Note: BEAM-Labs/denovo also lists a "PrimeNovo" checkpoint that links to the same Checked but not eligible — no downloadable pretrained checkpoint foundKept here so these don't need to be re-investigated later; revisit if the developers publish weights.
|
|
What does the scatter plot show? It seems almost (but not entirely) the precision at the tool's max coverage. This is a flawed metric because of several reasons. You can artificially get high precision by only making predictions for very easy spectra. In this case your coverage will be low, but in the scatterplot your performance will look amazing. Instead, precision should be calculated at full coverage, so also considering spectra for which a tool doesn't make a prediction. Even better would be the area under the precision-coverage curve, rather than the precision@coverage=1, because that captures more nuance. A tool that drops to 0.5 precision immediately and then stays there until full coverage is obviously worse than a tool that stays at high precision for most of the spectra and only drops down to lower precision at the end. This is again not captured by just reporting the precision, but the area under the curve does capture it. |
|
Hi Wout, Thanks for this. Yes, indeed, the scatterplot shows the precision at the tool's max coverage. And I am aware that this will look artificially good when only making predictions for the easy cases. Given this, and to accommodate your next (and previous) comments, a toggle was added to switch metrics in the main plot towards the AUC (area under precision coverage curve). There's also a new tab on the main Public Results view to switch from the scatterplot to the full precision-coverage curves, on both amino acid and peptide levels. However, when checking this, I noticed a discrepancy here which I reported here, which I'll fix in a PR. Given the concerns you've raised, I can (i) change the precision calculation as you suggested to precision@coverage=1 and thus essentially consider unpredicted spectra as incorrect, or (ii) set AUC as default metric instead and keep the precision as it is now. Happy to hear what you'd prefer, but I would opt for the second option? A few other things, slightly broader than your specific comment: several other concerns can be raised about the evaluation as a whole, e.g. (i) some tools support specific modifications while others don't, (ii) the ground truth is itself the output of a database search and can be wrong, and (iii) there's limited insight into why a given prediction is wrong. To address these aspects, we have the Compare Results tab which breaks down the precision further by (i) modification, (ii) by whether the false prediction still matches with some candidate in the search space of the database search (FASTA-evaluation) [still a small server-side bug there as described here, and (iii) by plotting precision against peptide/spectra characteristics such as peptide length, missing fragmentation sites, %explained intensity. Longer term, I'd like to add retention time and fragment-intensity feature distributions to further contextualize as well (and also comparing these with the features from non-matching predictions). These features exist already in the ground-truth dataset but are currently unused. But I'll scope this out as a separate future PR. |
Yes, the second option (area under the precision–coverage curve as default) would be good. Although I'd still argue for also using precision@coverage=1, because some tools fail to make predictions for a considerable fraction (>10%) of spectra. Side note: what's going on with PepNet in the current public curves? Its AA coverage starts at 0.028 rather than at 0. Similarly, several tools have peptide coverage starting at >0.
Yes, makes sense. 👍
Sounds good. We're also doing that in our de novo benchmark. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
aim of the new module
This module intends to evaluate the performance of de novo peptide sequencing tools. De novo tools annotate MS/MS spectra with their originating peptides without any external information, such as a protein database. Due to the lack of dependence on a set of predefined proteins, de novo sequencing has several important use cases, including:
full description of the new module
This module will be restricted to the identification of MS/MS spectra measured using DDA. Thus, the input and output can be simplied as:
Data
As the evaluation data, the nine-species benchmark dataset introduced by DeepNovo can be used. This dataset is commonly used to evaluate (and train) de novo tools. This dataset contains MS/MS data from nine different species as follows:
Recently, a more balanced subset of this data has been proposed that restricts each species to approximately 100,000 high-quality PSMs, amounting to 779,796 spectra and 180,238 unique peptides in total (Noble, under review at Scientific Data). I propose that we use this last version to use a consistent and manageable dataset. The DOI for this dataset is pending.
Q: What would be the best format for this data? Nine different MGF files, one for each species? Or one (relatively big) MGF file with all spectra?
A: Consensus is to combine all of the data in a single MGF file for simplicity.
The following search settings were used to obtain the PSMs:
Metric calculation
The performance will be evaluated at the amino acid and peptide level. As introduced by DeepNovo, a correct amino acid prediction is defined as any predicted 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 those sequences where all amino acid predictions meet these criteria, ensuring that only fully accurate predictions are considered correct at the peptide level.
This information will be condensed into two values:
With precision measuring the proportion of correct predictions among all predictions, and defined as in standard classification. Coverage is analogous to recall, but adapted to the fact that some de novo tools don't report results for all spectra. Thus, coverage represents the proportion of predictions made. We will use the precision at full coverage, i.e. considering predictions for all input amino acids or peptides, respectively. Spectra for which a tool can't make a prediction will be considered as fully incorrect.
This can be implemented as two swarmplots side by side, for both metrics, to visualize the performance of all tools.
To calculate the metrics, the output peptide sequences need to be compared with the ground truth peptide sequences. Thus, the users will need to upload a custom CSV with the necessary information (recommended in ProForma notation). As no standardized output format is currently being used by the many newly introduced de novo tools, I propose to not try to directly support all these different formats, but instead request a simple CSV format to be provided, irrespective of the tool used (columns: file name, spectrum index, peptide sequence).
potential reviewers
No response
Will you be able to work on the implementation (coding) yourself, with additional help from the ProteoBench maintainers?
any other information
Tagging @PominovaMS.
All reactions