Subject: Announcement: The Molecular Modeling Toolkit

From: Konrad Hinsen <[email-masked]>
Date: Mon, 14 Apr 1997 12:10:18 +0200

Now available: The Molecular Modeling Toolkit
=============================================

The Molecular Modelling Toolkit (MMTK) is a program library for
molecular modelling applications. Its aim is to provide researchers,
especially those working on the development of new modelling methods,
with a code basis that can be easily extended and modified to deal
with standard and non-standard problems in molecular modelling.

MMTK is developed in and around Python, a high-level object-oriented
general-purpose programming language (see http://www.python.org for
more information). Python was chosen because it allows rapid code
development and testing, while providing a very convenient C interface
for dealing with time-critical calculations. Like Python, MMTK is
copyrighted but free software.

MMTK is based on an object-oriented model of molecular systems.  A
system is made up of molecules, complexes, and atoms, all of which are
defined in a central database of definition files, which themselves
are (very simple) Python programs. A molecule, for example, is defined
in terms of atoms, functional groups, bonds, force field parameters
etc. It is possible to introduce specialized versions of these
objects; for example, MMTK has special support for proteins, which are
basically chemical complexes, but can be handled in terms of peptide
chains, residues, sidechains etc.

Among the operations that are currently implemented you can find:

- construction of molecular systems
- standard geometrical operations on coordinates
- rigid-body fits
- visualization using external PDB and VRML viewers
- the AMBER 94 force field
- energy minimization (steepest descent and conjugate gradient)
- molecular dynamics (velocity Verlet)
- normal mode calculation

Compared to standard modelling code written in Fortran, MMTK is much
easier to understand, extend, and modify. For example, new force
fields can be added without touching any existing code, i.e.  without
any risk of breaking it.

The following example gives some idea of what MMTK applications look
like.  It generates a representation of the protein crambin from a PDB
file, performs an energy minimization using the conjugate gradient
algorithm until the forces are sufficiently small, calculates the
normal modes, prints the vibrational frequencies, and shows an
animation of the lowest non-zero mode.

---------------------------------------------------------------------------
from mmtk import *

world = InfiniteUniverse(AmberForceField())
world.protein = Protein('crambin')

minimizer = ConjugateGradientMinimizer(world, log = (0, None, 50, stdout,
						     ("energy",)))
minimizer(convergence = 1.e-3, steps = 10000)

modes = NormalModes(world)

for mode in modes:
    print mode.frequency

view(modes[6])
---------------------------------------------------------------------------

For more information and to download MMTK, point your Web browser at

   http://www.yi.com/home/HinsenKonrad/mmtk.html

-- 
-------------------------------------------------------------------------------
Konrad Hinsen                          | E-Mail: [email-masked]
Laboratoire de Dynamique Moleculaire   | Tel.: +33-4.76.88.99.28
Institut de Biologie Structurale       | Fax:  +33-4.76.88.54.94
41, av. des Martyrs                    | Deutsch/Esperanto/English/
38027 Grenoble Cedex 1, France         | Nederlands/Francais
-------------------------------------------------------------------------------