Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2015

Гомологичное моделирование комплекса белка с лигандом

Традиционные ссылки на полезные ресурсы:

Вся работа по расчётам будет проходить на kodomo через jupyter notebook.
Цель данного занятия ознакомится с возможностями гомологичного моделирования комплекса белка с лигандом. В этом занятии мы будем пользоваться пакетом Modeller. Это программное обеспечение распространяется бесплатно для академических пользователей.


Вы будете работать с любым белком лизоцимом из списка. Используя известную структуру лизоцима форели как образец, Вам необходимо построить модель комплекса Вашего белка с лигандом.


Программе MODELLER для моделирования структуры белков, в качестве входных данных нужны: управляющий скрипт, файл pdb со структурой-образцом, файл выравнивания с дополнительной информацией.

  1. Загрузим модуль

   1 import sys 
   2 import modeller 
   3 import _modeller
   4 import modeller.automodel 
  1. Зададим некторые параметры

   1 env=modeller.environ()
   2 env.io.hetatm=True
  1. Скачаем белок заготовку

   1 ! wget http://www.pdb.org/pdb/files/1lmp.pdb

и последовательность

   1 ! wget http://www.uniprot.org/uniprot/PXXXX.fasta
  1. Создадим объект выравнивание:

   1 alignm=modeller.alignment(env)

и добавим последовательность и структуру

   1 alignm.append(file='PXXX.fasta', align_codes='all',alignment_format='FASTA')
   2 ## создадим модель
   3 mdl = modeller.model(env, file='ХХХХ.pdb', model_segment=('FIRST:'+'A', 'LAST:'+'A'))
   4 ## и добавим в выравнивание
   5 alignm.append_model(mdl, atom_files='ХХХ.pdb', align_codes='1lmp')
   6 ## есть смысл поправить идентификаторы
   7 alignm[0].code = '.....'
  1. Делаем выравнивание и сохраняем:

   1 alignm.salign()
   2 alignm.write(file='all_in_one.ali', alignment_format='PIR')
  1. Посмотрите содержимое all_in_one.ali, там всё хорошо?
  2. Построим модель:

   1 ## Выбираем объект для моделирования 
   2 s = alignm[0]
   3 pdb = alignm[1]
   4 
   5 print s.code, pdb.code
   6 
   7 ## Создаем объект automodel
   8 a = modeller.automodel.automodel(env, alnfile='all_in_one.ali', knowns= pdb.co...... , sequence = s.code )
   9 
  10 a.name='mod'+s.code
  11 a.starting_model = 1
  12 a.ending_model = 2
  13 a.make()
  1. Надо посмотреть результат:

   1 import nglview
   2 import ipywidgets
   3 w1 = nglview.show_structure_file('.....B99990001.pdb')
   4 w1


А ГДЕ ЛИГАНД??


  1. Оказывается надо добавить три остатка лиганда к последовательности

Подсказки как сделать:

   1 ## Получить список остаков
   2 alignm[n].residues
   3 ## Добавить в объект выравнивание последовательность из  строки
   4 alignm.append_sequence(....
  1. Поместите лиганд в другое место, переназначив объект automodel, это очень примерный код:

   1 class mymodel(modeller.automodel.automodel):
   2     def special_restraints(self, aln):
   3         rsr = self.restraints
   4         at = self.atoms
   5         for x,y in [('CG:83','O6:228')]:
   6         rsr.add(modeller.forms.gaussian(group=modeller.physical.xy_distance, 
   7                                         feature=modeller.features.distance(
   8                                         at[x],at[y]),mean=3.0, stdev=0.1))
   9 
  10 from modeller import *
  11 from modeller.automodel import *    
  12 a = mymodel(env, ...

и да подсказка: надо удалить рестрейны которые генерируются автоматически: ( можно через файл рестрейнов)

43 atoms in HETATM/BLK residues constrained
to protein atoms within 2.30 angstroms
and protein CA atoms within 10.00 angstroms
  1. Постройте структуру лизоцима с лигандом где все аминокислоты аланин и сравните скор функцию с "нативной" последовательностью.
  2. Доп. Найдите способ искать мутации для улучшения связывания по мотивам этого скрипта https://salilab.org/modeller/wiki/Mutate%20model