пятница, 3 декабря 2010 г.

PyMOL и python, часть II

Все-таки это безобразие - так долго не писать в блог. Постараюсь больше так не делать, и для начала продолжу рассказывать о таких приятных и полезных вещах, как PyMOL и python.

Я уже писала о том, как вызывать PyMOL из собственной программы на python, а сейчас - наоборот, как программу на python сделать функцией PyMOL. Надеюсь, вы уже смирились с тем, что самое интересное в PyMOL доступно через командную строку, и это вас не пугает.

Так как почти наверняка мы будем использовать в программе какие-то функции PyMOL, в скрипте под названием например myscript.py надо написать вот это:

from pymol import cmd

Дальше описываем функцию, которую хотим выполнять - для примера пусть это будет измерение доступной поверхности остатков 35-49 цепи A заданного файла:

def surf35_49(fname):
cmd.load(fname)
cmd.select("sel1","chain A and resi 35-49")
area = cmd.get_area("sel1")
print fname, area

И осталось определить новую команду PyMOL (пусть она будет называться также surf35_49) и привязать к ней эту функцию:

cmd.extend('surf35_49',surf35_49)

Все, теперь файл muscript.py готов. В одном файле, кстати, может быть описано несколько функций. Чтобы они стали доступны в PyMOL, надо ввести вот эту команду:

run myscript.py

Иногда по довольно загадочным причинам (загадочным для меня, так как я не очень в это вникала) это не работает, а
spawn myscript.py
- работает.

После этого скрипт загружен в PyMOL, и для того чтобы применить нашу функцию к файлу file1.pdb достаточно в командной строке PyMOL ввести
surf35_49 file1.pdb

Вот по этому адресу можно посмотреть всякие полезные примеры скриптов: http://pldserver1.biochem.queensu.ca/~rlc/work/pymol/.

2 комментария:

  1. о как. т.е. посчитать SAA (solvent accesible aerea) это просто и удобно в паймоле?

    ОтветитьУдалить
  2. «Было здорово узнать, что есть кто-то, кто знает, как упасть и снова встать. Мы всегда остаемся скромными и никогда не сдаемся, и за помощь г-на Бенджамина Ли в получении ссуды от его фирмы на расширение моего бизнеса в решающий момент. Поддержка, которую я получил от его ссудной фирмы, была довольно честной и привлекательной низкой ставкой взамен. Г-н Бенджамин Ли - кредитный специалист, работающий с группой инвесторов, которые готовы финансировать любой тип бизнеса или предоставлять ссуды для личного пользования, если их возврат гарантирован.
    Вы можете связаться с их электронной почтой по адресу 247officedept@gmail.com или Whatsapp, мистер Ли, по телефону + 1-989-394-3740.

    ОтветитьУдалить