NOTE: The conclusions here apply when comparing vs predicted libraries ... whether it holds for empirical libraries in similar instrumentation is to be seen. (IDK what the run-run variability for it is under same conditions ... )
Phase 3 runs with a ±14% mobility window on every config tried. The number comes from median ± 3·1.4826·MAD of library-vs-observed 1/K0 over the Phase 1 calibrants, which is a measure of the library predictor, not of anything a window should cover. Measured on 250225_Desnaux_200ng_Hela_ICC_off_DIA.d, 5816 IDs at 1% (mini fasta):
The library 1/K0 carries almost no information beyond charge. Charge 2 predictions span 1.22–1.26 (p10–p90) while observed spans 1.06–1.19; corr(lib, obs) = 0.66, corr(m/z, obs) = 0.87. Raw |obs − lib| is 8.2% at p50. The calibrant query's ±5% box around library mobility (processing.rs, query_tolerance) therefore keeps the 42% of peptides whose prediction happened to land.
A per-charge quadratic in m/z predicts it far better. Residual |obs − fit|/obs:
| model |
z=2 p50 / p90 |
z=3 p50 / p90 |
| library value as is |
8.2% / 13.4% (all) |
|
| per-charge linear on library value |
2.1% / 4.8% |
3.5% / 8.6% |
per-charge a·mz² + b·mz + c, no library |
1.25% / 3.4% |
2.2% / 4.9% |
| same + library term |
1.18% / 3.0% |
2.2% / 4.8% |
Mobility needs two windows, m/z needs one. m/z has a theoretical value; after calibration the residual is instrument precision and one window serves every phase. 1/K0 has no theoretical value: after the fit above, the residual is genuine peptide-to-peptide variation (a prior range, ±4–5% at 3σ), and once a peptide is observed the remaining uncertainty is its own ion cloud. Within-peptide spread around the observed center, measured on 628 confident precursors with per-frame mobility calibration: MAD 0.31% for precursor isotopes, 0.80% for fragments (3σ ≈ 1.4% / 3.6%), identical for raw data and every centroiding config.
Proposed:
- Phase 2 fits
1/K0 = a·mz² + b·mz + c per charge on the calibrants, robustly. Pass 1 (and the calibrant query) use the fit ± its residual MAD·3 instead of the library value ± 5%.
- Pass 2 window from the within-peptide spread of the calibrants' own fragments, centered on a robust fragment mobility (median or brightest) rather than the intensity-weighted mean. Tightening the current window around the current center collapses (2.4% → 762 IDs, 4.7% → 1809), so the center has to change with the width.
- Predictor side (msspeculator): near-zero within-charge spread in predicted 1/K0 is a model problem and deserves its own issue there.
Data and scripts: exploration/2026-09-centroiding, note sections 7–9. Related: #125 clamps the m/z window for the analogous estimator problem on the m/z side; the m/z offset estimator itself (mean over a 50 ppm box) is still to fix.
NOTE: The conclusions here apply when comparing vs predicted libraries ... whether it holds for empirical libraries in similar instrumentation is to be seen. (IDK what the run-run variability for it is under same conditions ... )
Phase 3 runs with a ±14% mobility window on every config tried. The number comes from
median ± 3·1.4826·MADof library-vs-observed 1/K0 over the Phase 1 calibrants, which is a measure of the library predictor, not of anything a window should cover. Measured on250225_Desnaux_200ng_Hela_ICC_off_DIA.d, 5816 IDs at 1% (mini fasta):The library 1/K0 carries almost no information beyond charge. Charge 2 predictions span 1.22–1.26 (p10–p90) while observed spans 1.06–1.19; corr(lib, obs) = 0.66, corr(m/z, obs) = 0.87. Raw |obs − lib| is 8.2% at p50. The calibrant query's ±5% box around library mobility (
processing.rs,query_tolerance) therefore keeps the 42% of peptides whose prediction happened to land.A per-charge quadratic in m/z predicts it far better. Residual |obs − fit|/obs:
a·mz² + b·mz + c, no libraryMobility needs two windows, m/z needs one. m/z has a theoretical value; after calibration the residual is instrument precision and one window serves every phase. 1/K0 has no theoretical value: after the fit above, the residual is genuine peptide-to-peptide variation (a prior range, ±4–5% at 3σ), and once a peptide is observed the remaining uncertainty is its own ion cloud. Within-peptide spread around the observed center, measured on 628 confident precursors with per-frame mobility calibration: MAD 0.31% for precursor isotopes, 0.80% for fragments (3σ ≈ 1.4% / 3.6%), identical for raw data and every centroiding config.
Proposed:
1/K0 = a·mz² + b·mz + cper charge on the calibrants, robustly. Pass 1 (and the calibrant query) use the fit ± its residual MAD·3 instead of the library value ± 5%.Data and scripts:
exploration/2026-09-centroiding, note sections 7–9. Related: #125 clamps the m/z window for the analogous estimator problem on the m/z side; the m/z offset estimator itself (mean over a 50 ppm box) is still to fix.