# [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:

distance:
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.

dircetion:
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.

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

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.

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.

Greetings
Thomas

-----------------------------------------------------------------------------------

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
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) ?

Cheers

Gavin

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
>
>

```