Skip to content

Native glycoprotein support in the OpenMMDL Setup AMBER path#210

Merged
talagayev merged 2 commits into
wolberlab:mainfrom
MarvinTaterra:feat/glycoprotein-support
May 22, 2026
Merged

Native glycoprotein support in the OpenMMDL Setup AMBER path#210
talagayev merged 2 commits into
wolberlab:mainfrom
MarvinTaterra:feat/glycoprotein-support

Conversation

@MarvinTaterra

Copy link
Copy Markdown
Contributor

Native support for N-/O-glycosylated proteins in the OpenMMDL Setup AMBER path. A glycoprotein PDB (protein with covalently attached glycans) can now be taken to a runnable MD system directly, without an external preparation step.

Motivation

Neither existing path handles glycoproteins today:

  • PDB path — OpenMM's bundled force-field XMLs carry no GLYCAM templates, so createSystem fails with No template found for residue NAG.
  • AMBER path — only one receptor force field is sourced, and no bond statements are emitted, so the protein–glycan linkages are lost.

Changes

New openmmdl/openmmdl_setup/glycoprotein.py — glycan detection and
GLYCAM renaming:

  • Detects sugar residues by PDB Chemical Component Dictionary name
    (NAG, NDG, BMA, MAN, FUC, FUL).
  • Finds protein–glycan and glycan–glycan linkages from CONECT
    records, with a distance-based fallback when they are absent.
  • Maps residues and atoms to GLYCAM-06j-1 conventions (e.g.
    NAG → 0YB/4YB, glycosylated ASN → NLN).

glycoprotRcp receptor type in the AMBER script generation:

  • Sources both the protein force field and the GLYCAM carbohydrate
    force field.
  • Emits an explicit bond statement for every glycosidic linkage so
    they survive into the generated topology.
  • Cleans the GLYCAM-renamed structure with pdb4amber --no-reduce.

Glycan-aware PBC imaging in post_md_conversions.py — keeps glycans
in the same periodic image as the protein residue they are bonded to
during trajectory re-imaging.

UI — a "Glycoprotein" option in the Amber Setup receptor tab.

Scope and limitations

Supports the common N-glycan core sugars listed above. The GLYCAM
residue codes, linkage codes and atom-name maps were verified against
the GLYCAM-06j-1 prep/lib files in
GLYCAM-Web/gmml. Sugars or
linkage patterns outside the verified set raise a descriptive
NotImplementedError rather than producing an incorrect topology —
extending coverage is a matter of adding verified table entries.

PDB-path (OpenMM XML) glycoprotein support would require custom
residue templates and is left as future work.

Testing

32 new tests under openmmdl/tests/ — unit tests for detection and
renaming, an integration test for the generated AMBER script, and an
analysis test for the imaging helper. The full pipeline was verified
end-to-end on a four-chain N-glycosylated factor XIa system:
detection → tleap topology generation → OpenMM minimization and MD ran

try:
_run_glycoprotein_detection()
except NotImplementedError as exc:
return f"# Glycoprotein detection failed: {exc}\n"
except NotImplementedError as exc:
return f"# Glycoprotein detection failed: {exc}\n"
except Exception as exc: # noqa: BLE001
return f"# Glycoprotein detection raised {type(exc).__name__}: {exc}\n"
@talagayev
talagayev merged commit f99ea17 into wolberlab:main May 22, 2026
1 check passed
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.

3 participants