[gmx-users] keeping water (entirely) out of the bilayer core
XAvier Periole
x.periole at rug.nl
Sun May 5 09:09:57 CEST 2013
You could define a repulsive potential that would apply to water molecules. I am not sure how it is called but it is available and described in the manual.
On May 4, 2013, at 2:46, Christopher Neale <chris.neale at mail.utoronto.ca> wrote:
> Dear users:
>
> I am interested in running simulations of lipid bilayers in which I keep all water molecules out of the bilayer core
> (not just statistically, but absolutely). However, I have been unable to figure out how to do it.
> I'll list what I have tried in the hope that others have some ideas or even perhaps know how to do this
> with standard gromacs.
>
> Everything that I have tried revolves around using the pull code, setting the entire lipid bilayer as the reference
> group, and having thousands of pulled groups -- one for each water molecule. Also, I modified the gromacs
> source code in mdlib/pull.c (version 4.6.1) so that the force is only applied when the displacement is smaller than
> the desired distance and not when the displacement is larger than the specified distance (to keep water out but
> then to otherwise let it go anywhere without bias):
>
> static void do_pull_pot(int ePull,
> t_pull *pull, t_pbc *pbc, double t, real lambda,
> real *V, tensor vir, real *dVdl)
> {
> int g, j, m;
> dvec dev;
> double ndr, invdr;
> real k, dkdl;
> t_pullgrp *pgrp;
>
> /* loop over the groups that are being pulled */
> *V = 0;
> *dVdl = 0;
> for (g = 1; g < 1+pull->ngrp; g++)
> {
> pgrp = &pull->grp[g];
> get_pullgrp_distance(pull, pbc, g, t, pgrp->dr, dev);
>
> /* ########## HERE IS THE CODE CHANGE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
> if(dev[0]>0.0){
> dev[0]=0.0;
> }
> /* End code snippit */
>
>
> The most relevant lines from the .mdp file were:
>
> pull = umbrella
> pull_geometry = distance
> pull_dim = N N Y
> pull_start = no
> pull_ngroups = 9000
> pull_group0 = POPC
>
> pull_group1 = r_1_&_OW
> pull_init1 = 1.9
> pull_k1 = 500
>
> pull_group2 = r_2_&_OW
> pull_init2 = 1.9
> pull_k2 = 500
>
> ... etc...
>
>
> The problem with this was that it crashed immediately with an error that my pulling distance was
> greater than 1/2 of the box vector.:
>
> Fatal error:
> Distance of pull group 165 (5.353939 nm) is larger than 0.49 times the box size (5.395960)
>
> Pretty obvious in retrospect. If I could get this error to go away, then everything should be fine because I have modified the code so that forces are zero at large displacements. However, I am worried that if I simply modify grompp to bypass this error then I might get some type of strange and possibly silent error in mdrun. Any thoughts on this are really appreciated.
>
> For my second try, I used pull_geometry = direction-periodic (see more details below), but that also didn't work
> because if I set pull_vec1 = 0 0 1, then everything gets pulled to the upper part of the box (and LINCS errors
> ensue), rather than simply pulling away from the bilayer.
>
> Pcoupl = berendsen
> pcoupltype = semiisotropic
> compressibility = 4.5e-5 0
> pull = umbrella
> pull_geometry = direction-periodic
> pull_start = no
> pull_ngroups = 9000
> pull_group0 = POPC
>
> pull_group1 = r_1_&_OW
> pull_init1 = 1.9
> pull_k1 = 500
> pull_vec1 = 0 0 1
>
> pull_group2 = r_2_&_OW
> pull_init2 = 1.9
> pull_k2 = 500
> pull_vec2 = 0 0 1
>
> ... etc...
>
>
> If anybody has an idea about how I could get this to work with standard gromacs or with a modified version, I would be very grateful to hear your thoughts.
>
> Thank you,
> Chris.
>
> --
> gmx-users mailing list gmx-users at gromacs.org
> http://lists.gromacs.org/mailman/listinfo/gmx-users
> * Please search the archive at http://www.gromacs.org/Support/Mailing_Lists/Search before posting!
> * Please don't post (un)subscribe requests to the list. Use the
> www interface or send it to gmx-users-request at gromacs.org.
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
More information about the gromacs.org_gmx-users
mailing list