Skip to content

Adding a new docking program

Cédric Bouysset edited this page Sep 11, 2017 · 4 revisions

To implement a new scoring function to DockFlow, go inside $CHEMFLOW_HOME/DockFlow, and please proceed as follow :

  1. In DockFlow
    Search for the "# Run docking" comment. Under the "# insert other scoring functions here" line, add this :
elif $(list_include_item "SCORING_FUNCTION_NAME" "${scoring_function}"); then
  # Run SCORING_FUNCTION_NAME with the options
  time run_SCORING_FUNCTION_NAME
  # Concatenate final results, serial instead of parallel
  cat ${run_folder}/docking/ranking/*.csv  >> ${run_folder}/docking/ranking.csv
  rm -rf ${run_folder}/docking/ranking/

and replace SCORING_FUNCTION_NAME with the name of your scoring function.

  1. In DockFlow_interface.bash
    • In the function usage(), at the line -sf/--function, add the name you used in the previous step (SCORING_FUNCTION_NAME).
    • In the function check_input(), under :
if $(list_include_item "chemplp plp plp95" "${scoring_function}"); then
  docking_program="plants"

Add the following lines :

elif $(list_include_item "SCORING_FUNCTION_NAME" "${scoring_function}"); then
    docking_program="DOCKING_PROGRAM_NAME"
    if [ -z "${DOCKING_PROGRAM_NAME_exec}" ] && [ ! "${run_mode}" = "mazinger" ] ; then error "the location of DOCKING_PROGRAM_NAME's executable"  ; fi

where DOCKING_PROGRAM_NAME is the name of the software used to run the docking. Additionally, after the ## Running mode comment towards the end of the file, after :

  if [ "${docking_program}" = "plants" ]; then
    module load plants/1.2
    plants_exec=$(which plants)

add these lines if the docking software is installed on mazinger :

  elif [ "${docking_program}" = "DOCKING_PROGRAM_NAME" ]; then
    module load DOCKING_PROGRAM_NAME
    DOCKING_PROGRAM_NAME_exec=$(which DOCKING_PROGRAM_NAME)
  1. In DockFlow_functions.bash

Copy and paste all the block under the # PLANTS comment, and modify the functions and variables names accordingly. Only the write_plants_config and reorganize_plants functions should be completely different from the original.

  1. In $CHEMFLOW_HOME/ChemFlow.config

Add the path to the docking software executable : DOCKING_PROGRAM_NAME_exec

Optional :

  1. In $CHEMFLOW_HOME/install.sh

Same as previously.