Для работы был выбран белок лизоцим мартышки-гусара: LYSC_ERYPA.
Программе MODELLER для моделирования структуры белков, в качестве входных данных нужны: управляющий скрипт, файл pdb со структурой-образцом, файл выравнивания с дополнительной информацией.
Построим выравнивание последовательности из структуры ID 1LMP и LYSC_ERYPA. Воспользуемся ресурсом Clustal. Полученное выравнивание сохраним в формате PIR.
Модификация файла выравнивания:
Переименуем последовательности в файле выравнивания:Было Стало >P1;uniprot|P37712|LYSC_ERYPA >P1;seq >P1;1LMP__|PDBID|CHAIN|SEQUENCE >P1;1lmp sequence:ХХХХХ::::::: 0.00: 0.00
Эта строчка описывает входные параметры последовательности для modeller.
После имени последовательности белка-образца добавим:structureX:1lmp_now.ent:1 :A: 130 :A:undefined:undefined:-1.00:-1.00
Эта строчка описывает, какой файл содержит структуру белка с этой последовательностью, номера первой и последней аминокислот в структуре, идентификатор цепи и т.д. В конце каждой последовательности добавим символы/.
Символ "/" означает конец цепи белка. Точка указывает на то, что имеется один лиганд (если бы было два лиганда стояли бы две точки).В результате имеем следующий файл выравнивания: aln.pir.
Модификация файла со структурой:
Удалим всю воду из структуры (в текстовом редакторе)
Всем атомам лиганда присвоим одно и то же имя и один и тот же номер "остатка" (MODELLER считает, что один лиганд = один остаток) и модифицируем имена атомов каждого остатка, добавив в конец буквы A, B, C. Смысл операции в том, чтобы атомы остатка 130 имели индекс А, атомы остатка 131 имели индекс В и т.д. . После модификации имен атомов измените номера остатков на 130.
Пример:Было Стало HETATM 1014 O7 NAG 130 HETATM 1014 O7A NAG 130 HETATM 1015 C1 NAG 131 HETATM 1015 C1B NAG 130 Сохраним в файле 1lmp_now.ent.
Создание управляющего скрипта LYSC_ERYPA.py.
Предоставлялась следующая заготовка:from modeller.automodel import * class mymodel(automodel): def special_restraints(self, aln): rsr = self.restraints for ids in (('OD1:98:A', 'O6A:131:A'), ('N:65:A', 'O7B:132:A'), ('OD2:73:A', 'O1C:133:A')): atoms = [self.atoms[i] for i in ids] rsr.add(forms.upper_bound(group=physical.upper_distance, feature=features.distance(*atoms), mean=3.5, stdev=0.1)) env = environ() env.io.hetatm = True a = mymodel(env, alnfile='test1.ali', knowns=('1lmp'), sequence='seq') a.starting_model = 1 a.ending_model = 5 a.make()
В скрипте указано:
- что нужно использовать стандартные валентные углы в полипептидной цепи (строчка 4)
- что дополнительно нужно сохранять взаимное расположение определенных пар атомов (3.5 ангстрема);
В данном случае трех атомов белка, образующих водородные связи с тремя атомами лиганда - строчки 5-7 с ID пар атомов; параметры взаимного расположения атомов пары описаны в строчке 9-10. 3 точки могут однозначно расположить сложную структуру в пространстве, поэтому мы выбираем водородные связи как источник данных точек.
- что ковалентные связи в гетероатомах нужно вычислять по расстояниям между атомами (так же, как это делает Rasmol), строчка 12
- что имя файла с выравниванием и имена последовательностей образца и моделируемого белка, строчка 13 (а имя файла со структурой содержится в выравнивании)
- что число и номера моделей, которые нужно построить (в данном примере 5 моделей), строки 14-15
- что пора строить модель строчка 16
В скрипте необходимо отредактировать строчки, в которых указаны какие водородные связи белка с лигандом должны быть В БУДУЩЕЙ МОДЕЛИ. Номера остатков и имена нужных атомов определим по выравниванию и тому, какие водородные связи имеются в образце. Критерий водородной связи: расстояние менее 3.5 ангстрем между азотом или кислородом белка с подходящими атомами лиганда.
Так как моделируемом белке число остатков не совпадает с числом остатков в белке-образце, то номера "остатков" лиганда изменятся.
Также необходимо изменить имя файла с выравниванием в строчке 13.Полученный скрипт: LYSC_ERYPA.py
- что нужно использовать стандартные валентные углы в полипептидной цепи (строчка 4)
Запуск исполнения скрипта командой
mod9v7 myscript
- Полученные модели:
- seq.B99990001.pdb
- seq.B99990002.pdb
- seq.B99990003.pdb
- seq.B99990004.pdb
- seq.B99990005.pdb
Проверим качество моделей и выберем лучшую. Инструменты для оценки качества структуры можно найти в веб интерфейсе WHATIF.
Проведем анализ средством "Build/check/repair model -> Protein Model Check", который выполняют общую проверку модели белка. Наиболее важными пунктами для нас будут те, по которым белок имеет ошибки (error).
- Все ошибки, имеющие отношение к структуре, были записаны в файлы:
- seq1.txt
- seq2.txt
- seq3.txt
- seq4.txt
- seq5.txt
Ошибки не очень разнообразны, в список входят ошибки: угла тау (N-Calpha-C'), слишком маленькие межатомные расстояния и провернутые боковые радикалы HIS, ASN, GLN (оценивается возможным наличием водородных связей в случае поворота боковых радикалов, которых нет).
Наименьшее количество ошибок в третьей модели, поэтому будем считать ее лучшей.