Position restraints queries

Hello experts,

I need your kind help with the following queries:

In the topol_Protein_chain_A.itp and topol_Protein_chain_B.itp files, I noticed some content related to position restraints. Could someone explain what the terms fx, fy, and fz represent?

I’m aiming to restrain the positions of the C-alpha atoms in both Chain A and Chain B. What would be appropriate values for fx, fy, and fz in this context?
Can I use value of below 1000?

image


In the topol.top file, I am using below codes:
; Include chain topologies
#include "topol_Protein_chain_A.itp"
#ifdef POSRES
#include "posre_chainA_C_alpha.itp"
#endif
#include "topol_Protein_chain_B.itp"
#ifdef POSRES
#include "posre_chainB_C_alpha.itp"
#endif

Also, is it correct to use #ifdef POSRES for both chains, or should I define separate identifiers like #ifdef POSRES_A and #ifdef POSRES_B for each chain?
In the md.mdp file, I am using following.
define = -DPOSRES ; position restrain the protein

Thank you in advance for your assistance!

See Restraints - GROMACS 2024.2 documentation for more information. fx, fy and fz are the restraints forces in the spatial dimensions. The unit (can be found in File formats - GROMACS 2024.2 documentation) is kJ/mol/nm^2.

You can choose your own values. If you want weaker restraints you can use values below 1000.

POSRES is what is commonly used, but you can apply the restraints separately by using different names, if you want to. If you use

#include "topol_Protein_chain_A.itp"
#ifdef POSRES_A
#include "posre_chainA_C_alpha.itp"
#endif
#include "topol_Protein_chain_B.itp"
#ifdef POSRES_B
#include "posre_chainB_C_alpha.itp"
#endif

you should use

define = -DPOSRES_A -DPOSRES_B

Great! I appreciate your prompt help!
mov-ezgif.com-optimize
I am pulling one protein through the pore of another protein using below codes.

; Pull code
pull                    = yes
pull_ngroups            = 2               ; Two groups involved
pull_group1_name        = clpb_pbc_atom            ; c_term_ssar reference group
pull_group2_name        = ala_calpha_109            ; c_term_ssar to be pulled
;pull-group1-pbcatom = 2141
pull_ncoords            = 1               ; One coordinate for pulling


; Define pull coordinates
pull-coord1-type        = umbrella        ; Umbrella pulling
pull-coord1-groups      = 1 2             ; 1 for reference, 2 for the atom to be pulled
pull-coord1-geometry    = distance        ; Distance geometry
pull-coord1-dim         = N Y N           ; Only consider the Y component of the distance
pull-coord1-start       = yes             ; Start from the initial configuration
pull-coord1-rate        = 0.1            ; 0.01 nm per ps = 10 nm per ns
pull-coord1-k           = 10            ; Force constant in kJ mol^-1 nm^-2

I’ve noticed that in the last few nanoseconds of my simulation, the protein with the central pore (the larger one) is drifting upwards along the y-axis. To prevent this movement, I want to restrain the position of the C-alpha atoms.
In my pullf.xvg file, I observed the following:

# Grunge ROck MAChoS
#
@    title "Pull force"
@    xaxis  label "Time (ps)"
@    yaxis  label "Force (kJ/mol/nm)"
@TYPE xy
21639.6000	2163.96
21639.7000	2164.14
21639.8000	2164.11
21639.9000	2164.17
21640.0000	2164.14
21640.1000	2164.13
21640.2000	2164.13
21640.3000	2164.06
21640.4000	2164.07
21640.5000	2164.06
21640.6000	2164.06
21640.7000	2164.03
21640.8000	2164.03
21640.9000	2164.01
21641.0000	2164.05
21641.1000	2164.03
21641.2000	2164.04
21641.3000	2164.02
21641.4000	2164.03
21641.5000	2164.03

I’m considering using a force constant of 1000 kJ/mol/nm² for the restraints. Given the large size of my system and the time it takes to run, I’d like to get some expert opinions before proceeding. Is this force constant appropriate, or would a different value be more effective?

Thanks in advance!

Restraining the c-alpha atoms by 100 kJ/mol/nm^2 along the y axis sounds reasonable to me. But it could cause artifacts if some residues need to move along the y axis to make room for the smaller protein passing through.

Is it really a problem that the bigger protein is drifting upwards?

The force values in pullf.xvg seems fairly high, considering the low pull force constant. I guess the protein that you are pulling is not following the pull center very closely, right?