Skip to content

feat(extract): the diaPASEF gate on by default on spectra that carry 1/K0 - #211

Merged
RobbinBouwmeester merged 1 commit into
mainfrom
feat/diapasef-gate-default
Oct 18, 2026
Merged

RobbinBouwmeester merged 1 commit into
mainfrom
feat/diapasef-gate-default

Conversation

@RobbinBouwmeester

Copy link
Copy Markdown
Member

Makes the diaPASEF gate (extract.gate_support_min, added opt-in in #206) the default on spectra that carry 1/K0.

Change

  • extract.gate_support_min becomes an option. Unset is 0.845 on 1/K0 spectra and off otherwise; an explicit value wins, and 0 turns the gate off. Old configs that set a number keep working.
  • The gate is defined on the window-mean score. Under any other gate_mode it is off whatever the setting, and the extract report names the threshold only when it applied.
  • Spectra without 1/K0 (Orbitrap, Astral) are unchanged.

Why. On diaPASEF the window-mean gate at 0.6 passes 33% of the library, against about 5% on Astral and Orbitrap. The second gate keeps 41% of those candidates. It is a speed default that costs identifications.

Measured (docs/35 section 16):

data peptides at 1% wall FDR
six 60-min HYE diaPASEF runs (seed 0) 98,524 -> 96,955 (-1.6%) 41.6 -> 26.8 min
six 5-min HYE diaPASEF runs (2 seeds) 39,164 -> 38,478 (-1.75%) 42-46 -> 22.5-23.5 min
E. coli diaPASEF entrapment run (3 seeds) 14,121 -> 13,892 (-1.6%) FDP 0.32-0.35% vs 0.30-0.38%

Quantification accuracy is unchanged or slightly better (ProteoBench |epsilon| 0.171 vs 0.173). For a smaller loss, 0.82 gives -0.8% on E. coli (FDP 0.32-0.37%) for less of the speed.

Other changes

  • The pipeline test of the 1/K0 evidence columns turns the gate off, as it already turned the window-mean threshold off, so its synthetic target passes.
  • A unit test covers the default resolution (1/K0 or not, explicit 0, other gate modes).
  • docs/35 also records the end-to-end prefilter timings: 5-min HYE; 22 HeLa runs 21:04 -> 15:36 at 31.5 -> 18.6 GB; one single cell 4:31 cold, 1:37 warm.
  • CHANGELOG and CLAUDE.md are updated.

Checked: cargo fmt, clippy -D warnings, workspace tests, cargo doc -D warnings, config reference regenerated. The smoke fixture has no 1/K0 arm, so it is unaffected.

🤖 Generated with Claude Code

…1/K0

extract.gate_support_min is now an option: unset is 0.845 on spectra that
carry 1/K0 and off otherwise, and an explicit value wins (0 turns it off).
The gate is defined on the window-mean score, so under any other gate_mode
it is off whatever the setting, and the extract report names the threshold
only when it applied.

Measured (docs/35 section 16): six 60-min HYE diaPASEF runs 96,955 against
98,524 peptides at 1% in 26.8 against 41.6 min; six 5-min HYE runs -1.75%
in 22.5-23.5 against 42-46 min; the E. coli entrapment run -1.6% at an
entrapment FDP of 0.32-0.35% against 0.30-0.38% (three NN seeds).
Quantification unchanged or slightly better. Without 1/K0 nothing changes.

The pipeline test of the 1/K0 evidence columns turns the gate off, as it
already turned the window-mean threshold off, so its synthetic target passes.
docs/35 also records the end-to-end prefilter timings (5-min HYE, 22 HeLa
runs, one single cell).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@RobbinBouwmeester
RobbinBouwmeester merged commit ed95cac into main Oct 18, 2026
12 checks passed
@RobbinBouwmeester RobbinBouwmeester mentioned this pull request Oct 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant