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

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

Загружаем модуль

In [7]:
import sys 
sys.path.append('/usr/lib/modeller9v7/modlib/')
sys.path.append('/usr/lib/modeller9v7/lib/x86_64-intel8/python2.5/')
import modeller 
import _modeller
import modeller.automodel

Задаем некоторые параметры

In [ ]:
env=modeller.environ()
env.io.hetatm=True

Скачиваем структуру белка заготовки и последовательность целевого белка

In [ ]:
! wget http://www.pdb.org/pdb/files/1lmp.pdb
! wget http://www.uniprot.org/uniprot/Q7SID7.fasta
In [ ]:
## создадим объект выранивание
alignm=modeller.alignment(env)
## добавим последовательность и структуру
alignm.append(file='Q7SID7.fasta', align_codes='all',alignment_format='FASTA')
## создадим модель
mdl = modeller.model(env, file='1lmp.pdb', model_segment=('FIRST:'+'A', 'LAST:'+'A'))
## добавим модель в выравнивание
alignm.append_model(mdl, atom_files='1lmp.pdb', align_codes='1lmp')
## меняем идентификатор
alignm[0].code = 'lys_antmy'
## делаем выравнивание и сохраняем
alignm.salign()
alignm.write(file='all_in_one.ali', alignment_format='PIR')

Строим модель

In [ ]:
## Выбираем объект для моделирования 
s = alignm[0]
pdb = alignm[1]
## print s.code, pdb.code

## Создаем объект automodel
a = modeller.automodel.automodel(env, alnfile='all_in_one.ali', knowns= pdb.code , sequence = s.code )
a.name='mod'+s.code
a.starting_model = 1
a.ending_model = 2
a.make()
In [10]:
## Визуализируем результат моделирования
import nglview
import ipywidgets
w1 = nglview.show_structure_file('lys_antmy.B99990001.pdb')
w1
In [2]:
from IPython.display import Image
Image(filename='lys_antmy_no_ligand.png')
Out[2]:

Рис.1. Модель белка лизоцима LYS_ANTMY, построенная с помощью метода гомологичного моделирования

В данной структуре белка нет лиганда, поэтому добавляем три остатка лиганда к последовательности

In [ ]:
seq=""
for res in alignm[0].residues:
    seq=seq+res.code
seq=seq+"..."
print seq
## три точки в конце последовательности заменяют лиганд
In [12]:
## добавляем в объект выравнивание последовательность белка с лигандом
alignm.append_sequence(seq)
## задаем код для этой последовательности
alignm[2].code="lys2_antmy"
In [ ]:
## еще раз делаем выравнивание и сохраняем
alignm.salign()
alignm.write(file='all_in_one.ali', alignment_format='PIR')

Еще раз запускаем моделирование

In [ ]:
s = alignm[2]
pdb = alignm[1]
## print s.code, pdb.code
a = modeller.automodel.automodel(env, alnfile='all_in_one.ali', knowns= pdb.code , sequence = s.code )
a.name='mod2'+s.code
a.starting_model = 1
a.ending_model = 2
a.make()
In [15]:
## Визуализируем результат моделирования
import nglview
import ipywidgets
w1 = nglview.show_structure_file('lys2_antmy.B99990001.pdb')
w1
In [16]:
from IPython.display import Image
Image(filename='lys_antmy_ligand.png')
Out[16]:

Рис.2. Модель белка лизоцима LYS_ANTMY с лигандом, построенная с помощью метода гомологичного моделирования

Гомологичное моделирование подразумевает, что при подобии последовательностей подобны и структуры. Таким образом, используя этот метод и имея известную структуру белка лизоцима, получили модель белка LYS_ANTMY, для которого была известна только аминокислотная последовательность. Также получили модель этого белка с тремя остатками лиганда, который раположился в кармане структуры. Далее была задача лиганд поместить в другое место. Для этого был добавлен еще один параметр: NH-группа из лиганда и кислород карбокси-группы 11 глутамата из белка должны располагаться на расстоянии водородной связи. После добавления этого параметра еще раз запускаем моделирование структуры белка с лигандом.

In [ ]:
class mymodel(modeller.automodel.automodel):
    def special_restraints(self, aln):
        rsr = self.restraints
        at = self.atoms
        for x,y in [('N2:123', 'OE1:11')]:
            rsr.add(modeller.forms.gaussian(group=modeller.physical.xy_distance, 
                                        feature=modeller.features.distance(
                                        at[x],at[y]),mean=3.0, stdev=0.1))

from modeller import *
from modeller.automodel import * 
a = mymodel(env,  alnfile='all_in_one.ali', knowns= pdb.code , sequence = s.code )
a.make()
In [18]:
import nglview
import ipywidgets
w1 = nglview.show_structure_file('lys2_antmy.B99990001.pdb')
w1
In [9]:
from IPython.display import Image
Image(filename='lys_antmy_new_ligand.png') 
Out[9]:

Рис.3. Модель белка лизоцима LYS_ANTMY с лигандом, расположение которого задано вручную.

К сожалению, должного результата по перемещению лиганда в другое место не удалось получить. Гомологичное моделирование структуры лизоцима с дополнительным параметром на расположение NH-группы лиганда на расстоянии водородной связи от кислорода 11 глутамата привело к тому, что лиганд свое расположение не изменил, а глутаминовая кислота очень сильно растянула свои связи и немного "утащила" за собой альфа-спираль. Это хорошо видно на рисунке 4, на котором расположены одновременно две структуры можелированного лизоцима.

In [5]:
from IPython.display import Image
Image(filename='lys_antmy_compare.png')
Out[5]:

Рис.4. Две модели лизоцима. Синяя модель построена с помощью гомологичного моделирования без дополнительных параметров и голубая - с дополнительным параметром на расположение NH-группы из лиганда (красный цвет) на расстоянии водородной связи от кислорода карбокси-группы 11 глутамата (красный цвет) из белка.