code wiki / (root) / nx_peptide_denovo.nx

nx_peptide_denovo.nx

buildroot/runtime/nx_peptide_denovo.nx

6504 B162 linesdepth 4pulls 4 transitivereach 1 importersview sourcekind librarytopic peptide
docsdependenciesstructsconstsfunctions

about

nx_peptide_denovo.nx -- SOTA: DE NOVO peptide sequencing. Reconstruct the amino-acid sequence from a fragment-ion spectrum ALONE, with NO candidate and NO database. This is the hardest problem in proteomics: read the residues directly off the mass GAPS in the b-ion ladder. THE PRINCIPLE, EXACT. Consecutive b-ions differ by exactly one residue's mass: b_i - b_(i-1) = residue i. The first residue is b_1 - proton; the last is recovered from the precursor mass. So a sorted b-ion ladder plus the intact mass spells the sequence, gap by gap -- match each gap to the nearest residue mass and read the letter. nx_peptide_identify needed a candidate to score against; this needs nothing but the spectrum. THE HONEST AMBIGUITIES, ENCODED NOT HIDDEN. Two residue pairs cannot be told apart by mass and de novo sequencing is famous for exactly this: Leu / Ile -- IDENTICAL mass. De novo cannot distinguish them; this returns a canonical 'L' and flags the position. Lys / Gln -- differ by 0.036 Da; separable only at high mass accuracy. A de novo tool that pretended to resolve Leu/Ile would be lying about physics. This one reports the ambiguity rather than guessing. ANCHORED. Residue masses are the anchored table two independent methods agree on; the gap arithmetic is exact. The gate liar-kills it by ROUND TRIP: take a known peptide, generate its real b-ion ladder, de novo sequence it back, and recover the original sequence (modulo Leu/Ile). If a residue-mass gap were wrong, a letter would come back wrong. All INTEGER, _q4 = x10^4 Da. Grounding (cited; researcher-groundable): dancik_1999_de_novo_peptide_sequencing biemann_1990_fragment_ion_nomenclature leu_ile_isobaric_lys_gln_near_isobaric genealogy_id: peptide_chemistry + analytical_sota + liar_killer

dependencies 2 imports · 1 importers

nx_syscalls.nx nx_peptide.nx nx_peptide_denovo.nx nx_qc_svc.nx

imports: nx_syscalls.nxnx_peptide.nx

imported by: nx_qc_svc.nx

structs

none

consts

39const DENOVO_UNKNOWN: i64 = 0 - 1 // no residue matches a gap
40const DENOVO_MAX_LEN: i64 = 128

functions

49func denovo_residue(delta_q4: i64, tol_q4: i64) -> i64
called by 1: denovo_sequence calls 1: pep_residue_mono_q4
73func denovo_is_leu_ile(delta_q4: i64, tol_q4: i64) -> i64
82func denovo_char(aa: i64) -> i64
called by 1: denovo_sequence
116func denovo_sequence(b_ions: *i64, n_b: i64, precursor_q4: i64, tol_q4: i64, out: *u8) -> i64
called by 1: qc_denovo calls 2: denovo_residuedenovo_char
148func denovo_ambiguous_count(b_ions: *i64, n_b: i64, precursor_q4: i64, tol_q4: i64) -> i64
called by 1: qc_denovo calls 1: denovo_is_leu_ile