Optimize

From PyMOLWiki
Revision as of 22:23, 27 January 2014 by OsvaldoMartin (talk | contribs)
Jump to navigation Jump to search
Type PyMOL Plugin
Download plugins/optimize.py
Author(s) Osvaldo Martin
License GPL
This code has been put under version control in the project Pymol-script-repo

Introduction

Optimize provides a PyMOL graphical interface to some of the molecular mechanics features available in openbabel, allowing the user to optimize (minimize) the energy of any molecule uploaded on PyMOL.

Installation

Optimize was tested only on GNU/Linux but should work on other operating systems. The plugin can be downloaded through the project Pymol-script-repo. Optimize needs openbabel to be installed on your computer (see instructions here).

Usage

The plugin can be accessed using a graphic user interface (see figure 0) or from the PyMOL`s terminal. There are 5 types of optimization routine available now 2 local optimizations and 3 global optimization.

Local optimization

Local optimization can be done using the minimize command from the PyMOL`s terminal:

minimize [selection string [, forcefield string [, method string [, nsteps int [, conv float [, cutoff bool [, cut_vdw float [, cut_elec float]]]]]]]
Figure 0: Optimize plugin GUI

Where:

  • selection: Select what is going to be minimized. The default value is 'all'. Using the GUI the default value is the first uploaded object.
  • forcefield: Select the forcefield used to compute the Internal Energy, options available are GAFF, MMFF94s, MMFF94, UFF and Ghemical.
  • method: Select the method used to find the local minimum. The methods available are conjugate gradients and steepest descent.
  • nsteps: Number of iteration steps during the minimization.
  • conv: Criteria used to judge minimization convergence.
  • cutoff: Control if cut-off are used or not to compute non-bonded interactions, posible values are True of False.
  • cut_vdw: If cutoff is True, then this parameter set the limit beyond which two atoms do not interact trough Van der Waals forces.
  • cut_elec: If cutoff is True, then this parameter set the limit beyond which two atoms do not interact trough electrostatic forces forces.

Gobal optimization

Global optimization can be done using the conf_search command from the PyMOL`s terminal:

conf_search [selection string [, forcefield string [, method string [, nsteps int [, conformers int [, lowest_confor ]]]]]]


Where:

  • selection: Select what is going to be minimized. The default value is 'all'. Using the GUI the default value is the first uploaded object.
  • forcefield: Select the forcefield used to compute the Internal Energy, options available are GAFF, MMFF94s, MMFF94, UFF and Ghemical.
  • method: Select the method used to find the global minimum. The methods available are:

Systematic: Systematically iterate through all possible conformers according to Open Babel’s torsion library. This approach guarantee to find the local minimum (according to the forcefield in use). This approach scales to the power of N, where N is the number of rotatable bonds, hence it is only applicable to molecules with very few rotatable bonds.

Random: Conformations are generated by randomly choosing from the allowed torsion angles.

Weighted: This method uses an iterative procedure to find a global minimum. As with the Random method, it randomly choses from the allowed torsion angles but the choice is re-weighted based on the energy of the generated conformer. For molecules with to many rotatable bonds, that are not suitable for for the systematic, this method is generally the best option.

  • nsteps: Number of iteration steps during the minimization.
  • conformers: Total number of conformers to be analysed. This option is not available when using the systematic method because all possible conformers are analysed.
  • lowest_conf: This options sets how many of the low-energy conformers are retrieved as the result of a conformational search. Conformers are ordered from low to high energy. This option is not available when using the systematic method because this method return only the lowest energy conformer.

In general, it is a good idea to minimize the initial conformation before doing a conformational search.

Change log

  • 2013-10-06 (Version 0.1)
    1. First version. (More features coming soon!)
  • 2013-10-24 (Version 0.2)
    1. now openbabel add the hydrogen and not PyMOL.
  • 2014-01-27 (Version 0.6)
    1. now it is possible to perform global optimization.

Citation

If you find optimize useful please consider citing this work Noel M. O'Boyle , Michael Banck , Craig A. James , Chris Morley , Tim Vandermeersch and Geoffrey R. Hutchison. "Open Babel: An open chemical toolbox." Journal of Cheminformatics 2011, 3:33. http://www.jcheminf.com/content/3/1/33