Running REMD 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: cb7_examples
    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: remd #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:
        nthreads_complex: 16
        nthreads_receptor: 16
        nthreads_ligand: 16
        ngroups: 8
        target_temperature: 300 # list of temperatures or temp.dat file
        remd_template_mdin: script_examples/endstate_templates_required/remd.template
        equilibrate_mdin_template: script_examples/endstate_templates_required/equil.template
        temperatures: [300.00, 327.32, 356.62, 388.05, 421.77, 457.91, 496.70, 500.00]

    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 remd which will run Relplica Exchange Molecular Dynamics 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.

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_02 --config_file script_examples/config_files/remd_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.