Repository navigation
perf(extract): skip the MS1 traces a retrace skeleton zeroes - #205
Merged
RobbinBouwmeester merged 9 commits intoOct 17, 2026
Merged
Conversation
Extract writes three MS1 isotope traces (mono, +1, +2) per candidate, each read on the candidate's grid as the maximum over the nearest MS1 scan and its ms1_scan_halfwidth neighbours. When retrace follows, the skeleton then zeroed every one of those rows, because retrace rebuilds them from the raw events. gdb samples of a standalone extract of a HYE diaPASEF run put about half of extract's busy time in those MS1 reads (ms1_near). The skeleton decision reads only the row's identity (Skeleton::zeroes, the rule retrace classifies by), so it is now taken first, and a row it zeroes is written as zeros without being read. The chromatogram table is the one the reading-then-zeroing wrote, and the apex MS1 reads that feed the features are unchanged. Without retrace, or under retrace.ms1 = false, nothing changes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Part of a stack on #196; merge in order: 9 -> 10 -> 11 -> 12 -> 13 -> 14 -> 15 -> 16 -> 17. Measured on the six ProteoBench HYE diaPASEF runs (60 min, timsTOF SCP) on a 128-core host at 120 threads, NN seed 0,
MUMDIA_CACHE_DIR=off; docs/35_diapasef.md section 16 has the details.Summary
About half of extract's busy time on a HYE diaPASEF run (gdb samples,
ms1_near) was the MS1 reads of the three isotope traces per candidate, which the retrace skeleton then zeroed because retrace rebuilds those rows. The skeleton decision reads only a row's identity, so it is taken first and a zeroed row is written without being read; the table is unchanged. Part of the six-run measurement in the run-order PR (output bit-identical).Checks
cargo fmt --check,cargo clippy --workspace --all-targets -D warnings,cargo test --workspace,ci/gen_config_reference.py --check,ci/check_doc_refs.py,python -m compileall scripts.🤖 Generated with Claude Code