# List index out of range when running pmx gentop

**URL:** <https://ask.bioexcel.eu/t/list-index-out-of-range-when-running-pmx-gentop/4049>\
**Category:** pmx\
**Created:** [December 27, 2022, 6:42am UTC](https://ask.bioexcel.eu/t/list-index-out-of-range-when-running-pmx-gentop/4049 "2022-12-27T06:42:06Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![Alfredo](https://avatars.discourse-cdn.com/v4/letter/a/e495f1/32.png) [@Alfredo](https://ask.bioexcel.eu/u/Alfredo)\
**Post date:** [December 27, 2022, 6:42am UTC](https://ask.bioexcel.eu/t/list-index-out-of-range-when-running-pmx-gentop/4049/1 "2022-12-27T06:42:06Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![vgapsys](https://avatars.discourse-cdn.com/v4/letter/v/7993a0/32.png) [@vgapsys](https://ask.bioexcel.eu/u/vgapsys)\
**Post date:** [December 29, 2022, 1:23pm UTC](https://ask.bioexcel.eu/t/list-index-out-of-range-when-running-pmx-gentop/4049/2 "2022-12-29T13:23:03Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Alfredo](https://avatars.discourse-cdn.com/v4/letter/a/e495f1/32.png) [@Alfredo](https://ask.bioexcel.eu/u/Alfredo)\
**Post date:** [December 29, 2022, 4:15pm UTC](https://ask.bioexcel.eu/t/list-index-out-of-range-when-running-pmx-gentop/4049/3 "2022-12-29T16:15:15Z")

</div>

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.
