Hi Adam, I updated the wiki page to remove the spurious spaces--good idea.
> 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' This sounds like you need to update your version of PyMOL. What version are you using? Cheers, -- Jason On Thu, Aug 25, 2011 at 12:41 PM, H. Adam Steinberg <a...@steinbergs.us> wrote: > 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 <a...@steinbergs.us> >> 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 (PyMOL-users@lists.sourceforge.net) >>> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users >>> Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net >>> >> >> >> >> -- >> Jason Vertrees, PhD >> PyMOL Product Manager >> Schrodinger, LLC >> >> (e) jason.vertr...@schrodinger.com >> (o) +1 (603) 374-7120 > > H. Adam Steinberg > 7904 Bowman Rd > Lodi, WI 53555 > 608/592-2366 > > -- Jason Vertrees, PhD PyMOL Product Manager Schrodinger, LLC (e) jason.vertr...@schrodinger.com (o) +1 (603) 374-7120 ------------------------------------------------------------------------------ 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 (PyMOL-users@lists.sourceforge.net) Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users Archives: http://www.mail-archive.com/pymol-users@lists.sourceforge.net