[MMTK] clarification on model=calpha

Konrad Hinsen hinsen at cnrs-orleans.fr
Mon Mar 16 20:19:03 UTC 2009

On 16.03.2009, at 10:31, Edvin Fuglebakk wrote:

> The assumptions I wanted to check:
> - MMTK will read the three-letter side-chain codes from pdb-files  
> and assign the corresponding masses to the resiude modeled at the  
> alpha-carbon position, even if the pdb-file does not contain the  
> coordinates of that side chain.

Yes. In fact, a calpha model consists of special atom types, which  
are defined in the MMTK database to have the mass of the residues. No  
information about the residue is taken from the PDB file other than  
its three-letter code.

> - The normal mode analysis using the CalphaForceField depend only  
> on the positions of the alpha carbons and the masses of the  
> corresponding residues.

Yes. Once you build a calpha model, MMTK doesn't care about the  
positions of the other atoms.

> - The normal mode analysis using the DeformationForceField depend  
> only on the positions of the alpha carbons.

If you use EnergeticModes, yes. If you use VibrationalModes, the  
masses enter as well.

> I ran this script on pdb-files contaning all atom records in the  
> pdb-files  and only the alpha carbon records respectively ( grep  
> ^ATOM and grep ^ATOM.*CA ).
> Regarding the first two assumptions mentioned above:
> - I found the masses and positions of the models to be the same for  
> both kinds of pdb-files
> - I found the normal modes to be somewhat different between the two.
> It will be much appreciated if anyone can clarify this (less  
> appreciated if it involves pointing out stupid mistakes in my  
> script, but appreciated nontheless :-) ).

There is indeed a mistake in your script, but it is far from stupid.  
It is in fact quite a subtle one.

If you take a closer look at the normal mode vector elements that  
cause the big differences, you will see that they simply differ in  
sign. Normal mode vectors are defined only up a global sign factor,  
so the two mode vectors are in fact equivalent, even though their  
elements are not identical.

The sign of each normal mode vector is chosen by the LAPACK  
eigenvector routine used by MMTK for normal mode calculations. Since  
the sign doesn't matter, no particular effort is made for  
consistency. The tiniest difference in the input matrix (caused for  
example by a different order of summation in the energy terms due to  
a different arrangement of the atoms in memory) can change the sign.  
Once we are at it, such tiny differences can also influence the  
particular combinations of degenerate mode vectors, such as you see  
for the three translational and the three rotational modes of near- 
zero frequency. A proper comparison of normal mode vectors needs to  
take all of this into account.

BTW, you can speed up your code significantly by using array  
operations in the mode comparisons, and by not calculating the modes  

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: hinsen at cnrs-orleans.fr

More information about the mmtk mailing list