List index out of range when running pmx gentop

Hi, I am new using pmx. I am using python3.7 so I loaded the develop version. I am trying to mutate the first amino acid of a 24-AA peptide from F → A. I am running in the command line.
I used:
pmx mutate -f naf1_fromcharmmgui.pdb
to generate mutant.pdb with no error.
Then generate the topol.top file running gromacs 2019.4:
gmx pdb2gmx -f mutant.pdb -o conf.pdb -ff charmm36m-mut -water tip3p
again without errors.
But when I run:
pmx gentop -p topol.top -o newtop.top
these error messages are generated:

log_> Reading input top file “topol.top”
log_> Scanning database for F2A
Traceback (most recent call last):
File “/home/alfredo/anaconda3/bin/pmx”, line 10, in
sys.exit(entry_point())
File “/home/alfredo/anaconda3/lib/python3.7/site-packages/pmx/scripts/cli.py”, line 97, in entry_point
PmxCli()
File “/home/alfredo/anaconda3/lib/python3.7/site-packages/pmx/scripts/cli.py”, line 44, in init
getattr(self, args.command)()
File “/home/alfredo/anaconda3/lib/python3.7/site-packages/pmx/scripts/cli.py”, line 52, in gentop
generate_hybrid_topology.entry_point()
File “/home/alfredo/anaconda3/lib/python3.7/site-packages/pmx/scripts/generate_hybrid_topology.py”, line 180, in entry_point
main(args)
File “/home/alfredo/anaconda3/lib/python3.7/site-packages/pmx/scripts/generate_hybrid_topology.py”, line 144, in main
verbose=True, scaleDih=scaleDih)
File “/home/alfredo/anaconda3/lib/python3.7/site-packages/pmx/alchemy.py”, line 283, in gen_hybrid_top
verbose=verbose, scaleDih=scaleDih)
File “/home/alfredo/anaconda3/lib/python3.7/site-packages/pmx/alchemy.py”, line 247, in process_topol
verbose=verbose)
File “/home/alfredo/anaconda3/lib/python3.7/site-packages/pmx/alchemy.py”, line 1469, in _get_hybrid_residues
atoms[i].atomtypeB = atom.atomtypeB
IndexError: list index out of range

Here I appending the first uncommented lines in topol.top:

; Include forcefield parameters
#include “charmm36m-mut.ff/forcefield.itp”

[ moleculetype ]
; Name nrexcl
Protein_chain_A 3

[ atoms ]
; nr type resnr residue atom cgnr charge mass typeB chargeB massB
; residue 1 F2A rtp F2A q +1.0
1 NH3 1 F2A N 1 -0.3 14.007
2 HC 1 F2A H1 2 0.33 1.008
3 HC 1 F2A H2 3 0.33 1.008
4 HC 1 F2A H3 4 0.33 1.008
5 CT1 1 F2A CA 5 0.21 12.011
6 HB1 1 F2A HA 6 0.1 1.008
7 CT2 1 F2A CB 7 -0.18 12.011
8 HA2 1 F2A HB1 8 0.09 1.008
9 HA2 1 F2A HB2 9 0.09 1.008
10 CA 1 F2A CG 10 0 12.011
11 CA 1 F2A CD1 11 -0.115 12.011
12 HP 1 F2A HD1 12 0.115 1.008
13 CA 1 F2A CD2 13 -0.115 12.011
14 HP 1 F2A HD2 14 0.115 1.008
15 CA 1 F2A CE1 15 -0.115 12.011
16 HP 1 F2A HE1 16 0.115 1.008
17 CA 1 F2A CE2 17 -0.115 12.011
18 HP 1 F2A HE2 18 0.115 1.008
19 CA 1 F2A CZ 19 -0.115 12.011
20 HP 1 F2A HZ 20 0.115 1.008
21 C 1 F2A C 21 0.51 12.011
22 O 1 F2A O 22 -0.51 15.999
23 DUM_HA3 1 F2A HV1 23 0 1.008
24 DUM_HA3 1 F2A HV2 24 0 1.008
25 DUM_HA3 1 F2A HV3 25 0 1.008 ; qtot 1
; residue 2 LEU rtp LEU q 0.0
26 NH1 2 LEU N 26 -0.47 14.007
27 H 2 LEU HN 27 0.31 1.008
28 CT1 2 LEU CA 28 0.07 12.011
29 HB1 2 LEU HA 29 0.09 1.008
30 CT2 2 LEU CB 30 -0.18 12.011
31 HA2 2 LEU HB1 31 0.09 1.008
32 HA2 2 LEU HB2 32 0.09 1.008
33 CT1 2 LEU CG 33 -0.09 12.011
34 HA1 2 LEU HG 34 0.09 1.008
35 CT3 2 LEU CD1 35 -0.27 12.011
36 HA3 2 LEU HD11 36 0.09 1.008
37 HA3 2 LEU HD12 37 0.09 1.008
38 HA3 2 LEU HD13 38 0.09 1.008
39 CT3 2 LEU CD2 39 -0.27 12.011
40 HA3 2 LEU HD21 40 0.09 1.008
41 HA3 2 LEU HD22 41 0.09 1.008
42 HA3 2 LEU HD23 42 0.09 1.008
43 C 2 LEU C 43 0.51 12.011
44 O 2 LEU O 44 -0.51 15.999 ; qtot 1
; residue 3 GLY rtp GLY q 0.0
45 NH1 3 GLY N 45 -0.47 14.007
46 H 3 GLY HN 46 0.31 1.008
47 CT2 3 GLY CA 47 -0.02 12.011
48 HB2 3 GLY HA1 48 0.09 1.008
49 HB2 3 GLY HA2 49 0.09 1.008
50 C 3 GLY C 50 0.51 12.011
51 O 3 GLY O 51 -0.51 15.999 ; qtot 1
; residue 4 VAL rtp VAL q 0.0

I wondered if you have any idea what is wrong. By the way, I have been trying to run the same job pmx in the web server but I don’t getting any results (I am not sure if the server is down).
I appreciate any help

Alfredo

Mutations of the terminal residues are not supported. If you need to mutate them, I would suggest to add a capping group, thus technically making the residue non-terminal. This way the mutation would work.

Thanks for the notification about the webserver: the processes needed to be restarted and the server is now running again.

Thanks for the reply. After I submitted the post I realized that things work well if I tried to mutate a non-terminal residue. Adding explicitly a N-terminal residue (like ACE in charmm36) make it possible to mutate the first residue.

1 Like