Докинг низкомолекулярных лигандов в структуру белка
- Отчёт по заданию должен появиться на сайте к следующему занятию.
- Необходимо представить в отчёте результаты моделирования и результаты докинга.
- Необходимо представить обсуждение результата.
Традиционные ссылки на полезные ресурсы:
Видеурок по работе с Autodock Vina находится здесь.
Статья по ODDT https://jcheminf.springeropen.com/articles/10.1186/s13321-015-0078-2
Вся работа по расчётам будет проходить на kodomo через ipython notebook.
Введение
Цель данного занятия ознакомится с возможностями докинга низкомолекулярного лиганда в структуру белка.
В этом занятии мы будем пользоваться пакетом Autodock Vina и oddt. Это программное обеспечение распространяется бесплатно для академических пользователей.
Объект
Вы будете работать с белком лизоцимом структуру которого вы построили на основе гомологичного моделирования на прошлом практикуме.
Надо определить место докинга, удалить лигнад, запустить докинг и провести анализ
Модули
1 import numpy as np
2 import copy
3
4 # Отображение структур
5 import IPython.display
6 import ipywidgets
7 from IPython.display import display,display_svg,SVG,Image
8
9 # Open Drug Discovery Toolkit
10 import oddt
11 import oddt.docking
12 import oddt.interactions
13
14 # Органика
15 from rdkit.Chem import Draw
16 drom rdkit import Chem
17 from rdkit.Chem.Draw import IPythonConsole
Подготовка белка
1 # сохраним pdb без лиганда
2 u2 = u.atom_slice(range(100500))
3 u2.save_pdb('1lmp-clean.pdb', force_overwrite=True)
Подготовка белка для докинга
1 prot = next(oddt.toolkit.readfile('pdb','myprot-clean.pdb'))
2 ### В новой версии oddt всё сделает за вас
3 #prot.OBMol.AddPolarHydrogens()
4 #prot.OBMol.AutomaticPartialCharge()
5
6 print('is it the first mol in 1lmp is protein?',prot.protein,':) and MW of this mol is:', prot.molwt )
Лиганды для докинга
1 smiles = ['c1cccc(O)c1', 'c1c(O)ccc(O)c1','c1(O)cc(c2ccccc2)cc(O)c1']
2 mols= []
3 images =[]
4
5 for s in smiles:
6 m = oddt.toolkit.readstring('smi', s)
7 if not m.OBMol.Has3D():
8 m.make3D(forcefield='mmff94', steps=150)
9 ### Опять всё сделают за Вас
10 ###m.removeh()
11 ###m.OBMol.AddPolarHydrogens()
12
13 mols.append(m)
14 ###with print m.OBMol.Has3D() was found that:
15 ### deep copy needed to keep 3D , write svg make mols flat
16 images.append((SVG(copy.deepcopy(m).write('svg'))))
17
18 display_svg(*images)
Докинг
1 #create docking object
2 dock_obj= oddt.docking.AutodockVina.autodock_vina(
3 protein=prot,size=(20,20,20),center=[xx,yy,zz],
4 executable='/usr/bin/vina',autocleanup=True, num_modes=...)
5
6 print dock_obj.tmp_dir
7 print " ".join(dock_obj.params) # Опишите выдачу
1 # do it
2 res = dock_obj.dock(mols,prot)
Результаты докинга
1 for i,r in enumerate(res):
2 ### Узнаем дескриптор "формула"
3 formula = Chem.rdMolDescriptors.CalcMolFormula(r.Mol)
4 print "%4d%10s%8s%8s%8s" %(i, formula, r.data['vina_affinity'], r.data['vina_rmsd_ub'], r.residues[0].name)
Анализ докинга
1 for i,r in enumerate(res):
2 hbs = oddt.interactions.hbonds(prot,r)
3 stack= oddt.interactions.pi_stacking(prot,r)
4 phob = oddt.interactions.hydrophobic_contacts(prot,r)
Визуализация
1 for i,r in enumerate(res):
2 r.write(filename='r%s.pdb' % i, format='pdb')
pymol myprot.pdb r*pdb
Задание
- NAG содержит в себе СH3C(=O)NH группу. Создайте лиганды где метильный радикал этой группы будет заменён на :
- OH
- NH3+
- H
- Ph
- COO-
Для каждого из этих лигандов проведите докинг и представьте результаты в виде таблицы от лучшего заместителя к худшему.
- Предложите методы из статьи про ODDT (пакет Sklearn), которые можно было бы использовать в Вашем упражнении