[gmx-users] pull-code

Thomas Schlesier schlesi at uni-mainz.de
Fri Feb 17 18:10:13 CET 2012

Hi Gavin,
Justin wrote some stuff in a nice tutorial for the different 
pull_geometry options. I think i saw the link today or yesterday in one 
of his messages, but i can't find it on his tutorial page :(

So we have a reference (ref) pulled group (pgrp) and a spring (center / 
minimum of the pulling potential).
The position of the spring is relative to ref and is affected by 
pull_init (-> also pull_start) and the pull_vector. If pull_init=0 the 
spring has at t=0 the same position as the ref-group.

With pull_init=0 and pull_start=yes, the spring would be centered at the 
position of pgrp.

Then we have 3 pull_geometries:

We pull along the vector which connects ref and pgrp. So pull_init=x, 
x>0  would mean the spring is, spring is x nm away from ref, along the 
vector connecting ref and pgrp. With time the spring will move further 
along this vector. The pull_vector should be calculated at everytime 
step. So if the system rotates, the pull_vector would also rotate.

Same as distance, but we have a fixed pull_vector.
So if the system rotates, the pull_vector will not rotate.
pull_init is also along this pull_vector.

Same as dircetion,
but pull_init can be freely chosen (meaning, it is not related to the 

Since the position of the spring is always related to the position of 
the reference group, we will get no problems due to moving of ref -> 
spring would move the same way. So we can say, for the pulling, ref is 
fixed and the spring move from the position defined by pull_init along 
the pull_vector.

Hope this answers your question and gives a little bit more 
understanding about the pull-code.

One thing concerning PBC:
If i understand it correctly, for PBC the distance between ref and pgrp 
is relevant. and not the distance between the spring and ref or pgrp.



Hi Thomas

I am sorry to bother you but if you could answer a few questions I have
about how the pull-code works with respect to my system I would really
appreciate it.
My system is a liquid and I am trying to pull one substituent of one
liquid molecule in a certain region of another liquid molecule using as
I said earlier pull_geometry =dist and pull_dim =YYY.
Also pull_start = no
Say I have a window with pull_init=0

1) At the very start of the simulation the pullcode calculates the
vector between the two groups? Is there anything particularly
significant about this initial vector? Is this distance vector
recalculated at every step?
2) Does it compare the distance vector an time t with that at time 0.?
3) Given the initial vector can this vector change (i.e. dierection) or
does the distance between the two groups vary only along this vector
(i.e. in a line) ?



Thomas Schlesier wrote:
 > Hi Gavin,
 > if i remember correctly it was a system about pulling a ligand from a
 > binding pocket?
 > To make the system simpler we have a big circle and in the middle a
 > small circle. And we assume that the potential minimum for the
 > interaction between both circles is when the small cirlce is in the
 > middle of the large circle.
 > Now we do the Umbrella sampling. For a window which is centered at a
 > distance which is sligthly greater then 0, we will get problems.
 > Assume small circle is sligthly shifted to the right. And the other
 > windows are also in this dircetion. (-> reaction coordinate goes from
 > zero to the right dircetion)
 > If the small circle moves between 0 and any value <0 everythig should
 > be fine. But if the small circle moves to the left, we will also get a
 > positive distance. Problem is from the above defined reaction
 > coordinate it should be a negative distance. So we are counting the
 > positive distances too much.
 > To check this, you could use *g_dist* to calculate the distance for
 > both molecules for the problematic windows. Then project the resulting
 > vector onto your reaction coordinate. Then you should see the
 > crossings between the right and left side.
 > How do the two free energy curves compare for larger distances, where
 > you can be sure, that you do not have this 'crossing problem'?
 > Greetings
 > Thomas
 > Hi all
 > I am returning to a query I had a few weeks ago regarding a discrepancy
 > between two free energy curves. One calculated using umbrella sampling,
 > the other calculated via the reversible work theorem from the RDF. There
 > is sufficient sampling of the dynamics in the RDF so this method is
 > viable.
 > Anyway in the pull-code I use pull_geometry = dist and pull_dim=Y Y Y.
 > The free energy curve from the pull-code method does not give me a
 > minimum at the zero value of the order parameter whereas the RDF method
 > does. Someone said before about double counting of positive distances at
 > small values of the order parameter and therefore information is lost at
 > very small distances.
 > Is this correct?
 > I am slightly concerned that my curves are not giving me the correct
 > information involving a very important state in my reaction coordinate.
 > Also when this dist restraint (which cannot be negative) is implemented
 > are there issues with the normalisation of the histograms from g_wham?
 > Cheers
 > Gavin

More information about the gromacs.org_gmx-users mailing list