Учебная страница курса биоинформатики,
год поступления 2017
Хемоинформатика
lecture : http://kodomo.fbb.msu.ru/~golovin/l2.pdf
Цель занятия используя пакет моудлей RDkit предложить аналог ибупрофена :
на сайте PubChem найти все радикалы c азидом для Click Chemistry и скачать их SMILES нотации или используйте pubchempy
- Найти формулу ибупрофена и предложить способ изменения его SMILES для эмуляции продукта Click Chemistry
- Заменить в найденых радикалах азидную группу на модифцированный ибупрофен.
- Превратить новые SMILES в объекты-молекулы
- Отобрать те молекулы, которые удовлетворяют правилу пяти Lipinski
Подсказки:
Всю работу выполняем в Jupiter Notebook на https://kodomo.fbb.msu.ru/jupyter
- Добавим путь к anaconda и активируем профиль,if you use windows do it in putty on kodomo:
Загрузим модули RDkit (мануал: http://www.rdkit.org/docs/GettingStartedInPython.html )
- Нарисуем ибупрофен
- Посчитаем параметры для правила Липински
Прикинуть правильную строку поиска можно здесь https://pubchem.ncbi.nlm.nih.gov/search/search.cgi
Список азидов можно скачать вручную или с помощью https://pubchempy.readthedocs.io/en/latest/
1 import pubchempy
- Загрузим скаченные данные и отфильтруем
compounds = [] per_page = 10**5 for smiles in ["N=N=N", "NN#N",]: for i in range(200): try: a = pcp.get_properties( properties="CanonicalSMILES", identifier=smi...., namespace="...les", searchtype="substructure", RingsNotEmbedded=...., listkey_count=per_page, listkey_start=i*per_page ) except: .......... print("Retrieved page {} of {} search".format(i+1, smiles)) compounds.extend(a)
- Пстроим новые молекулы и отфильтруем
1 for smi in smiles[:1500]:
2
3 if азид in smi:
4 newsmi=smi.replace('N=[N+]=[N-]',template)
5 else:
6 continue
7
8 # Новую молекулу лучше создавать в try из-за битых Smiles
9 try:
10 newmol=Chem.MolFromSmiles
11
12
13 if новая молекулу удолтворяет правилу 5
14 сохраним в массив
15 и покажем
16 except:
17 pass
Надо сделать большую картинку с Draw.MolsToGridImage
- Постройте Similiraty Map ибупрофена с пятым веществом из вашего массива.
- Постройте 3D структуру и покрутите её. Как сделать конформацию лиганда:
загрузим NGL viewer ( для установки conda install -c omnia nglview )
1 import nglview as nv
и покажем первую конформацию
1 nv.show_rdkit(m3d)