I erased all of the spaces in the "blank" lines and now the script works. When
I erased them in line 14 then it found them in kine 38, etc. You may want to
update the script on the WIki to one without spaces.
I am trying to follow the example in the Wiki to make sure it works before I
try it on my pdb. However, when I run the command "bbPlane i. 4-10" I get a new
error:
PyMOL>bbPlane i. 4-10
Traceback (most recent call last):
File "/Volumes/Port 3/software/MacPyMOL.app/pymol/modules/pymol/parser.py",
line 250, in parse
File "bbPlane.py", line 110, in bbPlane
newName = cmd.get_unused_name("backbonePlane")
AttributeError: 'module' object has no attribute 'get_unused_name'
On Aug 25, 2011, at 11:09 AM, Jason Vertrees wrote:
> Hi Adam,
>
> I just copy/pasted the script you attached in your email and it worked
> fine. There are, however two spaces on line 14--maybe the parser
> thinks it found a block indent? Try erasing line 14 (the line
> following "from chempy import cpv") and re-running the script.
>
> Cheers,
>
> -- Jason
>
> On Thu, Aug 25, 2011 at 11:34 AM, H. Adam Steinberg <[email protected]>
> wrote:
>> Hi all,
>> Can anyone help me with a problem that I am having trying to run a python
>> script?
>> I am trying to run the bbPlane script from the PyMOLWiki
>> <http://www.pymolwiki.org/index.php/BbPlane>
>> I have copied the script from the web page, to a plain text document, saved
>> it as "bbPlane.py" but when I run it I get:
>> ------------
>> PyMOL>run bbPlane.py
>> Traceback (most recent call last):
>> File "/Volumes/Port
>> 3/software/MacPyMOL.app/pymol/modules/pymol/parser.py", line 332, in parse
>> File "/Volumes/Port
>> 3/software/MacPyMOL.app/pymol/modules/pymol/parsing.py", line 455, in
>> run_file
>> File "bbPlane.py", line 14
>>
>> ^
>> SyntaxError: invalid syntax
>> -------------
>> script is here:
>>
>> #
>> # -- bbPlane.py - draws a CGO plane across the backbone atoms of
>> # neighboring amino acids
>> #
>> # Author: Jason Vertrees, 06/2010
>> # Modified by Thomas Holder, 06/2010
>> # Modified by Blaine Bell, 08/2011
>> # Copyright (C) Schrodinger
>> # Open Source License: MIT
>> #
>> from pymol.cgo import * # get constants
>> from pymol import cmd, stored
>> from chempy import cpv
>>
>> def bbPlane(objSel='(all)', color='white', transp=0.0):
>> """
>> DESCRIPTION
>>
>> Draws a plane across the backbone for a selection
>>
>> ARGUMENTS
>>
>> objSel = string: protein object or selection {default: (all)}
>>
>> color = string: color name or number {default: white}
>>
>> transp = float: transparency component (0.0--1.0) {default: 0.0}
>>
>> NOTES
>>
>> You need to pass in an object or selection with at least two
>> amino acids. The plane spans CA_i, O_i, N-H_(i+1), and CA_(i+1)
>> """
>> # format input
>> transp = float(transp)
>> stored.AAs = []
>> coords = dict()
>>
>> # need hydrogens on peptide nitrogen
>> cmd.h_add('(%s) and n. N' % objSel)
>>
>> # get the list of residue ids
>> for obj in cmd.get_object_list(objSel):
>> sel = obj + " and (" + objSel + ")"
>> for a in cmd.get_model(sel + " and n. CA").atom:
>> key = '/%s/%s/%s/%s' % (obj,a.segi,a.chain,a.resi)
>> stored.AAs.append(key)
>> coords[key] = [a.coord,None,None]
>> for a in cmd.get_model(sel + " and n. O").atom:
>> key = '/%s/%s/%s/%s' % (obj,a.segi,a.chain,a.resi)
>> if key in coords:
>> coords[key][1] = a.coord
>> for a in cmd.get_model("(hydro or n. CD) and nbr. (" + sel + " and
>> n. N)").atom:
>> key = '/%s/%s/%s/%s' % (obj,a.segi,a.chain,a.resi)
>> if key in coords:
>> coords[key][2] = a.coord
>>
>> # need at least two amino acids
>> if len(stored.AAs) <= 1:
>> print "ERROR: Please provide at least two amino acids, the
>> alpha-carbon on the 2nd is needed."
>> return
>>
>> # prepare the cgo
>> obj = [
>> BEGIN, TRIANGLES,
>> COLOR,
>> ]
>> obj.extend(cmd.get_color_tuple(color))
>>
>> for res in range(0, len(stored.AAs)-1):
>> curIdx, nextIdx = str(stored.AAs[res]), str(stored.AAs[res+1])
>>
>> # populate the position array
>> pos = [coords[curIdx][0], coords[curIdx][1], coords[nextIdx][2],
>> coords[nextIdx][0]]
>>
>> # if the data are incomplete for any residues, ignore
>> if None in pos:
>> print 'peptide bond %s -> %s incomplete' % (curIdx, nextIdx)
>> continue
>>
>> if cpv.distance(pos[0], pos[3]) > 4.0:
>> print '%s and %s not adjacent' % (curIdx, nextIdx)
>> continue
>>
>> # need to order vertices to generate correct triangles for plane
>> # modified/added by B.Bell 8/18/2011
>> sumpos = cpv.add(pos[0], cpv.add(pos[1], cpv.add(pos[2], pos[3])))
>> centerpos = [ sumpos[0]/4., sumpos[1]/4., sumpos[2]/4. ]
>> angles = [ [ 0., 0 ] ]
>> s00 = cpv.sub(pos[0], centerpos)
>> for i in range(1,4):
>> s = cpv.sub(pos[i], centerpos)
>> ang = cpv.get_angle(s00, s)
>> angles.append( [ ang, i] )
>> def sortfirst(a, b):
>> return cmp(a[0], b[0])
>> angles.sort(sortfirst)
>> verts = map(lambda x: x[1], angles)
>> vorder = [ verts[0], verts[1], verts[2],
>> verts[1], verts[3], verts[2] ]
>> # fill in the vertex data for the triangles;
>> for i in vorder:
>> obj.append(VERTEX)
>> obj.extend(pos[i])
>>
>> # finish the CGO
>> obj.append(END)
>>
>> # update the UI
>> newName = cmd.get_unused_name("backbonePlane")
>> cmd.load_cgo(obj, newName)
>> cmd.set("cgo_transparency", transp, newName)
>>
>>
>> cmd.extend("bbPlane", bbPlane)
>>
>> artforscience
>> H. Adam Steinberg
>> Artist, Scientist, Developmental Editor
>> www.artforscience.com
>> 7904 Bowman Rd
>> Lodi, WI 53555
>> 608/729-5944
>>
>> ------------------------------------------------------------------------------
>> EMC VNX: the world's simplest storage, starting under $10K
>> The only unified storage solution that offers unified management
>> Up to 160% more powerful than alternatives and 25% more efficient.
>> Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
>> _______________________________________________
>> PyMOL-users mailing list ([email protected])
>> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
>> Archives: http://www.mail-archive.com/[email protected]
>>
>
>
>
> --
> Jason Vertrees, PhD
> PyMOL Product Manager
> Schrodinger, LLC
>
> (e) [email protected]
> (o) +1 (603) 374-7120
H. Adam Steinberg
7904 Bowman Rd
Lodi, WI 53555
608/592-2366
------------------------------------------------------------------------------
EMC VNX: the world's simplest storage, starting under $10K
The only unified storage solution that offers unified management
Up to 160% more powerful than alternatives and 25% more efficient.
Guaranteed. http://p.sf.net/sfu/emc-vnx-dev2dev
_______________________________________________
PyMOL-users mailing list ([email protected])
Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users
Archives: http://www.mail-archive.com/[email protected]