How to pull ligand in negative/opposite direction of axis?

GROMACS version:
GROMACS modification: Yes/No
Here post your question I want to pull the ligand from protein in negative y axis. I have also made changes in script and added pullvec coordinates as 0 -1 0 but still it
pull.mdp (2.1 KB)
s pulling positive direction of axis. What could be the solution?

Hello @Manish ,

You are using

pull_coord1_geometry    = distance 

which, as per the manual, requires the definition of pull-coord1-dim. As such, in your .mdp file you require the following

pull_coord1_dim         = N Y N
pull-coord1-vec         = 0 -1 0  
pull_coord1_rate        = 0.01

but the second one is not required and is not used, so you are asking for dragging along the y axis (pull_coord1_dim = N Y N) with a positive speed (pull_coord1_rate = 0.01), and so you have an increase of the y axis distance of the two groups. Just switch the speed to a negative value, e.g. -0.01, and you should be fine!

Sir, I did what you said in your answer and got this error.
Fatal error:
Pull reference distance for coordinate 1 (-0.000011) needs to be non-negative

pull.mdp
pull_ncoords = 1 ; only one reaction coordinate
pull_ngroups = 2 ; two groups defining one reaction coordinate
pull_group1_name = Protein_&r_885&_N
pull_group2_name = UNK
pull_coord1_type = umbrella ; harmonic potential
pull_coord1_geometry = distance ; simple distance increase
pull_coord1_dim = N Y N
pull-coord1_vec = 0 -1 0
pull_coord1_groups = 1 2
pull_coord1_start = yes ; define initial COM distance > 0
pull_coord1_rate = -0.01 ; 0.01 nm per ps = 1 nm per ns
pull_coord1_k = 1000 ; kJ mol^-1

This happens because the pull coordinate geometry distance is not happy with negative defined distances. I think you can by-pass this (if you know you are pulling towards negative distances) by changing the geometry type:

pull_ncoords = 1
pull_ngroups = 2
pull_group1_name = Protein_&r_885&_N
pull_group2_name = UNK
pull_coord1_type = umbrella
pull_coord1_geometry = direction
pull-coord1_vec = 0 1 0
pull_coord1_groups = 1 2
pull_coord1_start = yes
pull_coord1_rate = -0.01
pull_coord1_k = 1000

sir did this but it is still pulling towards y axis positive side

also giving the same error

Are you still (as in the input you posted above) using the input values you posted above?

pull-coord1_vec = 0 -1 0
...
pull_coord1_rate = -0.01 ; 0.01 nm per ps = 1 nm per ns

If both are negative you will be pulling in the positive direction.

sir it worked when I removed pull dim and only implemented pull rate. But now it is showing negative pulling force. How can a force be negative as if added spring force to 1000 kJ/mol/nm. If this is possible how to interpret this.
Screenshot 2024-05-07 102449

Could you post the settings you are using again? Since there have been a few iterations, it is difficult to know exactly the settings of your last plot.

Sir, I have attached the pull.mdp file i am using and after simulation to view the file i just entered xmgrace pull.xvg.

pull.mdp (2 KB)

Pulling along a positive vector with a negative rate will give a negative force (along the vector).

ok sir, but I have read papers and haven’t found any results with such negative pulling force. Therefore I am confused about whether it is correct or not. Can you please suggest some solution to this.

It’s just a matter of interpretation in this case. But try with a negative vector and a positive rate instead. Unless I’m mistaken, that should give you a positive force.

Thank you sir, my problem solved with this solution. I tried removing pull-dim, adding pull-vrc= 0 -1 0 and pull rate = 0.01 , it worked and gave positive force with -y pull.

Great that it helped.

You can also use the following:
; Define pull coordinates
pull-coord1-type = umbrella ; umbrella
pull-coord1-groups = 0 1 ; 0 for absolute reference, 1 for the atom
pull-coord1-geometry = direction ; Pulling in a specified direction
pull-coord1-dim = N Y N ; Pulling only in Y direction
pull-coord1-start = yes ; Start from the initial configuration
pull-coord1-vec = 0 1 0 ; Direction vector for pulling (along Y-axis)
pull_coord1_rate = 0.01 ; 0.08 nm per ps = 80 nm per ns
pull_coord1_k = 3 ; kJ mol^-1 nm^-2

Thank sir (com_gro) but we tried this approach but didn’t worked.

Hello sir , when I am pulling the ligand out from protein, using

pull-coord1-geometry = distance
pull-coord1-dim = N Y N
pull-coord1-start = yes
pull_coord1_rate = 0.01 ;
pull_coord1_k = 1000

the protein is not revolving with pulling, which is good with restrain

but when I am using…

pull-coord1-geometry = direction
pull-coord1-start = yes
pull-coord1-vec = 1 0 0
pull_coord1_rate = 0.01 ; 0.08 nm per ps = 80 nm per ns
pull_coord1_k = 1000; kJ mol^-1 nm^-2

Protein is also revolving with the pulling which is not restaining the protein.

please help to resolve

Attached Pull.mdp
pull.mdp (2.0 KB)

It seems like your problem is described in https://manual.gromacs.org/current/reference-manual/special/pulling.html#definition-of-the-pull-direction. I’ve never used direction-relative myself, but it seems like it should be reasonably easy to set up, with more selection groups. I hope it will solve your problem.

@Manish why do you want to pull -y axis? can you attach the simulation box and orientation of ligand in receptor?

sir I have attached the files below and I want to pull the ligand from -y axis becz it shows important interactions towards that side.

(Attachment newbox.gro is missing)

pull (1).mdp (2 KB)