From: Troels E. L. <tl...@gm...> - 2011-08-24 21:21:36
|
Hi. I was very happy to find a post how to easy install pymol 1.4 from source on windows. 1) Install python, 2.5, or 2.6 or 2.7 for windows. 2) Download appropriate installer from: http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymol Select according to your python version. 3) Run it 4) PyMOL is now installed in: C:\Python2X\PyMOL A) C:\Python2X\PyMOL\PDB_file.reg should be edited in a text editor, to match your python version. Run it. B) Pymol is started by clicking C:\Python27\PyMOL\pymol.cmd which executes python on C:\Python27\PyMOL\pymol-launch.py Happy pymoling. Best Troels |
From: Troels E. L. <tl...@gm...> - 2011-08-24 21:52:38
|
After some tries, I found that that the .reg file should be changed a little. Then .pdb files gets icon and gets opened by pymol.cmd C:\Python2X\PyMOL\PDB_file.reg REGEDIT4 [-HKEY_CLASSES_ROOT\.pdb] [HKEY_CLASSES_ROOT\.pdb] @="PDB.File" "Content Type"="chemical/x-pdb" [-HKEY_CLASSES_ROOT\PDB.File] [HKEY_CLASSES_ROOT\PDB.File] @="PDB File" [HKEY_CLASSES_ROOT\PDB.File\DefaultIcon] @="C:\\Python27\\PyMOL\\PyMOL.exe" [HKEY_CLASSES_ROOT\PDB.File\Shell] @="" [HKEY_CLASSES_ROOT\PDB.File\Shell\open] [HKEY_CLASSES_ROOT\PDB.File\Shell\open\command] @="\"C:\\Python27\\PyMOL\\PyMOL.cmd\" %*" [-HKEY_CLASSES_ROOT\pdb_auto_file] [HKEY_CLASSES_ROOT\pdb_auto_file] @="PDB File" [HKEY_CLASSES_ROOT\pdb_auto_file\DefaultIcon] @="C:\\Python27\\PyMOL\\PyMOL.exe" [HKEY_CLASSES_ROOT\pdb_auto_file\Shell] @="" [HKEY_CLASSES_ROOT\pdb_auto_file\Shell\open] [HKEY_CLASSES_ROOT\pdb_auto_file\Shell\open\command] @="\"C:\\Python27\\PyMOL\\PyMOL.cmd\" %*" 2011/8/24 Troels Emtekær Linnet <tl...@gm...> > Hi. > > I was very happy to find a post how to easy install pymol 1.4 from source > on windows. > > 1) Install python, 2.5, or 2.6 or 2.7 for windows. > 2) Download appropriate installer from: > http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymol Select according to > your python version. > 3) Run it > 4) PyMOL is now installed in: C:\Python2X\PyMOL > > A) C:\Python2X\PyMOL\PDB_file.reg should be edited in a text editor, to > match your python version. Run it. > B) Pymol is started by clicking C:\Python27\PyMOL\pymol.cmd which > executes python on C:\Python27\PyMOL\pymol-launch.py > > Happy pymoling. > > Best > Troels > |
From: Michael L. <mgl...@gm...> - 2011-08-25 13:24:11
|
I don't know what the current stance on such things is, and Schrodinger's acquisition of PyMOL might have changed things, but I remember two very clear messages from Warren relating to Windows compilation. I'd read these and think about them pretty carefully before you go out of your way to do the seemingly obvious thing and make Windows compilation easier. The first is from 2007: http://www.mail-archive.com/pym...@li.../msg05696.html > > The goal is > > to produce a Pymol that uses native Windows graphics, not one > > that requires X11. > > David, > > Please note that the goal behind Open-Source PyMOL (as maintained by DeLano > Scientific LLC) is to enable compilation under open-source operating > systems, and primarily, Linux with X11/GLUT. It not our current intent to > support, assist, or encourage native compilation of PyMOL open-source code > on closed-source operating systems, despite the fact that such compilation > is deliberately permitted under the unrestrictive open-source license terms. > > An open-source version targeting native Windows (via any means) would > necessarily comprise a fork of the project. Since such a fork would provide > a realistic alternative to DeLano Scientific LLC's precompiled incentive > builds for Windows, it could jeopardize our ability to continue funding > development of the open-source code. > > If PyMOL revenues were imperiled, then to make ends meet, DeLano Scientific > LLC would have no choice but to redirect development efforts into > proprietary assets, significantly curtailing participation in the > unrestricted open-source project. At the very least, our unrestrictive > open-source license would have to be restricted in future versions, thus > defeating one of the primary aims of the project. > > We don't want that... do you? > > If not, then proceed down this path only with due care and consideration of > the possible consequences. Given enough effort, native compilation is > certainly do-able, but it is not intended to be easy... nor commonplace. > > To the extent that you achieve your goal, please do think twice before > publicly sharing the fruits and/or details of that success. We would > naturally prefer that such accomplishments remain private, since the future > of PyMOL could well depend upon it. > > With great freedom comes great responsibility! ;) > > Warren L. DeLano > DeLano Scientific LLC The second is from 2009 http://www.mail-archive.com/pym...@li.../msg06761.html > Bryn & others, > > By design, the PyMOL Open-Source Code only targets Linux and other 100% > open-source operating systems (e.g. FreeBSD). So to compile Open-Source > PyMOL on Mac OS X or Microsoft Windows, you need to pretend you are > running Linux by making use of X11 and the various GNU-compatible > free-software porting systems (e.g. Fink, GNU-Darwin, Cygwin, etc.). > > Also by design, the current precompiled PyMOL builds for proprietary > operating systems (i.e. Microsoft Windows & Mac OS X) are themselves > proprietary products offered by DeLano Scientific LLC. > > In other words, if you are willing to pay to use a proprietary operating > system, then we feel you should be equally willing to support the PyMOL > project financially via paid subscription access to our current builds > for proprietary platforms. That, indeed, is how we make ends meet while > still keeping the PyMOL code open-source. > > For those who are not able to support the project financially, well, > there are still plenty of older PyMOL builds for Mac & Windows floating > around the internet. They just don't include the latest fixes & > features. Of course, without a subscription, you don't have access to > all the documentation -- only the public portion ( http://pymolwiki.org > ). > > Please visit http://pymol.org/funding.html if you wish to purchase a > subscription. > > Cheers, > Warren > > PS. FREE builds for educational-use-only can be had via > http://pymol.org/educational.html 2011/8/24 Troels Emtekær Linnet <tl...@gm...> > After some tries, I found that that the .reg file should be changed a > little. > Then .pdb files gets icon and gets opened by pymol.cmd > > C:\Python2X\PyMOL\PDB_file.reg > > REGEDIT4 > > [-HKEY_CLASSES_ROOT\.pdb] > > [HKEY_CLASSES_ROOT\.pdb] > @="PDB.File" > "Content Type"="chemical/x-pdb" > > [-HKEY_CLASSES_ROOT\PDB.File] > > [HKEY_CLASSES_ROOT\PDB.File] > @="PDB File" > > [HKEY_CLASSES_ROOT\PDB.File\DefaultIcon] > @="C:\\Python27\\PyMOL\\PyMOL.exe" > > [HKEY_CLASSES_ROOT\PDB.File\Shell] > @="" > > [HKEY_CLASSES_ROOT\PDB.File\Shell\open] > > [HKEY_CLASSES_ROOT\PDB.File\Shell\open\command] > @="\"C:\\Python27\\PyMOL\\PyMOL.cmd\" %*" > > [-HKEY_CLASSES_ROOT\pdb_auto_file] > > [HKEY_CLASSES_ROOT\pdb_auto_file] > @="PDB File" > > [HKEY_CLASSES_ROOT\pdb_auto_file\DefaultIcon] > @="C:\\Python27\\PyMOL\\PyMOL.exe" > > [HKEY_CLASSES_ROOT\pdb_auto_file\Shell] > @="" > > [HKEY_CLASSES_ROOT\pdb_auto_file\Shell\open] > > [HKEY_CLASSES_ROOT\pdb_auto_file\Shell\open\command] > @="\"C:\\Python27\\PyMOL\\PyMOL.cmd\" %*" > > > > 2011/8/24 Troels Emtekær Linnet <tl...@gm...> > >> Hi. >> >> I was very happy to find a post how to easy install pymol 1.4 from source >> on windows. >> >> 1) Install python, 2.5, or 2.6 or 2.7 for windows. >> 2) Download appropriate installer from: >> http://www.lfd.uci.edu/~gohlke/pythonlibs/#pymol Select according to >> your python version. >> 3) Run it >> 4) PyMOL is now installed in: C:\Python2X\PyMOL >> >> A) C:\Python2X\PyMOL\PDB_file.reg should be edited in a text editor, to >> match your python version. Run it. >> B) Pymol is started by clicking C:\Python27\PyMOL\pymol.cmd which >> executes python on C:\Python27\PyMOL\pymol-launch.py >> >> Happy pymoling. >> >> Best >> Troels >> > > > > ------------------------------------------------------------------------------ > 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 (PyM...@li...) > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > Archives: http://www.mail-archive.com/pym...@li... > -- Michael Lerner, Ph.D. IRTA Postdoctoral Fellow Laboratory of Computational Biology NIH/NHLBI 5635 Fishers Lane, Room T909, MSC 9314 Rockville, MD 20852 (UPS/FedEx/Reality) Bethesda MD 20892-9314 (USPS) |
From: H. A. S. <ad...@st...> - 2011-08-25 15:47:59
|
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 |
From: Jason V. <jas...@sc...> - 2011-08-25 16:09:29
|
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 <ad...@st...> 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 (PyM...@li...) > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > Archives: http://www.mail-archive.com/pym...@li... > -- Jason Vertrees, PhD PyMOL Product Manager Schrodinger, LLC (e) Jas...@sc... (o) +1 (603) 374-7120 |
From: Tsjerk W. <ts...@gm...> - 2011-08-25 16:29:04
Attachments:
triangles.py
|
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 <ad...@st...> 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 (PyM...@li...) > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > Archives: http://www.mail-archive.com/pym...@li... > -- 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 |
From: H. A. S. <ad...@st...> - 2011-08-25 16:59:16
|
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 <ad...@st...> 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 (PyM...@li...) >> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users >> Archives: http://www.mail-archive.com/pym...@li... >> > > > > -- > 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 |
From: H. A. S. <ad...@st...> - 2011-08-25 16:42:01
|
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 <ad...@st...> 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 (PyM...@li...) >> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users >> Archives: http://www.mail-archive.com/pym...@li... >> > > > > -- > Jason Vertrees, PhD > PyMOL Product Manager > Schrodinger, LLC > > (e) Jas...@sc... > (o) +1 (603) 374-7120 H. Adam Steinberg 7904 Bowman Rd Lodi, WI 53555 608/592-2366 |
From: Jason V. <jas...@sc...> - 2011-08-25 16:47:48
|
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 <ad...@st...> 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 <ad...@st...> 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 (PyM...@li...) >>> Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users >>> Archives: http://www.mail-archive.com/pym...@li... >>> >> >> >> >> -- >> Jason Vertrees, PhD >> PyMOL Product Manager >> Schrodinger, LLC >> >> (e) Jas...@sc... >> (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) Jas...@sc... (o) +1 (603) 374-7120 |