code wiki / (root) / nx_peptide_deconv.nx

nx_peptide_deconv.nx

buildroot/runtime/nx_peptide_deconv.nx

6231 B151 linesdepth 4pulls 4 transitivereach 2 importersview sourcekind librarytopic peptide
docsdependenciesstructsconstsfunctions

about

nx_peptide_deconv.nx -- SOTA ANALYTICAL: charge-state DECONVOLUTION. The inverse of the charge ladder: given raw multiply-charged m/z peaks with NO known charge, recover the neutral monoisotopic mass and assign each peak its charge. This is the step that turns an electrospray spectrum -- a forest of peaks at unknown charges -- into a single mass you can match against a catalog. WHY IT IS STATE OF THE ART. A peptide sprays as a charge LADDER; the instrument reports m/z, not mass, and not charge. Deconvolution is the hard, central MS problem of inverting that. The classic two-peak solution: if two ADJACENT peaks are the same molecule at charges z and z+1, then M = z*(mz_hi - proton) = (z+1)*(mz_lo - proton) which solves for the integer charge z WITHOUT knowing it in advance, and then for M. nx_peptide_deconv does exactly this, then VERIFIES the deduced mass reproduces both peaks -- so a spurious pair is rejected, not trusted. ANCHORED, NOT ASSERTED. The proton mass is the same anchored constant the mass stack uses; the algebra is exact. The gate liar-kills it: generate a KNOWN peptide's real charge ladder, deconvolve it blind, and demand the EXACT neutral mass back -- and demand an unrelated pair be rejected as inconsistent. Recovering the input you never told it is the proof. This closes the loop with nx_supplement_screen: that screens a peak at an assumed charge; this DEDUCES the charge from the spectrum, so an unknown "research peptide" spectrum can be reduced to a mass and then identified. All INTEGER, _q4 = x10^4 Da, proton from nx_peptide. Grounding (cited; researcher-groundable): mann_1989_electrospray_charge_deconvolution fenn_1989_multiple_charging published_charge_state_mass_deduction genealogy_id: peptide_chemistry + analytical_sota + liar_killer

dependencies 2 imports · 2 importers

nx_syscalls.nx nx_peptide.nx nx_peptide_deconv.nx nx_peptide_identify.nx nx_qc_svc.nx

imports: nx_syscalls.nxnx_peptide.nx

imported by: nx_peptide_identify.nxnx_qc_svc.nx

structs

none

consts

39const DECONV_INVALID: i64 = 0 - 1

functions

48func deconv_charge_hi(mz_lo: i64, mz_hi: i64) -> i64
59func deconv_neutral_mass(mz_lo: i64, mz_hi: i64) -> i64
66func deconv_predict_mz(mass_q4: i64, z: i64) -> i64
73func deconv_pair_consistent(mz_lo: i64, mz_hi: i64, tol_q4: i64) -> i64
90func deconv_mass_verified(mz_lo: i64, mz_hi: i64, tol_q4: i64) -> i64
103func deconv_mass_near(a: i64, b: i64, tol_q4: i64) -> i64
called by 1: deconv_support
113func deconv_from_list(peaks: *i64, n: i64, tol_q4: i64) -> i64
131func deconv_support(peaks: *i64, n: i64, mass_q4: i64, tol_q4: i64) -> i64
147func deconv_assign_charge(mz_q4: i64, mass_q4: i64) -> i64