2024 DOCK tutorial 1 with PDBID 2ITO
Contents
- 1 Introduction
- 2 Preparation of the ligand and protein
- 3 Creating the Protein Binding Site Surface
- 4 Box and Grid Generation
- 5 Energy Minimization
- 6 DOCK
- 7 Virtual Screening of a Ligand Library
- 8 Cartesian Minimization of Virtually Screened Small Molecules
- 9 Rescoring and Ranking Virtually Screened Molecules
Introduction
For Numbered list do this:
- S
- D
- D
- P
- P
- F
These website tutorials are useful if you are unfamiliar with the following tools:
This tutorial is for PDBID 2ITO. Replace any reference to 2ITO with the protein of your choice.
Learning Objectives
These are for bullets:
- U
- G
Setting Up Your Environment
Sample picture from last year:
Downloading a protein from the PDB database
Preparation of the ligand and protein
Evaluating the Structure
Preparing the Protein file
Preparing the Ligand File
Final Steps
Creating the Protein Binding Site Surface
Creating the Required Surface (DMS) File
Generating Spheres for the Binding Site
Binding Site Spheres
Box and Grid Generation
Generating the Box
T
Generating the Grid
N
Energy Minimization
At
Ligand Minimization
Footprint Analysis
DOCK
Rigid Docking
W
Fixed Anchor Docking
In this session, we will be showing the tutorial for Fixed Anchor Docking. For this mode of docking, the algorithm would first identify the largest fragment extracted from original ligand input. Noted that, the fragments are segmented based on the rotatable bonds of the ligands. Starting from this fragment pose, the algorithm will use it as an anchor to continuously add segments until the whole original ligand pose has been fully re-grown. Noted that when each fragment is added, it would be oriented for a pose that is energetically minimal. Comparing this method to the previous rigid docking mode, fixed anchor docking offer flexibility to the side chain while still being able to keep the general location of the ligand’s binding site as it fixes the anchor position.
Please navigate to the directory designated for this docking mode: 007.fixed_anchor_docking. Here, we can start create the input parameters, file name – fixed.in:
vi fixed.in
The following is the input parameter for fixed anchor docking. While you can copy and paste this into the body of your script, please make sure to change the input files directory (ligand and protein structure folder) to your personal directory. Also it should be a good practice to make sure the directories for the dock parameters should also be up-to-date.
conformer_search_type flex write_fragment_libraries no user_specified_anchor no limit_max_anchors no min_anchor_size 5 pruning_use_clustering yes pruning_max_orients 1000 pruning_clustering_cutoff 100 pruning_conformer_score_cutoff 100.0 pruning_conformer_score_scaling_factor 1.0 use_clash_overlap no write_growth_tree no use_internal_energy yes internal_energy_rep_exp 12 internal_energy_cutoff 100.0 ligand_atom_file ../004.energy_min/2tio.lig.min_scored.mol2 limit_max_ligands no skip_molecule no read_mol_solvation no calculate_rmsd yes use_rmsd_reference_mol yes rmsd_reference_filename ../004.energy_min/2tio.lig.min_scored.mol2 use_database_filter no orient_ligand no bump_filter no score_molecules yes contact_score_primary no contact_score_secondary no grid_score_primary yes grid_score_secondary no grid_score_rep_rad_scale 1 grid_score_vdw_scale 1 grid_score_es_scale 1 grid_score_grid_prefix ../003.gridbox/grid multigrid_score_secondary no dock3.5_score_secondary no continuous_score_secondary no footprint_similarity_score_secondary no pharmacophore_score_secondary no descriptor_score_secondary no gbsa_zou_score_secondary no gbsa_hawkins_score_secondary no SASA_score_secondary no amber_score_secondary no minimize_ligand yes minimize_anchor yes minimize_flexible_growth yes use_advanced_simplex_parameters no simplex_max_cycles 1 simplex_score_converge 0.1 simplex_cycle_converge 1 simplex_trans_step 1 simplex_rot_step 0.1 simplex_tors_step 10.0 simplex_anchor_max_iterations 500 simplex_grow_max_iterations 500 simplex_grow_tors_premin_iterations 0 simplex_random_seed 0 simplex_restraint_min no atom_model all vdw_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.10/parameters/vdw_AMBER_parm99.defn flex_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.10/parameters/flex.defn flex_drive_file /gpfs/projects/AMS536/zzz.programs/dock6.10/parameters/flex_drive.tbl ligand_outfile_prefix 2tio_fixed_output write_orientations no num_scored_conformers 1 rank_ligands no
Now, you are ready to run dock6 implementing the above input parameters:
dock6 -i fixed.in -o fixed.out
Dock6 should be running for a couple of minutes. If the program finished right away, it would be recommended that you should check the output file to see if there are any reported errors. Successful run should give you two additional files as followed:
- fixed.out
- 2tio_fixed_output_scored.mol2
The mol2 file containing the docked ligand could be viewed in ChimeraX under ViewDock. To compare with the reference pose, this mol2 file (blue) has been overlaid on top of the original ligand pose (gold). For this result, it can be seen that although the docking score for the docked ligand is comparable with other docking modes, the RMSD computed for the docked result was larger than 2A, which has been reflected by the pose where the sidechain to the right is shifted further away than in original structure.
The fixed.out file summary the overall docking score of the run:
The steps for the next docking mode should also be similar.
Fixed Anchor Docking
In this session, we will be showing the tutorial for Flexible Docking. Among the three docking methods introduced in this tutorial, this would be the most computationally expensive method since the algorithm will be sampling all of the possible conformations of each input ligand and test their binding ability with the binding site. Thus, one might expect the computing time for this method to be exceed other introduced methods.
Please navigate to the directory designated for this docking mode: 008.flex_docking. Here, we can start create the input parameters, file name – flex.in:
vi flex.in
The following is the input parameter for fixed anchor docking. While you can copy and paste this into the body of your script, please make sure to change the input files directory (ligand and protein structure folder) to your personal directory. Also it should be a good practice to make sure the directories for the dock parameters should also be up-to-date.
conformer_search_type flex write_fragment_libraries no user_specified_anchor no limit_max_anchors no min_anchor_size 5 pruning_use_clustering yes pruning_max_orients 1000 pruning_clustering_cutoff 100 pruning_conformer_score_cutoff 100.0 pruning_conformer_score_scaling_factor 1.0 use_clash_overlap no write_growth_tree no use_internal_energy yes internal_energy_rep_exp 12 internal_energy_cutoff 100.0 ligand_atom_file ../004.energy_min/2tio.lig.min_scored.mol2 limit_max_ligands no skip_molecule no read_mol_solvation no calculate_rmsd yes use_rmsd_reference_mol yes rmsd_reference_filename ../004.energy_min/2tio.lig.min_scored.mol2 use_database_filter no orient_ligand yes automated_matching yes receptor_site_file ../002.surface_spheres/selected_spheres.sph max_orientations 1000 critical_points no chemical_matching no use_ligand_spheres no bump_filter no score_molecules yes contact_score_primary no contact_score_secondary no grid_score_primary yes grid_score_secondary no grid_score_rep_rad_scale 1 grid_score_vdw_scale 1 grid_score_es_scale 1 grid_score_grid_prefix ../003.gridbox/grid multigrid_score_secondary no dock3.5_score_secondary no continuous_score_secondary no footprint_similarity_score_secondary no pharmacophore_score_secondary no descriptor_score_secondary no gbsa_zou_score_secondary no gbsa_hawkins_score_secondary no SASA_score_secondary no amber_score_secondary no minimize_ligand yes minimize_anchor yes minimize_flexible_growth yes use_advanced_simplex_parameters no simplex_max_cycles 1 simplex_score_converge 0.1 simplex_cycle_converge 1.0 simplex_trans_step 1.0 simplex_rot_step 0.1 simplex_tors_step 10.0 simplex_anchor_max_iterations 500 simplex_grow_max_iterations 500 simplex_grow_tors_premin_iterations 0 simplex_random_seed 0 simplex_restraint_min no atom_model all vdw_defn_file /gpfs/projects/AMS536/zzz.programs/dock10/parameters/vdw_AMBER_parm99.defn flex_defn_file /gpfs/projects/AMS536/zzz.programs/dock10/parameters/flex.defn flex_drive_file /gpfs/projects/AMS536/zzz.programs/dock10/parameters/flex_drive.tbl ligand_outfile_prefix flex.out write_orientations no num_scored_conformers 1 rank_ligands no
Now, you are ready to run dock6 implementing the above input parameters:
dock6 -i flex.in -o flex.out
Dock6 should be running for a couple of minutes. If the program finished right away, it would be recommended that you should check the output file to see if there are any reported errors. Successful run should give you two additional files as followed:
- flex.out
- 2tio_flex.out_scored.mol2
The mol2 file containing the docked ligand could be viewed in ChimeraX under ViewDock. To compare with the reference pose, this mol2 file (blue) has been overlaid on top of the original ligand pose (gold). Under ViewDock in Chimera, it can be observed that the docked ligand showed great structural overlap with the reference pose and this has also been reflected in the reported RMSD score, which has been maintained below 2A.
The fixed.out file summary the overall docking score of the run:
As we have finished running all the docking modes, one step could be carried out here is to compare all the three docked results with the original reference file and see if all the docking results have been suggesting a binding mode that resemble the reference pose. Attached is the overlaid docking results, where we can see the most rigid docking modes give the closest result to the reference structure, whereas fixed anchor docking has the right-side chain shifted further away. Although being the most flexible method, flexible docking gives a good scoring. (gold - original pose, blue - flex, green - rigid, magenta - fixed anchor). Here, you can also open ViewDock, navigate to columns and show grid scores or RMSD score to compare the docking efficiency between the three model, typically, a successful re-dock attempt should have the ligand less than 2A away from the original pose.
Virtual Screening of a Ligand Library
After we have tested our control case for multiple docking modes, in this section we would carry out virtual screening for a larger database of ligands. In this step, the program will attempt to dock all of the input ligands into the binding site and this should be expected to be a time-consuming and computationally exhaustive step. For the purpose of this section, I would be trying out with the 5,000 molecules database, but a safety step you can take is to try running the virtual screening with a smaller subset - containing 100 molecules, to make sure that the program works correctly. The directory to the database of both the 5,000 molecules and 1000 molecules database is available in "gpfs/AMS536/zzz.programs/VS_libraries", there is also a 25,000 molecules subset if you would want to dock to an even larger set. These libraries are extracted from the ZINC library, a commercially available database that contains purchasable chemicals.
Please navigate to the directory designated for virtual screening: 009.virtual_screening. Here, we can start create the input parameters, file name – virutal.in:
vi virtual.in
The following is the input parameter for virtual screening. While you can copy and paste this into the body of your script, please make sure to change the input files directory (ligand and protein structure folder) to your personal directory. Also it should be a good practice to make sure the directories for the dock parameters and the molecule libraries should also be up-to-date.
conformer_search_type flex write_fragment_libraries no user_specified_anchor no limit_max_anchors no min_anchor_size 5 pruning_use_clustering yes pruning_max_orients 1000 pruning_clustering_cutoff 100 pruning_conformer_score_cutoff 100.0 pruning_conformer_score_scaling_factor 1.0 use_clash_overlap no write_growth_tree no use_internal_energy yes internal_energy_rep_exp 9 internal_energy_cutoff 100.0 ligand_atom_file /gpfs/projects/AMS536/zzz.programs/VS_libraries/VS_library_5K.mol2 limit_max_ligands no skip_molecule no read_mol_solvation no calculate_rmsd no use_database_filter no orient_ligand yes automated_matching yes receptor_site_file ../002.surface/selected_spheres.sph max_orientations 1000 critical_points no chemical_matching no use_ligand_spheres no bump_filter no score_molecules yes contact_score_primary no contact_score_secondary no grid_score_primary yes grid_score_secondary no grid_score_rep_rad_scale 1 grid_score_vdw_scale 1 grid_score_es_scale 1 grid_score_grid_prefix ../003.gridbox/grid multigrid_score_secondary no dock3.5_score_secondary no continuous_score_secondary no footprint_similarity_score_secondary no pharmacophore_score_secondary no descriptor_score_secondary no gbsa_zou_score_secondary no gbsa_hawkins_score_secondary no SASA_score_secondary no amber_score_secondary no minimize_ligand yes minimize_anchor yes minimize_flexible_growth yes use_advanced_simplex_parameters no simplex_max_cycles 1 simplex_score_converge 0.1 simplex_cycle_converge 1.0 simplex_trans_step 1.0 simplex_rot_step 0.1 simplex_tors_step 10.0 simplex_anchor_max_iterations 500 simplex_grow_max_iterations 500 simplex_grow_tors_premin_iterations 0 simplex_random_seed 0 simplex_restraint_min no atom_model all vdw_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.10/parameters/vdw_AMBER_parm99.defn flex_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.10/parameters/flex.defn flex_drive_file /gpfs/projects/AMS536/zzz.programs/dock6.10/parameters/flex_drive.tbl ligand_outfile_prefix virtual.out write_orientations no num_scored_conformers 1 rank_ligands no
Because the step is time-consuming and might be taking up several hours to run so we will not execute the run on command line but we would submit a job through slurm for this step. In order to do so, we would need to create a job file to submit to the slurm queue:
vi job
The content of the job file should be as followed. In this file, we are running the task on the long-28core that should be compatible with users using login node, if you use other server to submit the task (milan), you should check which core you should be submit to on the SeaWulf website: [1] . We are also using mpirun with 224 partition, you should also change it so that it will fit with the core you are submitting to (if you use a different core).
#!/bin/bash # #SBATCH --job-name=2tio_vs_tutorial #SBATCH --output=vs_output.txt #SBATCH --ntasks-per-node=24 #SBATCH --nodes=6 #SBATCH --time=48:00:00 #SBATCH -p long-28core module load intel/mpi/64/2018/18.0.3 mpirun -np 224 dock6.mpi -i virtual.in -o virtual.out
Close and save the job file and submit the job to slurm with the following command:
sbatch job
You can use the command squeue -u username to check if your job has been submitted, on queue or currently running. The job is expected to take a long while to finish so if the job is executed right away, you should check if there might be a problem in your slurm output file. The output file from this step should be including 3 types of additional files:
- The 2tio.virtual.out_scored.mol2 docked ligand collection.
- The virtual.out file capturing the minimization process - you can check for errors in this file if you cannot run the task. This file is the overall and general output files result from your virtual screening process but you should also see many virtual.out.x files, these files represents each partition from the job that you have indicated on slurm when you are submitting the job.
- The vs_output.txt file.
After you got the result, we can move on to next step of Cartesian minimization and re-scoring steps, and we can view the result at the end.
Cartesian Minimization of Virtually Screened Small Molecules
In this step, we would base on the results we harvested from virtual screening and minimize the energy of the docked structure. Thus, this step would not be as time-consuming as the previous step because it the ligands have already been placed in the binding site of the protein under virtual screening.
Please navigate to the directory designated for Cartesian minimization: 010.cartesian_minimization. Here, we can start create the input parameters, file name – min.in:
vi min.in
The following is the input parameter for virtual screening. While you can copy and paste this into the body of your script, please make sure to change the input files directory (ligand and protein structure folder) to your personal directory.Again here, we want to remind you that you would also be using output from virtual screening so please check if the output of the file is correctly implemented.
conformer_search_type rigid use_internal_energy yes internal_energy_rep_exp 12 internal_energy_cutoff 100 ligand_atom_file ../009.virtual_screening/virtual.out_scored.mol2 limit_max_ligands no skip_molecule no read_mol_solvation no calculate_rmsd no use_database_filter no orient_ligand no bump_filter no score_molecules yes contact_score_primary no grid_score_primary no multigrid_score_primary no dock3.5_score_primary no continuous_score_primary yes cont_score_rec_filename ../001.structure/2tio_protein_hydrogens_charges.mol2 cont_score_att_exp 6 cont_score_rep_exp 12 cont_score_rep_rad_scale 1 cont_score_use_dist_dep_dielectric yes cont_score_dielectric 4.0 cont_score_vdw_scale 1.0 cont_score_es_scale 1.0 minimize_ligand yes simplex_max_iterations 1000 simplex_tors_premin_iterations 0 simplex_max_cycles 1.0 simplex_score_converge 0.1 simplex_cycle_converge 1.0 simplex_trans_step 1.0 simplex_rot_step 0.1 simplex_tors_step 10.0 simplex_random_seed 0 simplex_restraint_min no atom_model all vdw_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.10/parameters/vdw_AMBER_parm99.defn flex_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.10/parameters/flex.defn flex_drive_file /gpfs/projects/AMS536/zzz.programs/dock6.10/parameters/flex_drive.tbl ligand_outfile_prefix 2tio.virtual_screen.min write_orientations no num_scored_conformers 1 rank_ligands no
Although this step is not as exhaustive as the previous step that we have worked on, we would still be submitting the task to slurm because the task is still bulky as we are dealing with 5,000 molecules. In order to do so, we would need to create a job file to submit to the slurm queue:
vi job
The content of the job file should be as followed. As mentioned above, we are running the task on the long-28core that should be compatible with users using login node, if you use other server to submit the task (milan), you should check which core you should be submit to on the SeaWulf website: [2] . We would not be using mpirun to partition like we did with virtual screening because this step is not as bulky.
#!/bin/bash # #SBATCH --job-name=2tio_minimization_tutorial #SBATCH --output=min_output.txt #SBATCH --ntasks-per-node=24 #SBATCH --nodes=8 #SBATCH --time=48:00:00 #SBATCH -p long-28core dock6 -i min.in -o min.out
Close and save the job file and submit the job to slurm with the following command:
sbatch job
You can use the command squeue -u username to check if your job has been submitted, on queue or currently running. Similarly if the job finished right away, you should check if there might be a problem in your slurm output file. The output file from this step should be including 3 additional files:
- The 2tio.virtual_screen.min_scored.mol2 docked and minimized ligand collection. - The min.out file capturing the minimization process - you can check for errors in this file if you cannot run the task. - The min_output.txt file.
From here, you can move on the the last step of rescoring the ligand database and viewing your results in Chimera.