Hi,
I would like to make a figure that shows a set of coordinate axes
aligned in a particular way with respect to a molecule. I have found
the axes.py script (copied at the bottom of this message) on the PyMol
Wiki, but have run into the following problems:
1. I can't get the script to load and run properly in MacPymol. I get a
long string of error messages beginning with:
PyMOL>@axes.py
PyMOL>from pymol.cgo import *
PyMOL>from pymol import cmd
PyMOL>from pymol.vfont import plain
PyMOL>obj = [
Traceback (most recent call last):
File "/Applications/Molecular
Graphics/MacPyMOL.app/pymol/modules/pymol/parser.py", line 208, in parse
exec(layer.com2+"\n",self.pymol_names,self.pymol_names)
File "<string>", line 1
obj = [
^
SyntaxError: unexpected EOF while parsing
I can get the script to run with an old version (0.98) of the Mac-X11
hybrid. I can live with this, if necessary.
2. Once I have the axes and the molecule loaded, I would like to place a
particular atom at the origin and then rotate the molecule into a
particular orientation. I thought that I could do the first part by
using the translate command, by moving the molecule by amounts that
correspond to the negative of the initial coordinates of the atom of
interest. That is, if the initial coordinates (from the pdb file) are,
1,-2,2, it seems that if I do
translate [-1,2,-2]
I should move the molecule so that the atom is at the origin. But, this
doesn't happen; The molecule moves, but not along the expected axes.
There is clearly something about the coordinate system and the translate
command that I don't understand.
Any suggestions for how to go about this would be greatly appreciated!
David
----------------
The script:
# axes.py
from pymol.cgo import *
from pymol import cmd
from pymol.vfont import plain
# create the axes object, draw axes with cylinders coloured red, green,
#blue for X, Y and Z
obj = [
CYLINDER, 0., 0., 0., 10., 0., 0., 0.2, 1.0, 1.0, 1.0, 1.0, 0.0, 0.,
CYLINDER, 0., 0., 0., 0., 10., 0., 0.2, 1.0, 1.0, 1.0, 0., 1.0, 0.,
CYLINDER, 0., 0., 0., 0., 0., 10., 0.2, 1.0, 1.0, 1.0, 0., 0.0, 1.0,
]
# add labels to axes object (requires pymol version 0.8 or greater, I
# believe
cyl_text(obj,plain,[-5.,-5.,-1],'Origin',0.20,axes=[[3,0,0],[0,3,0],[0,0,3]])
cyl_text(obj,plain,[10.,0.,0.],'X',0.20,axes=[[3,0,0],[0,3,0],[0,0,3]])
cyl_text(obj,plain,[0.,10.,0.],'Y',0.20,axes=[[3,0,0],[0,3,0],[0,0,3]])
cyl_text(obj,plain,[0.,0.,10.],'Z',0.20,axes=[[3,0,0],[0,3,0],[0,0,3]])
# then we load it into PyMOL
cmd.load_cgo(obj,'axes')
--
Department of Biology
University of Utah
257 South 1400 East
Salt Lake City, UT 84112-0840
Telephone: (801) 581-3885
Fax: (801) 581-2174
E-mail: goldenb...@biology.utah.edu
Lab web page: http://www.biology.utah.edu/goldenberg