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

morpheus morpheus.sommer2008 at gmail.com
Tue Mar 5 13:12:52 CET 2019


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?


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>
*>


More information about the gromacs.org_gmx-users mailing list