Repository navigation
feat(qc): detect N-terminal pyroglutamate cyclization risk (Q1 only) - #96
Merged
Merged
Conversation
Add PYROGLUTAMATE_RISK flag to presynth_check.py for N-terminal Q: - Q at position 1 cyclises to pGlu at pH 7.4 (t½ hours–days at 37°C), blocks N-terminus, typical 5–50× MIC loss - E1 excluded: requires acid catalysis (pH 2–4), negligible at physiological pH and not supported by AMP-specific quantitative data - Remediation: Nα-acetylation (zero extra cost) or Q1 → K1/R1 substitution (K/R adds trypsin site; only when serum stability is not gated) - Literature: Chelius et al. 2006 Anal Chem 78:2370; Goolcharran & Borchardt 1998 J Pharm Sci 87:425 Guard against empty-sequence edge case (len > 0 before seq[0] access). Add pyroglutamate_risk to SequenceQC.to_dict() output. 7 tests: Q triggers, E does not, all other 18 non-Q AAs do not, Q+QG double-flag interaction, flag content (pGlu, Nα-acetylation, hours–days), to_dict() field present.
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.
Summary
Adds
PYROGLUTAMATE_RISKQC flag for peptides with N-terminal Glutamine (Q).Biology: Q at position 1 spontaneously cyclises to pyroglutamic acid (pGlu) at physiological pH 7.4 (t½ hours–days at 37°C), blocking the N-terminus and causing 5–50× MIC loss. E1 is intentionally excluded — the same ring-closure requires acid catalysis (pH 2–4) and is negligible at physiological pH on any AMP assay timescale; flagging it would incorrectly elevate
synthesis_difficulty.Remediation surfaced in the flag: Nα-acetylation at zero extra synthesis cost completely blocks cyclisation; alternative is Q1 → K1/R1 substitution (adds trypsin site — only when serum stability is not gated).
Literature: Chelius et al. (2006) Anal Chem 78:2370; Goolcharran & Borchardt (1998) J Pharm Sci 87:425.
Changes
src/openamp_foundry/qc/presynth_check.py: newpyroglutamate_risk: boolfield onSynthQC; detection logic (seq[0] == "Q"); flag in synthesis-risk block; field into_dict(); empty-sequence guardtests/test_presynth_qc.py: 7 tests inTestPyroglutamate— Q triggers, E does NOT trigger, all 18 other non-Q canonical AAs do not trigger, Q1+QG double-flag interaction (both pyroglutamate and deamidation flags emitted), flag content (pGlu / Nα-acetylation / hours–days),to_dict()fieldTest plan
pytest tests/test_presynth_qc.py— 136/136 passpytest— 1311/1311 pass🤖 Generated with Claude Code