[gmx-users] position restraints on backbone: index error

Justin Lemkul jalemkul at vt.edu
Tue Mar 5 13:17:43 CET 2019



On 3/5/19 7:12 AM, morpheus wrote:
> Thanks for your answer!
>
> I have followed your advice and generated the position restraint files for
> each chain but it still comes up with an index error:
>
> ##################
> Fatal error:
> [ file 2bnr_SLLDWITQV_dist_1.0.posre_Protein_chain_B.itp, line 5 ]:
> Atom index (2975) in position_restraints out of bounds (1-1111).
> ##################
>
> What I have done was the following:
>
>
> 1)  Create an index file from based on a pdb file that is the first frame
> of the warming up procedure (where all atoms are position restrained (and
> this works fine)):
>
> ##################
> make_ndx_mpi -f 2bnr_SLLDWITQV_dist_1.0.firstFrame.pr.pdb -o
> 2bnr_SLLDWITQV_dist_1.0.indexForPositionRestraints.ndx
>   chain A & 4
>   chain B & 4
>   chain C & 4
>   chain D & 4
>   chain E & 4
> ##################
>
>
> 2) Create 1 itp file for each chain (example for chain A is given below):
>
> ##################
> genrestr_mpi -f 2bnr_SLLDWITQV_dist_1.0.pdb -n
> 2bnr_SLLDWITQV_dist_1.0.indexForPositionRestraints.ndx -o
> 2bnr_SLLDWITQV_dist_1.0.posre_Protein_chain_A.itp
>    11
> ##################
>
> 3) In the top file "2bnr_SLLDWITQV_dist_1.0_Protein_chain_A.itp" (and the 5
> others) are included. They contain the indexes of all atoms. This file
> looks like this:
>
> ##################
> [ moleculetype ]
> ; Name            nrexcl
> Protein_chain_A     3
>
> [ atoms ]
> ;   nr       type  resnr residue  atom   cgnr     charge       mass
> typeB    chargeB      massB
> ; residue   1 GLY rtp GLY  q +1.0
>       1       MNH3      1    GLY    MN1      1          0    8.51535   ;
> qtot 0
>       2       MNH3      1    GLY    MN2      1          0    8.51535   ;
> qtot 0
>       3         NL      1    GLY      N      1      0.129          0   ;
> qtot 0.129
>       4          H      1    GLY     H1      1      0.248          0   ;
> qtot 0.377
>       5          H      1    GLY     H2      1      0.248          0   ;
> qtot 0.625
>       6          H      1    GLY     H3      1      0.248          0   ;
> qtot 0.873
>       7        CH2      1    GLY     CA      2      0.127     14.027   ;
> qtot 1
>       8          C      1    GLY      C      3       0.45     12.011   ;
> qtot 1.45
>       9          O      1    GLY      O      3      -0.45    15.9994   ;
> qtot 1
> ; residue   2 SER rtp SER  q  0.0
>      10          N      2    SER      N      4      -0.31    15.0147   ;
> qtot 0.69
>      11          H      2    SER      H      4       0.31          0   ;
> qtot 1
>      12        CH1      2    SER     CA      5          0     13.019   ;
> qtot 1
>      13        CH2      2    SER     CB      6      0.266     14.027   ;
> qtot 1.266
> [...]
> ; Include Position restraint file
> #ifdef POSRES
> #include "2bnr_SLLDWITQV_dist_1.0.posre_Protein_chain_A.itp"
> #endif
>
>
> or like this for chain B
>
>
> [ moleculetype ]
> ; Name            nrexcl
> Protein_chain_B     3
>
> [ atoms ]
> ;   nr       type  resnr residue  atom   cgnr     charge       mass
> typeB    chargeB      massB
> ; residue   0 MET rtp MET  q +1.0
>       1       MNH3      0    MET    MN1      1          0    8.51535   ;
> qtot 0
>       2       MNH3      0    MET    MN2      1          0    8.51535   ;
> qtot 0
>       3         NL      0    MET      N      1      0.129          0   ;
> qtot 0.129
>       4          H      0    MET     H1      1      0.248          0   ;
> qtot 0.377
>       5          H      0    MET     H2      1      0.248          0   ;
> qtot 0.625
>       6          H      0    MET     H3      1      0.248          0   ;
> qtot 0.873
>       7        CH1      0    MET     CA      2      0.127     13.019   ;
> qtot 1
>       8        CH2      0    MET     CB      2          0     14.027   ;
> qtot 1
>       9        CH2      0    MET     CG      3      0.241     14.027   ;
> qtot 1.241
>      10          S      0    MET     SD      3     -0.482      32.06   ;
> qtot 0.759
>      11        CH3      0    MET     CE      3      0.241     15.035   ;
> qtot 1
>      12          C      0    MET      C      4       0.45     12.011   ;
> qtot 1.45
>      13          O      0    MET      O      4      -0.45    15.9994   ;
> qtot 1
> ; residue   1 ILE rtp ILE  q  0.0
>      14          N      1    ILE      N      5      -0.31    15.0147   ;
> qtot 0.69
>      15          H      1    ILE      H      5       0.31          0   ;
> qtot 1
>      16        CH1      1    ILE     CA      6          0     13.019   ;
> qtot 1
>      17        CH1      1    ILE     CB      7          0     13.019   ;
> qtot 1
>      18        CH2      1    ILE    CG1      7          0     14.027   ;
> qtot 1
>      19        CH3      1    ILE    CG2      7          0     15.035   ;
> qtot 1
>      20        CH3      1    ILE     CD      7          0     15.035   ;
> qtot 1
>      21          C      1    ILE      C      8       0.45     12.011   ;
> qtot 1.45
>      22          O      1    ILE      O      8      -0.45    15.9994   ;
> qtot 1
> [...]
> ; Include Position restraint file
> #ifdef POSRES
> #include "2bnr_SLLDWITQV_dist_1.0.posre_Protein_chain_B.itp"
> #endif
>
>
> ##################
>
>
> 4) At the same time I have the newly created itp file that contains the
> force restraints (which unit is the 1000 actually here?) and seems to be
> linked to the first itp file via the include (see above). The content of my
> new file is:
>
> ##################
> ; position restraints for chA_&_Backbone of
>
> [ position_restraints ]
> ;  i funct       fcx        fcy        fcz
>     3    1       1000       1000       1000
>     7    1       1000       1000       1000
>     8    1       1000       1000       1000
>    10    1       1000       1000       1000
>    12    1       1000       1000       1000
>    16    1       1000       1000       1000
>    18    1       1000       1000       1000
>    20    1       1000       1000       1000
>    30    1       1000       1000       1000
>    32    1       1000       1000       1000
> [...]
>
>
> or for chain B:
>
> ; position restraints for chB_&_Backbone of
>
> [ position_restraints ]
> ;  i funct       fcx        fcy        fcz
> 2975    1       1000       1000       1000
> 2979    1       1000       1000       1000
> 2984    1       1000       1000       1000
> 2986    1       1000       1000       1000
> 2988    1       1000       1000       1000
> 2993    1       1000       1000       1000
> [...]
>
> ##################
>
>
> Why does this not work together? It seems to be a problem of absolute vs
> relative index? But what do I needed to do differently in order to make
> this work?

