Confidence calibration and FDR control for de novo peptide sequencing
Explore the docs »
Report Bug
·
Request Feature
Table of Contents
In bottom-up proteomics workflows, peptide sequencing—matching an MS2 spectrum to a peptide—is just the first step. The resulting peptide-spectrum matches (PSMs) often contain many incorrect identifications, which can negatively impact downstream tasks like protein assembly.
To mitigate this, intermediate steps are introduced to:
- Assign confidence scores to PSMs that better correlate with correctness.
- Estimate and control the false discovery rate (FDR) by filtering identifications based on confidence scores.
For database search-based peptide sequencing, PSM rescoring and target-decoy competition (TDC) are standard approaches, supported by an extensive ecosystem of tools. However, de novo peptide sequencing lacks standardized methods for these tasks.
winnow aims to fill this gap by implementing the calibrate-estimate framework for FDR estimation. Unlike TDC, this approach is directly applicable to de novo sequencing models. Additionally, its calibration step naturally incorporates common confidence rescoring workflows as part of FDR estimation.
winnow provides both a CLI and a Python package, offering flexibility in performing confidence calibration and FDR estimation.
winnow is available as a Python package and can be installed using pip or a pip-compatible command (e.g., uv pip install):
pip install winnow-fdr
or
uv pip install winnow-fdr
winnow supports two usage modes:
- A command-line interface (CLI) with sensible defaults and multiple FDR estimation methods.
- A configurable and extensible Python package for advanced users.
Installing winnow provides the winnow command with two sub-commands:
winnow train– Performs confidence calibration on a dataset of annotated PSMs, outputting the fitted model checkpoint.winnow predict– Performs confidence calibration using a fitted model checkpoint (defaults to a pretrained general model from HuggingFace), estimates and controls FDR using the calibrated confidence scores.
By default, winnow predict uses a pretrained general model (InstaDeepAI/winnow-general-model) hosted on HuggingFace Hub, allowing you to get started immediately without training. You can also specify custom HuggingFace models or use locally trained models.
Refer to the documentation for details on command-line arguments and usage examples.
The winnow package is organized into three sub-modules:
winnow.datasets– Handles data loading and saving, including theCalibrationDatasetclass for mapping peptide sequencing output formats.winnow.calibration– Implements confidence calibration. Key components include:ProbabilityCalibrator(defines the calibration model)CalibrationFeature(an extensible interface for defining calibration features)
winnow.fdr– Implements FDR estimation methods:DatabaseGroundedFDRControl(for database-grounded FDR control)NonParametricFDRControl(uses a non-parametric and label-free method for FDR estimation)
For an example, check out the example notebook.
Contributions are what make the open-source community such an amazing place to learn, inspire and create, and we welcome your support! Any contributions you make are greatly appreciated.
If you have ideas for enhancements, you can:
- Fork the repository and submit a pull request.
- Open an issue and tag it with "enhancement".
- Fork the repository.
- Create a feature branch (
git checkout -b feature/AmazingFeature). - Commit your changes (
git commit -m 'Add some AmazingFeature'). - Push to your branch (
git push origin feature/AmazingFeature).
Don't forget to give the project a star! Thanks again! ⭐
If you use winnow in your research, please cite the following preprint:
@article{mabona2025novopeptidesequencingrescoring,
title={De novo peptide sequencing rescoring and FDR estimation with Winnow},
author={Amandla Mabona and Jemma Daniel and Henrik Servais Janssen Knudsen and Rachel Catzel
and Kevin Michael Eloff and Erwin M. Schoof and Nicolas Lopez Carranza and Timothy P. Jenkins
and Jeroen Van Goey and Konstantinos Kalogeropoulos},
year={2025},
eprint={2509.24952},
archivePrefix={arXiv},
primaryClass={q-bio.QM},
url={https://arxiv.org/abs/2509.24952},
}