Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help
Special pages
SBGrid Resources
SBGrid Consortium
SBGrid Data Bank
Software Webinars
PyMOL Webinar
PyMOL Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Helicity check
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
'''helicity_check''' shows the evolution of O—N distances over an amino acid sequence See for further info: [http://www.proteinscience.org/cgi/content/abstract/5/8/1687 "Models for the 3(10)-helix/coil, pi-helix/coil, and alpha-helix/3(10)-helix/coil transitions in isolated peptides"]. ''Protein Sci'' ROHL and DOIG 5 (8) 1687. Uses: *in the pymol console: >run pymol_helicity_check.py ----> select some consecutive amino acids - this is nicely done with the Display->Sequence tool >helicity_check() *installing helicity_check copy pymol_helicity_check.py in $PYMOL_INSTALL_DIR/modules/pmg_tk/startup launch Pymol: you now have a new option in the Plugin menu helicity_check uses [http://www.gnuplot.info gnuplot] to display its results. As a consequence gnuplot needs to be installed. This plugin was tested on linux only, it might need some modifications to run on other OSes. (hints: launching gnuplot and path to dumpfile) <source lang="python"> # pymol_helicity_check.py # Copyright (c) 2006-2007 Julien Lefeuvre <lefeuvrejulien@yahoo.fr> # """ Pymol plugin for checking helicity type helicity_check() takes as input a selection ('sele' by default) of at least 5 amino acids and computes the distances between O(i) - N(i+3) O(i) - N(i+4) O(i) - N(i+5) See for further info: Protein Sci ROHL and DOIG 5 (8) 1687 'Models for the 3(10)-helix/coil, pi-helix/coil, and alpha-helix/3(10)-helix/coil transitions in isolated peptides.' uses: *in the pymol console: >run pymol_helicity_check.py ----> select some consecutive amino acids - this is nicely done with the Display->Sequence tool >helicity_check() *installing helicity_check copy pymol_helicity_check.py in $PYMOL_INSTALL_DIR/modules/pmg_tk/startup launch Pymol: you now have a new option in the Plugin menu helicity_check uses gnuplot (http://www.gnuplot.info) to display its results As a consequence gnuplot needs to be installed. This plugin was tested on linux only, it my need some modifications to run on other OSes (hints: launching gnuplot and path to dumpfile) """ __author__ = "Julien Lefeuvre <lefeuvrejulien@yahoo.fr>" __version__ = "1.0" __date__ = "2007-04-02" __copyright__ = "Copyright (c) 2007 %s. All rights reserved." % __author__ __licence__ = "BSD" from pymol import cmd from math import sqrt import sys import os import subprocess import time def __init__(self): """init function in order to have a nice menu option in Pymol""" self.menuBar.addmenuitem('Plugin', 'command', 'Helicity Check', label='Helicity Check', command = lambda: helicity_check()) class Residue(object): def __init__(self): self.name=None self.index=None self.Ocoord=None self.Ncoord=None def calc_distON(Ocoord,Ncoord): """return the distance between 2 atoms given their coordinates""" sum = 0 for o, n in zip(Ocoord, Ncoord): sum += (o - n)**2 return sqrt(sum) def helicity_check(selection='sele'): """calcultate distance O[res i]-N[res i+3] O[res i]-N[res i+4] O[res i]-N[res i+5] """ seq_model = cmd.get_model(selection) #get info from selection res_lim = seq_model.get_residues() if len(res_lim)<5: sys.stderr.write("\nPlease select at least 5 residues\n") return atom_list = seq_model.atom res_data=[] for start,end in res_lim: #extract the data we are interested in res=Residue() for atom in atom_list[start:end]: if atom.name == 'N': res.name = atom.resn res.index = atom.resi res.Ncoord = atom.coord elif atom.name == 'O': res.Ocoord = atom.coord if res.Ocoord and res.Ncoord and res.name and res.index: res_data.append(res) else: sys.stderr.write("\nPlease select complete protein residues\n") return res_list = [int(res.index) for res in res_data] if res_list != range(res_list[0], res_list[-1]+1): sys.stderr.write("\nPlease select a unbrocken residue sequence\n") return distON3 = [] distON4 = [] distON5 = [] distONs = [distON3, distON4, distON5] for i,res in enumerate(res_data[:-5]): #distances calculations resis = res_data[i+3:i+6] for resi, distONi in zip(resis, distONs): distONi.append(calc_distON(res.Ocoord, resi.Ncoord)) dump = os.tmpnam()+'.dat' dumpfile = file(dump, 'w') sys.stdout.write('\n#Distances O(i)---N(i+n)\n' '#ResNum , d(O(i)-N(i+3)) , d(O(i)-N(i+4)) , d(O(i)-N(i+4))\n') for i, d3, d4, d5 in zip(res_list, distON3, distON4, distON5): #writing console output sys.stdout.write( ' %i , %f , %f , %f \n'%(i, d3, d4, d5)) #writing data to a dump file for use by gnuplot dumpfile.write( ' %i %f %f %f \n'%(i, d3, d4, d5)) dumpfile.flush() #launch a gnuplot window to show the distances gnuplotcmd = subprocess.Popen(['/usr/bin/gnuplot'], shell=True, stdin=subprocess.PIPE) gnuplotcmd.stdin.write('set autoscale\n') gnuplotcmd.stdin.write("plot " "'%s' using 1:2 title 'd(O(i)-N(i+3))' with lines, " "'%s' using 1:3 title 'd(O(i)-N(i+4))' with lines, " "'%s' using 1:4 title 'd(O(i)-N(i+5))' with lines\n'" % (dump, dump, dump)) time.sleep(3) dumpfile.close() os.remove(dump) </source> ==Download== [[Media:Helicity_check-1.0.tar.zip|Helicity_check-1.0.tar.zip]] [[Category:Plugins]] [[Category:Script_Library|Helicity Check]] [[Category:Structural_Biology_Scripts]]
Summary:
Please note that all contributions to PyMOL Wiki are considered to be released under the GNU Free Documentation License 1.2 (see
PyMOL Wiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Helicity check
Add topic