[gmx-users] Semipermeable membrane and pull code/flat bottom restraints for large molecules.

Mark Abraham mark.j.abraham at gmail.com
Fri Dec 22 01:19:34 CET 2017


On Wed, Dec 20, 2017 at 9:21 AM Thomas Underwood <
thomas.underwood at princeton.edu> wrote:

> Dear GMX'ers, I'm wondering if you can give me some advice on setting up a
> system containing a semipermeable membrane. I have seen a few comments on
> this before, but I think my system is unique enough to warrant a new post.
> I desire to run a system containing water, and many, largely anisotropic
> molecules (think rigid hexagons). I wish to slowly squeeze the hexagonal
> particles within a set region of space, and calculate the force required to
> contain them (i.e. the osmotic/swelling pressure) as function of
> semipermeable membrane separation.
> My current understanding is that this could be achieved several ways:
> Firstly, I could use flat-bottomed restraints to limit the z space
> accessible to all hexagonal molecules for a set period of time. I would
> then need to adjust the flat-bottomed restraints to decrease the
> semipermeable membrane separation, and continue/iterate the simulation.
> Alternatively, I could attempt to use the pull code to 'pull' all these
> molecules together. Again, using flat bottomed restraints in z. I would
> prefer this method, as I could temporally alter the flat-bottomed
> restraints within one continuous simulation. My issue with the pull code is
> that it works on the COM of molecules only.

COM of index groups. You can set those groups to be individual particles,
but that might be counter-productive if those particles have bond
constraints between them, and possibly slow things down noticeably when you
have a lot of them.

I get the impression that if I use the pull code in gromacs, my molecules
> may flip, such that a lot of the atoms in the hexagonal molecules are on
> the wrong side of the semipermeable membrane, whilst the COM of each
> molecule remains within the flat-bottomed restraints.

Why is that a problem? Isn't that just a matter of where you consider to be
the location of the thing providing the external force?

Is there any way to apply the pull code such that it acts on all atoms
> within a molecule? I.e. if an atom of my molecule is outside the
> flat-bottomed restraint, then that atom feels the force from said
> flat-bottom restraint?

No, sorry.

Also, I'm assuming that I can work these flat bottom restraints relative to
> the COM of all of the hexagonal molecules within my system. If I center my
> system to the COM of all hexagonal molecules prior to commencing my
> squeeze/simulation, and set comm-grps=HEX (and frequently remove the linear
> center of mass translation of all hexagonal particles), then my system will
> remain centered around the said hexagonal molecules as they are squeezed?

Why is that important? There's infinitely many ways to express what you
want within a translation. Define things however works, and if you want to
express the result in terms of a particular frame of reference, trjconv
will do that.

> Apologies for the convoluted and poorly worded questions, but any help on
> this topic would be appreciated. Will the pull code work for what I am
> trying to achieve, or am I better off using all-atom flat-bottom restraints
> (or even some other code/plumed)?

Don't have any relevant experience, sorry.


> All the best,
> Tom
> --
> Gromacs Users mailing list
> * Please search the archive at
> http://www.gromacs.org/Support/Mailing_Lists/GMX-Users_List before
> posting!
> * Can't post? Read http://www.gromacs.org/Support/Mailing_Lists
> * For (un)subscribe requests visit
> https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-users or
> send a mail to gmx-users-request at gromacs.org.

More information about the gromacs.org_gmx-users mailing list