Занятие 6.
Краткое содержание: Введение в программирование для PyMol
План рассказа
Простой пример: расстояния между атомами
Пример определения команды pymol:
Пример с iterate_state и stored:
1 from pymol import cmd, stored 2 3 class CA(object): 4 def __init__(self, chain, resi): 5 self.chain = chain 6 self.resi = resi 7 def select(self): 8 return "name ca & chain %s & resi %s" % (self.chain, self.resi) 9 10 stored.ca = [] 11 cmd.iterate("name ca", "stored.ca.append(CA(chain, resi))") 12 13 prev = None 14 for atom in stored.ca: 15 if prev != None and prev.chain == atom.chain: 16 print cmd.get_distance(atom.select(), prev.select()) 17 prev = atom
Полезные команды
- get_*
Обязательно научиться
- Работе с pymol.cmd
- pymol.cmd.extend
- pymol.stored
Задания
Напишите скрипт angles.py, который считает углы между соседними C-alpha атомами цепи
- Переделайте этот скрипт так, чтобы он определял в pymol команду, которая считает углы между C-alpha атомами
- Допишите к скрипту самодокументацию и doctest.
Полезные ссылки
Введение в программирование для PyMol – текст, близкий по содержанию к занятию
Опубликованные PyMol скрипты – иногда полезно подглядывать на то, как похожая задача уже решена, и вообще лучше всегда не изобретать велосипеды.