Native glycoprotein support in the OpenMMDL Setup AMBER path#210
Merged
talagayev merged 2 commits intoMay 22, 2026
Conversation
| 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" |
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.
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:
createSystemfails withNo template found for residue NAG.bondstatements are emitted, so the protein–glycan linkages are lost.Changes
New
openmmdl/openmmdl_setup/glycoprotein.py— glycan detection andGLYCAM renaming:
(NAG, NDG, BMA, MAN, FUC, FUL).
CONECTrecords, with a distance-based fallback when they are absent.
NAG → 0YB/4YB, glycosylatedASN → NLN).glycoprotRcpreceptor type in the AMBER script generation:force field.
bondstatement for every glycosidic linkage sothey survive into the generated topology.
pdb4amber --no-reduce.Glycan-aware PBC imaging in
post_md_conversions.py— keeps glycansin 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
NotImplementedErrorrather 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 andrenaming, 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