[gmx-users] Re: question about minimisation

Justin Lemkul jalemkul at vt.edu
Thu Jul 26 14:05:30 CEST 2012



On 7/26/12 7:52 AM, reisingere at rostlab.informatik.tu-muenchen.de wrote:
>>
>>
>> On 7/26/12 7:06 AM, reisingere at rostlab.informatik.tu-muenchen.de wrote:
>>>>
>>>>
>>>> On 7/26/12 6:07 AM, reisingere at rostlab.informatik.tu-muenchen.de wrote:
>>>>>> On 26/07/2012 6:47 PM, reisingere at rostlab.informatik.tu-muenchen.de
>>>>>> wrote:
>>>>>>> Ho,
>>>>>>> first I minimize my structure. This is the corresponding mdp file:
>>>>>>>
>>>>>>> define                  = -DPOSRES
>>>>>>> integrator              = steep
>>>>>>> emtol           = 10
>>>>>>> nsteps          = 1500
>>>>>>> nstenergy               = 1
>>>>>>> energygrps              = System
>>>>>>> coulombtype             = PME
>>>>>>> rcoulomb                = 0.9
>>>>>>> rvdw                    = 0.9
>>>>>>> rlist           = 0.9
>>>>>>> fourierspacing  = 0.12
>>>>>>> pme_order               = 4
>>>>>>> ewald_rtol              = 1e-5
>>>>>>> pbc                     = xyz
>>>>>>>
>>>>>>>
>>>>>>> and then I run a md run. This is the corresponding mdp file:
>>>>>>>
>>>>>>> define          = -DPOSRES
>>>>>>> integrator              = md
>>>>>>> dt                      = 0.001
>>>>>>> nsteps          = 5000
>>>>>>> nstxout         = 100
>>>>>>> nstvout         = 0
>>>>>>> nstfout         = 0
>>>>>>> nstlog          = 1000
>>>>>>> nstxtcout               = 500
>>>>>>> nstenergy               = 5
>>>>>>> energygrps              = Protein Non-Protein
>>>>>>> nstcalcenergy   = 5
>>>>>>> nstlist         = 10
>>>>>>> ns-type         = Grid
>>>>>>> pbc                     = xyz
>>>>>>> rlist           = 0.9
>>>>>>> coulombtype             = PME
>>>>>>> rcoulomb                = 0.9
>>>>>>> rvdw            = 0.9
>>>>>>> fourierspacing          = 0.12
>>>>>>> pme_order               = 4
>>>>>>> ewald_rtol              = 1e-5
>>>>>>> gen_vel         = yes
>>>>>>> gen_temp                = 200.0
>>>>>>> gen_seed                = 9999
>>>>>>> constraints             = all-bonds
>>>>>>> tcoupl          = V-rescale
>>>>>>> tc-grps         = Protein  Non-Protein
>>>>>>> tau_t           = 0.1      0.1
>>>>>>> ref_t           = 298      298
>>>>>>> pcoupl          = no
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> In my topology file I include the restraint files like this:
>>>>>>>
>>>>>>> ; Include Position restraint file
>>>>>>> #ifdef POSRES
>>>>>>> #include "posre.itp"
>>>>>>> #endif
>>>>>>>
>>>>>>> #ifdef POSRES
>>>>>>> #include "posre_memb.itp"
>>>>>>> #endif
>>>>>>
>>>>>> This won't work for multiple [moleculetype] entries. See
>>>>>> http://www.gromacs.org/Documentation/How-tos/Position_Restraints
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I just recognize that there is a "DPOSRES" in the mdp files and a
>>>>>>> "POSRES"
>>>>>>> in my topology file. Is this the problem. Do I have to write it the
>>>>>>> same
>>>>>>> way in the several files?
>>>>>>
>>>>>> http://www.gromacs.org/Documentation/Include_File_Mechanism
>>>>>>
>>>>>> Mark
>>>>>
>>>>>
>>>>> I just see that the [ position_restraints ] part is included under the
>>>>> [dihedral] and not between the [moleculetype] and the [atom] part. And
>>>>> according to the site you wrote me this is a problem, right? But this
>>>>> was
>>>>> done by gromacs itself. Shell I write it to the [moleculetype] part?
>>>>>
>>>>
>>>> A [position_restraints] directive belongs to the [moleculetype] in
>>>> which
>>>> it is
>>>> declared.  The original location of the #include statement produced by
>>>> Gromacs
>>>> is correct; it follows sequentially within the protein [moleculetype].
>>>> Your
>>>> inclusion of the membrane restraint file within the protein
>>>> [moleculetype]
>>>> is,
>>>> however, incorrect.
>>>>
>>>>> But I can not see why it can not work that I have 2 restriction files?
>>>>> Can
>>>>> you please explain it to me?
>>>>>
>>>>
>>>> You can have two restraint files for different [moleculetypes] but they
>>>> must be
>>>> organized as such.
>>>
>>> okey. So the whole thing with [atoms], [bonds], [dihedral] all contains
>>> to
>>> the entry in [moleculetype]  , right?
>>>
>>
>> Any directive belongs to the [moleculetype] that immediately precedes it.
>> Once
>> a new [moleculetype] is declared (either directly or indirectly via
>> #include
>> mechanism), you're working with a different molecule.
>>
>>> But directly before I include the membrane restriction file I include
>>> the
>>> membrane definition:
>>>
>>> #include "amber03.ff/dum.itp"
>>> #ifdef POSRES
>>> #include "posre_memb.itp"
>>> #endif
>>>
>>>
>>> So I thought that it is directly after the atomtype it belongs to. I
>>> thought that it is the same in the case with the water, where first the
>>> water definition is included and after that the restriction of the
>>> water.
>>>
>>> Or am I wrong?
>>>
>>
>> Well the #include statement shown here is different than the one you
>> showed
>> previously, which was wrong.  Please always be sure you're providing
>> accurate
>> information - it wastes less time and avoids confusion.
>>
>>> I include the dummy atoms definition right after the ions. Or is this
>>> the
>>> wrong position?
>>>
>>
>> The position of #include statements in this context is irrelevant.  You
>> can list
>> the [moleculetypes] in any order you like, but the relevant dependent
>> directives
>> must be contained appropriately and the order of the listing in
>> [molecules] must
>> match the coordinate file.  Otherwise, it's fairly flexible.
>>
>> -Justin
>>
>>>
>>>    4935  4952  4950  4951     4
>>>    4950  4954  4952  4953     4
>>>    4954  4973  4972  4974     4
>>>
>>> ; Include Position restraint file
>>> #ifdef POSRES
>>> #include "posre.itp"
>>> #endif
>>>
>>> ; Include water topology
>>> #include "amber03.ff/tip3p.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 "amber03.ff/ions.itp"
>>>
>>> #include "amber03.ff/dum.itp"
>>> #ifdef POSRES
>>> #include "posre_memb.itp"
>>> #endif
>>>
>>>
>>>
>>>
>>>>
>>>>> So you mean that it is indeed important if I call it POSRES oder
>>>>> DPOSRES,
>>>>> right?
>>>>>
>>>>
>>>> Yes, syntax is crucial.  The proper way to make use of #ifdef blocks is
>>>> described in the manual and in the link Mark posted.
>>>>
>
> But when I only use
> "define                  = -POSRES"
> instead of
> "define                  = -DPOSRES"
>
> I get the warning:
> "WARNING 1 [file mdp file]:  Malformed define option -POSRES"
>
> And also at the
> "http://www.gromacs.org/Documentation/How-tos/Position_Restraints"
> site is written that in the mdp file there has to be
> "define = -DPOSRES"
> So is this the right way to write it in the mdp file. Although in the
> topology file which is generated by pdb2gmx stays "#ifdef POSRES"?
>

Use of -DPOSRES is correct, for all the above-cited reasons.

-Justin

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

Justin A. Lemkul, Ph.D.
Research Scientist
Department of Biochemistry
Virginia Tech
Blacksburg, VA
jalemkul[at]vt.edu | (540) 231-9080
http://www.bevanlab.biochem.vt.edu/Pages/Personal/justin

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



More information about the gromacs.org_gmx-users mailing list