{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "from rdkit import Chem\n", "from rdkit.Chem import rdBase\n", "from rdkit.Chem import RDConfig\n", "from rdkit.Chem import AllChem\n", "from rdkit.Chem import Draw\n", "from rdkit.Chem.Draw import rdMolDraw2D\n", "from rdkit.Chem.Draw import IPythonConsole\n", "from rdkit.Chem import rdDepictor\n", "import rdkit\n", "from IPython.display import SVG\n", "\n", "from rdkit.Chem import ChemicalFeatures\n", "fdef = os.path.join(RDConfig.RDContribDir, 'M_Kossner/BaseFeatures_DIP2_NoMicrospecies.fdef')\n", "ffact = ChemicalFeatures.BuildFeatureFactory(fdef)" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'2020.03.1'" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rdDepictor.SetPreferCoordGen(True)\n", "rdkit.__version__" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "sdf = os.path.join(RDConfig.RDDocsDir, 'Book/data/cdk2.sdf')\n", "mols = [m for m in Chem.SDMolSupplier(sdf)]\n", "for m in mols:\n", " AllChem.Compute2DCoords(m)\n", "mol1 = mols[1]" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# the code is bollowed from following url.\n", "# https://bit.ly/3aTUBCU\n", "class HorizontalDisplay:\n", " def __init__(self, *args):\n", " self.args = args\n", "\n", " def _repr_html_(self):\n", " template = '
{0}
'\n", " return \"\\n\".join(template.format(arg)\n", " for arg in self.args)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "N\n", "H\n", "N\n", "N\n", "N\n", "H2N\n", "O\n", "O\n", "" ], "text/plain": [ "" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d2d = rdMolDraw2D.MolDraw2DSVG(250, 200)\n", "d2d.DrawMolecule(mol1)\n", "d2d.FinishDrawing()\n", "text1 = d2d.GetDrawingText()\n", "SVG(d2d.GetDrawingText())" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "N\n", "H\n", "N\n", "N\n", "N\n", "H2N\n", "O\n", "O\n", "0\n", "1\n", "2\n", "3\n", "4\n", "5\n", "6\n", "7\n", "8\n", "9\n", "10\n", "11\n", "12\n", "13\n", "14\n", "15\n", "16\n", "" ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d2d = rdMolDraw2D.MolDraw2DSVG(250, 200)\n", "d2d.drawOptions().addAtomIndices = True\n", "d2d.DrawMolecule(mol1)\n", "d2d.FinishDrawing()\n", "text2 = d2d.GetDrawingText()\n", "SVG(d2d.GetDrawingText())" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "from collections import defaultdict\n", "feats = ffact.GetFeaturesForMol(mol1)\n", "colors = {'SingleAtomDonor':(1,0.5,0.5),\n", " 'SingleAtomAcceptor':(0.5,0.5,1),\n", " 'BasicGroup':(0,1,1),\n", " 'Arom6':(1,0.8,0.5),\n", " 'Hphobe':(0.7,0.7,0.3)}" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "atomHighlighs = defaultdict(list)\n", "highlightRads = {}\n", "for feat in feats:\n", " if feat.GetType() in colors:\n", " clr = colors[feat.GetType()]\n", " for aid in feat.GetAtomIds():\n", " atomHighlighs[aid].append(clr)\n", " highlightRads[aid] = 0.4" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "N\n", "H\n", "N\n", "N\n", "N\n", "H2N\n", "O\n", "O\n", "" ], "text/plain": [ "" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d2d = rdMolDraw2D.MolDraw2DSVG(250, 200)\n", "d2d.DrawMoleculeWithHighlights(mol1, '', dict(atomHighlighs), {}, highlightRads, {})\n", "d2d.drawOptions().addAtomIndices = True\n", "d2d.FinishDrawing()\n", "text3 = d2d.GetDrawingText()\n", "SVG(d2d.GetDrawingText())" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "N\n", "H\n", "N\n", "N\n", "N\n", "H2N\n", "O\n", "O\n", "" ], "text/plain": [ "" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "d2d = rdMolDraw2D.MolDraw2DSVG(250, 200)\n", "dos = d2d.drawOptions()\n", "dos.atomHighlightsAreCricle = True\n", "dos.fillHighlights = False\n", "d2d.DrawMoleculeWithHighlights(mol1, '', dict(atomHighlighs), {}, highlightRads, {})\n", "d2d.drawOptions().addAtomIndices = True\n", "d2d.FinishDrawing()\n", "text4 = d2d.GetDrawingText()\n", "SVG(d2d.GetDrawingText())" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "N\n", "H\n", "N\n", "N\n", "N\n", "H2N\n", "O\n", "O\n", "\n", "
\n", "
\n", "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "N\n", "H\n", "N\n", "N\n", "N\n", "H2N\n", "O\n", "O\n", "0\n", "1\n", "2\n", "3\n", "4\n", "5\n", "6\n", "7\n", "8\n", "9\n", "10\n", "11\n", "12\n", "13\n", "14\n", "15\n", "16\n", "\n", "
\n", "
\n", "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "N\n", "H\n", "N\n", "N\n", "N\n", "H2N\n", "O\n", "O\n", "\n", "
\n", "
\n", "\n", "\n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "N\n", "H\n", "N\n", "N\n", "N\n", "H2N\n", "O\n", "O\n", "\n", "
" ], "text/plain": [ "<__main__.HorizontalDisplay at 0x7f891a945590>" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "HorizontalDisplay(text1, text2, text3, text4)" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.7" } }, "nbformat": 4, "nbformat_minor": 4 }