Last active
January 9, 2021 05:03
-
-
Save iwatobipen/1fbf30ed6c21a4016ec4885c7fd614ed to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"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 | |
} |
Works like a charm. Thanks!
Happy to hear that ;)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
To run the code, please install rdkit and py3dmol.
$ conda install -c conda-forge rdkit
$ conda install -c conda-forge py3dmol