The only valid atom numbers in a position restraint index file are 1..N, 
where N is the number of atoms in the corresponding [moleculetype]. Note 
that genrestr tells you this:

"WARNING: Position restraints are interactions within molecules, 
therefore they
must be included within the correct [ moleculetype ] block in the topology.
The atom indices within the [ position_restraints ] block must be within the
range of the atom indices for that molecule type. Since the atom numbers in
every moleculetype in the topology start at 1 and the numbers in the input
file for gmx genrestr number consecutively from 1, gmx genrestr will only
produce a useful file for the first molecule. You may wish to edit the
resulting index file to remove the lines for later atoms, or construct a
suitable index group to provide as input to gmx genrestr."

As a simple rule, if you are ever running genrestr on a coordinate file 
that has multiple molecules in it, you will not get what you want (there 
are ways around it, but that is an easy way to think of it).

-Justin

>
> Thanks!
> M
>
>
>
>
>
>
> Previous message: [gmx-users] position restraints on backbone: index error
> <https://mailman-1.sys.kth.se/pipermail/gromacs.org_gmx-users/2019-March/124461.html>
>
> Hi,
> Position restraints are per molecule.
> if you separate your molecule like that, the position restraints of
> backbone should be generated for each chain base on indices of each chain
> and include it in the topology of the chain, not global topology like that.
> so for example, if you want restraint backbone of chain E, you have to
> generate position restraint base on the topology of chain E and include him
> in 2bnr_SLLDWITQV_dist_1.0_Protein_chain_E.itp
>
> On Fri, Mar 1, 2019 at 10:53 AM morpheus <morpheus.sommer2008 at
> gmail.com <https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users>>
> wrote:
>
>> * Dear Gromacs users,
> *>>* I would like to run protein/protein interaction simulation (consisting of 5
> *>* chains) that holds the backbone atoms rigid but allows side-chain
> *>* movements. According to the Gromacs documentation this should work by:
> *>>* "Special position restraint .itp files can be created using the genrestr
> *>* utility [...].  For example, if you wish to apply position restraints to
> *>* only the backbone atoms of your protein, use genrestr and choose "Backbone"
> *>* as the output group, and #include "backbone_posre.itp" in your topology."
> *>* [1]
> *>>* I can generate the .itp file as described above but if I include it in my
> *>* .top file then I get the following error:
> *>>* ###########
> *>* Fatal error:
> *>* [ file backbone_posre.itp, line 687 ]:
> *>* Atom index (2472) in position_restraints out of bounds (1-2471).
> *>* This probably means that you have inserted topology section
> *>* "position_restraints"
> *>* in a part belonging to a different molecule than you intended to.
> *>* In that case move the "position_restraints" section to the right molecule.
> *>* For more information and tips for troubleshooting, please check the GROMACS
> *>* website at http://www.gromacs.org/Documentation/Errors
> <http://www.gromacs.org/Documentation/Errors>
> *>* ###########
> *>>>* My top file looks like below and I have added the #include
> *>* "backbone_posre.itp" part manually.
> *>>>* ###########
> *>* ; Include forcefield parameters
> *>* #include "gromos53a6.ff/forcefield.itp"
> *>>* ; Include chain topologies
> *>* #include "2bnr_SLLDWITQV_dist_1.0_Protein_chain_A.itp"
> *>* #include "2bnr_SLLDWITQV_dist_1.0_Protein_chain_B.itp"
> *>* #include "2bnr_SLLDWITQV_dist_1.0_Protein_chain_C.itp"
> *>* #include "2bnr_SLLDWITQV_dist_1.0_Protein_chain_D.itp"
> *>* #include "2bnr_SLLDWITQV_dist_1.0_Protein_chain_E.itp"
> *>* #include "backbone_posre.itp"
> *>>* ; Include water topology
> *>* #include "gromos53a6.ff/spc.itp"
> *>>* #ifdef POSRES_WATER
> *>* ; Position restraint for each water oxygen
> *>* [ position_restraints ]
> *>* ;  i funct       fcx        fcy        fcz
> *>*    1    1       1000       1000       1000
> *>* #endif
> *>>* ; Include topology for ions
> *>* #include "gromos53a6.ff/ions.itp"
> *>>* [ system ]
> *>* ; Name
> *>* Protein in water
> *>* ###########
> *>>* What does "different molecule" mean in the error message? It should apply
> *>* to all protein chains ... or in other words: what do I need to change to
> *>* make this one run?
> *>>* Thanks!!
> *>>* M
> *>>>* [1] http://www.gromacs.org/Documentation/How-tos/Position_Restraints
> <http://www.gromacs.org/Documentation/How-tos/Position_Restraints>
> *>* --
> *>* Gromacs Users mailing list
> *>>* * Please search the archive at
> *>* http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List
> <http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List> before
> *>* posting!
> *>>* * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> <http://www.gromacs.org/Support/Mailing_Lists>
> *>>* * For (un)subscribe requests visit
> *>* https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users
> <https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users>
> or
> *>* send a mail to gmx-users-request at gromacs.org.
> <https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users>
> *>

-- 
==================================================

Justin A. Lemkul, Ph.D.
Assistant Professor
Office: 301 Fralin Hall
Lab: 303 Engel Hall

Virginia Tech Department of Biochemistry
340 West Campus Dr.
Blacksburg, VA 24061

jalemkul at vt.edu | (540) 231-3129
http://www.thelemkullab.com

==================================================



More information about the gromacs.org_gmx-users mailing list