Task6

Version 2 (Andrey Golovin, 10.11.2017 13:47)

1 1 Andrey Golovin
h1.  Гомологичное моделирование комплекса белка с лигандом 
2 1 Andrey Golovin
3 1 Andrey Golovin
4 1 Andrey Golovin
h3. Традиционные ссылки на полезные ресурсы: 
5 1 Andrey Golovin
6 1 Andrey Golovin
 * Уроки по работе с Modeller [[http://salilab.org/modeller/tutorial/|находятся здесь]].
7 1 Andrey Golovin
 
8 1 Andrey Golovin
9 1 Andrey Golovin
10 1 Andrey Golovin
11 1 Andrey Golovin
Цель данного занятия ознакомится с возможностями гомологичного моделирования комплекса белка с лигандом. В этом занятии мы будем пользоваться пакетом Modeller. Это программное обеспечение распространяется бесплатно для академических пользователей.
12 1 Andrey Golovin
13 1 Andrey Golovin
<<BR>>
14 1 Andrey Golovin
Вы будете работать с любым белком лизоцимом из Uniprot. Используя известную структуру лизоцима форели как образец, Вам необходимо построить модель комплекса Вашего белка с лигандом.
15 1 Andrey Golovin
16 1 Andrey Golovin
 
17 1 Andrey Golovin
# Загрузим модуль
18 2 Andrey Golovin
19 1 Andrey Golovin
<pre><code class="python">
20 1 Andrey Golovin
import sys 
21 1 Andrey Golovin
import modeller 
22 1 Andrey Golovin
import _modeller
23 1 Andrey Golovin
import modeller.automodel 
24 1 Andrey Golovin
</code></pre>
25 1 Andrey Golovin
26 1 Andrey Golovin
# Зададим некторые параметры
27 2 Andrey Golovin
28 1 Andrey Golovin
<pre><code class="python">
29 1 Andrey Golovin
env=modeller.environ()
30 1 Andrey Golovin
env.io.hetatm=True
31 1 Andrey Golovin
</code></pre>
32 1 Andrey Golovin
33 1 Andrey Golovin
# Скачаем белок заготовку
34 2 Andrey Golovin
35 1 Andrey Golovin
<pre><code class="python">
36 1 Andrey Golovin
! wget http://www.pdb.org/pdb/files/1lmp.pdb
37 1 Andrey Golovin
</code></pre>
38 1 Andrey Golovin
и последовательность 
39 1 Andrey Golovin
40 1 Andrey Golovin
<pre><code class="python">
41 1 Andrey Golovin
! wget http://www.uniprot.org/uniprot/PXXXX.fasta
42 1 Andrey Golovin
</code></pre>
43 1 Andrey Golovin
44 1 Andrey Golovin
# Создадим объект выравнивание:
45 2 Andrey Golovin
46 1 Andrey Golovin
<pre><code class="python">
47 1 Andrey Golovin
alignm=modeller.alignment(env)
48 1 Andrey Golovin
</code></pre>
49 1 Andrey Golovin
50 1 Andrey Golovin
и добавим последовательность и структуру
51 2 Andrey Golovin
52 1 Andrey Golovin
<pre><code class="python">
53 1 Andrey Golovin
alignm.append(file='PXXX.fasta', align_codes='all',alignment_format='FASTA')
54 1 Andrey Golovin
## создадим модель
55 1 Andrey Golovin
mdl = modeller.model(env, file='ХХХХ.pdb', model_segment=('FIRST:'+'A', 'LAST:'+'A'))
56 1 Andrey Golovin
## и добавим в выравнивание
57 1 Andrey Golovin
alignm.append_model(mdl, atom_files='ХХХ.pdb', align_codes='1lmp')
58 1 Andrey Golovin
## есть смысл поправить идентификаторы
59 1 Andrey Golovin
alignm[0].code = '.....'
60 1 Andrey Golovin
</code></pre>
61 1 Andrey Golovin
62 1 Andrey Golovin
63 1 Andrey Golovin
# Делаем выравнивание и сохраняем:
64 2 Andrey Golovin
65 1 Andrey Golovin
<pre><code class="python">
66 1 Andrey Golovin
alignm.salign()
67 1 Andrey Golovin
alignm.write(file='all_in_one.ali', alignment_format='PIR')
68 1 Andrey Golovin
</code></pre>
69 1 Andrey Golovin
70 1 Andrey Golovin
71 1 Andrey Golovin
# Посмотрите содержимое all_in_one.ali, там всё хорошо?
72 1 Andrey Golovin
73 1 Andrey Golovin
# Построим модель:
74 2 Andrey Golovin
75 1 Andrey Golovin
<pre><code class="python">
76 1 Andrey Golovin
## Выбираем объект для моделирования 
77 1 Andrey Golovin
s = alignm[0]
78 1 Andrey Golovin
pdb = alignm[1]
79 1 Andrey Golovin
80 1 Andrey Golovin
print s.code, pdb.code
81 1 Andrey Golovin
82 1 Andrey Golovin
## Создаем объект automodel
83 1 Andrey Golovin
a = modeller.automodel.automodel(env, alnfile='all_in_one.ali', knowns= pdb.co...... , sequence = s.code )
84 1 Andrey Golovin
85 1 Andrey Golovin
a.name='mod'+s.code
86 1 Andrey Golovin
a.starting_model = 1
87 1 Andrey Golovin
a.ending_model = 2
88 1 Andrey Golovin
a.make()
89 1 Andrey Golovin
</code></pre>
90 1 Andrey Golovin
91 1 Andrey Golovin
92 1 Andrey Golovin
# Надо посмотреть результат:
93 1 Andrey Golovin
<pre><code class="python">
94 1 Andrey Golovin
import nglview
95 1 Andrey Golovin
import ipywidgets
96 1 Andrey Golovin
w1 = nglview.show_structure_file('.....B99990001.pdb')
97 1 Andrey Golovin
w1
98 1 Andrey Golovin
</code></pre>
99 1 Andrey Golovin
100 1 Andrey Golovin
-----
101 1 Andrey Golovin
А ГДЕ ЛИГАНД??
102 1 Andrey Golovin
-----
103 1 Andrey Golovin
# Оказывается надо добавить три остатка лиганда к последовательности
104 1 Andrey Golovin
105 1 Andrey Golovin
Подсказки как сделать:
106 1 Andrey Golovin
<pre><code class="python">
107 1 Andrey Golovin
## Получить список остаков
108 1 Andrey Golovin
alignm[n].residues
109 1 Andrey Golovin
## Добавить в объект выравнивание последовательность из  строки
110 1 Andrey Golovin
alignm.append_sequence(....
111 1 Andrey Golovin
</code></pre>
112 1 Andrey Golovin
113 1 Andrey Golovin
# (Дополнительно) Поместите лиганд в другое место, переназначив объект automodel, это очень примерный код:
114 1 Andrey Golovin
<pre><code class="python">
115 1 Andrey Golovin
class mymodel(modeller.automodel.automodel):
116 1 Andrey Golovin
    def special_restraints(self, aln):
117 1 Andrey Golovin
        rsr = self.restraints
118 1 Andrey Golovin
        at = self.atoms
119 1 Andrey Golovin
        for x,y in [('CG:83','O6:228')]:
120 1 Andrey Golovin
        rsr.add(modeller.forms.gaussian(group=modeller.physical.xy_distance, 
121 1 Andrey Golovin
                                        feature=modeller.features.distance(
122 1 Andrey Golovin
                                        at[x],at[y]),mean=3.0, stdev=0.1))
123 1 Andrey Golovin
124 1 Andrey Golovin
from modeller import *
125 1 Andrey Golovin
from modeller.automodel import *    
126 1 Andrey Golovin
a = mymodel(env, ...
127 1 Andrey Golovin
</code></pre>
128 1 Andrey Golovin
129 1 Andrey Golovin
и да подсказка: надо удалить рестрейны которые генерируются автоматически: ( можно через файл рестрейнов) 
130 1 Andrey Golovin
<pre>
131 1 Andrey Golovin
43 atoms in HETATM/BLK residues constrained
132 1 Andrey Golovin
to protein atoms within 2.30 angstroms
133 1 Andrey Golovin
and protein CA atoms within 10.00 angstroms
134 1 Andrey Golovin
</pre>
135 1 Andrey Golovin
136 1 Andrey Golovin
#  Доп. Найдите способ искать мутации для улучшения связывания по мотивам этого скрипта https://salilab.org/modeller/wiki/Mutate%20model