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

Reply via email to