[gmx-users] Different Lipids into one Moleculetype (for position restrain)

Justin A. Lemkul jalemkul at vt.edu
Sat May 19 05:00:55 CEST 2012



On 5/18/12 10:28 PM, Peter C. Lai wrote:
> Synopsis: position restraints are coupled to the moleculetype. So you need to
> define position restraints individually for each molecule type contiguous
> with their topologies.
>
> There's a couple of ways to do it, using some simple #include and #define:
>
> You can restrain within each molecule's own .itp file at the end, for example:
>
> popc.itp:
> [ moleculetype ]
> ; Name            nrexcl
> POPC               3
>
> [ atoms ]
> ;   nr       type  resnr residue  atom   cgnr     charge       mass  typeB...
> ; residue   1 POPC rtp POPC q  0.0
>       1        NTL      1   POPC      N      1       -0.6     14.007 ....
> ...
>      20         PL      1   POPC      P     20        1.5     30.974 ....
> ...
>
> [ dihedrals ]
> ...
> ; end of original file
>
> #ifdef POSRE_LIPID
> [ position_restraints ]
> ; atom  type      fx      fy      fz
>       20     1  1000  1000  1000
> ;restrain atom 20 in the molecule_type which is P
> #endif
>
> Add something similar at the bottom of pope.itp.
>
> Then in your system-wide topol.top would look something like:
>
> #include "charmm36.ff/forcefield.itp" ;charmm36 lipids
>
> #include "popc.itp"
> #include "pope.itp"
>
> #include "charmm36.ff/tips3p.itp" ;charmm waters
>
> [ system ]
> POPC+POPE bilayer
>
> [ molecules ]
> POPC 100
> POPE 100
> SOL  10000
> ; or however many of each you have in your conf.gro file
>
> In your grompp.mdp, you'd have:
>
> #define -DPOSRE_LIPID ; to turn on position restraints in lipid .itps
>
> ------------------------------
>
> Another way to do it is to put the #ifdef POSRE_LIPID [ position_restraints ]
> sections in the system-wide topol.top, but you'd need two of them, one per
> lipid [ moleculetype ]:
>
> #include "charmm36.ff/forcefield.itp" ;charmm36 lipids
>
> #include "popc.itp"
> #ifdef POSRE_LIPID
> [ position_restraints ] ;for POPC
>       20     1  1000  1000  1000
> #endif
>
> #include "pope.itp"
> #ifdef POSRE_LIPID
> [ position_restraints ] ;for POPE
> ...
> #endif
> ...
>
> The grompp.mdp file would continue to use #define -DPOSRE_LIPID to enable
> those restraints.
>
> It is up to you how you want to modularize the restraints. You can even
> use multiple #defines to restrain separately (although the resulting system
> wouldn't necessarily be physically correct):
>
> As above topologies but:
>
> #ifdef -DPOSRE_POPC
> ;position restraints for POPC
> #endif
>

I think what you mean here is:

#ifdef POSRE_POPC

> #ifdef -DPOSRE_POPE
> ;position restraints for POPE
> #endif
>

and #ifdef POSRE_POPE.

Otherwise, the define statement becomes very cumbersome (and perhaps faulty), with:

define = -D-DPOSRE_POPC -D-DPOSRE_POPE

> and in grompp.mdp:
>
> #define -DPOSRE_POPC -DPOSRE_POPE
> ;to restrain both
>

Note that for the .mdp, one does not use #define, but rather:

define = -POSRE_POPC -DPOSRE_POPE

-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