[MMTK] Energy minimization

Konrad Hinsen research at khinsen.fastmail.net
Thu Oct 13 10:32:50 UTC 2011

On 12 Oct, 2011, at 21:09 , Новиков Глеб wrote:

> Thank you for this information. I've tried to minimize my membrane proteins structure first of all for futher force field normal mode analysis. So it's interesting to me does this process must be in vacuum or I must provide membrane environment for better results?

The membrane behaves to a good approximation like a 2D liquid, so it makes sense to look at the normal mode of a membrane protein in vacuum if you want to analyze its slow large-scale motions. The membrane in that case only adds friction, which changes the time scales but not the shape of those motions.

> 1) What parameters of that algorithms are most suitable for the average protein ( e.g 3000-5000 atoms)
> Today I've tried minimization with the (convergence = 1.e-3, step_size=0.002, steps = 10000) and obtained suitable energy  in the 7000-8000 steps. Also it's not clear for me what is the convergence parameter and how I can define suitable value for it

Here's what the MMTK documentation says:

	convergence: the root-mean-square gradient length at which minimization stops (default is 0.01 kJ/mol/nm)

As soon as the forces on your molecule descend below the given RMS length, minimization stops. Note that this does not necessarily mean that you are close to a minimum; the forces could well increase if you continue to minimize. There is unfortunately no known technique for finding a minimum that is guaranteed to work. Minimizing is more of an art than a science.

> Finally I wounder to know what is mpi_communicator and in what case this option should be included.

It's for running in parallel on a cluster. You'd have to install the MPI interface from ScientificPython and then reinstall MMTK using the MPI-version of Python generated in that process. You'd then pass an MPI communicator object to the minimization routine in order to get energies evaluated in parallel.

The MPI-based parallelization in MMTK is based on a simple data replication approach, which is not very efficient for more than a handful of nodes. This was useful ten years ago, but much less so now. You can get decent speedups using MMTK's thread-based parallelization on a multicore machine. For that, all you need is "thread=N" where N is the number of cores on your machine.

Konrad Hinsen
Centre de Biophysique Moléculaire, CNRS Orléans
Synchrotron Soleil - Division Expériences
Saint Aubin - BP 48
91192 Gif sur Yvette Cedex, France
Tel. +33-1 69 35 97 15
E-Mail: research AT khinsen DOT fastmail DOT net

More information about the mmtk mailing list