Files needed to complete this tutorial are provided in the data
directory available in the GitHub repository.
Groups
We first define the groups of atoms consisting of T4L (atoms 1-2634) and benzene (atoms 2635-2646) and their center of masses. These definitions will be passed to an optimizer later.
Click on the labels of the actions for more information on what each action computes
GROUPDefine a group of atoms so that a particular list of atoms can be referenced with a single label in definitions of CVs or virtual atoms. More details ATOMSthe numerical indexes for the set of atoms in the group=2635-2646 LABELa label for the action so that its output can be referenced in the input to other actions=group_bnzThe GROUP action with label group_bnz calculates the following quantities: Quantity | Type | Description |
group_bnz | atoms | indices of atoms specified in GROUP |
GROUPDefine a group of atoms so that a particular list of atoms can be referenced with a single label in definitions of CVs or virtual atoms. More details ATOMSthe numerical indexes for the set of atoms in the group=1-2634 LABELa label for the action so that its output can be referenced in the input to other actions=group_t4lThe GROUP action with label group_t4l calculates the following quantities: Quantity | Type | Description |
group_t4l | atoms | indices of atoms specified in GROUP |
CENTERCalculate the center for a group of atoms, with arbitrary weights. More details ATOMSthe group of atoms that you are calculating the Gyration Tensor for=group_bnz LABELa label for the action so that its output can be referenced in the input to other actions=center_bnzThe CENTER_FAST action with label center_bnz calculates the following quantities: Quantity | Type | Description |
center_bnz | atoms | virtual atom calculated by CENTER_FAST action |
CENTERCalculate the center for a group of atoms, with arbitrary weights. More details ATOMSthe group of atoms that you are calculating the Gyration Tensor for=group_t4l LABELa label for the action so that its output can be referenced in the input to other actions=center_t4lThe CENTER_FAST action with label center_t4l calculates the following quantities: Quantity | Type | Description |
center_t4l | atoms | virtual atom calculated by CENTER_FAST action |
Optimizer and Loss Function
Next, we declare an optimizer that will find a suboptimal (in terms of loss function) unbinding direction for the ligand. For this purpose, we will use the simulated annealing algorithm (MAZE_OPT_ANNEALING
). The optimization will be run during the MD simulation every STRIDE
MD steps (here 1 ns) with 1000 iterations to converge (N_ITER
).
Click on the labels of the actions for more information on what each action computes
# --- Click here to reveal hidden parts of input file ----
GROUPDefine a group of atoms so that a particular list of atoms can be referenced with a single label in definitions of CVs or virtual atoms. More details ATOMSthe numerical indexes for the set of atoms in the group=2635-2646 LABELa label for the action so that its output can be referenced in the input to other actions=group_bnz
The GROUP action with label group_bnz calculates somethingGROUPDefine a group of atoms so that a particular list of atoms can be referenced with a single label in definitions of CVs or virtual atoms. More details ATOMSthe numerical indexes for the set of atoms in the group=1-2634 LABELa label for the action so that its output can be referenced in the input to other actions=group_t4l
The GROUP action with label group_t4l calculates somethingCENTERCalculate the center for a group of atoms, with arbitrary weights. More details ATOMSthe group of atoms that you are calculating the Gyration Tensor for=group_bnz LABELa label for the action so that its output can be referenced in the input to other actions=center_bnz
The CENTER action with label center_bnz calculates the following quantities: Quantity | Description |
center_bnz.value | the position of the center of mass |
CENTERCalculate the center for a group of atoms, with arbitrary weights. More details ATOMSthe group of atoms that you are calculating the Gyration Tensor for=group_t4l LABELa label for the action so that its output can be referenced in the input to other actions=center_t4l
# --- Click here to hide input ---
The CENTER action with label center_t4l calculates the following quantities: Quantity | Description |
center_t4l.value | the position of the center of mass |
MAZE_OPT_ANNEALINGThis action is not part of PLUMED and was included by using a LOAD command More details ...
LABEL=opt
GROUPA=group_bnz
GROUPB=group_t4l
SWITCH={EXP R_0=0.2}
STRIDE=500000
N_ITER=1000
BETA=0.9
BETA_FACTOR=1.005
BETA_SCHEDULE=GEOM
RANDOM_SEED=111
NLIST
NL_CUTOFF=0.6
NL_STRIDE=100
...
The MAZE_OPT_ANNEALING action with label opt calculates something
The BETA
options are required to select an annealing scheme. Here, we will start with an inverse temperature parameter $\beta=0.9$ multiplied by a factor of 1.005 every iteration (BETA_SCHEDULE=GEOM
). This is a standard setup – interested readers can read more about it here).
To speed up calculations, we will use a neighbor list NLIST
with a cutoff of 0.6 nm for distances between ligand-protein atom pairs (see PLUMED Neighbor Lists). The neighbor list will be recalculated every 100 steps (NL_STRIDE
).
The SWITCH
keyword specifies the loss function to optimize. The same functionality is provided for switching functions required to define collective variables such as coordination numbers. See here for switching functions available in PLUMED. Here, we will use an exponential loss function as explained in Background.
Bias
Having defined the optimizer, we will pass it to the adaptive bias potential (see here). The bias will be used to steer benzene in the optimal direction found by simulated annealing. This also requires a collective variable with Cartesian components to drive the ligand toward solvent.
Note Biasing absolute positions of any system can result in problems (see a detailed explanation here) and may require additional position restraints. Thus, it is required that it must be a distance with COMPONENTS
. As such, the biasing corresponds to a relative position, and additional restraints are not required.
The HEIGHT
and RATE
keywords give the scale constant and rate, respectively.
Click on the labels of the actions for more information on what each action computes
# --- Click here to reveal hidden parts of input file ----
GROUPDefine a group of atoms so that a particular list of atoms can be referenced with a single label in definitions of CVs or virtual atoms. More details ATOMSthe numerical indexes for the set of atoms in the group=2635-2646 LABELa label for the action so that its output can be referenced in the input to other actions=group_bnz
The GROUP action with label group_bnz calculates somethingGROUPDefine a group of atoms so that a particular list of atoms can be referenced with a single label in definitions of CVs or virtual atoms. More details ATOMSthe numerical indexes for the set of atoms in the group=1-2634 LABELa label for the action so that its output can be referenced in the input to other actions=group_t4l
The GROUP action with label group_t4l calculates somethingCENTERCalculate the center for a group of atoms, with arbitrary weights. More details ATOMSthe group of atoms that you are calculating the Gyration Tensor for=group_bnz LABELa label for the action so that its output can be referenced in the input to other actions=center_bnz
The CENTER action with label center_bnz calculates the following quantities: Quantity | Description |
center_bnz.value | the position of the center of mass |
CENTERCalculate the center for a group of atoms, with arbitrary weights. More details ATOMSthe group of atoms that you are calculating the Gyration Tensor for=group_t4l LABELa label for the action so that its output can be referenced in the input to other actions=center_t4l
The CENTER action with label center_t4l calculates the following quantities: Quantity | Description |
center_t4l.value | the position of the center of mass |
MAZE_OPT_ANNEALINGThis action is not part of PLUMED and was included by using a LOAD command More details ...
LABEL=opt
GROUPA=group_bnz
GROUPB=group_t4l
SWITCH={EXP R_0=0.2}
STRIDE=500000
N_ITER=1000
BETA=0.9
BETA_FACTOR=1.005
BETA_SCHEDULE=GEOM
RANDOM_SEED=111
NLIST
NL_CUTOFF=0.6
NL_STRIDE=100
...
# --- Click here to hide input ---
DISTANCECalculate the distance/s between pairs of atoms. More details ATOMSthe pair of atom that we are calculating the distance between=center_bnz,center_t4l LABELa label for the action so that its output can be referenced in the input to other actions=dist COMPONENTS calculate the x, y and z components of the distance separately and store them as label
The DISTANCE action with label dist calculates the following quantities: Quantity | Description |
dist.x | the x-component of the vector connecting the two atoms |
dist.y | the y-component of the vector connecting the two atoms |
dist.z | the z-component of the vector connecting the two atoms |
dist.value | the DISTANCE between this pair of atoms |
MAZE_OPT_BIASThis action is not part of PLUMED and was included by using a LOAD command More details ...
LABEL=bias
ARG=dist.x,dist.y,dist.z
HEIGHT=1000.0
RATE=0.001
OPTIMIZER=opt
...
The MAZE_OPT_BIAS action with label bias calculates something
We will also define a committor indicator to halt the simulation once benzene enters the solvent, which occurs approximately when the distance between the ligand and the protein exceeds 3 nm.
Click on the labels of the actions for more information on what each action computes
# --- Click here to reveal hidden parts of input file ----
GROUPDefine a group of atoms so that a particular list of atoms can be referenced with a single label in definitions of CVs or virtual atoms. More details ATOMSthe numerical indexes for the set of atoms in the group=2635-2646 LABELa label for the action so that its output can be referenced in the input to other actions=group_bnzThe GROUP action with label group_bnz calculates the following quantities: Quantity | Type | Description |
group_bnz | atoms | indices of atoms specified in GROUP |
GROUPDefine a group of atoms so that a particular list of atoms can be referenced with a single label in definitions of CVs or virtual atoms. More details ATOMSthe numerical indexes for the set of atoms in the group=1-2634 LABELa label for the action so that its output can be referenced in the input to other actions=group_t4lThe GROUP action with label group_t4l calculates the following quantities: Quantity | Type | Description |
group_t4l | atoms | indices of atoms specified in GROUP |
CENTERCalculate the center for a group of atoms, with arbitrary weights. More details ATOMSthe group of atoms that you are calculating the Gyration Tensor for=group_bnz LABELa label for the action so that its output can be referenced in the input to other actions=center_bnzThe CENTER_FAST action with label center_bnz calculates the following quantities: Quantity | Type | Description |
center_bnz | atoms | virtual atom calculated by CENTER_FAST action |
CENTERCalculate the center for a group of atoms, with arbitrary weights. More details ATOMSthe group of atoms that you are calculating the Gyration Tensor for=group_t4l LABELa label for the action so that its output can be referenced in the input to other actions=center_t4lThe CENTER_FAST action with label center_t4l calculates the following quantities: Quantity | Type | Description |
center_t4l | atoms | virtual atom calculated by CENTER_FAST action |
# --- Click here to hide input ---
DISTANCECalculate the distance/s between pairs of atoms. More details ATOMSthe pair of atom that we are calculating the distance between=center_bnz,center_t4l LABELa label for the action so that its output can be referenced in the input to other actions=dist_dThe DISTANCE action with label dist_d calculates the following quantities: Quantity | Type | Description |
dist_d | scalar | the DISTANCE between this pair of atoms |
COMMITTORDoes a committor analysis. More details ...
ARGthe labels of the values which is being used to define the committor surface=dist_d
STRIDE the frequency with which the CVs are analyzed=5000
BASIN_LL1List of lower limits for basin #=3
BASIN_UL1List of upper limits for basin #=10
...
Simulation
We are ready to run the simulation.
The simulation will save two files: colvar.dat
and optimizer.dat
. The colvar.dat
file contains all the information we want to save using the PRINT
action, while the optimizer.dat
file contains data related to the optimization results (see here).