2021 Denovo tutorial 2 with PDBID 2ZD1
Contents
Introduction
Learning Goals for this Tutorial
This tutorial will guide the student in performing a structure-based virtual screen of a large number of small molecule compounds (ligands) to assess the effectiveness of each in binding to a protein drug target (receptor) through the use of molecular docking. The student will additionally learn how to use tools to visualize and manipulate the components of a receptor-ligand complex, along with the results (docked ligand poses) of the virtual screen.
The techniques, computer-based tools, and biological system used in this tutorial are detailed below.
Techniques
Structure-Based Virtual Screening
A computational method used in drug discovery that evaluates a pre-defined set of compounds for relative likelihood of binding to a potential drug target, such as a protein receptor. This technique aids researchers in narrowing down a large set of small molecule drug candidates into a relatively smaller number of leads which can be further refined or purchased for subsequent in vitro or in vivo studies.
The structure-based flavor of virtual screening utilizes molecular docking to "fit" each ligand to a particular site on the drug target. One or more scoring functions subsequently rank each ligand with respect to predicted binding affinity.
Background: Maia, E.H.B., Assis, L.C., Olivera, T.A. et al. Structure-Based Virtual Screening: From Classical to Artificial Intelligence. Front Chem 8, 343 (2020). https://doi.org/10.3389/fchem.2020.00343
Molecular Docking
In the context of computer-aided drug design, a technique that computationally samples the interaction states between ligands and drug targets (usually protein receptors), both geometrically and energetically. Given variable degrees of flexibility conferred to the ligand and receptor by the parameters of the simulation, the most favorable conformation of each ligand is identified through the use of different scoring functions, which are traditionally based on energies calculated from molecular mechanics force fields.
Docking algorithms can be broadly classified as flexible or rigid. A rigid docking algorithm begins with a fully-formed ligand and allows for sampling of the rigid placement of the given experimental pose in the binding site of the receptor while varying the translational and rotational degrees of freedom of the whole ligand within the three spatial dimensions. Internal angle rotational degrees of freedom are not explicitly sampled with basic rigid docking.
Traditional flexible docking, or fixed anchor docking (FAD) starts with a ligand scaffold, which is usually the largest substructure in a ligand, identified as such after the molecule is divided into substructures at its rotatable bonds. By a chosen method, such as Monte Carlo sampling or simulated annealing, multiple poses of this “anchor” substructure are then generated within the receptor binding pocket and scored. The next substructure’s layers of atoms are then added to the most favorable subset of initial anchor poses, and the process repeats until all the molecule is fully rebuilt within the receptor. This on-the-fly flexible conformer growth and minimization process is known as “anchor and grow.”
A second form of flexible docking, know as "flex docking," allows sampling of all internal degrees of freedom of the ligand. This is considered the most accurate form of docking, with the least chance of "missing out" on an optimal ligand pose. For each of the docking methods mentioned above, although increased ligand flexibility provides for broader conformational search and potentially more realistic poses, computational cost also increases.
In this tutorial, we will perform all three docking techniques listed above.
Background:
- Fan, J., Fu, A. & Zhang, L. Progress in molecular docking. Quant Biol 7, 83–89 (2019). https://doi.org/10.1007/s40484-019-0172-y
- Meng, Xuan-Yu et al. Molecular docking: a powerful approach for structure-based drug discovery. Current computer-aided drug design vol. 7,2 (2011): 146-57. doi:10.2174/157340911795677602
Computer-Based Tools
Protein DataBank (PDB)
A publicly-accessible database that houses downloadable 3-D structural information of proteins and other large biomolecules obtained mainly from X-ray crystallography and NMR experiments. This information is provided in a format (.pdb file) that is easily manipulated by molecular visualization and modeling software. We will use the PDB to learn about and obtain the structure data for the reference protein-ligand complex used in this tutorial.
Organization Home: https://www.wwpdb.org/
Search Home: https://www.rcsb.org/
UCSF Chimera
Version 1.15 for Windows is used in this tutorial.
A computer program that enables visualization and manipulation of molecules using structural data. We will use this tool to prepare our system for the virtual screen and to perform important visual verifications and observations.
Information / Download: https://www.cgl.ucsf.edu/chimera/
Seawulf Computational Cluster
A high performance computing (HPC) cluster located on the Stony Brook University campus containing 164 compute nodes with up to 40 CPU cores per node. We will perform our molecular docking calculations on this cluster, and in some instances, take advantage of its multiple cores by performing these calculations in parallel.
Background: https://it.stonybrook.edu/help/kb/understanding-seawulf
GNU/Linux
CentOS Linux release 7.8.2003 (Core) with bash shell is used in this tutorial.
The command-line operating system used to interact with Seawulf. Practice with this environment is highly recommended for those unfamiliar with it before beginning this tutorial.
Tutorials: See the "Basic Linux Tools" section of https://ringo.ams.stonybrook.edu/index.php/Rizzo_Lab_Information_and_Tutorials
Vi / Vim
Vim version 7.4 is used in this tutorial.
The command-line text editor that is used to create and manipulate the various files needed to perform the virtual screen. As with GNU/Linux, practice with Vim is highly recommended before beginning this tutorial.
Primer: https://ringo.ams.stonybrook.edu/index.php/Vi
DOCK
Version 6.9 is used in this tutorial.
A computer program that performs molecular docking to predict favorable ligand binding geometries and interactions with a receptor. The program includes several scoring functions to assess the relative ranking of ligands and poses. The functions of DOCK are diverse; a primary use is virtual screening (the subject of this tutorial) of large numbers of molecules obtained from a library or database.
Background:
- Ewing, T.J., Makino, S., Skillman, A.G. et al. DOCK 4.0: Search strategies for automated molecular docking of flexible molecule databases. J Comput Aided Mol Des 15, 411–428 (2001). https://doi.org/10.1023/A:1011115820450
- Moustakas, D.T., Lang, P.T., Pegg, S. et al. Development and validation of a modular, extensible docking program: DOCK 5. J Comput Aided Mol Des 20, 601–619 (2006). https://doi.org/10.1007/s10822-006-9060-4
Dock 6.9 Users Manual: http://dock.compbio.ucsf.edu/DOCK_6/dock6_manual.htm
2ZD1: Crystal Structure of HIV-1 Reverse Transcriptase in Complex with Rilpivirine
In this tutorial, we will use the complex of the HIV-1 reverse transcriptase (RT) receptor with the TMC278 (Rilpivirine) ligand as the basis for our virtual screen. HIV-1 RT is an enzyme used by the HIV-1 virus to produce DNA from its viral RNA template, a process that is essential for replication of the virus within the host. The DNA generated by the reverse transcription process is integrated into the genome of the host and replicates along with endogenous DNA, creating the starting material for the construction of new virions. TMC278 is a diarylpyrimidine (DAPY) nonnucleoside reverse transcriptase inhibitor (NNRTI) that binds to wild type and various mutant HIV-1 RT receptors and is highly successful in blocking their function. 2ZD1 is the PDB code for this complex, with structural data obtained from X-ray diffraction experiments.
PDB Information: https://www.rcsb.org/structure/2zd1
In this session, we are going to use the predetermined structures from the virtual screen tutorial to do de novo design
I. Focused De Novo Design
In focused De Novo Design, we aim to generate a ligand that closely resembles Simvastatin in the binding pocket by connecting generated fragments from scratch. By putting the generated fragments back into the pocket through a variety of fragment assemblies, we can check how accurate simulation is in terms of the sampled ligand.
Fragment Libraries
First, a fragment library needs to be generated using the original ligand as the template. The generated fragments should build the same ligand seen in the crystalized structure.
Let us create a new directory for the fragment library, using the command:
mkdir 010_dn_fraglib
Create a new input file for fragment generation, using the command:
vi fragment.in
Use the following parameters to answer the default questions from the DOCK program (vi fragment.in, and place in the following parameters):
conformer_search_type flex write_fragment_libraries yes fragment_library_prefix fraglib fragment_library_freq_cutoff 1 fragment_library_sort_method freq fragment_library_trans_origin no use_internal_energy yes internal_energy_rep_exp 12 internal_energy_cutoff 100.0 ligand_atom_file ../001.structure/2ZD1_ligand_with_H.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_spheres/selected_spheres.sph max_orientations 1000 critical_points no chemical_matching no use_ligand_spheres no bump_filter no score_molecules no atom_model all vdw_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.9_release/parameters/vdw_AMBER_parm99.defn flex_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.9_release/parameters/flex.defn flex_drive_file /gpfs/projects/AMS536/zzz.programs/dock6.9_release/parameters/flex_drive.tbl ligand_outfile_prefix fragment.out write_orientations no num_scored_conformers 1 rank_ligands no
Once the fragment.in the file is generated, run the dock6 program using the fragment.in as the input file:
dock6 -i fragment.in -o fragment.out
After the fragment library generation is complete, 6 files shoulbe be seen in the current directory (fraglib_linker.mol2, fraglib_rigid.mol2, fraglib_scaffold.mol2, fraglib_sidechain.mol2, and fraglib_torenv.dat)
Using the grep command, we can check the number of fragments generated. Copy the mol2 files to your local computer and open the files in Viewdock using Chimera. Chimera can visualize the fragments and show how well they match with the original crystallized ligand.
grep -wc MOLECULE *.mol2 | wc -l
Focused Denovo Growth
Next, we'll be using the fragments generated in the last step to build new small molecules for our system. The fragments will connect with each other through a variety of specified constraints such as charge and molecular weight.
Create a new directory for the fragment library, using the command:
mkdir 011_dn_focus
Create a new input file for small molecule generation, using the command:
vi dn_focus.in
Use the following parameters to answer the default questions from the dock program (Make sure to edit all appropriate paths):
conformer_search_type denovo dn_fraglib_scaffold_file ../010_dn_fraglib/fraglib_scaffold.mol2 dn_fraglib_linker_file ../010_dn_fraglib/fraglib_linker.mol2 dn_fraglib_sidechain_file ../010_dn_fraglib/fraglib_sidechain.mol2 dn_user_specified_anchor no dn_use_torenv_table yes dn_torenv_table ../010_dn_fraglib/fraglib_torenv.dat dn_sampling_method graph dn_graph_max_picks 30 dn_graph_breadth 3 dn_graph_depth 2 dn_graph_temperature 100.0 dn_pruning_conformer_score_cutoff 100.0 dn_pruning_conformer_score_scaling_factor 1.0 dn_pruning_clustering_cutoff 100.0 dn_constraint_mol_wt 550.0 dn_constraint_rot_bon 15 dn_constraint_formal_charge 2.0 dn_heur_unmatched_num 1 dn_heur_matched_rmsd 2.0 dn_unique_anchors 1 dn_max_grow_layers 9 dn_max_root_size 25 dn_max_layer_size 25 dn_max_current_aps 5 dn_max_scaffolds_per_layer 1 dn_write_checkpoints yes dn_write_prune_dump no dn_write_orients no dn_write_growth_trees no dn_output_prefix dn_focus.out use_internal_energy yes internal_energy_rep_exp 12 internal_energy_cutoff 100.0 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/dock6.9_release/parameters/vdw_AMBER_parm99.defn flex_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.9_release/parameters/flex.defn flex_drive_file /gpfs/projects/AMS536/zzz.programs/dock6.9_release/parameters/flex_drive.tbl
Once the fragment.in file is generated, run the dock6 program using fragment.in as the designated input file:
dock6 -i dn_focus.in -o dn_focus.out
After the de novo growth is complete, 8 .mol2 files and 1 .sh file will appear in the current directory.
Focused Denovo Rescore
Even though we've generated and visualized these fragments, we want to rescore them based on numerous properties for better in vitro modeling.
Create a new directory for the fragment library, using the command:
mkdir 012_dn_focusrescore
Create a new input file for fragment generation, using the command:
vi rescore.in
Use the following parameters to answer the default questions from the dock program:
conformer_search_type rigid use_internal_energy yes internal_energy_rep_exp 12 internal_energy_cutoff 100.0 ligand_atom_file ../011.dn_focus/dn_focus.out.denovo_build.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 contact_score_secondary no grid_score_primary no grid_score_secondary no multigrid_score_primary no multigrid_score_secondary no dock3.5_score_primary no dock3.5_score_secondary no continuous_score_primary no continuous_score_secondary no footprint_similarity_score_primary no footprint_similarity_score_secondary no pharmacophore_score_primary no pharmacophore_score_secondary no descriptor_score_primary yes descriptor_score_secondary no descriptor_use_grid_score no descriptor_use_multigrid_score no descriptor_use_continuous_score no descriptor_use_footprint_similarity yes descriptor_use_pharmacophore_score yes descriptor_use_tanimoto yes descriptor_use_hungarian yes descriptor_use_volume_overlap yes descriptor_fps_score_use_footprint_reference_mol2 yes descriptor_fps_score_footprint_reference_mol2_filename ../004.dock/2zd1_lig_min_scored.mol2 descriptor_fps_score_foot_compare_type Euclidean descriptor_fps_score_normalize_foot no descriptor_fps_score_foot_comp_all_residue yes descriptor_fps_score_receptor_filename ../001.dockprep/2zd1_rec_prep.mol2 descriptor_fps_score_vdw_att_exp 6 descriptor_fps_score_vdw_rep_exp 12 descriptor_fps_score_vdw_rep_rad_scale 1 descriptor_fps_score_use_distance_dependent_dielectric yes descriptor_fps_score_dielectric 4.0 descriptor_fps_score_vdw_fp_scale 1 descriptor_fps_score_es_fp_scale 1 descriptor_fps_score_hb_fp_scale 0 descriptor_fms_score_use_ref_mol2 yes descriptor_fms_score_ref_mol2_filename ../004.dock/2zd1_lig_min_scored.mol2 descriptor_fms_score_write_reference_pharmacophore_mol2 no descriptor_fms_score_write_reference_pharmacophore_txt no descriptor_fms_score_write_candidate_pharmacophore no descriptor_fms_score_write_matched_pharmacophore no descriptor_fms_score_compare_type overlap descriptor_fms_score_full_match yes descriptor_fms_score_match_rate_weight 5.0 descriptor_fms_score_match_dist_cutoff 1.0 descriptor_fms_score_match_proj_cutoff 0.7071 descriptor_fms_score_max_score 20 descriptor_fingerprint_ref_filename ../004.dock/2zd1_lig_min_scored.mol2 descriptor_hms_score_ref_filename ../004.dock/2zd1_lig_min_scored.mol2 descriptor_hms_score_matching_coeff -5 descriptor_hms_score_rmsd_coeff 1 descriptor_volume_score_reference_mol2_filename ../04_dock/2ZD1_lig_min_scored.mol2 descriptor_volume_score_overlap_compute_method analytical descriptor_weight_fps_score 1 descriptor_weight_pharmacophore_score 1 descriptor_weight_fingerprint_tanimoto -1 descriptor_weight_hms_score 1 descriptor_weight_volume_overlap_score -1 gbsa_zou_score_secondary no gbsa_hawkins_score_secondary no SASA_score_secondary no amber_score_secondary no minimize_ligand no atom_model all vdw_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.9_release/parameters/vdw_AMBER_parm99.defn flex_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.9_release/parameters/flex.defn flex_drive_file /gpfs/projects/AMS536/zzz.programs/dock6.9_release/parameters/flex_drive.tbl chem_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.9_release/parameters/chem.defn pharmacophore_defn_file /gpfs/projects/AMS536/zzz.programs/dock6.9_release/parameters/ph4.defn ligand_outfile_prefix descriptor.output write_footprints yes write_hbonds yes write_orientations no num_scored_conformers 1 rank_ligands no
Once the rescore.in file is generated, run the dock6 program using rescore.in as the input file:
dock6 -i rescore.in -o rescore.out
You may need to submit this as a slurm script depending on how long the job initially takes.
#!/bin/bash #SBATCH --time=48:00:00 #SBATCH --nodes=1 #SBATCH --ntasks=28 #SBATCH --job-name=dn_rescore #SBATCH --output=dn_rescore.out #SBATCH -p long-28core
cd $SLURM_SUBMIT_DIR echo "starting Dock6.9 simulation" /gpfs/projects/AMS536/zzz.programs/dock6.9_release/bin/dock6.mpi -i dn_rescore.in -o dn_rescore.out
After the rescore is complete, footprint and H-bond scored txt files are generated. The descriptor scored .mol2 files should also appear in the current directory.