[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