Program: gmx pdb2gmx, version 2022
Source file: src/gromacs/gmxpreprocess/pdb2gmx.cpp (line 1040)
Fatal error:
The residues in the chain LYS125–LYS389 do not have a consistent type. The
first residue has type ‘Protein’, while residue TPO288 is of type ‘Other’.
Either there is a mistake in your chain, or it includes nonstandard residue
names that have not yet been added to the residuetypes.dat file in the GROMACS
library directory. If there are other molecules such as ligands, they should
not have the same chain ID as the adjacent protein chain since it’s a separate
molecule.
Hi, the types of your residue are defined in residuetypes.dat, normally found where all the force fields files are. As indicated in the message, TPO is not a standard residue, so you need to choose whether it should be treated as a part of the protein chain or not (I assume yes here).
You can always make a local copy of residuetypes.dat and edit it as needed, the local version will be given priority by pdb2gmx.
Just adding to @milosz.wieczor’s answer. The residue TPO288 is likely not recognized as a standard amino acid by GROMACS. The error points out that residue TPO288 is of type ‘Other’, which suggests it’s a non-standard residue or a modified amino acid (in this case, TPO often represents phosphorylated threonine). You have two options here (mainly):
Add the residue to the residuetypes.dat file with the correct type as they mentioned. You will need to provide the force field parameters for this residue.
Modify the PDB file to replace TPO288 with a standard residue if the modification is not critical for your simulation.
Small request: Once the issue is resolved, please let us know how you did it for posterity so that others can benefit from the collective knowledge. Thank you for your contribution!
On PDBfixer, I don’t know - my guess is that TPO could be a phosphothreonine (since it’s in the middle of the chain), and @Surbhi has to know whether it’s a desired modification or something that can be safely deleted. As a general rule, it’s always better if OPs provide a bit of context, or otherwise they might face subsequent errors once issue #1 is solved.
So of course, if the TPO residue is there to stay, there has to be a separate .rtp entry for TPO etc., but that’s a separate question, and in any case, there are published parameter sets for it.