Kodomo

Пользователь

Учебная страница курса биоинформатики,
год поступления 2015

Хемоинформатика

lecture : http://kodomo.fbb.msu.ru/~golovin/l2.pdf

Цель занятия используя пакет моудлей RDkit предложить аналог ибупрофена :

Подсказки:

   1 source /srv/databases/orca/miniconda2/bin/activate molsim
   2 python3 -m ipykernel install --user --name py3molsim --display-name "Python 3 molsim"

   1 jupyter-notebook --ip=0.0.0.0 --no-browser

   1 from rdkit import Chem
   2 from rdkit.Chem import AllChem
   3 from rdkit import RDConfig
   4 from rdkit.Chem.Draw import IPythonConsole 
   5 from rdkit.Chem import Draw
   6 import numpy as np
   7 from IPython.display import display,Image

   1 ibu=Chem.MolFromSmiles('CC(C)CC1=CC=C(C=C1)C(C)C(=O)O')
   2 AllChem.Compute2DCoords(ibu)
   3 display(ibu)

   1 import rdkit.Chem.Lipinski as Lipinksy
   2 print Lipinksy.NumHDonors(ibu)
   3 print Lipinksy.NumHAcceptors(ibu)
   4 print Lipinksy.rdMolDescriptors.CalcExactMolWt(ibu)
   5 print Lipinksy.rdMolDescriptors.CalcCrippenDescriptors(ibu)[0]

   1 import pubchempy

   1 strings=np.genfromtxt('2515324818764782706.txt',dtype=np.str)
   2 
   3 for line in strings:
   4     if len(line[1]) < 30 and not '.' in line[1]:
   5         smiles  append line[1]

   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

   1 from IPython.display import SVG
   2 SVG(Draw.MolsToGridImage([m1,m2],useSVG=True, molsPerRow=3, subImgSize=(200, 200)))

   1 from rdkit.Chem.Draw import SimilarityMaps
   2 
   3 fp = SimilarityMaps.GetMorganFingerprint(somemol, fpType='bv')
   4 
   5 fig, maxweight = SimilarityMaps.GetSimilarityMapForFingerprint(refmol, somemol, SimilarityMaps.GetMorganFingerprint)

   1 m3d=Chem.AddHs(m2d)
   2 Chem.AllChem.EmbedMolecule(m3d)
   3 AllChem.MMFFOptimizeMolecule(m3d,maxIters=500,nonBondedThresh=200 )

загрузим NGL viewer ( для установки conda install -c omnia nglview  )

   1 import nglview as nv

и покажем первую конформацию

   1 nv.show_rdkit(m3d)