← Home

Input

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
tested onv2.9
tested onmaster
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
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_t4l

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

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
tested onv2.9
tested onmaster
# --- Click here to reveal hidden parts of input file ---- 
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 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
tested onv2.9
tested onmaster
# --- Click here to reveal hidden parts of input file ---- 
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

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

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
tested onv2.9
tested onmaster
# --- Click here to reveal hidden parts of input file ---- 
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_d

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

Results →