Pdb2gmx will not recognize adjacent residue when adding entry to .hdb: glycam06j-1 and amber14sb

GROMACS version: 2023.3-EasyBuild_4.8.2
GROMACS modification: No
FFs: amber14sb and glycam06j-1

Premise: I have 3 glycosylation sites on my protein comprised of 3 NAG molecules. I have used charmmgui to generate topologies for these carbs (named 0GA, 0YA, 0YB, 4YB in glycam). I have added the forcefield.itp file to my ff_directory. I have added all new atom-types to atomtypes.atp. I have added the four new molecules into the aminoacids.rtp folder.

Goal: Want to add the corresponding hydrogen entries to aminoacids.hdb for my new molecules. I want to allow pdb2gmx to assign hydrogens to my system.

Issue: The carbs are separate chains and not numbered contiguously with the peptides they are bonded to. This creates an issue when trying to assign the control atoms: for example, the tetrahedral H1 of a 4YB molecule has a control atom on the ASN residue it is connected to, which is a part of the protein chain. I therefore include the ASN atom (ND2) in the control atoms as ‘-ND2’, with (-) signifying that it belongs to the previous residue. This leads to a fatal error:

Atom -ND2 not found in residue 4YB 1, rtp entry 4YB while adding hydrogens

I believe this issue occurs because there is no ‘previous’ residue for 4YB, which is a separate chain. I wonder if gmx interprets the (-) as belonging to the current chain, and therefore no previous residue. I therefore do not know how I can include the correct final control atom for this tetrahedral hydrogen. I do not want to cheat and select another atom that is a part of the same residue.

I’m not sure which files would be relevant to upload, so for now I’ve attached the .hdb and .rtp files that I’ve manually changed. Thanks.

hdb.txt (9.3 KB)
rtp.txt (87.4 KB)

I honestly don’t know what the standard way of adding glycans in pdb2gmx is, but I believe you might want to use the special bonds utility (with specbonds.dat) that doesn’t require consecutive ordering of units in the polymer. This is the way disulfides, heme, and coordinated ions are typically treated, so should work for glycans as well.

However, if you’re generating the glycans in charmm-gui, don’t they also have a way of adding them to the protein?

might want to use the special bonds utility (with specbonds.dat )

Thanks – will try that.

However, if you’re generating the glycans in charmm-gui, don’t they also have a way of adding them to the protein?

My main beef with charmm gui is that I want to edit the box and re-solvate, but I continually ran into errors. I also want to have more control by starting from scratch . I’m keeping the forecefield.itp file from charmm-gui’s output to replace in my amber14sb directory, but I explicilty want to generate the topologies with pdb2gmx. I think its not entirely foolish…(?)

There were other tools for adding sugars in the past, but doing it straight through pdb2gmx is a bit of uncharted territory. As long as it’s doable through any of the validated pipelines, I’d stick to that, and instead ask a question how to fix the errors with re-solvating. But it’s up to you in the end :)