Plop
Energy minimization using Plop
This page describes simple protocols for receptor/active site and ligand minimization using Plop.
Check also the Plop manual on the Jacobson Wiki: http://wiki.jacobsonlab.org/index.php/Plop_manual
The workflow consists of the following three steps:
- Add hydrogens to your ligand and convert to mol2 format
- Generate ligand parameters (template) for plop
- Minimize protein and/or ligand
1. Add hydrogens to your ligand and convert to mol2 format
To run plop with a ligand, you need a template/parameter file for your ligand. To generate a template (section 2), you need a mol2 file with hydrogens. There are dozen of ways to add hydrogens (mostly absent in crystal structures) to your ligand. Whatever method you use (eg. convert.py, Chimera or Maestro for example), please check that the hydrogens are added correctly! Also check in the output mol2 file if all atoms have the right atom types. Ligands in crystal structures often have subtly incorrect geometries, which may confuse programs. I found adding hydrogens and conversion to mol2 format most reliable done with Maestro, but in most cases, you may simply use the following command:
convert.py --i=ML5.pdb --o=ML5.mol2 --add_hyd
2. Generate ligand template/parameter file for Plop
Use plop_ff_params.csh to generate a template for Plop.
plop_ff_params.csh ML5.mol2
plop_ff_params.csh:
#!/bin/csh -f # Jens Carlsson 2010 # Generates OPLSAA 2005 force field file for HETATM using Maestro set SCHRUTIL = /raid3/software/schrodinger/2010u1.1/utilities
$SCHRUTIL/mol2convert -imol2 $1 -omae $1:r.mae $SCHRUTIL/hetgrp_ffgen 2005 $1:r.mae $SCHRUTIL/pdbconvert -imae $1:r.mae -opdb $1:r.pdb
cp $1:r {$1:r}e
This script generates three output files: ML5.mae, ml5 (template) and ML5.pdb
Replace the ligand coordinates in your receptor with ML5.pdb and make sure that the template file (ml5) is the directory where you run plop.
3. Minimize protein and/or ligand using Plop
Make a command file for plop (see example below) and run Plop:
plop plop_side_4A_no_lig.com > plop_side_4A_no_lig.log
An example of a Plop command file (plop_side_4A_no_lig.com) is shown below: In this example only selected sidechains within a 4A radius around the ligand (defined in 4A.list) are minimized, but not the ligand, because it was excluded from the list. Lines with a number sign (#) are commented out and are not executed, but you can change this script to do other things by simply removing the number (#) signs.
datadir /raid3/software/plop/data load pdb 3V2Y_for_plop.pdb & het yes & wat yes & template ML5 ml5 # Predict side chains within a 5 Angstroem radius around the ligand #side pred within5.0 _:1 & # rand yes # minimize only the ligand #minim res single _:1 & # verbose yes # Minimize residues (sidechain+backbone) within a 4 Angstroem radius around the ligand #minim res within4.0 _:1 & # verbose yes # Minimize selected sidechains minim side file 4A.list & verbose yes # Minimize only ligand after minimizations above #minim res single _:1 & # verbose yes energy calc eval steric write pdb 3V2Y_from_plop_4A_no_lig_minim.pdb
The list file used in the above example (4A.list) looks like this:
A:29 A:34 A:98 A:101 A:105 A:109 A:117 A:120 A:121 A:124 A:125 A:128 A:194 A:195 A:196 A:203 A:206 A:207 A:210 A:269 A:272 A:273 A:276 A:294 A:297 A:300 A:301
Acknowledgements
Thanks to Jens, CK and Frank who introduced me to Plop. And to the Jacobson lab and Schroedinger.