Flexible Docking

For citations and example use, please see Citations for DOCK3.7Marcus Fischer*, Ryan G. Coleman*, James S. Fraser, Brian K. Shoichet. Incorporation of protein flexibility and conformational energy penalties in docking screens to improve ligand discovery. Nature Chemistry. Online May 25th, 2014. 

Input for flexible docking requires a single PDB file with alternate atom positions (for every atom) for residues that you want to move and is specified by by the following parameter to blastermaster.py:

-f --flexibleResidues=186+187+188+189+190+191+192+193+194,199,228

Where residues 186-194 will be treated as a single unit that is dependent (a loop) and residues 199 and 228 move independently of it.

This produces an INDOCK file & docking directory ready for flexible docking. When docking, each ligand will be scored against all possible combinations of receptors and written out, so the output files can be large (control during prospective screening with the save_limit parameter). Docking otherwise proceeds normally. During the analysis stage, several options are available for getposes.py

-r RECEPTOR, --receptor=RECEPTOR
                        which receptor(s) to get poses for, specify more with
                        additional -r commands (default: All)
  -p PART, --part=PART  if specified, will only use data from receptors with
                        that part (default: All)
  --enablepp            run part preference calc. (default: don't run it)
  --enablebb            run black box reweighting (default: don't run the
                        black box reweighting)
  --noprotrmsd          for bbrw, don't use protein as well as ligand RMSD.
                        needs 1.x.x.x.pdb files. (default: use protein and
                        ligand RMSD)
  --bbndist=BBNDIST     for bbrw, the number of nearby neighbors to use
                        (ndist) (default: 10)
  --bbndof=BBNDOF       for bbrw, the degrees of freedom/dimensionality (dof)
                        (default: 1)
The simplest way to run is just the default, each pose will be saved to each possible receptor. However, you may only be interested in poses to one specific receptor, specified with -r for instance. Look at the INDOCK file or the flexible.explanation.txt file to see which receptor code matches the conformation you're interested in. You can also specify a specific conformation of one residue or set of residues with the -p flag, look at part.explanation.txt to decide which part you are interested in. 

The next command --enablepp calculates the predicted occupancy of the protein for each ligand using the Boltzmann sum of the energy of each state. For this, we used an additional 10 top poses generated in docking using the INDOCK number_save parameter, more poses should reproduce the occupancy better but increasing to 1000 did not show a large change in the examples run so far.

The last 4 commands all use a different algorithm to calculate predicted occupancies. In practice, it seems similar to the simpler algorithm, but it can be different. The algorithm is based on Ytreberg & Zuckerman, PNAS 2008, and can be enabled with --enablebb. The default RMSD to use to calculate pose differences is ligand RMSD plus protein RMSD, however the protein RMSD can be turned off if desired with --noprotrmsd. The --bbndist and --bbndof parameters control the two other parameters to the algorithm, the number of nearby neighbors to use and the degrees of freedom. For more see the Ytreberg & Zuckerman, PNAS 2008 or the SI of the Fischer, Coleman et al paper on the Citations for DOCK3.7 page.