Running Basic MD at the endstate simulation

Running host-guest (CB7) absolute free energy calculation example:

All the example inputs scripts can be found in script_examples directrory. Lets first take a look at our example YAML config file config_script1.yaml.

hardware_parameters:
    working_directory: working_directory
    executable: "pmemd.MPI" # executable machine for MD choice : [sander, sander.MPI, pmemd, pmemd.MPI, pmeded.CUDA]
    mpi_command: srun # system dependent /
    CUDA: False # run on GPU
    output_directory_name: basic_md_dir
    cache_directory_output: path/to/cache_directory

endstate_parameter_files:
    complex_parameter_filename: script_examples/structs/cb7-mol01_Hmass.parm7 # path to topology file; ["path/to/complex.parm7"]
    complex_coordinate_filename: script_examples/structs/cb7-mol01.rst7 # path to coordinate ["path/to/complex.ncrst"]list of coordinate file of a complex

number_of_cores_per_system:
    complex_ncores: 2 #total number of cores per job
    ligand_ncores: 1 #total number of cores per ligand simulation
    receptor_ncores: 1 #total number of cores per ligand simulation

AMBER_masks:
    receptor_mask: ":CB7" # list of Amber masks denoting receptor atoms in respected complex file
    ligand_mask: ":M01" # list of Amber masks denoting ligand atoms in respected complex file

workflow:
    endstate_method: basic_md #options REMD or 0 (meaning no endstate simulation will be performed just intermidates)endstate_method: REMD #options REMD, MD or 0 (meaning no endstate simulation will be performed just intermidates)
    endstate_arguments:
        md_template_mdin: /nas0/ayoub/Impicit-Solvent-DDM/new_replicas/basic_md.template
    intermediate_states_arguments:
        mdin_intermidate_config: script_examples/user_intermidate_mdin_args.yaml #intermidate mdins required states 3-8
        igb_solvent: 2 #igb [1,2,3,7,8]
        temperature: 300
        exponent_conformational_forces: [
            -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2,
            2.584963, 3, 3.584963, 4
        ]  # list exponent values 2**p
        exponent_orientational_forces: [
            -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6,
            6.584963, 7, 7.584963, 8
        ]  # list exponent values 2**p
        restraint_type: 2 # choices: [ 1: CoM-CoM, 2: CoM-Heavy_Atom, 3: Heavy_Atom-Heavy_Atom, must be 1, 2 or 3 ]

The endstate_method is set to basic_md which will run a basic MD simulation at the endstates (states 1 and 8) Implementation Details. Every key within the YAML config file has been covered in previous section YAML Config Syntax.

Basic MD mdin template (md_template_mdin)

Only requirment is to set DISANG=$restraint the restraint file will be loaded in during the workflow.

Relaxation
&cntrl
  irest=0, ntx=1,
  nstlim=25000, dt=0.004,
  ntt=3, gamma_ln=1.0,
  temp0=300, ig=-1,
  ntc=2, ntf=2, nscm=1000,
  ntb=0, igb=2,
  cut=999.0, rgbmax=999.0,
  ntpr=1, ntwx=1,
  nmropt=1, ioutfm=1,
  saltcon=0.3, gbsa = 0
/
&wt TYPE='END'
/
DISANG=$restraint

Running entire workflow

The recommend way for running this workflow is by submitting an batch file. This ensures the correct number of resrources and the submission of a single job for entire workflow. Example of batch file for SLURM schedular:

#!/bin/bash
#SBATCH --partition=main
#SBATCH --nodes=1
#SBATCH --ntasks-per-node=12  # Use high number for post-energy analysis (imin=5) parallelization
#SBATCH --time=09:30:00
#SBATCH --job-name=ex_01
#SBATCH --export=all

pwd

mkdir /scratch/username/

run_implicit_ddm.py file:jobstore_example_01 --config_file script_examples/config_files/basic_md_config.yaml --workDir /scratch/username/

Performance Considerations

High CPU Count: Use a high number of CPUs (12+ recommended) for optimal performance. The Sander post-energy analysis (imin=5) runs on CPUs and completion time scales linearly with the number of CPUs - more CPUs = faster completion.