Jmol — программа визуализации пространственных структур макромолекул. Исходными данными служит, как правило, файл в PDB-формате (хотя некоторые другие форматы также поддерживаются).
Основные сведения о программе
- Удовлетворительная визуализация; достаточный для большинства потребностей спектр средств анализа.
- Несложен для освоения, обладает хорошей внутренней логикой.
Доступен на сайте https://jmol.sourceforge.net/
- Требует установки Java
Что такое визуализация?
Исходные данные для визуализации — список атомов с координатами их центров (в некоторой системе координат). При визуализации белков в окне программы изображаются различные т.н. модели. Наиболее употребительные модели следующие:
Проволочная модель — ковалентные связи между атомами изображаются линиями, соединяющими их центры. Jmol, как правило, определяет наличие ковалентных связей по расстоянию между центрами атомов.
Шариковая модель — атомы изображаются шариками.
- Наложение шариковой и проволочной моделей иногда называют шарнирной моделью.
Остовная модель — изображаются условные линии, соединяющие Cα-атомы соседних остатков белка или атомы фосфора соседних нуклеотидов ДНК или РНК.
Основные принципы работы с Jmol
- Работа идёт в двух окнах: графическом и командном (если командное окно при запуске не открылось, надо щёлкнуть по графическому окну правой кнопкой мыши и выбрать в меню "Console")
- В каждый момент работы имеется некоторое выделенное множество атомов.
- Все действия производятся с этим множеством.
- Каждому действию соответствует команда, набираемая в командном окне.
- Команда набирается с клавиатуры при активном командном окне и завершается нажатием клавиши "Enter".
Как открыть структуру
Либо (в графическом окне) File → Open и выбрать файл.
Либо File → GetPDB и набрать четырёхсимвольный код (например 1crn). В этом случае структура будет скачана из банка PDB.
Некоторые команды
select <множество> |
выделяет множество |
restrict <множество> |
выделяет множество и стирает из графического окна всё остальное |
wireframe 0.3 |
добавляет к изображению в графическом окне проволочную модель выделенного множества с толщиной линий 0.3 ангстрема |
wireframe off |
стирает из графического окна проволочную модель выделенного множества |
backbone 0.5 |
добавляет к изображению в графическом окне остовную модель выделенного множества с толщиной линий 0.5 ангстрема |
cpk 50% |
добавляет к изображению в графическом окне шариковую модель выделенного множества с радиусом шариков 50% от ван-дер-ваальсова радиуса |
color <цвет> |
окрашивает выделенное в указанный цвет (но если эти атомы не были изображены ни в какой модели, то цвета не будет видно, пока вы их не изобразите!) |
Как задавать множество
- Один атом:
Ser15:A.OG — атом OG из серина 15 цепи A
- Все атомы заданного остатка:
15:A
- Все атомы диапазона остатков:
10-28:A
- Все атомы цепи A:
*:A
Все Cα-атомы:
*.CA
- Всё:
all
- Ничего (пустое множество):
none ("restrict none" очищает графическое окно)
- Все атомы белка:
protein
- Все атомы воды:
water
- Все остовные атомы (белка, ДНК и РНК):
backbone
Логические операторы для задания множеств
Логическое "или" (объединение множеств) — запятая или "or"
15:A,17:A,19:A — все атомы трёх остатков
Логическое "и" (пересечение множеств) — "and"
ser and *:A — все атомы всех серинов из цепи A
Логическое "не" (дополнение к множеству) — "not"
not protein — все небелковые атомы
Примеры комбинаций операторов
*:B and (*.CA,*.CB)
dna and not backbone
(leu,met,val,ile) and *:1 and backbone
not (protein,dna,water)
и т.п.
Оператор "within"
Оператор "within" служит прежде всего для задания множества всех атомов, близких к атомам какого-то другого множества. Как и все обозначения множеств, within должен стоять после команд select или restrict (сам по себе он — не команда).
Примеры:
within(4.5,dna)
множество всех атомов, расположенных ближе 4,5 Å от ДНК
ser and within(5.0,dna and backbone)
множество всех атомов серина, расположенных ближе 5 Å от остова ДНК
- Выполнение команд:
select water and within(3.9,ser15:a.og) cpk 50%
выведет в графическое окно в виде шариков половинного диаметра все атомы воды, находящиеся ближе 3,9 Å от данного атома.
within(GROUP,ser and within(5.0,dna and backbone))
множество всех атомов всех остатков серина, в которых есть хотя бы один атом, расположенный ближе 5 Å от остова ДНК (within с первым аргументом "GROUP" означает остатки, к которым принадлежат атомы второго аргумента, целиком).
Полный список выражений, которыми можно задавать множества атомов, см. здесь.
Упражнение
Предположим, открытый в Jmol'е документ PDB содержит описание структуры, состоящей из белка, фрагмента ДНК и молекул воды.
Какое множество станет выделенным, если выполнить следующие команды ?
select protein or dna select protein and dna select not water select within(3.5, his) select within(3.5, his) and water
Цвет
После команды color может стоять:
- словесное обозначение цвета (red, green, white, black, cyan, redorange и т. п.)
- численное значение цвета в системе RGB, например, [80,80,255]
- слово "cpk", означающее раскраску по типу атомов (кислород красный, азот синий и т.д.)
- "chain", "structure", "temperature"
Например, color chain окрасит каждую цепь в свой цвет.
Экспорт файлов
- Команда
write h:\jmol\my.pdb
- создаст файл "my.pdb" в директории H:\jmol, содержащий координаты атомов выделенного множества в PDB-формате.
- Чтобы сохранить текущее изображение, нужно щёлкнуть по изображению фотоаппарата вверху окна.
Ещё полезные команды и действия
show sequence выводит в командное окно список остатков выделенного множества ("остатком" считается не только аминокислотный остаток в составе белка или нуклеотидный – в составе нуклеиновой кислоты, но и любой лиганд или молекула воды)
zap стирает текущую структуру из памяти, освобождая место для новой.
spin запускает вращение изображения.
label %a приписывает около каждого атома выделенного множества его имя (например, "CA"). Вместо %a (или вместе c %a) можно писать %r (номер остатка), %n (имя остатка), и даже просто текст, например label %n%r:%c.%a выведет подписи атомов вида "ARG15:B.CA". Полный список возможностей см. https://chemapps.stolaf.edu/jmol/docs/?ver=14.2#atomproperties .
Нажатие "стрелки вверх" (↑) на клавиатуре при активном командном окне приводит к появлению предыдущей команды. Её можно сразу выполнить, нажав Enter или сначала отредактировать.
Если щёлкнуть по изображению мишени (круг с точкой в центре) вверху графического окна, а затем по изображению атома, то этот атом переместится в центр и вращение будет происходить вокруг него.
Вращение колёсика мыши приводит к увеличению-уменьшению изображения. Тот же эффект получается, если при нажатых клавише Shift и левой кнопке мыши водить мышью вверх-вниз.
Чтобы увидеть в командном окне описание атома, просто щёлкните по нему левой кнопокой мыши.
Чтобы измерить расстояние между двумя атомами, надо щёлкнуть мышью по изображению линейки вверху графического окна. а затем последовательно по обоим атомам. Чтобы вернутся из режима измерения в обычный режим, щёлкните по изображению стрелочки.
Щелчок правой кнопкой мыши по графическому окну открывает меню с некотороыми дополнительными возможностями.
Сценарии
Сценарий (в разговорной речи — скрипт) — это текстовый файл, содержащий в каждой строке команду Jmol. Например, содержимое сценария может быть таким:
load h:\tmp\1xyz.pdb restrict none select *:a color cyan backbone 0.2 select *:b color yellow backbone 0.2 select not protein color cpk cpk 30% select all
Комментарий
Команда load загружает файл в формате pdb.
Команда restrict none очищает графическое окно (чтобы изображение "по умолчанию" не накладывалось на изображение, создаваемое сценарием).
Команда select *:a выделяет цепь A, команда color cyan красит выделенное (то есть цепь A) в голубой цвет, команда backbone 0.2 выводит изображение остовной модели цепи A в графическое окно.
- Три последующие команды полностью аналогичны трём предыдущим.
- Ещё три команды выводят в графическое окно изображение всех небелковых атомов в виде маленьких шариков, покрашенных в соответствии с химическим элементом.
- Последняя команда делает выделенным множество всех атомов структуры
Чтобы запустить сценарий, нужно в командной строке выполнить команду: script myscript.spt
- (если сценарий назвается "myscript.spt"). В этом случае, как правило, придётся указывать полный путь к файлу.
См. также: An Introduction to Jmol