Skip to content

feat: script to annotate proteome hits onto winnow outputs#220

Open
JemmaLDaniel wants to merge 1 commit into
mainfrom
feat-proteome-hit-annotation
Open

feat: script to annotate proteome hits onto winnow outputs#220
JemmaLDaniel wants to merge 1 commit into
mainfrom
feat-proteome-hit-annotation

Conversation

@JemmaLDaniel

@JemmaLDaniel JemmaLDaniel commented Jul 1, 2026

Copy link
Copy Markdown
Collaborator

Summary

Adds a post-winnow predict utility that annotates prediction outputs with a proteome_hit column by matching peptides against a reference FASTA proteome.

The script drops short peptides (default: fewer than 7 tokeniser residues), strips modifications and normalises I/L for matching, then uses Aho–Corasick substring search. It updates preds_and_fdr_metrics.csv in place and filters metadata.csv to the retained spectra. No changes to the Winnow CLI or library predict/train paths.

Adds pyahocorasick as a dependency.

@JemmaLDaniel JemmaLDaniel self-assigned this Jul 1, 2026
@JemmaLDaniel JemmaLDaniel added the enhancement New feature or request label Jul 1, 2026
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

Coverage

Coverage Report
FileStmtsMissCoverMissing
__init__.py00100% 
data_types.py40100% 
calibration
   __init__.py00100% 
   calibration_features.py90100% 
   calibrator.py1021189%69–70, 72, 107, 134–135, 137, 163, 168, 195–196
   diagnostics.py1685070%70, 96, 101, 111, 115, 137, 146, 203–218, 261–262, 266, 307, 309–324, 335–341
calibration/features
   __init__.py100100% 
   base.py80100% 
   beam.py470100% 
   chimeric.py82198%213
   constants.py90100% 
   fragment_match.py78198%203
   mass_error.py67297%16, 20
   retention_time.py135993%183, 190, 206, 257–259, 269, 272–273
   sequence.py190100% 
   token_score.py37197%82
   utils.py261398%96, 368, 594
compat
   __init__.py00100% 
   instanovo.py10640%12, 14–15, 17, 24–25
datasets
   __init__.py00100% 
   calibration_dataset.py1091784%155, 169, 171, 173, 183, 196, 249, 251–252, 258–261, 263–266
   interfaces.py30100% 
   psm_dataset.py250100% 
datasets/data_loaders
   __init__.py50100% 
   instanovo.py1191984%90, 93, 119, 142, 168–169, 172–174, 176–177, 179, 182–183, 185, 343–345, 356
   mztab.py2155574%103, 106, 157, 161, 210–211, 223, 236–240, 287, 290, 302–303, 315–317, 319–320, 322, 324, 330, 334–336, 338–339, 343–346, 350, 514–515, 518, 521, 528, 542–546, 550–555, 561, 570–571, 573, 599
   pointnovo.py70100% 
   utils.py59198%11
   winnow.py39489%54–55, 91–92
fdr
   __init__.py00100% 
   base.py581574%81, 85–86, 91, 98–99, 105, 126, 129–130, 135, 137–138, 144, 186
   database_grounded.py28196%52
   nonparametric.py25484%62, 68–69, 72
scripts
   __init__.py00100% 
   annotate_proteome_hits.py1467052%41–43, 48–50, 52–57, 63, 73, 78, 82, 105, 107, 109, 111, 114, 117–118, 154–160, 162–166, 168–170, 173–174, 176–180, 182–184, 200–203, 208, 213–218, 221, 260, 266–267, 272–273, 275–277, 283, 289
   main.py2562560%8, 10–13, 16–20, 23–24, 26–28, 32, 39, 44, 47, 53, 55–56, 59, 68, 76, 79, 86, 88–90, 92, 94–99, 102, 104–105, 110, 125, 128, 135–141, 144–145, 148, 161–163, 166, 169, 174, 176–178, 180, 182–183, 186–187, 190, 192–193, 195, 197, 199–200, 202, 205–206, 209–210, 213–214, 217–219, 221–224, 227–229, 231, 234, 248–250, 252, 254, 259, 261–263, 265–266, 268, 270–271, 273–275, 277, 279, 281–282, 286–289, 291–292, 294–295, 297–298, 300, 303, 317–319, 322, 325, 330, 332–334, 336–338, 340–341, 344–345, 348, 350–351, 353, 355, 357–358, 360, 363–364, 370–372, 374–377, 380–381, 384–385, 388–389, 392–393, 401–403, 407, 410, 414, 417, 423–425, 427–428, 435–436, 438, 440, 445, 447–449, 451–452, 455, 457–458, 460–463, 465–466, 468–469, 471–473, 479–480, 484–485, 488, 495, 500–501, 506–508, 511, 516, 526, 533, 535, 539, 541–542, 546–547, 550, 573, 586–587, 590, 612, 624–625, 628, 653, 666–667, 670, 685, 697–698, 701, 716, 728–729, 732, 744, 756–757, 760, 775, 787–788, 791, 800, 812–813
utils
   __init__.py40100% 
   config_formatter.py534024%29, 37–38, 40–42, 44, 55, 58–60, 62–63, 66–69, 72–74, 77–78, 80, 91, 102, 113, 127–128, 130–132, 145–147, 150, 153–154, 157–158, 160
   config_path.py76593%24–26, 117–118
   peptide.py160100% 
TOTAL228957175% 

Tests Skipped Failures Errors Time
432 0 💤 0 ❌ 0 🔥 39.585s ⏱️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant