Thread view

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: goldenberg@...
Lab web page: http://www.biology.utah.edu/goldenberg

Hi David,
Regarding the first part of your question, the way to load a python
(not a PyMol) script is:
run axes.py
.. and not @axes.py. The latter is used for loading PyMol scripts
(.pml). You _can_ use python code in a .pml script, but then you
better, or in some cases have to, start with a slash (/) to let the
command parser know that there's python code coming.
Hope it helps,
Tsjerk
On Wed, Jun 11, 2008 at 12:10 AM, David Goldenberg
<goldenberg@...> wrote:
> 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: goldenberg@...
> Lab web page: http://www.biology.utah.edu/goldenberg
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://sourceforge.net/services/buy/index.php
> _______________________________________________
> PyMOL-users mailing list
> PyMOL-users@...
> https://lists.sourceforge.net/lists/listinfo/pymol-users
>
--
Tsjerk A. Wassenaar, Ph.D.
Junior UD (post-doc)
Biomolecular NMR, Bijvoet Center
Utrecht University
Padualaan 8
3584 CH Utrecht
The Netherlands
P: +31-30-2539931
F: +31-30-2537623

Thanks very much to Tsjerk and Carsten! I now understand how to load
python scripts and can go back to using MacPyMol. This does seem to be
a place where the GUI could be clarified. In MacPyMol, the run . . .
command in the File menu is apparently just used for pymol scripts,
while the command-line run command is specifically for python scripts.
In the Max-X11 hybrid, the menu command can apparently be used for
either type of script.
Now, could someone point me in the right direction (so to speak)
regarding translations of a molecule relative to the graphics reference
frame?
Thanks again,
David
Tsjerk Wassenaar wrote:
> Hi David,
>
> Regarding the first part of your question, the way to load a python
> (not a PyMol) script is:
>
> run axes.py
>
> .. and not @axes.py. The latter is used for loading PyMol scripts
> (.pml). You _can_ use python code in a .pml script, but then you
> better, or in some cases have to, start with a slash (/) to let the
> command parser know that there's python code coming.
>
> Hope it helps,
>
> Tsjerk
>
> On Wed, Jun 11, 2008 at 12:10 AM, David Goldenberg
> <goldenberg@...> wrote:
>> 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: goldenberg@...
>> Lab web page: http://www.biology.utah.edu/goldenberg
>>
>> -------------------------------------------------------------------------
>> Check out the new SourceForge.net Marketplace.
>> It's the best place to buy or sell services for
>> just about anything Open Source.
>> http://sourceforge.net/services/buy/index.php
>> _______________________________________________
>> PyMOL-users mailing list
>> PyMOL-users@...
>> https://lists.sourceforge.net/lists/listinfo/pymol-users
>>
>
>
>
--
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: goldenberg@...
Lab web page: http://www.biology.utah.edu/goldenberg