I am using developmental version of PMX. Python 3.11.0. Gromacs version 2024.4. I am trying to mutate 276 residue from R2W. My WT.pdb file has total 320 aa.
head WT.pdb
ATOM 1 N MET A 1 -23.707 -0.652 12.944 1.00 46.62 N
ATOM 2 CA MET A 1 -23.333 -0.450 14.353 1.00 46.62 C
ATOM 3 C MET A 1 -23.493 -1.742 15.138 1.00 46.62 C
ATOM 4 CB MET A 1 -24.208 0.648 14.966 1.00 46.62 C
ATOM 5 O MET A 1 -24.471 -2.473 14.966 1.00 46.62 O
ATOM 6 CG MET A 1 -23.396 1.755 15.635 1.00 46.62 C
ATOM 7 SD MET A 1 -24.458 3.070 16.342 1.00 46.62 S
ATOM 8 CE MET A 1 -23.300 3.844 17.486 1.00 46.62 C
ATOM 9 N TYR A 2 -22.423 -2.282 15.586 1.00 37.69 N
ATOM 10 CA TYR A 2 -22.503 -3.484 16.423 1.00 37.69 C
tail WT.pdb
ATOM 2454 N ASP A 320 -5.244 22.466 14.216 1.00 67.75 N
ATOM 2455 CA ASP A 320 -4.523 21.991 13.040 1.00 67.75 C
ATOM 2456 C ASP A 320 -3.109 22.570 12.978 1.00 67.75 C
ATOM 2457 CB ASP A 320 -5.288 22.342 11.761 1.00 67.75 C
ATOM 2458 O ASP A 320 -2.898 23.724 13.348 1.00 67.75 O
ATOM 2459 CG ASP A 320 -6.595 21.584 11.617 1.00 67.75 C
ATOM 2460 OD1 ASP A 320 -6.714 20.467 12.171 1.00 67.75 O
ATOM 2461 OD2 ASP A 320 -7.515 22.107 10.955 1.00 67.75 O
TER 2462 ASP A 320
END
I want to use charmm36 FF. I got charmm36 from two different sources. One that comes with PMX software buldle (charmm36m-mut) another that I downloaded from PMX webserver (charmm36mut). pmx
pmx mutate -f WT.pdb -o mutant.pdb -ff charmm36mut
or
pmx mutate -f WT.pdb -o mutant.pdb -ff charmm36m-mut
Enter residue number: 276
Select new amino acid for 276-ARG:
Three- or one-letter code (or four-letter for ff specific residues): W
Will apply mutation R->W on residue ARG-276
log_> Residue to mutate: 276 | ARG | A
log_> Mutation to apply: R->W
log_> Hybrid residue name: R2W
Traceback (most recent call last):
File “/usr/local/bin/pmx”, line 8, in
sys.exit(entry_point())
^^^^^^^^^^^^^
File “/usr/local/lib/python3.11/site-packages/pmx/scripts/cli.py”, line 97, in entry_point
PmxCli()
File “/usr/local/lib/python3.11/site-packages/pmx/scripts/cli.py”, line 44, in init
getattr(self, args.command)()
File “/usr/local/lib/python3.11/site-packages/pmx/scripts/cli.py”, line 48, in mutate
mutate.entry_point()
File “/usr/local/lib/python3.11/site-packages/pmx/scripts/mutate.py”, line 579, in entry_point
main(args)
File “/usr/local/lib/python3.11/site-packages/pmx/scripts/mutate.py”, line 558, in main
mutate(m=m,
File “/usr/local/lib/python3.11/site-packages/pmx/alchemy.py”, line 81, in mutate
apply_aa_mutation(m=m2, residue=residue, new_aa_name=new_aa_name,
File “/usr/local/lib/python3.11/site-packages/pmx/alchemy.py”, line 116, in apply_aa_mutation
bb_super(residue, hybrid_res)
File “/usr/local/lib/python3.11/site-packages/pmx/geometry.py”, line 135, in bb_super
assert len(atoms1) == len(atoms2), “%s → %s” % (‘-’.join(map(lambda a: a.name, atoms1)), ‘-’.join(map(lambda a: a.name, atoms2)))
AssertionError: N-CA-C-O → N-CA-C-O-HA-HN
If I use the webserver of PMX to mutate with charmm36, then it works. I get mutant.pdf. But then I get problem in folloing step:
gmx pdb2gmx -f mutant.pdb -o conf.pdb -p topol.top -water tip3p -ff charmm36mut
or
gmx pdb2gmx -f mutant.pdb -o conf.pdb -p topol.top -water tip3p -ff charmm36m-mut
Inconsistency in user input:
Atom type OH specified in terminal database has not been defined in the force
field
It did not help changing OH to OH1. Or, first running following script on WT.pdb protein and then mutate the input protein using webserver
./1.fix_residue_names.py -f WT.pdb -o tmp1.pdb -ft charmm
./2.hydrogen_atom_renaming.py -f tmp1.pdb -o tmp2.pdb -ft charmm
mutate.py doesn’t work on tmp2.pdb. I used then tmp2.pdb to PMX webserver and got mutant.pdb
Now If I run this step (in fresh terminal), I get same error.
gmx pdb2gmx -f mutant.pdb -o conf.pdb -p topol.top -water tip3p -ff charmm36mut
But if I use the force-field
gmx pdb2gmx -f mutant.pdb -o conf.pdb -p topol.top -water tip3p -ff charmm36m-mut
Program: gmx pdb2gmx, version 2024.4
Source file: src/gromacs/gmxpreprocess/pdb2gmx.cpp (line 870)
Fatal error:
Atom DHD1 in residue R2W 276 was not found in rtp entry R2W with 39 atoms
while sorting atoms
So, no way I could solve it with charmm36. I only worked if I used force field amber99sb-star-ildn-mut and mutate the WT protein using webserver (not pmx mutate script).
I appreciate any help
Thanks