Difference between revisions of "2021 Denovo tutorial 2 with PDBID 2ZD1"

From Rizzo_Lab
Jump to: navigation, search
(Created page with " = '''Introduction''' = == '''Learning Goals for this Tutorial''' == This tutorial will guide the student in performing a structure-based virtual screen of a large number of s...")
 
 
(One intermediate revision by the same user not shown)
Line 102: Line 102:
 
PDB Information: https://www.rcsb.org/structure/2zd1
 
PDB Information: https://www.rcsb.org/structure/2zd1
  
= '''Directory and File Setup''' =
+
In this session, we are going to use the predetermined structures from the virtual screen tutorial to do de novo design
Before beginning the docking procedure, we will create a set of directories to store the various files we will be generating in an organized manner. We will also download the initial PDB file for the 2ZD1 complex from the RCSB PDB.
 
  
Notes:
+
----
  
<ul>
+
= I. Focused De Novo Design  =
<li>The directory and file nomenclature used throughout the tutorial is not required but is recommended for most efficient use of subsequently-provided commands and scripts.
 
<li><i>Italics</i> are used in directory and file names to signify terms that may differ for each student.
 
</ul>
 
  
Procedure:
+
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.
  
<ol>
 
<li>Log in to Seawulf
 
<li>Navigate to your personal student directory for AMS 536:
 
<p><code> cd /gpfs/projects/AMS536/<i>year</i>/students/<i>name</i> </code></p>
 
<li>Create a directory to store all files used and generated in this tutorial:
 
<p><code> mkdir <i>2zd1</i>_dock_vs</code></p>
 
<li>Navigate into this new directory:
 
<p><code> cd <i>2zd1</i>_dock_vs</code></p>
 
<li>Create all subdirectories required for this tutorial:
 
<p><code> mkdir 01_structure&nbsp;02_surface_spheres&nbsp;03_grid_box&nbsp;04_dock&nbsp;05_virtual_screen&nbsp;06_virtual_screen_mpi&nbsp;07_cartesian_min&nbsp;08_rescore</code></p>
 
<li> Download the <i>2zd1</i>.pdb file from the PDB to a local directory
 
<li> Copy the PDB file to <code>01_structure/</code> using <code>scp</code> or <code>rsync</code>
 
</ol>
 
  
Recommendations:
+
----
<ul>
 
<li>Confirm the existence of all newly-created directories by executing the <code>ls</code> command
 
<li>Set up a dedicated local directory to store files that will be utilized in Chimera
 
<li>Set up an alias in <code>.bashrc</code> for an <code>scp</code> or <code>rsync</code> command that will allow for easy transfer of files between the relevant local and remote Seawulf directories
 
</ul>
 
  
= '''Receptor and Ligand Preparation''' =
+
= '''Fragment Libraries''' =
We will extract the individual receptor and ligand structures from our .pdb file and add hydrogens and charges to each as appropriate.
 
== '''Structure Verification''' ==
 
We will verify that the protein structure downloaded from the PDB aligns with the description in the submitted experimental paper.
 
<ol>
 
<li> Open the Chimera application. 
 
<li> Open the PDB file in Chimera:
 
<p><code> File -> Open, <i>navigate to PDB file and click</i>&nbsp;Open</code></p>
 
You should now be able to visualize the complex as shown below
 
[[File:2zd1 rec ligand.png|thumb|center|800px]]
 
  
== '''Receptor Preparation''' ==
+
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.
  
<li> Begin to prepare the receptor by deleting all non-receptor atoms, including those in water molecules, salts, and the ligand...
+
Let us create a new directory for the fragment library, using the command:
<p><code> Select -> Residue -> all nonstandard</code><br>
 
<code>Actions -> Atoms/Bonds -> Delete</code></p>
 
...and any full receptor chains that are not of interest in the virtual screen and/or do not coordinate with the ligand.
 
<p><code> Select -> Chain -> <i>B</i></code><br>
 
<code>Actions -> Atoms/Bonds -> Delete </code></p>
 
<li> Save the prepared receptor locally in .mol2 format.
 
<p><code> File -> Save mol2... -> "<i>2zd1</i>_rec_nH.mol2" </code></p>
 
<li> Copy the mol2 file to the <code>01_structure</code> directory using <code>scp</code> or <code>rsync</code>
 
</ol>
 
<p> Note that the file we have just created does not contain any hydrogen atoms. We will now generate a second receptor file with hydrogens and charge added to the molecule.</p>
 
  
<li> Begin to prepare the receptor by deleting all the non-receptor atoms. This also includes delete any chains in the receptor that are not of interest and or do not coordinate with the ligand.
+
mkdir 010_dn_fraglib
<p><code> Select -> Chain -> (Undesired chain)
 
Actions -> Atoms/Bonds -> Delete. </code>
 
<p><code> Select -> Residue -> All-nonstandard
 
Actions -> Atoms/Bonds -> Delete. </code>
 
<li> Save the prepared receptor locally in .mol2 format.
 
<p><code> File -> Save Mol2... -> "<i>2zd1</i>_rec_nH.mol2"
 
<li> Copy the mol2 file to <code> 01_structure</code> using <code> scp or rsync</code>
 
</ol>
 
  
== '''Ligand Preparation''' ==
+
Create a new input file for fragment generation, using the command:
  
= '''Surface Sphere Generation and Selection''' =
+
vi fragment.in
  
== '''File Preparation''' ==
+
Use the following parameters to answer the default questions from the DOCK program (vi fragment.in, and place in the following parameters):
  
== '''Sphere Generation''' ==
+
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
  
== '''Sphere Selection''' ==
+
Once the fragment.in the file is generated, run the dock6 program using the fragment.in as the input file:
  
= '''Cutoff Box and Energy Grid Generation''' =
+
dock6 -i fragment.in -o fragment.out
  
== '''Cutoff Box Generation''' ==
+
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)
  
== '''Grid Generation''' ==
+
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.
  
= '''Single-Molecule Docking: Pose Reproduction''' =
+
grep -wc MOLECULE *.mol2 | wc -l
  
== '''Energy Minimization''' ==
+
----
  
== '''Rigid Docking''' ==
 
  
== '''Fixed Anchor Docking''' ==
+
= '''Focused Denovo Growth''' =
  
== '''Flex Docking''' ==
+
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.
  
= '''Virtual Screening''' =
+
Create a new directory for the fragment library, using the command:
  
== '''Test Run''' ==
+
mkdir 011_dn_focus
  
== '''Parallel Virtual Screening''' ==
+
Create a new input file for small molecule generation, using the command:
  
== '''Cartesian Minimization''' ==
+
vi dn_focus.in
  
== '''Cartesian Minimization''' ==
+
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.

Latest revision as of 09:46, 6 April 2021

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.