Skip to content

Feat ppm fragment ion matching#192

Open
JemmaLDaniel wants to merge 6 commits into
feat-refactor-calibration-featuresfrom
feat-ppm-fragment-ion-matching
Open

Feat ppm fragment ion matching#192
JemmaLDaniel wants to merge 6 commits into
feat-refactor-calibration-featuresfrom
feat-ppm-fragment-ion-matching

Conversation

@JemmaLDaniel

Copy link
Copy Markdown
Collaborator

Switch fragment ion matching tolerance from Daltons to PPM

Summary

  • Replace the single mz_tolerance parameter (absolute Daltons) on FragmentMatchFeatures, ChimericFeatures, find_matching_ions, and compute_ion_identifications with two mutually exclusive keyword-only parameters: mz_tolerance_ppm (relative, parts per million) and mz_tolerance_da (absolute, Daltons). Exactly one must be provided; passing both or neither raises ValueError.
  • Default shipped config (calibrator.yaml) now uses mz_tolerance_ppm: 20 instead of mz_tolerance: 0.02, so CLI/Hydra users get 20 ppm matching out of the box. Users who prefer absolute Da tolerance can set mz_tolerance_da instead.
  • In PPM mode, the tolerance window scales per-ion: each theoretical peak (including isotope envelope M+1 through M+4) gets its own absolute Da tolerance computed as query_mz * ppm / 1e6.

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

Copy link
Copy Markdown

Coverage

Coverage Report
FileStmtsMissCoverMissing
__init__.py00100% 
data_types.py40100% 
calibration
   __init__.py00100% 
   calibration_features.py50100% 
   calibrator.py911583%69–70, 72, 106–109, 134–135, 137, 162–163, 167, 194–195
calibration/features
   __init__.py100100% 
   base.py80100% 
   beam.py470100% 
   chimeric.py79198%209
   constants.py10100% 
   fragment_match.py75198%201
   mass_error.py43295%85, 89
   retention_time.py77198%160
   sequence.py190100% 
   token_score.py37197%82
   utils.py128298%241, 327
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
   data_loaders.py2701494%23, 189, 220–221, 414, 455, 847, 851, 900, 911, 1023–1024, 1052–1053
   interfaces.py30100% 
   psm_dataset.py250100% 
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% 
   main.py1851850%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, 238–240, 242, 244, 249, 251–253, 255–256, 258–260, 265–266, 268–270, 272, 274, 276–277, 281–284, 286–287, 289–290, 292–293, 295, 298, 312–314, 317, 320, 325, 327–329, 331–333, 335–336, 339–340, 343, 345–346, 348, 350, 352–353, 355, 358–359, 365–366, 369–370, 373–374, 377–378, 386–388, 392, 395, 399, 402, 425, 438–439, 442, 464, 476–477, 480, 505, 518–519, 522, 537, 549–550, 553, 565, 577–578, 581, 596, 608–609
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% 
TOTAL148631079% 

Tests Skipped Failures Errors Time
331 0 💤 0 ❌ 0 🔥 38.865s ⏱️

@JemmaLDaniel JemmaLDaniel changed the base branch from feat-isotope-corrected-mass-error-feature to fix-fragment-match-double-counting April 14, 2026 17:54
Base automatically changed from fix-fragment-match-double-counting to feat-refactor-calibration-features June 19, 2026 10:08
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