Tony,

        In order to enter multi-line Python code on the command line, you
need to use explicit end-of-line continuations.  Otherwise, PyMOL won't know
where your Python code stops and PyMOL commands again begin.

from pymol.cgo import *
from pymol import cmd

set cgo_sphere_quality, 3

def cgo_sphere(x,y,z,r,name="cgo_sphere"): \
    # Create a CGO object \
    obj = [ \
     SPHERE, float(x), float(y), float(z), float(r) \
    ] \
    # Load it into PyMOL \
    cmd.load_cgo(obj,name) 

# Add to PyMOL command language
cmd.extend("cgo_sphere",cgo_sphere)

# end Python, begin PYMOL commands

cgo_sphere 0,0,0,500,test

--

For example, I can paste the above directly into the PyMOL command line (on
win32), in order to get a sphere on the screen.

A better alternative it to simply put all of that Python code into a ".py"
file and "run" it from within PyMOL.

NOTE: PyMOL doesn't currently render large and small objects together very
efficiently, and there's precious little that you can do about it at the
present time.  Increasing hash_max won't help, though decreasing it can give
a modest gain in performance.  Sticking exclusively to CPK can also help.

Cheers,
Warren

--
mailto:war...@delanoscientific.com
Warren L. DeLano, Ph.D.
Principal Scientist
DeLano Scientific LLC
Voice (650)-346-1154 
Fax   (650)-593-4020
  

> -----Original Message-----
> From: pymol-users-ad...@lists.sourceforge.net 
> [mailto:pymol-users-ad...@lists.sourceforge.net] On Behalf Of 
> Tony Giannetti
> Sent: Monday, May 10, 2004 12:25 PM
> To: pymol-users@lists.sourceforge.net
> Subject: [PyMOL] Creating cell surface
> 
> Hey Fellow PyMolers,
>     I should be able to figure this out but I simply haven't 
> after much fiddling and googling.  I'm trying to create a 
> cell surface for a cover figure and in Molscript I usually 
> did this by making a PDF file with a single atom, rendering 
> it in CPK, and then blowing its atom_radius way up to several 
> thousand angstroms to create a slightly curved surface on 
> which molecules could be positioned.
> 
> I'm trying this in PyMol and can't figure out the command sequence.
> Basically, how do I alter the radius for a single atom, 
> especially because I don't want all atoms I draw as a surface 
> to have the same radius?
> 
> Alternatively I've been trying to do this with the CGO 
> utility using one of Gareth's scripts I found on the web:
> 
> from pymol.cgo import *
> from pymol import cmd
> 
> def cgo_sphere(x,y,z,r,name="cgo_sphere"):
> 
>     # Create a CGO object
>     obj = [
>         SPHERE, float(x), float(y), float(z), float(r)
>     ]
> 
>     # Load it into PyMOL
>     cmd.load_cgo(obj,name)
> 
> # Add to PyMOL API
> cmd.extend("cgo_sphere",cgo_sphere)
> 
> 
> But in adding these lines sequentially to the PyMol command 
> line, or running it as a script, it fails at:
> 
> def cgo_sphere(x,y,z,r,name="cgo_sphere"):
> 
> and I get the following error message
> 
> def cgo_sphere(x,y,z,r,name="cgo_sphere"):
> Traceback (most recent call last):
>   File
> "/Users/delwarl/pymol/products/MacPyMOL.app/pymol/modules/pymo
> l/parser.py",
> line 144, in parse
>     exec(com2[nest]+"\n",pymol_names,pymol_names)
>   File "<string>", line 1
>      def cgo_sphere(x,y,z,r,name="cgo_sphere"):
>                                                ^
>  SyntaxError: unexpected EOF while parsing
> 
> 
> Is there some other way the script is supposed to be used. . 
> .I'm using
> MacPyMol 0.95.
> 
> Thanks for any tips/help.
>         Tony
> 
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by Sleepycat Software
> Learn developer strategies Cisco, Motorola, Ericsson & Lucent 
> use to deliver
> higher performing products faster, at low TCO.
> http://www.sleepycat.com/telcomwpreg.php?From=osdnemail3
> _______________________________________________
> PyMOL-users mailing list
> PyMOL-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/pymol-users
> 



Reply via email to