Skip to content

feat: N-terminal acetylation flag + D-amino Wave 2 guidance in presynth QC (#41) - #42

Merged
cschanhniem merged 2 commits into
mainfrom
feat/presynth-wave2-guidance
Jun 28, 2026
Merged

cschanhniem merged 2 commits into
mainfrom
feat/presynth-wave2-guidance

Conversation

@cschanhniem

Copy link
Copy Markdown
Collaborator

Summary

  • Add n_acetylation_recommended flag to SynthQC: when interior trypsin sites exist, recommend N-terminal acetylation (Ac-) at zero synthesis cost to block aminopeptidase entry
  • Add wave2_d_substitutions guidance list: for each interior K/R trypsin cleavage site, provide specific D-Lys/D-Arg substitution instructions for Wave 2 synthesis (expected t½ gain: 3–10×)
  • Update WET_LAB_HANDOFF.md with new QC flag documentation
  • Add 10 new test cases covering both flags

Scientific basis

  • N-terminal acetylation: blocks exopeptidase (aminopeptidase N/A) degradation; commonly added at synthesis; literature: Creighton (1993)
  • D-amino acid substitution at trypsin sites: converts L-Lys/L-Arg → D-Lys/D-Arg at cleavage sites; blocks trypsin (requires L-stereochemistry); extend serum t½ 3–20× (Wade et al. 1990 PNAS)

Implementation note

Both new flags are appended after synthesis_difficulty is computed — neither N-terminal acetylation nor Wave 2 D-substitution incurs any Wave 1 synthesis cost, so they must not inflate the difficulty rating.

Test plan

  • All 10 new tests in TestWave2Guidance pass
  • All existing 74 presynth QC tests still pass
  • Full 954-test suite green (pre-push hook confirmed)
  • Run: python -m pytest tests/test_presynth_qc.py -v

…presynth QC

- SynthQC gains n_acetylation_recommended/n_acetylation_reason fields:
  when interior trypsin sites exist, flag recommends Nα-Ac at zero
  synthesis cost to block aminopeptidase entry (Creighton 1993;
  Dhankhar et al. 2023)
- SynthQC gains wave2_d_substitutions list: up to 3 most-N-terminal
  interior K/R sites yield D-Lys/D-Arg substitution guidance for Wave 2
  synthesis (expected t½ gain 3–10×; Wade et al. 1990 PNAS)
- Both guidance flags appended AFTER synthesis_difficulty is computed
  (zero synthesis cost — must not inflate difficulty rating)
- to_dict() exposes all three new fields
- WET_LAB_HANDOFF.md: two new rows in the QC flags table
- 10 new tests in TestWave2Guidance; full 954-test suite green
…K/R, 1-indexed positions, empty seq)

- HIGH: lock in that a C-terminal-only K/R does NOT trigger N-acetylation flags (regression guard)
- MEDIUM: assert 1-indexed position strings in wave2_d_substitutions for RRWQWRMKKLG
- MEDIUM: empty-sequence smoke test (parallel to TestCTerminalAmidation)
- LOW: fix misleading comment in interior-trypsin-sites test
- LOW: assert n_acetylation_reason is non-empty and contains "acetylat"
@cschanhniem
cschanhniem merged commit 34cdf2c into main Jun 28, 2026
3 checks passed
@cschanhniem
cschanhniem deleted the feat/presynth-wave2-guidance branch June 28, 2026 05:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant