Skip to content

Instantly share code, notes, and snippets.

@ptosco
Created August 30, 2020 13:09
Show Gist options
  • Save ptosco/620edc8a3fd411928499204003eefb59 to your computer and use it in GitHub Desktop.
Save ptosco/620edc8a3fd411928499204003eefb59 to your computer and use it in GitHub Desktop.
AddHsWithCoordsSp2Bug
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "dcda497a6fce46b8a62c340f8471ac44",
"version_major": 2,
"version_minor": 0
},
"text/plain": []
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"from rdkit import Chem\n",
"from rdkit.Chem.Draw import IPythonConsole, rdMolDraw2D\n",
"from IPython.display import SVG\n",
"from rdkit.Chem import rdCoordGen, rdDepictor, rdMolTransforms, rdDistGeom\n",
"import numpy as np\n",
"import nglview as nv"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"use_coordgen = True"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"def add_coords(m, use_coordgen=False):\n",
" if use_coordgen:\n",
" rdCoordGen.AddCoords(m)\n",
" else:\n",
" rdDepictor.Compute2DCoords(m)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"m = Chem.MolFromSmiles('Nc1nnc2n1CCS2')"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7f60f07d8580>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now I call my `add_coords` function to add a 2D conformation to the molecule:"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"add_coords(m, use_coordgen)"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m.GetNumConformers()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7f60f07d8580>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"scale = np.array([[2, 0, 0, 0], [0, 2, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], dtype=np.double)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([[2., 0., 0., 0.],\n",
" [0., 2., 0., 0.],\n",
" [0., 0., 1., 0.],\n",
" [0., 0., 0., 1.]])"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"scale"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"rdMolTransforms.TransformConformer(m.GetConformer(), scale)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"False"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m.GetConformer().Is3D()"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [],
"source": [
"m = rdMolDraw2D.PrepareMolForDrawing(m)\n",
"m = Chem.AddHs(m, addCoords=True)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"draw_opt = rdMolDraw2D.MolDrawOptions()\n",
"draw_opt.addAtomIndices = True\n",
"drawer = rdMolDraw2D.MolDraw2DSVG(400, 400)\n",
"drawer.SetDrawOptions(draw_opt)\n",
"drawer.DrawMolecule(m)\n",
"drawer.FinishDrawing()\n",
"svg = drawer.GetDrawingText()"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
"<svg baseProfile=\"full\" height=\"400px\" version=\"1.1\" viewBox=\"0 0 400 400\" width=\"400px\" xml:space=\"preserve\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:rdkit=\"http://www.rdkit.org/xml\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
"<!-- END OF HEADER -->\n",
"<rect height=\"400\" style=\"opacity:1.0;fill:#FFFFFF;stroke:none\" width=\"400\" x=\"0\" y=\"0\"> </rect>\n",
"<path class=\"bond-0\" d=\"M 327.826,113.325 L 316.394,148.411\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-0\" d=\"M 316.394,148.411 L 304.962,183.497\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-10\" d=\"M 334.748,92.0819 L 336.308,87.2936\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-10\" d=\"M 336.308,87.2936 L 337.868,82.5054\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-11\" d=\"M 334.748,92.0819 L 336.308,87.2936\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-11\" d=\"M 336.308,87.2936 L 337.868,82.5054\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-1\" d=\"M 304.962,183.497 L 326.058,212.574\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-1\" d=\"M 326.058,212.574 L 347.153,241.652\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-1\" d=\"M 300.974,199.705 L 315.741,220.059\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-1\" d=\"M 315.741,220.059 L 330.507,240.414\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-8\" d=\"M 304.962,183.497 L 269.152,195.099\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-8\" d=\"M 269.152,195.099 L 233.342,206.702\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-2\" d=\"M 347.13,262.896 L 312.589,310.362\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-3\" d=\"M 295.654,317.984 L 259.861,306.322\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-3\" d=\"M 259.861,306.322 L 224.067,294.659\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-3\" d=\"M 288.865,302.366 L 263.809,294.203\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-3\" d=\"M 263.809,294.203 L 238.754,286.039\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-4\" d=\"M 224.067,294.659 L 224.097,257.483\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-4\" d=\"M 224.097,257.483 L 224.127,220.307\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-9\" d=\"M 224.067,294.659 L 187.906,306.376\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-9\" d=\"M 187.906,306.376 L 151.746,318.092\" style=\"fill:none;fill-rule:evenodd;stroke:#CCCC00;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-5\" d=\"M 214.929,206.686 L 179.136,195.023\" style=\"fill:none;fill-rule:evenodd;stroke:#0000FF;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-5\" d=\"M 179.136,195.023 L 143.342,183.361\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-6\" d=\"M 143.342,183.361 L 93.344,252.07\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-12\" d=\"M 143.342,183.361 L 133.687,153.565\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-13\" d=\"M 143.342,183.361 L 110.59,178.147\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-7\" d=\"M 93.344,252.07 L 114.439,281.148\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-7\" d=\"M 114.439,281.148 L 135.535,310.226\" style=\"fill:none;fill-rule:evenodd;stroke:#CCCC00;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-14\" d=\"M 93.344,252.07 L 60.0636,252.046\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<path class=\"bond-15\" d=\"M 93.344,252.07 L 79.4854,224.822\" style=\"fill:none;fill-rule:evenodd;stroke:#000000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1\"/>\n",
"<text dominant-baseline=\"central\" style=\"font-size:21px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#0000FF\" text-anchor=\"middle\" x=\"331.287\" y=\"105.89\"><tspan>N</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:21px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#0000FF\" text-anchor=\"start\" x=\"347.777\" y=\"255.461\"><tspan>N</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:21px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#0000FF\" text-anchor=\"middle\" x=\"304.86\" y=\"324.17\"><tspan>N</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:21px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#0000FF\" text-anchor=\"middle\" x=\"224.135\" y=\"212.872\"><tspan>N</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:21px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#CCCC00\" text-anchor=\"middle\" x=\"143.241\" y=\"324.034\"><tspan>S</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:21px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"start\" x=\"330.786\" y=\"85.6919\"><tspan>H</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:21px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"start\" x=\"330.786\" y=\"85.6919\"><tspan>H</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:21px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"start\" x=\"123.163\" y=\"146.129\"><tspan>H</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:21px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"end\" x=\"108.466\" y=\"179.869\"><tspan>H</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:21px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"end\" x=\"57.9392\" y=\"255.226\"><tspan>H</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:21px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"end\" x=\"81.1651\" y=\"217.387\"><tspan>H</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"312.89\" y=\"94.4718\"><tspan>0</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"298.284\" y=\"177.627\"><tspan>1</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"376.102\" y=\"254.679\"><tspan>2</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"311.409\" y=\"343.582\"><tspan>3</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"217.831\" y=\"288.451\"><tspan>4</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"206.939\" y=\"224.548\"><tspan>5</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"149.891\" y=\"205.959\"><tspan>6</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"88.0266\" y=\"263.655\"><tspan>7</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"136.661\" y=\"343.436\"><tspan>8</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"344.45\" y=\"64.697\"><tspan>9</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"316.566\" y=\"61.1973\"><tspan>10</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"123.696\" y=\"125.124\"><tspan>11</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"80.4045\" y=\"175.733\"><tspan>12</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"29.6139\" y=\"254.414\"><tspan>13</tspan></text>\n",
"<text dominant-baseline=\"central\" style=\"font-size:15px;font-style:normal;font-weight:normal;fill-opacity:1;stroke:none;font-family:sans-serif;fill:#000000\" text-anchor=\"middle\" x=\"52.8697\" y=\"215.463\"><tspan>14</tspan></text>\n",
"<path d=\"M 333.62,86.754 L 333.62,78.2567 L 342.117,78.2567 L 342.117,86.754 L 333.62,86.754\" style=\"fill:none;stroke:#FF0000;stroke-width:2px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;\"/>\n",
"</svg>"
],
"text/plain": [
"<IPython.core.display.SVG object>"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"SVG(svg)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"The amine hydrogens have nonzero `z` coordinates: they have been positioned with the correct angle, but the lie in a plane perpendicular to the molecule, rather than being in the same plane as the molecule."
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 N (2.242488750881619, 3.127111121283637, 0.0)\n",
"1 C (1.6228888363308378, 1.2255110846625432, 0.0)\n",
"2 N (2.7972888607449002, -0.3932888878716363, 0.0)\n",
"3 N (1.6204889339870878, -2.0104888237847223, 0.0)\n",
"4 C (-0.28111110263400585, -1.390888909233941, 0.0)\n",
"5 N (-0.2795110660129121, 0.6091110907660591, 0.0)\n",
"6 C (-2.1811111026340058, 1.2287110816107856, 0.0)\n",
"7 C (-3.3579110293918184, -0.3884888543023004, 0.0)\n",
"8 S (-2.183511081271701, -2.0072889031304255, 0.0)\n",
"9 H (2.3973889860074276, 3.6025119176207587, 0.8660254037844385)\n",
"10 H (2.3973889860074276, 3.6025119176207583, -0.8660254037844388)\n",
"11 H (-2.4893831549564998, 2.180009321784117, 0.0)\n",
"12 H (-3.168679828101494, 1.3858989070888434, 0.0)\n",
"13 H (-4.357910769803254, -0.38776831487957264, 0.0)\n",
"14 H (-3.8112496563876204, 0.5028495153831751, 0.0)\n"
]
}
],
"source": [
"for i, a in enumerate(m.GetAtoms()):\n",
" print(a.GetIdx(), a.GetSymbol(), tuple(m.GetConformer().GetAtomPosition(i)))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Also when working with 3D confomrations hydrogens are not placed in the same plane as the `sp2` system, which is what one would expect:"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"m = Chem.MolFromSmiles(\"NC=C\")"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"0"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"rdDistGeom.EmbedMolecule(m, useRandomCoords=True)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"1"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m.GetNumConformers()"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"m = rdMolDraw2D.PrepareMolForDrawing(m)\n",
"m = Chem.AddHs(m, addCoords=True)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [],
"source": [
"draw_opt = rdMolDraw2D.MolDrawOptions()\n",
"draw_opt.addAtomIndices = True\n",
"drawer = rdMolDraw2D.MolDraw2DSVG(400, 400)\n",
"drawer.SetDrawOptions(draw_opt)\n",
"drawer.DrawMolecule(m)\n",
"drawer.FinishDrawing()\n",
"svg = drawer.GetDrawingText()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [],
"source": [
"view1 = nv.NGLWidget()"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"data": {
"application/vnd.jupyter.widget-view+json": {
"model_id": "9d7e6b90d26146698619f43c00f7ca49",
"version_major": 2,
"version_minor": 0
},
"text/plain": [
"NGLWidget()"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"view1.add_structure(nv.RdkitStructure(m))\n",
"view1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"<img src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABiAAAAEsCAYAAABKent4AAAgAElEQVR4Xu3deZxldXkn/qeqq/d932iaprsB2QRUXCbGRE0yKooTTXD5xTgGYZDFaDTGjNEYjBl/URP5KeLGaPQXEkyMowlmTCaZGddxQwVsuqEbaHqnd3qtdV7P6f5WThfV9MKlb9Wt99WbXurec873/T35w/Pp53na+vr6+sKLAAECBAgQIECAAAECBAgQIECAAAECBAgQINBAgTYBRAM1HYoAAQIECBAgQIAAAQIECBAgQIAAAQIECBCoBAQQbgQCBAgQIECAAAECBAgQIECAAAECBAgQIECg4QICiIaTOiABAgQIECBAgAABAgQIECBAgAABAgQIECAggHAPECBAgAABAgQIECBAgAABAgQIECBAgAABAg0XEEA0nNQBCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQGEe4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBBouIAAouGkDkiAAAECBAgQIECAAAECBAgQIECAAAECBAgIINwDBAgQIECAAAECBAgQIECAAAECBAgQIECAQMMFBBANJ3VAAgQIECBAgAABAgQIECBAgAABAgQIECBAQADhHiBAgAABAgQIECBAgAABAgQIECBAgAABAgQaLiCAaDipAxIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQICCPcAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0HABAUTDSR2QAAECBAgQIECAAAECBAgQIECAAAECBAgQEEC4BwgQIECAAAECBAgQIECAAAECBAgQIECAAIGGCwggGk7qgAQIECBAgAABAgQIECBAgAABAgQIECBAgIAAwj1AgAABAgQIECBAgAABAgQIECBAgAABAgQINFxAANFwUgckQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBBDuAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDhAgKIhpM6IAECBAgQIECAAAECBAgQIECAAAECBAgQICCAcA8QIECAAAECBAgQIECAAAECBAgQIECAAAECDRcQQDSc1AEJECBAgAABAgQIECBAgAABAgQIECBAgAABAYR7gAABAgQIECBAgAABAgQIECBAgAABAgQIEGi4gACi4aQOSIAAAQIECBAgQIAAAQIECBAgQIAAAQIECAgg3AMECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAwwUEEA0ndUACBAgQIECAAAECBAgQIECAAAECBAgQIEBAAOEeIECAAAECBAgQIECAAAECBAgQIECAAAECBBouIIBoOKkDEiBAgAABAgQIECBAgAABAgQIECBAgAABAgII9wABAgQIECBAgAABAgQIECBAgAABAgQIECDQcAEBRMNJHZAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQQLgHCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgYYLCCAaTuqABAgQIECAAAECBAgQIECAAAECBAgQIECAgADCPUCAAAECBAgQIECAAAECBAgQIECAAAECBAg0XEAA0XBSByRAgAABAgQIECBAgAABAgQIECBAgAABAgQEEO4BAgQIECBAgAABAgQIECBAgAABAgQIECBAoOECAoiGkzogAQIECBAgQIAAAQIECBAgQIAAAQIECBAgIIBwDxAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQINFxBANJzUAQkQIECAAAECBAgQIECAAAECBAgQIECAAAEBhHuAAAECBAgQIECAAAECBAgQIECAAAECBAgQaLiAAKLhpA5IgAABAgQIECBAgAABAgQIECBAgAABAgQICCDcAwQIECBAgAABAgQIECBAgAABAgQIECBAgEDDBQQQDSd1QAIECBAgQIAAAQIECBAgQIAAAQIECBAgQEAA4R4gQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEGi4ggGg4qQMSIECAAAECBAgQIECAAAECBAgQIECAAAECAgj3AAECBAgQIECAAAECBAgQIECAAAECBAgQINBwAQFEw0kdkAABAgQIECBAgAABAgQIECBAgAABAgQIEBBAuAcIECBAgAABAgQIECBAgAABAgQIECBAgACBhgsIIBpO6oAECBAgQIAAAQIECBAgQIAAAQIECBAgQICAAMI9QIAAAQIECBAgQIAAAQIECBAgQIAAAQIECDRcQADRcFIHJECAAAECBAgQIECAAAECBAgQIECAAAECBAQQ7gECBAgQIECAAAECBAgQIECAAAECBAgQIECg4QICiIaTOiABAgQIECBAgAABAgQIECBAgAABAgQIECAggHAPECBAgAABAgQIECBAgAABAgQIECBAgAABAg0XEEA0nNQBCRAgQIAAAQIECBAgQIAAAQIECBAgQIAAAQGEe4AAAQIECBAgQIAAAQIECBAgQIAAAQIECBBouIAAouGkDkiAAAECBAgQIECAAAECBAgQIECAAAECBAgIINwDBAgQIECAAAECBAgQIECAAAECBAgQIECAQMMFBBANJ3VAAgQIECBAgAABAgQIECBAgAABAgQIECBAQADhHiBAgAABAgQIECBAgAABAgQIECBAgAABAgQaLiCAaDipAxIgQIAAAQIECBAgQIAAAQIECBAgQIAAAQICCPcAAQIECBAgQIAAAQIECBAgQIAAAQIECBAg0HABAUTDSR2QAAECBAgQIECAAAECBAgQIECAAAECBAgQEEC4BwgQIECAAAECBAgQIECAAAECBAgQIECAAIGGCwggGk7qgAQIECBAgAABAgQIECBAgAABAgQIECBAgIAAwj1AgAABAgQIECBAgAABAgQIECBAgAABAgQINFxAANFwUgckQIAAAQIECBAgQIAAAQIECBAgQIAAAQIEBBDuAQIECBAgQIAAAQIECBAgQIAAAQIECBAgQKDhAgKIhpM6IAECBAgQIECAAAECBAgQIECAAAECBAgQICCAcA8QIECAAAECBAgQIECAAAECBAgQIECAAAECDRcQQDSc1AEJECBAgAABAgQIECBAgAABAgQIECBAgAABAYR7gAABAgQIECBAgAABAgQIECBAgAABAgQIEGi4gACi4aQOSIAAAQIECBAgQIAAAQIECBAgQIAAAQIECAgg3AMECBAgQIAAAQIECBAgQIAAAQIECBAgQIBAwwUEEA0ndUACBAgQIECAAAECBAgQIECAAAECBAgQIEBAAOEeIECAAAECBAgQIECAAAECBAgQIECAAAECBBouIIBoOKkDEiBAgAABAgQIECBAgAABAgQIECBAgAABAgII9wABAgQIECBAgAABAgQIECBAgAABAgQIECDQcAEBRMNJHZAAAQIECBAgQIAAAQIECBAgQIAAAQIECBAQQLgHCBAgQIAAAQIECBAgQIAAAQIECBAgQIAAgYYLCCAaTuqABAgQIECAAAECBAgQIECAAAECBAgQIECAgADCPUCAAAECBAgQIECAAAECBAgQIECAAAECBAg0XEAA0XBSByRAgAABAgQIECBAgAABAgQIECBAgAABAgQEEO4BAgQIECBAgAABAgQIECBA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b7DlESBAgAABAgQIECBAgAABAgQIECBAgACBZggIIJqh7pwECBAgQIAAAQIECBAgQIAAAQIECBAgQKDFBQQQLb7BlkeAAAECBAgQIECAAAECBAgQIECAAAECBJohIIBohrpzEiBAgAABAgQIECBAgAABAgQIECBAgACBFhcQQLT4BlseAQIECBAgQIAAAQIECBAgQIAAAQIECBBohoAAohnqzkmAAAECBAgQIECAAAECBAgQIECAAAECBFpcQADR4htseQQIECBAgAABAgQIECBAgAABAgQIECBAoBkCAohmqDsnAQIECBAgQIAAAQIECBAgQIAAAQIECBBocQEBRItvsOURIECAAAECBAgQIECAAAECBAgQIECAAIFmCAggmqHunAQIECBAgAABAgQIECBAgAABAgQIECBAoMUFBBAtvsGWR4AAAQIECBAgQIAAAQIECBAgQIAAAQIEmiEggGiGunMSIECAAAECBAgQIECAAAECBAgQIECAAIEWFxBAtPgGWx4BAgQIECBAgAABAgQIECBAgAABAgQIEGiGgACiGerOSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEWlxAANHiG2x5BAgQIECAAAECBAgQIECAAAECBAgQIECgGQICiGaoOycBAgQIECBAgAABAgQIECBAgAABAgQIEGhxAQFEi2+w5REgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYICCCaoe6cBAgQIECAAAECBAgQIECAAAECBAgQIECgxQUEEC2+wZZHgAABAgQIECBAgAABAgQIECBAgAABAgSaISCAaIa6cxIgQIAAAQIECBAgQIAAAQIECBAgQIAAgRYXEEC0+AZbHgECBAgQIECAAAECBAgQIECAAAECBAgQaIaAAKIZ6s5JgAABAgQIECBAgAABAgQIECBAgAABAgRaXEAA0eIbbHkECBAgQIAAAQIECBAgQIAAAQIECBAgQKAZAgKIZqg7JwECBAgQIECAAAECBAgQIECAAAECBAgQaHEBAUSLb7DlESBAgAABAgQIECBAgAABAgQIECBAgACBZggIIJqh7pwECBAgQIAAAQIECBAgQIAAAQIECBAgQKDFBQQQLb7BlkeAAAECBAgQIECAAAECBAgQIECAAAECBJohIIBohrpzEiBAgAABAgQIECBAgAABAgQIECBAgACBFhcQQLT4BlseAQIECBAgQIAAAQIECBAgQIAAAQIECBBohoAAohnqzkmAAAECBAgQIECAAAECBAgQIECAAAECBFpcQADR4htseQQIECBAgAABAgQIECBAgAABAgQIECBAoBkCAohmqDsnAQIECBAgQIAAAQIECBAgQIAAAQIECBBocQEBRItvsOURIECAAAECBAgQIECAAAECBAgQIECAAIFmCAggmqHunAQIECBAgAABAgQIECBAgAABAgQIECBAoMUFBBAtvsGWR4AAAQIECBAgQIAAAQIECBAgQIAAAQIEmiEggGiGunMSIECAAAECBAgQIECAAAECBAgQIECAAIEWFxBAtPgGWx4BAgQIECBAgAABAgQIECBAgAABAgQIEGiGgACiGerOSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEWlxAANHiG2x5BAgQIECAAAECBAgQIECAAAECBAgQIECgGQICiGaoOycBAgQIECBAgAABAgQIECBAgAABAgQIEGhxAQFEi2+w5REgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYICCCaoe6cBAgQIECAAAECBAgQIECAAAECBAgQIECgxQUEEC2+wZZHgAABAgQIECBAgAABAgQIECBAgAABAgSaISCAaIa6cxIgQIAAAQIECBAgQIAAAQIECBAgQIAAgRYXEEC0+AZbHgECBAgQIECAAAECBAgQIECAAAECBAgQaIaAAKIZ6s5JgAABAgQIECBAgAABAgQIECBAgAABAgRaXEAA0eIbbHkECBAgQIAAAQIECBAgQIAAAQIECBAgQKAZAgKIZqg7JwECBAgQIECAAAECBAgQIECAAAECBAgQaHEBAUSLb7DlESBAgAABAgQIECBAgAABAgQIECBAgACBZggIIJqh7pwECBAgQIAAAQIECBAgQIAAAQIECBAgQKDFBQQQLb7BlkeAAAECBAgQIECAAAECBAgQIECAAAECBJohIIBohrpzEiBAgAABAgQIECBAgAABAgQIECBAgACBFhcQQLT4BlseAQIECBAgQIAAAQIECBAgQIAAAQIECBBohoAAohnqzkmAAAECBAgQIECAAAECBAgQIECAAAECBFpcQADR4htseQQIECBAgAABAgQIECBAgAABAgQIECBAoBkCAohmqDsnAQIECBAgQIAAAQIECBAgQIAAAQIECBBocQEBRItvsOURIECAAAECBAgQIECAAAECBAgQIECAAIFmCAggmqHunAQIECBAgAABAgQIECBAgAABAgQIECBAoMUFBBAtvsGWR4AAAQIECBAgQIAAAQIECBAgQIAAAQIEmiEggGiGunMSIECAAAECBAgQIECAAAECBAgQIECAAIEWFxBAtPgGWx4BAgQIECBAgAABAgQIECBAgAABAgQIEGiGgACiGerOSYAAAQIECBAgQIAAAQIECBAgQIAAAQIEWlxAANHiG2x5BAgQIECAAAECBAgQIECAAAECBAgQIECgGQICiGaoOycBAgQIECBAgAABAgQIECBAgAABAgQIEGhxAQFEi2+w5REgQIAAAQIECBAgQIAAAQIECBAgQIAAgWYICCCaoe6cBAgQIECAAAECBAgQIECAAAECBAgQIECgxQUEEC2+wZZHgAABAgQIECBAgAABAgQIECBAgAABAgSaISCAaIa6cxIgQIAAAQIECBAgQIAAAQIECBAgQIAAgRYXEEC0+AZbHgECBAgQIECAAAECBAgQIECAAAECBAgQaIbA/wWkn4O3L7DuigAAAABJRU5ErkJggg==\">"
]
},
{
"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.6.11"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment