Skip to content

Instantly share code, notes, and snippets.

@iwatobipen
Last active January 9, 2021 05:03
Show Gist options
  • Save iwatobipen/1fbf30ed6c21a4016ec4885c7fd614ed to your computer and use it in GitHub Desktop.
Save iwatobipen/1fbf30ed6c21a4016ec4885c7fd614ed to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from rdkit import Chem\n",
"from rdkit.Chem import AllChem\n",
"import py3Dmol\n",
"from rdkit.Chem.Draw import IPythonConsole"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"mol = Chem.AddHs(Chem.MolFromSmiles('COC(C)C'))"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<rdkit.rdBase._vecti at 0x7fb6b55da4b0>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"AllChem.EmbedMultipleConfs(mol, 5)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"application/3dmoljs_load.v0": "<div id=\"3dmolviewer_16100989287101433\" style=\"position: relative; width: 400px; height: 400px\">\n <p id=\"3dmolwarning_16100989287101433\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: <br>\n <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n </div>\n<script>\n\nvar loadScriptAsync = function(uri){\n return new Promise((resolve, reject) => {\n var tag = document.createElement('script');\n tag.src = uri;\n tag.async = true;\n tag.onload = () => {\n resolve();\n };\n var firstScriptTag = document.getElementsByTagName('script')[0];\n firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n});\n};\n\nif(typeof $3Dmolpromise === 'undefined') {\n$3Dmolpromise = null;\n $3Dmolpromise = loadScriptAsync('https://3dmol.csb.pitt.edu/build/3Dmol.js');\n}\n\nvar viewer_16100989287101433 = null;\nvar warn = document.getElementById(\"3dmolwarning_16100989287101433\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_16100989287101433 = $3Dmol.createViewer($(\"#3dmolviewer_16100989287101433\"),{backgroundColor:\"white\"});\n\tviewer_16100989287101433.addModel(\"\\n RDKit 3D\\n\\n 5 4 0 0 0 0 0 0 0 0999 V2000\\n 1.7444 1.1038 -0.2485 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.6700 0.6905 0.4806 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1533 -0.2249 -0.0676 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.5175 0.4302 -0.2856 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.3737 -1.4860 0.6952 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 1 0\\n 2 3 1 0\\n 3 4 1 0\\n 3 5 1 0\\nM END\\n\",\"sdf\");\n\tviewer_16100989287101433.addModel(\"\\n RDKit 3D\\n\\n 5 4 0 0 0 0 0 0 0 0999 V2000\\n 1.9145 0.8423 -0.2546 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.8050 0.3470 0.3729 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1739 -0.1733 -0.4105 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.5752 -1.5802 -0.0880 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.4142 0.6923 -0.1976 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 1 0\\n 2 3 1 0\\n 3 4 1 0\\n 3 5 1 0\\nM END\\n\",\"sdf\");\n\tviewer_16100989287101433.addModel(\"\\n RDKit 3D\\n\\n 5 4 0 0 0 0 0 0 0 0999 V2000\\n 2.0279 -0.2561 -0.1581 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.8692 -0.2103 0.6055 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.2556 0.0894 -0.1169 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.9409 1.3031 0.4735 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.2159 -1.0729 0.0020 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 1 0\\n 2 3 1 0\\n 3 4 1 0\\n 3 5 1 0\\nM END\\n\",\"sdf\");\n\tviewer_16100989287101433.addModel(\"\\n RDKit 3D\\n\\n 5 4 0 0 0 0 0 0 0 0999 V2000\\n -1.9896 0.2151 0.1140 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.7116 0.1986 0.7040 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.2654 -0.0046 -0.2988 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.9201 -1.3388 -0.0245 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.2196 1.1316 -0.3730 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 1 0\\n 2 3 1 0\\n 3 4 1 0\\n 3 5 1 0\\nM END\\n\",\"sdf\");\n\tviewer_16100989287101433.addModel(\"\\n RDKit 3D\\n\\n 5 4 0 0 0 0 0 0 0 0999 V2000\\n 2.0075 -0.4299 -0.4395 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.7464 -0.1625 -0.9424 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1946 0.0789 0.0433 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.2693 -0.9844 -0.1204 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.8533 1.4308 -0.0963 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 1 0\\n 2 3 1 0\\n 3 4 1 0\\n 3 5 1 0\\nM END\\n\",\"sdf\");\n\tviewer_16100989287101433.setStyle({\"stick\": {}});\nviewer_16100989287101433.render();\n});\n</script>",
"text/html": [
"<div id=\"3dmolviewer_16100989287101433\" style=\"position: relative; width: 400px; height: 400px\">\n",
" <p id=\"3dmolwarning_16100989287101433\" style=\"background-color:#ffcccc;color:black\">You appear to be running in JupyterLab (or JavaScript failed to load for some other reason). You need to install the 3dmol extension: <br>\n",
" <tt>jupyter labextension install jupyterlab_3dmol</tt></p>\n",
" </div>\n",
"<script>\n",
"\n",
"var loadScriptAsync = function(uri){\n",
" return new Promise((resolve, reject) => {\n",
" var tag = document.createElement('script');\n",
" tag.src = uri;\n",
" tag.async = true;\n",
" tag.onload = () => {\n",
" resolve();\n",
" };\n",
" var firstScriptTag = document.getElementsByTagName('script')[0];\n",
" firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);\n",
"});\n",
"};\n",
"\n",
"if(typeof $3Dmolpromise === 'undefined') {\n",
"$3Dmolpromise = null;\n",
" $3Dmolpromise = loadScriptAsync('https://3dmol.csb.pitt.edu/build/3Dmol.js');\n",
"}\n",
"\n",
"var viewer_16100989287101433 = null;\n",
"var warn = document.getElementById(\"3dmolwarning_16100989287101433\");\n",
"if(warn) {\n",
" warn.parentNode.removeChild(warn);\n",
"}\n",
"$3Dmolpromise.then(function() {\n",
"viewer_16100989287101433 = $3Dmol.createViewer($(\"#3dmolviewer_16100989287101433\"),{backgroundColor:\"white\"});\n",
"\tviewer_16100989287101433.addModel(\"\\n RDKit 3D\\n\\n 5 4 0 0 0 0 0 0 0 0999 V2000\\n 1.7444 1.1038 -0.2485 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.6700 0.6905 0.4806 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1533 -0.2249 -0.0676 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.5175 0.4302 -0.2856 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.3737 -1.4860 0.6952 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 1 0\\n 2 3 1 0\\n 3 4 1 0\\n 3 5 1 0\\nM END\\n\",\"sdf\");\n",
"\tviewer_16100989287101433.addModel(\"\\n RDKit 3D\\n\\n 5 4 0 0 0 0 0 0 0 0999 V2000\\n 1.9145 0.8423 -0.2546 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.8050 0.3470 0.3729 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1739 -0.1733 -0.4105 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.5752 -1.5802 -0.0880 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.4142 0.6923 -0.1976 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 1 0\\n 2 3 1 0\\n 3 4 1 0\\n 3 5 1 0\\nM END\\n\",\"sdf\");\n",
"\tviewer_16100989287101433.addModel(\"\\n RDKit 3D\\n\\n 5 4 0 0 0 0 0 0 0 0999 V2000\\n 2.0279 -0.2561 -0.1581 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.8692 -0.2103 0.6055 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.2556 0.0894 -0.1169 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.9409 1.3031 0.4735 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.2159 -1.0729 0.0020 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 1 0\\n 2 3 1 0\\n 3 4 1 0\\n 3 5 1 0\\nM END\\n\",\"sdf\");\n",
"\tviewer_16100989287101433.addModel(\"\\n RDKit 3D\\n\\n 5 4 0 0 0 0 0 0 0 0999 V2000\\n -1.9896 0.2151 0.1140 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.7116 0.1986 0.7040 O 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.2654 -0.0046 -0.2988 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.9201 -1.3388 -0.0245 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.2196 1.1316 -0.3730 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 1 0\\n 2 3 1 0\\n 3 4 1 0\\n 3 5 1 0\\nM END\\n\",\"sdf\");\n",
"\tviewer_16100989287101433.addModel(\"\\n RDKit 3D\\n\\n 5 4 0 0 0 0 0 0 0 0999 V2000\\n 2.0075 -0.4299 -0.4395 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.7464 -0.1625 -0.9424 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1946 0.0789 0.0433 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.2693 -0.9844 -0.1204 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.8533 1.4308 -0.0963 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1 2 1 0\\n 2 3 1 0\\n 3 4 1 0\\n 3 5 1 0\\nM END\\n\",\"sdf\");\n",
"\tviewer_16100989287101433.setStyle({\"stick\": {}});\n",
"viewer_16100989287101433.render();\n",
"});\n",
"</script>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"p = py3Dmol.view(width=400,height=400)\n",
"mol = Chem.RemoveHs(mol)\n",
"for i in range(5):\n",
" \n",
" mb = Chem.MolToMolBlock(mol, confId=i)\n",
" p.addModel(mb, 'sdf')\n",
"p.setStyle({'stick':{}})\n",
"p.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
},
{
"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.9"
},
"widgets": {
"application/vnd.jupyter.widget-state+json": {
"state": {},
"version_major": 2,
"version_minor": 0
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
@iwatobipen
Copy link
Author

To run the code, please install rdkit and py3dmol.
$ conda install -c conda-forge rdkit
$ conda install -c conda-forge py3dmol

@gmseabra
Copy link

gmseabra commented Jan 9, 2021

Works like a charm. Thanks!

@iwatobipen
Copy link
Author

Happy to hear that ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment