Создание управляющего скрипта my_seq.py (my_seq - имя Вашей последовательности, например, lysc_chram)
Заготовка:
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 ангстрем между азотом или кислородом белка с подходящими атомами лиганда.
Получаем скрипт.