Plop

From DISI
Revision as of 04:07, 14 February 2014 by Frodo (talk | contribs)
Jump to navigation Jump to search

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:

  1. Add hydrogens to your ligand and convert to mol2 format
  2. Generate ligand parameters (template) for plop
  3. 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
Hydrogen bonding network around phosphonate in S1P1R crystal structure [PDB ID 3V2Y].
Hydrogen bonding network around phosphonate in S1P1R crystal structure [PDB ID 3V2Y]
Hydrogen bonding network around phosphonate in S1P1R binding site after energy minimization with Plop. Note how the carboxamide of Asn101 flipped by 90 degrees.
Hydrogen bonding network around phosphonate in S1P1R binding site after energy minimization with Plop. Note how the carboxamide of Asn101 flipped by 90 degrees.
Electron density of S1P1R binding site shows that a 90 degree flipped Asn101 fits the density equally well as the deposited Asn101 rotamer.
Electron density of S1P1R binding site shows that a 90 degree flipped Asn101 fits the density equally well as the deposited Asn101 rotamer.

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.