This is a read-only mirror of pymolwiki.org
Difference between revisions of "Resicolor"
Jump to navigation
Jump to search
Philaltist (talk | contribs) |
Philaltist (talk | contribs) |
||
Line 4: | Line 4: | ||
<source lang="python"> | <source lang="python"> | ||
+ | #plugin contributed by Philippe Garteiser garteiserp@omrf.ouhsc.edu | ||
from Tkinter import * | from Tkinter import * | ||
from pymol import cmd | from pymol import cmd | ||
Line 19: | Line 20: | ||
'Please enter a selection', | 'Please enter a selection', | ||
parent=app.root) | parent=app.root) | ||
− | if selection: | + | if selection: # None is returned for user cancel |
cmd.select ('calcium','resn ca or resn cal') | cmd.select ('calcium','resn ca or resn cal') | ||
cmd.select ('acid','resn asp or resn glu or resn cgu') | cmd.select ('acid','resn asp or resn glu or resn cgu') | ||
Line 47: | Line 48: | ||
Here is the corresponding script file. Call it from your .pymolrc or from within pymol: "run resicolor.py". Then, issuing "resicolor" will apply the scheme. Selections are supported: "resicolor chain A" will apply the scheme only to chain A. | Here is the corresponding script file. Call it from your .pymolrc or from within pymol: "run resicolor.py". Then, issuing "resicolor" will apply the scheme. Selections are supported: "resicolor chain A" will apply the scheme only to chain A. | ||
<source lang="python"> | <source lang="python"> | ||
+ | #script contributed by Philippe Garteiser; garteiserp@omrf.ouhsc.edu | ||
from pymol import cmd | from pymol import cmd | ||
Revision as of 19:01, 10 April 2007
Hello !
Here is a small plugin to color proteins according to residue type. Copy this into a file saved as resicolor.py inside your plugins startup directory, and it should add itself to the plugins menu at the next pymol startup. The script version (accessible from command line) is presented below.
#plugin contributed by Philippe Garteiser garteiserp@omrf.ouhsc.edu
from Tkinter import *
from pymol import cmd
def __init__(self):
# Simply add the menu entry and callback
self.menuBar.addmenuitem('Plugin', 'command',
'resicolor',
label = 'resicolor',
command = lambda s=self : resicolor(s))
class resicolor:
def __init__(self,app):
import tkSimpleDialog
selection=tkSimpleDialog.askstring('resicolor',
'Please enter a selection',
parent=app.root)
if selection: # None is returned for user cancel
cmd.select ('calcium','resn ca or resn cal')
cmd.select ('acid','resn asp or resn glu or resn cgu')
cmd.select ('basic','resn arg or resn lys or resn his')
cmd.select ('nonpolar','resn met or resn phe or resn pro or resn trp or resn val or resn leu or resn ile or resn ala')
cmd.select ('polar','resn ser or resn thr or resn asn or resn gln or resn tyr')
cmd.select ('cys','resn cys or resn cyx')
cmd.select ('backbone','name ca or name n or name c or name o')
cmd.select ('none')
code={'acid' : 'red' ,
'basic' : 'blue' ,
'nonpolar': 'orange' ,
'polar' : 'green' ,
'cys' : 'yellow'}
cmd.do ('getchem')
cmd.select ('none')
for elem in code:
line='color '+code[elem]+','+elem+'&'+selection
print line
cmd.do (line)
word='color white,backbone &'+selection
print word
cmd.do (word) #Used to be in code, but looks like
#dictionnaries are accessed at random
Here is the corresponding script file. Call it from your .pymolrc or from within pymol: "run resicolor.py". Then, issuing "resicolor" will apply the scheme. Selections are supported: "resicolor chain A" will apply the scheme only to chain A.
#script contributed by Philippe Garteiser; garteiserp@omrf.ouhsc.edu
from pymol import cmd
def resicolor(selection='all'):
'''USAGE: resicolor <selection>
colors all or the given selection with arbitrary
coloring scheme.
'''
cmd.select ('calcium','resn ca or resn cal')
cmd.select ('acid','resn asp or resn glu or resn cgu')
cmd.select ('basic','resn arg or resn lys or resn his')
cmd.select ('nonpolar','resn met or resn phe or resn pro or resn trp or resn val or resn leu or resn ile or resn ala')
cmd.select ('polar','resn ser or resn thr or resn asn or resn gln or resn tyr')
cmd.select ('cys','resn cys or resn cyx')
cmd.select ('backbone','name ca or name n or name c or name o')
cmd.select ('none')
print selection
code={'acid' : 'red' ,
'basic' : 'blue' ,
'nonpolar': 'orange' ,
'polar' : 'green' ,
'cys' : 'yellow'}
cmd.do ('getchem')
cmd.select ('none')
for elem in code:
line='color '+code[elem]+','+elem+'&'+selection
print line
cmd.do (line)
word='color white,backbone &'+selection
print word
cmd.do (word) #Used to be in code, but looks like
#dictionnaries are accessed at random
cmd.hide ('everything','resn HOH')
cmd.extend ('resicolor',resicolor)