Repository navigation
Fix alpha-GalNAc (A2G) documentation and NGM C4 stereochemistry - #1710
Merged
Merged
Conversation
alpha-GalNAc was already in the force field as A2G, the PDB chemical component code for 2-acetamido-2-deoxy-alpha-D-galactopyranose, but the header REMARK that serves as the authoritative supported-carbohydrate list described it as a glucopyranose, which made it look unsupported. carbohydrate.top: - correct the A2G REMARK and the residue comment: it is the alpha anomer of NGA, with C4 inverted with respect to NDG - fix the malformed NGM C4 improper. It read "H4 C4 O3 C5", listing C4 inside its own chirality improper and using O3 where O4 belongs, so it restrained a meaningless quadruple instead of the C4 centre. It now reads "H4 O4 C3 C5", matching A2G, GAL and GLA. On the gal-ngm test case the built C4 improper moves from -56.7 to -65.2 degrees, against -66.4 for the galactose of the same molecule. - correct the sialyl-link REMARKS: A23 was described backwards and an A23S patch was advertised that does not exist in the file bondglycans.cns: - add A2G as an alpha(2,3)/alpha(2,6) sialylation acceptor, which enables sialyl-Tn (SIA alpha(2,6) alpha-GalNAc). Only the A23c/A26c loops are extended; the A23a/A26a loops take the acceptor as the '-' reference, which does not match PRESidue A23/A26, so they cannot fire. No new parameters are needed: after patching, A2G O3/O6 become OAS and every affected improper resolves to an existing entry, exactly as for GAL. Tests: - new test_topoaa_GalGalNAcalpha with golden data gal-a2g.pdb, the core-1/T-antigen disaccharide Gal-beta(1,3)-alpha-GalNAc. CNS has to build the anomeric centre and the C4 substituents, so the test checks that the A2G impropers pin alpha at C1 and galacto at C4, and that the B13 link is patched in. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
GCS is beta-glucosamine, as the header REMARK already states. Its C4 improper "H4 C5 C3 O4" is the odd permutation of the galacto form NGA uses, so the configuration is gluco; only the residue comment was wrong. Comment-only change, no effect on the force field. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
NDG, NAM, NAA, NGM, SIA and SIB all restrain their N-acetyl group to be planar, but NGA, NAG, MAG and A2G did not, even though the parameters for it already exist in carbohydrate.param and are commented there as "!NAG,SIA planar". The omission looks accidental rather than deliberate. Both impropers resolve to fully specific existing parameters, so no new parameters are needed: N2 C7 C2 HN2 -> NH1 C CCS H -> 0.0 deg C7 C8 N2 O7 -> C CCS NH1 O -> 0.0 deg GCS is deliberately left out: it is glucosamine, with a free amine and no acetyl group. Measured on the NAG/NDG glycan of examples/docking-protein-glycan, the acetamide groups go from up to 5.8 degrees out of plane to 0.07 degrees. NDG, which already carried the impropers, is unchanged at 0.01 degrees and acts as a control. This does slightly shift NAG energies, in the direction of planarity and of consistency with NDG. Tests: tests/ plus integration_tests/ pass (1802 and 84 passed). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
The repository had no SIA or SIB coordinates in any PDB file, so the SIA
topology and the automatic alpha(2,3)/alpha(2,6) sialylation patches had
no test coverage at all, including the A2G acceptor added earlier on this
branch.
New golden data:
- sia.pdb, alpha-N-acetyl neuraminic acid on its own
- sia-a2g-26.pdb, SIA alpha(2,6) alpha-GalNAc, the sialyl-Tn antigen
- sia-a2g-23.pdb, SIA alpha(2,3) alpha-GalNAc
How the reference was built, since no experimental structure was used:
the pyranose ring was laid out as an ideal chair and every substituent
was placed on the branch whose improper matches the target in
carbohydrate.param, so the stereochemistry is the one the force field
itself defines, at C2, C3, C4, C5, C6, C7, C8 and C9. The frame was then
regularised by CNS, which built the hydrogens. For the disaccharides,
SIA is placed rigidly against a CNS-built A2G with a realistic C-O-C
glycosidic angle, scanning the two glycosidic rotations and the C6-C7
glycerol torsion for the least clashing orientation; the closest
SIA/A2G heavy-atom contact is 2.8 A for the 2,6 linkage and 2.5 A for
the more crowded 2,3 one. The real bond is then formed by the patch, not
by these coordinates.
Tests:
- test_topoaa_sialic_acid builds SIA alone and checks all eight of its
stereo and planarity impropers
- test_topoaa_sialyl_GalNAc checks, for both linkages, that
bondglycans.cns detects it, that the patch deletes SIA O2/HO2 and the
acceptor hydroxyl hydrogen, and that neither residue loses its
stereochemistry
- both linkage tests were confirmed to fail ("A26S was not applied",
"A23 was not applied") when the A2G acceptor is reverted
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
amjjbonvin
requested review from
AnnaEngel98,
AnnaKravchenko,
Comp-era and
dkotzamp
October 6, 2026 11:40
2 of 3 tasks
This was referenced Oct 9, 2026
shreyanshj10
added a commit
to shreyanshj10/haddock3
that referenced
this pull request
Oct 9, 2026
…1711-dead-sialylation-loops Resolved against the glycans work in haddocking#1710, which added A2G to the A23d/A26d acceptor selections and relabelled the two surviving loop comments. Those edits sit immediately after the dead A23a/A26a blocks this branch removes, so git could not line the two up. Kept upstream's comments and both A2G additions and dropped the dead loops, and placed the CHANGELOG entry under the existing one.
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.
alpha-GalNAc was already in the force field as A2G, the PDB chemical component code for 2-acetamido-2-deoxy-alpha-D-galactopyranose, but the header REMARK that serves as the authoritative supported-carbohydrate list described it as a glucopyranose, which made it look unsupported.
What does this PR do and why?
carbohydrate.top:
bondglycans.cns:
add A2G as an alpha(2,3)/alpha(2,6) sialylation acceptor, which enables sialyl-Tn (SIA alpha(2,6) alpha-GalNAc). Only the A23c/A26c loops are extended; the A23a/A26a loops take the acceptor as the '-' reference, which does not match PRESidue A23/A26, so they cannot fire. No new parameters are needed: after patching, A2G O3/O6 become OAS and every affected improper resolves to an existing entry, exactly as for GAL.
Two further fixes in the same area, each in its own commit:
correct the GCS residue comment, which read "2-N-beta-D-galactopyranose (glucosamine)". GCS is beta-glucosamine, as the REMARKS header already said: its C4 improper "H4 C5 C3 O4" is the odd permutation of the galacto form NGA uses, so the configuration is gluco. Comment only, no effect on the force field.
add the missing N-acetyl planarity impropers to NGA, NAG, MAG and A2G. NDG, NAM, NAA, NGM, SIA and SIB all restrain their N-acetyl group to be planar, but these four did not, even though the parameters already exist in carbohydrate.param and are commented there as "!NAG,SIA planar", so the omission looks accidental rather than deliberate. Both impropers resolve to fully specific existing parameters, so nothing is added to the parameter file: "N2 C7 C2 HN2" -> "NH1 C CCS H" -> 0.0 deg, and "C7 C8 N2 O7" -> "C CCS NH1 O" -> 0.0 deg. GCS is deliberately left out, being glucosamine with a free amine and no acetyl group. This is the only behaviour-affecting change in the PR: it shifts NAG energies slightly, in the direction of planarity and of consistency with NDG.
How was this tested?
AI assistance
Claude was used to check the current topo/param files for glycans and implement changes which were manually checked.
Checklist
CHANGELOG.mdupdated for user-facing changesRelated issues
Closes #1709