# [gmx-users] PMF calculation with three reaction coordinates

liaoxyi liaoxyi at 163.com
Mon Aug 25 05:39:33 CEST 2014

```Dear gromacs users,
I am running an umbrella pulling to calculate the PMF of a soft protein adsorbed on surface. Since the protein is soft (easy to deform),  I conducted three pull groups on the COM (center of mass) of three domains of the protein. The pullings are all along the z axis but on different initial positions. So it outputs three Position variables in the pull-x.xvg and also three Force variables in the pull-f.xvg as follows:
@    xaxis  label "Time (ps)"
@    yaxis  label "Position (nm)"
@ s0 legend "1 dZ"
@ s1 legend "2 dZ"
@ s2 legend "3 dZ"
0.0000    3.75699    3.73915    4.94193
0.5000    3.7319    3.70928    4.94322
1.0000    3.7236    3.70745    4.91479
....
My problem is to calculate the PMF with three reaction coordinates. By default, all pull groups found in all pullx/pullf files are used in WHAM. But, in this way, it disturbs the PMF curve along the z axis. In GMX 5.0, the g_wham -is groupsel.dat can decide which pull groups are used. My confusions are:
1. It is right to choose only one or two pull groups for the PMF when there are actually three pullings conducted?
Obviously, the PMF curve differs a lot with one, two, or three pull groups.
2. Can the final PMF value for protein desorption be the sum of the PMF of each pull group?
Calculate the PMF with only one pull group with g_wham -is first, then add the three PMF values together.
Which way should be right to calculate the PMF of protein desorption?
Is there a better solution for that?
Thank you very much !

Mabel

PS: the pulling settings in md.mdp
; COM PULLING
pull                     = umbrella
pull_geometry            = distance
pull_dim                 = N N Y
pull_start               = yes
pull-print-reference     = no
pull_nstxout             = 250
pull_nstfout             = 250
pull_ngroups             = 3        ; three pull groups, not including the absolute referece group
pull-ncoords             = 3        ; three pull coordinates
; Group name, weight (default all 1), vector, init, rate (nm/ps), kJ/(mol*nm^2)
pull-group1-name         = Backbone_&_r_1-17     ;  resid 1-17
pull-coord1-groups       = 0  1
pull-coord1-origin       = 3.3 3.2 1.0           ; half the box a, b
pull-coord1-vec          = 0.0 0.0 0.0
pull-coord1-init         = 0
pull-coord1-rate         = 0.0
pull-coord1-k            = 4184

pull-group2-name         = Backbone_&_r_18-39
pull-coord2-groups       = 0  2
pull-coord2-origin       = 3.3 3.2 1.0
pull-coord2-vec          = 0.0 0.0 0.0
pull-coord2-init         = 0
pull-coord2-rate         = 0.0
pull-coord2-k            = 4184

pull-group3-name         = Backbone_&_r_40-51
pull-coord3-groups       = 0  3
pull-coord3-origin       = 3.3 3.2 1.0
pull-coord3-vec          = 0.0 0.0 0.0
pull-coord3-init         = 0
pull-coord3-rate         = 0.0
pull-coord3-k            = 4184

```