[MMTK] object or module for molecule-centered grid

Konrad Hinsen konrad.hinsen at cea.fr
Fri Mar 24 12:08:22 CET 2006

On Mar 23, 2006, at 21:23, Andrew D. Fant wrote:

> Are there any special routines to allow a set of points from that  
> lattice to be
> accessed as a single entity?  For example to treat the set of grid  
> points that
> are within the VdW radius of the nearest atom (plus or minus some  
> reasonable
> epsilon) as a "surface" that can be used for further computation.

No. If you want points on a surface, use  
MolecularSurfaces.surfaceAtoms(). However, those points are not on a  
lattice. If you want surface points on a lattice, you will have to  
write your own routines. Note that this is not particularly  
difficult. You could start from the non-lattice surface points and  
project them onto the nearest grid point. That only takes a few  
division and modulo operations.

> 1) Is it me, or is the eigenvectors routine either painfully slow  
> or broken?  I
> ran the code and nothing happened, so I waited, then I killed the  
> process and
> tried again.  After 5 minutes, I killed that process and  
> instrumented the code a
> little more closely.  The centering and orientation process took a  
> few seconds
> for insulin, which I could deal with, but when it came to the:
> 	diagonal, directions = LinearAlgebra.eigenvectors(inertia.array)
> line, the system, goes into a period intense activity with the CPU  
> meter pegged,
> but nothing happens for at least 10 minutes (I entered the commands  
> one-by-one
> from the command line to verify this is where it hangs, and it  
> is).  Is my
> install well and truly borked, or am I impatient?

The inertia tensor being a 3x3 matrix, the eigenvector calculation  
should take a few milliseconds only. If it hangs, there is an  
installation problem.

Actually, I have heard of such a problem on recent Linux systems that  
have GCC 4. Apparently GCC 4 does not compile some of the LAPACK code  
in Numeric correctly. As a workaround, you can reinstall Numeric with  
an additional compiler option:

	CFLAGS='-ffloat-store' python setup.py build

instead of the simple

	python setup.py build

However, this is reported to somewhat slow down all LAPACK routines.  
Perhaps there is a better fix by now.

> 2)  Could someone show or help me see how to convert this example  
> to work with a
>  non-protein molecule (such as the heme example in the database)?   
> Most of what
> I want to do with MMTK is small-molecule oriented, and the protein  
> class isn't
> quite what I want, but I need more than just a collection of atoms  
> and bonds.

Just replace

	protein = Protein('insulin')


	molecule = Molecule('heme')

and replace "protein" by "molecule" everywhere in the script. Then  
make up some reasonable graphics for that molecule, e.g.

	graphics = molecule.graphicsObjects(graphics_module = module,
                                                  			color = 'blue')

> One last question for today (gee, I didn't set out to be prolific),
> Does anyone have any working examples for the experimental MMTK- 
> Pymol bindings
> in 2.5?

There are three PyMOL plugins at


I have some more scripts, but they are quite specific to one of my  
projects, and they require specific data files and additional Python  

Konrad Hinsen
Laboratoire Léon Brillouin, CEA Saclay,
91191 Gif-sur-Yvette Cedex, France
Tel.: +33-1 69 08 79 25
Fax: +33-1 69 08 82 61
E-Mail: konrad.hinsen at cea.fr

More information about the mmtk mailing list