= PyMol = [[Main/PyMol#load&save|Загрузка и сохранение файлов]] [[Main/PyMol#load&eds|Загрузка файла с электронной плотностью (ААл)]] [[Main/PyMol#selections|Множества]] [[Main/PyMol#representation|Отображения]] [[Main/PyMol#colors|Цвета]] [[Main/PyMol#distances|Расстояния]] [[Main/PyMol#operators|Операторы]] [[Main/PyMol#macros|Макросы]] [[Main/PyMol#scripts&logs|Скрипты и логи]] [[Main/PyMol#help|Помощь]] [[Main/PyMol#wininstall|Установка PyMol под Windows]] [[Main/PyMol#otherinstalls|Другие варианты установки (С.А.С.)]] [[Main/PyMol#extras|Дополнительные материалы]] <<Anchor(load&save)>> === Загрузка и сохранение === Синтаксис: {{{ load "имя файла" }}} Примеры: {{{ PyMOL> load H:/term7/data/fc.pdb PyMOL> load $PYMOL_PATH/test/dat/pept.pdb }}} То же можно сделать через меню графического окна. {{{#!wiki comment Также можно загружать структуры непосредственно из pdb, для этого есть команда `fetch`, например: fetch 1rty }}} Сохранять файлы можно через меню, а можно в командной строке, так команда {{{ PyMOL> save H:/term7/data/wat.pdb, resn HOH }}} сохранит только атомы воды в файл `H:/term7/data/wat.pdb` . Чтобы не писать каждый раз полный путь к файлу, можно сделать активной рабочую директорию, например: {{{ PyMOL> cd H:/term7/data }}} после чего писать только краткое имя файла. <<Anchor(load&eds)>> === Загрузка файла с электронной плотностью === Файл с электронной плотностью можно получить на сайте [[http://www.ebi.ac.uk/pdbe/|PDBe]]. Найдите по PDB ID свою структуру и на странице структуры (например, `https://www.ebi.ac.uk/pdbe/entry/pdb/1crn` для структуры 1CRN) откройте меню Downloads. Если в этом меню нет пункта "EDS map", выберите другую структуру. Если есть, сохраните в рабочую директорию файл с электронной плотностью (с расширением ccp4). Туда же сохраните сам PDB-файл. В примерах PDB код 1x01. Сделайте активной рабочую директорию, например: {{{ PyMOL> cd H:/term7/EDS }}} Загрузите PDB-файл командой load: {{{ PyMOL> load pdb1x01.ent, 1x01 }}} Загрузите файл с электронной плотностью той же командой load: {{{ PyMOL> load 1x01.ccp4, 1x01_map }}} Указывать "имя объекта" (после запятой) необходимо для того, чтобы объекты получили разные имена. ==== Визуализация электронной плотности ==== Для визуализации электронной плотности вокруг заданного множества атомов используются команды `isomesh` или `isodot`. Например: {{{ PyMOL> isomesh new_surface, 1x01_map, 1.5, resi 15-17 and chain a, 2.5 }}} Здесь: {{{ new_surface # имя нового объекта с изображением поверхности 1x01_map # имя объекта с электронной плотностью 1.5 # уровень - значение электронной плотности (в сигмах), по которому строится поверхность resi 15-17 and chain a # множество атомов, электронную плотность вокруг которого надо изобразить 2.5 # (необязательный) аргумент "buffer". }}} Если не задать buffer, то будет изображена электронная плотность в наименьшем параллелепипеде (со сторонами, параллельными координатным осям), в который помещаются центры атомов данного множества. Если же задать ему значение, скажем, 2.5, то этот параллелепипед будет расширен на 2.5 ангстрема в каждую сторону. Команда `isodot` имеет точно такой же синтаксис. Изображения можно красить командой `color` (или из правого меню) и уничтожать командой `delete`. <<Anchor(selections)>> === Множества === '''Стандартные множества''' ||название||краткая форма||значение||примеры|| ||all||*||все атомы|| || ||none|| ||пустое множество|| || ||visible||v.||Все атомы, тем или иным способом показанные в данный момент в графическом окне|| || ||hydro||h.||Все атомы водорода|| ||hetatm||het||Все атомы, помеченные в PDB файле, как HETATM|| || ||resi|| ||Остатки с данными номерами||resi 15-20|| ||resn|| ||Остатки с данными именами||resn lys+arg|| ||chain|| ||Цепи с данными идентификаторами||chain a+b|| ||symbol|| ||Атомы данных химических элементов||symbol c+s|| ||name|| ||Атомы с данными именами||name ca|| Примеры: {{{ PyMOL> color blue, all = PyMOL> color blue, * PyMOL> hide hydro = PyMOL> hide h. PyMOL> show spheres, hetatom = PyMOL> show spheres, het }}} '''Обозначения множеств''' Синтаксис: {{{ select "имя множества", "выделенное множество" }}} Примеры: {{{ PyMOL> select akeeper, resi 1-10 #Выбирает 1-10 остатки и называет их akeeper PyMOL> zoom akeeper #Взгляд камеры фиксируется на множестве akeeper PyMOL> hide everything, akeeper #множество akeeper не отображается PyMOL> show spheres, akeeper #Множество отображается в виде шаровой модели }}} В графическом окне справа есть меню, где отображаются множества, в нем можно делать с ними различные манипуляции Можно манипулировать заданными множествами сколько угодно (пока вы их не удалите). В названиях могут быть только цифры, большие и маленькие латинские буквы и нижнее подчеркивание _ Когда удаляется группа, то атомы и связи остаются, просто они перестают так называться, когда же удаляются объекты, то они удаляются совсем, так что для их визуализации их необходимо снова загружать Синтаксис: {{{ delete "имя множества" delete "имя объекта" }}} Примеры: {{{ PyMOL> delete akeeper # Множества akeeper нет, но все атомы на своих местах PyMOL> delete resi 10-15 # Удаляются все атомы и связи остатков с 10 по 15 }}} Группы атомов появляются в боковой панели вместе с объектами. Выбранные группы атомов показаны россыпью розовых точек. Группы продолжают работать даже после изменения в молекулярной структуре. {{{ PyMOL> select bb, name c+o+n+ca # создается множество bb PyMOL> count_atoms bb # PyMOL насчитал 52 атома в bb PyMOL> remove resi 5 # все атомы из 5 остатка удаляются PyMOL> count_atoms bb # Теперь PyMOL насчитал 48 атомов в множестве bb }}} <<Anchor(representation)>> === Отображения === Синтаксис:: {{{ hide "отображение" show "отображение" }}} Примеры: {{{ PyMOL>hide lines # Объект из линий исчезает из окна PyMOL>show sticks # В окне появляется объект из палочек }}} другие виды отображения: ribbon, surface, mesh, cartoon, spheres, cell, dots <<Anchor(colors)>> === Цвета === Синтаксис: {{{ color "цвет" color "цвет", "выделенное множество" }}} Примеры: {{{ PyMOL> color red # Все отображаемые атомы красятся в красный цвет. PyMOL> color red, name ca # Только С-альфа атомы красятся в красный цвет. }}} Если нужно покрасить больше чем одно множество, их следует разделять запятыми. <<Anchor(distances)>> === Расстояния === Измерение расстояний между атомами двух множеств короче Х ангстрем {{{ distance "имя группы растояний", "1 множество", "2 множество", "макс. длина в Ангстремах" distance hbonds, all, all, 3.2 # Отмечаются расстояния между любыми двумя атомами, если они меньше 3,2 ангстрем }}} <<Anchor(operators)>> === Операторы === ||Оператор || короткая запись|| Что выбирается|| ||not s1 || ! s1 ||Атомы, не включенные в s1|| ||s1 and s2 || s1 & s2 ||Атомы, включенные и в s1, и в s2|| ||s1 or s2 || s1 | s2 ||Атомы из s1 и из s2|| ||s1 like s2 || s1 l. s2 ||Атомы из s1 совпадающие именем с атомами из s2|| ||s1 gap X || s1 gap X ||Атомы на расстоянии больше Х ангстрем от множества s1|| ||s1 around X ||s1 a. X ||Атомы на расстоянии меньше Х ангстрем от множества s1|| ||s1 expand X ||s1 e. X ||Расширяет s1, включая все атомы на расстоянии меньше Х ангстрем от s1|| ||s1 within X of s2 || s1 w. X of s2 ||Атомы из s1 на расстоянии не большем, чем Х ангстрем от s2|| ||neighbor s1 || nbr. s1 ||Атомы, непосредственно связанные с s1|| Примеры: {{{ PyMOL> select bb, chain a and (not resi 125) # Определяет множество bb как все атомы из цепи A, кроме 125 остатка PyMOL> select bb, chain a gap 5 and chain a around 10 # Определяет множество bb как все атомы на расстоянии от 5 до 10 ангстрем от цепи A }}} <<Anchor(macros)>> === Макросы === Макросы позволяют записать длинные записи коротко, так, например {{{ PyMOL> color red, pept and segi lig and chain b and resi 142 and name ca }}} можно записать, как {{{ PyMOL> color red, /pept/lig/b/142/ca }}} Макросы задаются следующим путем: {{{ /object-name/segi-identifier/chain-identifier/resi-identifier/name-identifier }}} !PyMol воспринимает макрос как одно слово, так что никаких пробелов между слэшами не должно быть. Макросы иерархичны, и их можно начинать с любого подмножества {{{ /object-name/segi-identifier/chain-identifier/resi-identifier/name-identifier /object-name/segi-identifier/chain-identifier/resi-identifier /object-name/segi-identifier/chain-identifier /object-name/segi-identifier /object-name }}} Примеры: {{{ PyMOL> zoom /pept PyMOL> show spheres, /pept/lig/ PyMOL> show cartoon, /pept/lig/a PyMOL> color pink, /pept/lig/a/10 PyMOL> color yellow, /pept/lig/a/10/ca }}} Если макрос не начинается со слэша, то иерархия идет в обратном порядке: {{{ resi-identifier/name-identifier chain-identifier/resi-identifier/name-identifier segi-identifier/chain-identifier/resi-identifier/name-identifier object-name/segi-identifier/chain-identifier/resi-identifier/name-identifier }}} также можно оставлять незаполненными промежуточные идентификаторы. Примеры: {{{ PyMOL> zoom 142/ # Зум на остаток 142 PyMOL> show spheres, 156/ca # С-альфа атом в 156 остатке отображается как сфера PyMOL> show cartoon, a// # Цепь А изображается в стиле cartoon PyMOL> color pink, pept//b # Цепь В из объекта pept красится в розовый цвет }}} <<Anchor(scripts&logs)>> === Скрипты и логи === Скрипты в !PyMol --- всего лишь текстовые файлы с расширением .pml, чтобы запустить скрипт под windows, необходимо открыть в панели отдел file → run или же в командной строке. Синтаксис: {{{ @script-file-name }}} Пример: {{{ PyMOL> @my_script.pml }}} Лог файл --- это файл, записывающий все действия, произведенные в командной строке Чтобы начать ведение лога, необходимо написать команду `log_open <log-file-name>`, и все действия будут записаны в этот лог-файл. <<Anchor(help)>> === Помощь === Чтобы получить описание команды, надо набрать help "имя команды" Полный список команд можно получить, введя в командной строке help и нажать Enter <<Anchor(wininstall)>> === Установка PyMol под Windows === Читать тут http://www.pymolwiki.org/index.php/Windows_Install . Вероятно, всё это лучше делать под административным аккаунтом.. 1. Поставить Python 2.7.15 (качать тут https://www.python.org/downloads/windows/ ). Если установлена более старая, чем 2.7.9, версия (например, 2.7.3) то можно вместо установки новой версии поставить программу pip: a. Cкачать тут https://pip.pypa.io/en/latest/installing.html скрипт get-pip.py. a. Запустить C:\Python27\python.exe get-pip.py 1. Поставить Microsoft Visual C++ Compiler for Python 2.7 (качать тут http://www.microsoft.com/en-us/download/details.aspx?id=44266 ). 1. Перезагрузить компьютер. 1. Скачать подходящую версию с https://www.lfd.uci.edu/~gohlke/pythonlibs/#pymol (имеет значение, 32-битная у вас система или 64-битная, в первом случае надо выбирать wheel-файлы, кончающиеся на `win32.whl`, во втором — на `‑win_amd64.whl`). 1. Запустить C:\Python27\Scripts\pip.exe install <имя скачанного wheel-файла> . 1. Создать ярлык к C:\Python27\Scripts\pymol.cmd, поместить его на рабочий стол или в меню Пуск. 1. Проверить, что !PyMol запускается и работает. <<Anchor(otherinstalls)>> === Другие варианты (С.А.С.) === Можно поставить себе "образовательный" вариант !PyMol, см. https://pymol.org/edu/ . Я поставил себе дома !PyMol так: установил пакет Anaconda Python 2.7 version (см. https://www.anaconda.com/download/ ), затем запустил командную строку Anaconda под администратором и выполнил там команду: {{{ conda install -c schrodinger pymol }}} При первом запуске !PyMol предлагает купить лицензию, но этот этап можно пропустить, тогда в графическом окне постоянно присутствует надпись "No license file", которая, впрочем, совершенно не мешает. Как ни удивительно, после команд `ray` и `png` появляется картинка безо всяких надписей, так что этот вариант вполне годится для наших целей. {{{#!wiki comment Ну и наконец, можно выполнять все задания в компьютерном классе, см. часы его работы на доске объявлений. }}} === Дополнительно === [[https://kodomo.fbb.msu.ru/FBB/year_12/term7/help2.html|Ещё одно краткое руководство по PyMol]] <<Anchor(extras)>> Полный гайд по !PyMol содержится по ссылке [[http://pymol.sourceforge.net/newman/user/toc.html|PyMol Users Manual]] Огромное количество примеров, настроек и дополнительных функций --- на [[http://www.pymolwiki.org/index.php/Main_Page|PyMolWiki]].