Thanks Tsjerk, When I run this script, I see:
PyMOL>pplanes selection, (sele) Selector-Error: Invalid Selection Name. ( selection and n. ca )<-- I have tried selecting just one "n and ca" in the pdb, tried selecting multiple "n and ca", tried a bunch of other selections, but it's not working. What am I supposed to be selecting in the pdb to make the script work? On Aug 25, 2011, at 11:28 AM, Tsjerk Wassenaar wrote: > Hi Adam, > > Here's an alternative script... The command is pplanes (peptide-planes): > > run triangles.py > pplanes selection[, color[, alpha[, state[, name]]]] > > Hope it helps, > > Tsjerk > > > On Thu, Aug 25, 2011 at 5:34 PM, 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 >> > > > > -- > Tsjerk A. Wassenaar, Ph.D. > > post-doctoral researcher > Molecular Dynamics Group > * Groningen Institute for Biomolecular Research and Biotechnology > * Zernike Institute for Advanced Materials > University of Groningen > The Netherlands > <triangles.py> 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 (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