# [Chimera-users] Visualizing inertia axes as arrows

Eric Pettersen pett at cgl.ucsf.edu
Fri Jul 30 11:21:10 PDT 2010

```On Jul 28, 2010, at 5:30 PM, Jozef Lewandowski wrote:

> Hi everybody,
> Lately, I have been using "measure inertia" command a lot. For my
> purposes I needed to visualize the inertia axes as arrows instead of
> the
> default ellipsoid. I used the vectors from the reply log to  write
> BILD
> files defining the arrows for the inertia axes.
> Is there an easy way to script just that? Or differently, is there an
> easy way to visualize as arrows inertia axes for peptide planes in a
> protein?

Hi Jozef,
Let's say that the atoms you want to base the axes on are selected
then:

from chimera.selection import currentAtoms, numpyArrayFromAtoms
coords = numpyArrayFromAtoms(currentAtoms())

would give you a numpy array of the atoms coordinates.  Then:

from numpy.linalg import svd
centroid = coords.mean(0)
centered = coords - centroid
ignore, vals, vecs = svd(centered)

would give you the eigenvalues, eigenvectors, and centroid of the
selection.  BTW, the above was gleaned from nosing around
StructMeasure/__init__.py.  Similarly, by nosing around the new Metal
Geometry tool (specifically MetalGeom/gui.py, available only in the
daily build), we find some code for constructing BILD arrows on the fly:

bildString = ".color orange\n"
for val, vec in zip(vals, vecs):
bildString += ".arrow %g %g %g %g %g %g .1 .2 .9\n" % (
centroid[0], centroid[1], centroid[2],
centroid[0] + val[0] * vec[0],
centroid[1] + val[1] * vec[1],
centroid[2] + val[2] * vec[2])
from StringIO import StringIO
bild = StringIO(bildString)
mol = currentAtoms()[0].molecule
from chimera import openModels
openModels.open(bild, type="Bild", identifyAs="inertial axes",
sameAs=mol)

Putting all the above in a .py file and opening it in Chimera will
show the inertial axes on the display and list them as a model in the
Model Panel.

--Eric

Eric Pettersen
UCSF Computer Graphics Lab
http://www.cgl.ucsf.edu

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20100730/9d557202/attachment.html>
```