|
From: Ezequiel P. <za...@SL...> - 2001-11-15 01:43:19
|
Hello people,
This is a labeling wizard. It allows you to click
atoms and have a label show up near the atom position.
If the atom is a C-alpha the label is slighly
different. More info is shown in the "prompt" area.
To use it, put the attached file in
..../pymol/modules/pymol/wizard/label.py
and from within pymol type "wizard label"
Comments?
Have fun,
Zac
########################
#### file: label.py
########################
#
# Author: Ezequiel Panepucci
# Last revision: 2001-11-14
#
from pymol.wizard import Wizard
from pymol import cmd
import pymol
class Label(Wizard):
atom=None
messages=1
labeling=1
obj_name=None
def get_prompt(self):
self.prompt = []
if (not self.messages):
return ['']
if (self.atom == None):
self.prompt = ['Click atoms...']
else:
if self.atom.chain == '':
self.prompt.append( '%s %s %s %s B = %.2f XYZ = %.3f %.3f %.3f' %
(self.obj_name,
self.atom.resn,
self.atom.resi,
self.atom.name,
self.atom.b,
self.atom.coord[0],
self.atom.coord[1],
self.atom.coord[2]) )
else:
self.prompt.append('%s %s %s%s %s B = %.2f XYZ = %.3f %.3f %.3f' %
(self.obj_name,
self.atom.resn,
self.atom.chain,
self.atom.resi,
self.atom.name,
self.atom.b,
self.atom.coord[0],
self.atom.coord[1],
self.atom.coord[2]) )
return self.prompt
def toggle_messages(self):
self.messages = not self.messages
def toggle_labeling(self):
self.labeling = not self.labeling
def get_panel(self):
return [
[ 1, 'Labeling',''],
[ 2, 'Toggle add/erase','cmd.get_wizard().toggle_labeling()'],
[ 2, 'Toggle messages','cmd.get_wizard().toggle_messages()'],
[ 2, 'Clear All','cmd.label()'],
[ 2, 'Done','cmd.set_wizard()'],
]
def do_pick(self,bondFlag):
self.obj_name = None
# if 'pk1' in cmd.get_names('selections'):
if cmd.count_atoms('pk1',1):
self.obj_name = cmd.identify('pk1',1)[0][0]
model = cmd.get_model("(pk1)")
self.atom = model.atom.pop()
if not self.labeling:
cmd.label("(pk1)", '""')
elif self.atom.name == 'CA':
cmd.label("(pk1)", '" %s %s" % (resn,resi)')
else:
cmd.label("(pk1)", '" %s %s" % (name,resi)')
cmd.unpick()
cmd.refresh_wizard()
|