Task7
Version 4 (Andrey Golovin, 13.12.2023 17:30)
1 | 1 | Andrey Golovin | h1. Докинг низкомолекулярных лигандов в структуру белка |
---|---|---|---|
2 | 1 | Andrey Golovin | |
3 | 1 | Andrey Golovin | |
4 | 1 | Andrey Golovin | h2. Традиционные ссылки на полезные ресурсы: |
5 | 1 | Andrey Golovin | |
6 | 1 | Andrey Golovin | * Видеурок по работе с Autodock Vina [[http://vina.scripps.edu/tutorial.html |
7 | 1 | Andrey Golovin | * Статья по ODDT https://jcheminf.springeropen.com/articles/10.1186/s13321-015-0078-2 |
8 | 1 | Andrey Golovin | |
9 | 1 | Andrey Golovin | Вся работа по расчётам будет проходить на через ipython notebook. |
10 | 1 | Andrey Golovin | |
11 | 1 | Andrey Golovin | |
12 | 1 | Andrey Golovin | h3. Введение |
13 | 1 | Andrey Golovin | |
14 | 1 | Andrey Golovin | Цель данного занятия ознакомится с возможностями докинга низкомолекулярного лиганда в структуру белка. |
15 | 1 | Andrey Golovin | |
16 | 1 | Andrey Golovin | В этом занятии мы будем пользоваться пакетом Autodock Vina и oddt. Это программное обеспечение распространяется бесплатно для академических пользователей. |
17 | 1 | Andrey Golovin | |
18 | 1 | Andrey Golovin | h3. Объект |
19 | 1 | Andrey Golovin | |
20 | 1 | Andrey Golovin | Вы будете работать с белком лизоцимом структуру которого вы построили на основе гомологичного моделирования на прошлом *практикуме*. |
21 | 1 | Andrey Golovin | |
22 | 1 | Andrey Golovin | Надо определить место докинга, удалить лигнад, запустить докинг и провести анализ |
23 | 1 | Andrey Golovin | |
24 | 1 | Andrey Golovin | |
25 | 3 | Andrey Golovin | h3. Установка |
26 | 3 | Andrey Golovin | |
27 | 3 | Andrey Golovin | <pre><code class="python"> |
28 | 3 | Andrey Golovin | !pip install -q condacolab |
29 | 3 | Andrey Golovin | import condacolab |
30 | 3 | Andrey Golovin | condacolab.install() |
31 | 3 | Andrey Golovin | ! mamba install -c conda-forge oddt |
32 | 3 | Andrey Golovin | </code></pre> |
33 | 3 | Andrey Golovin | |
34 | 3 | Andrey Golovin | Установите и проверьте наличие AutoDock Vina |
35 | 3 | Andrey Golovin | |
36 | 3 | Andrey Golovin | <pre><code class="python"> |
37 | 3 | Andrey Golovin | ! apt install autodock-vina |
38 | 3 | Andrey Golovin | ! whereis vina |
39 | 3 | Andrey Golovin | </code></pre> |
40 | 3 | Andrey Golovin | |
41 | 3 | Andrey Golovin | |
42 | 3 | Andrey Golovin | |
43 | 1 | Andrey Golovin | h3. Модули |
44 | 1 | Andrey Golovin | |
45 | 1 | Andrey Golovin | <pre><code class="python"> |
46 | 1 | Andrey Golovin | import numpy as np |
47 | 1 | Andrey Golovin | import copy |
48 | 1 | Andrey Golovin | |
49 | 1 | Andrey Golovin | # Отображение структур |
50 | 1 | Andrey Golovin | import IPython.display |
51 | 1 | Andrey Golovin | import ipywidgets |
52 | 1 | Andrey Golovin | from IPython.display import display,display_svg,SVG,Image |
53 | 1 | Andrey Golovin | |
54 | 1 | Andrey Golovin | # Open Drug Discovery Toolkit |
55 | 1 | Andrey Golovin | import oddt |
56 | 2 | Andrey Golovin | import oddt.docking |
57 | 1 | Andrey Golovin | import oddt.interactions |
58 | 1 | Andrey Golovin | |
59 | 1 | Andrey Golovin | # Органика |
60 | 1 | Andrey Golovin | from rdkit.Chem import Draw |
61 | 1 | Andrey Golovin | from rdkit.Chem.Draw import IPythonConsole |
62 | 1 | Andrey Golovin | |
63 | 3 | Andrey Golovin | |
64 | 1 | Andrey Golovin | </code></pre> |
65 | 1 | Andrey Golovin | |
66 | 1 | Andrey Golovin | |
67 | 3 | Andrey Golovin | |
68 | 1 | Andrey Golovin | h3. Подготовка белка |
69 | 1 | Andrey Golovin | |
70 | 3 | Andrey Golovin | Удалите из белка остатки лиганда и воды |
71 | 3 | Andrey Golovin | |
72 | 1 | Andrey Golovin | <pre><code class="python"> |
73 | 3 | Andrey Golovin | # пример итерации |
74 | 3 | Andrey Golovin | for r in prot.residues : |
75 | 3 | Andrey Golovin | print(r.name) |
76 | 3 | Andrey Golovin | for a in r.atoms: |
77 | 3 | Andrey Golovin | print(a.coords) |
78 | 1 | Andrey Golovin | |
79 | 1 | Andrey Golovin | </code></pre> |
80 | 1 | Andrey Golovin | |
81 | 1 | Andrey Golovin | |
82 | 3 | Andrey Golovin | |
83 | 1 | Andrey Golovin | <pre><code class="python"> |
84 | 1 | Andrey Golovin | for a in lig.atoms: |
85 | 3 | Andrey Golovin | # найдите геометрический центр лиганда |
86 | 1 | Andrey Golovin | </code></pre> |
87 | 1 | Andrey Golovin | |
88 | 1 | Andrey Golovin | <pre><code class="python"> |
89 | 1 | Andrey Golovin | newpdb.writePDB(.....) |
90 | 1 | Andrey Golovin | </code></pre> |
91 | 1 | Andrey Golovin | |
92 | 1 | Andrey Golovin | h3. Подготовка белка для докинга |
93 | 1 | Andrey Golovin | |
94 | 1 | Andrey Golovin | <pre><code class="python"> |
95 | 1 | Andrey Golovin | prot = oddt.toolkit.readfile('pdb','myprot.pdb').next() |
96 | 1 | Andrey Golovin | |
97 | 1 | Andrey Golovin | prot.OBMol.AddPolarHydrogens() |
98 | 1 | Andrey Golovin | prot.OBMol.AutomaticPartialCharge() |
99 | 1 | Andrey Golovin | |
100 | 1 | Andrey Golovin | |
101 | 1 | Andrey Golovin | print 'is it the first mol in 1lmp is protein?',prot.protein,':) and MW of this mol is:', prot.molwt |
102 | 1 | Andrey Golovin | </code></pre> |
103 | 1 | Andrey Golovin | |
104 | 1 | Andrey Golovin | |
105 | 1 | Andrey Golovin | h3. Лиганды для докинга |
106 | 4 | Andrey Golovin | |
107 | 1 | Andrey Golovin | <pre><code class="python"> |
108 | 1 | Andrey Golovin | smiles = ['c1cccc(O)c1', 'c1c(O)ccc(O)c1','c1(O)cc(c2ccccc2)cc(O)c1'] |
109 | 1 | Andrey Golovin | mols= [] |
110 | 1 | Andrey Golovin | images =[] |
111 | 1 | Andrey Golovin | |
112 | 1 | Andrey Golovin | for s in smiles: |
113 | 1 | Andrey Golovin | m = oddt.toolkit.readstring('smi', s) |
114 | 1 | Andrey Golovin | if not m.OBMol.Has3D(): |
115 | 1 | Andrey Golovin | m.make3D(forcefield='mmff94', steps=150) |
116 | 1 | Andrey Golovin | m.removeh() |
117 | 1 | Andrey Golovin | m.OBMol.AddPolarHydrogens() |
118 | 1 | Andrey Golovin | |
119 | 1 | Andrey Golovin | mols.append(m) |
120 | 1 | Andrey Golovin | ###with print m.OBMol.Has3D() was found that: |
121 | 1 | Andrey Golovin | ### deep copy needed to keep 3D , write svg make mols flat |
122 | 1 | Andrey Golovin | images.append((SVG(copy.deepcopy(m).write('svg')))) |
123 | 1 | Andrey Golovin | |
124 | 1 | Andrey Golovin | display_svg(*images) |
125 | 1 | Andrey Golovin | </code></pre> |
126 | 1 | Andrey Golovin | |
127 | 1 | Andrey Golovin | h3. Докинг |
128 | 1 | Andrey Golovin | |
129 | 1 | Andrey Golovin | <pre><code class="python"> |
130 | 1 | Andrey Golovin | #create docking object |
131 | 1 | Andrey Golovin | dock_obj= oddt.docking.AutodockVina.autodock_vina( |
132 | 1 | Andrey Golovin | protein=prot,size=(20,20,20),center=[xx,yy,zz], |
133 | 1 | Andrey Golovin | executable='/usr/bin/vina',autocleanup=True, num_modes=20) |
134 | 1 | Andrey Golovin | |
135 | 1 | Andrey Golovin | print dock_obj.tmp_dir |
136 | 1 | Andrey Golovin | print " ".join(dock_obj.params) # Опишите выдачу |
137 | 1 | Andrey Golovin | </code></pre> |
138 | 1 | Andrey Golovin | |
139 | 1 | Andrey Golovin | <pre><code class="python"> |
140 | 1 | Andrey Golovin | # do it |
141 | 1 | Andrey Golovin | res = dock_obj.dock(mols,prot) |
142 | 1 | Andrey Golovin | </code></pre> |
143 | 1 | Andrey Golovin | |
144 | 1 | Andrey Golovin | h3. Результаты докинга |
145 | 1 | Andrey Golovin | |
146 | 1 | Andrey Golovin | <pre><code class="python"> |
147 | 1 | Andrey Golovin | for i,r in enumerate(res): |
148 | 1 | Andrey Golovin | print "%4d%10s%8s%8s%8s" %(i,r.formula, r.data['vina_affinity'], r.data['vina_rmsd_ub'], r.residues[0].name) |
149 | 1 | Andrey Golovin | </code></pre> |
150 | 1 | Andrey Golovin | |
151 | 1 | Andrey Golovin | h3. Анализ докинга |
152 | 1 | Andrey Golovin | |
153 | 1 | Andrey Golovin | <pre><code class="python"> |
154 | 1 | Andrey Golovin | for i,r in enumerate(res): |
155 | 1 | Andrey Golovin | hbs = oddt.interactions.hbonds(prot,r) |
156 | 1 | Andrey Golovin | stack= oddt.interactions.pi_stacking(prot,r) |
157 | 1 | Andrey Golovin | phob = oddt.interactions.hydrophobic_contacts(prot,r) |
158 | 1 | Andrey Golovin | </code></pre> |
159 | 1 | Andrey Golovin | |
160 | 1 | Andrey Golovin | h3. Визуализация |
161 | 1 | Andrey Golovin | <pre><code class="python"> |
162 | 1 | Andrey Golovin | for i,r in enumerate(res): |
163 | 1 | Andrey Golovin | r.write(filename='r%s.pdb' % i, format='pdb') |
164 | 1 | Andrey Golovin | </code></pre> |
165 | 1 | Andrey Golovin | |
166 | 1 | Andrey Golovin | <pre><code class="bash"> |
167 | 1 | Andrey Golovin | pymol myprot.pdb r*pdb |
168 | 1 | Andrey Golovin | </code></pre> |
169 | 1 | Andrey Golovin | |
170 | 2 | Andrey Golovin | h2. Задание |
171 | 2 | Andrey Golovin | |
172 | 2 | Andrey Golovin | # NAG содержит в себе СH3C(=O)NH группу. Создайте лиганды где метильный радикал этой группы будет заменён на : |
173 | 2 | Andrey Golovin | * OH |
174 | 2 | Andrey Golovin | * NH3+ |
175 | 2 | Andrey Golovin | * H |
176 | 1 | Andrey Golovin | * Ph |
177 | 1 | Andrey Golovin | * COO- |
178 | 1 | Andrey Golovin | |
179 | 2 | Andrey Golovin | Для каждого из этих лигандов проведите докинг и представьте результаты в виде таблицы от лучшего заместителя к худшему. |
180 | 1 | Andrey Golovin | |
181 | 1 | Andrey Golovin | # Предложите методы из статьи про ODDT (пакет Sklearn), которые можно было бы использовать в Вашем упражнении |