Skip to content

Instantly share code, notes, and snippets.

@greglandrum
Created December 17, 2022 14:20
Show Gist options
  • Save greglandrum/b93b1b25a4974e7d5e6908088b5fa58e to your computer and use it in GitHub Desktop.
Save greglandrum/b93b1b25a4974e7d5e6908088b5fa58e to your computer and use it in GitHub Desktop.
Github5829 - intramolecular h bonds.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"id": "eb95712f",
"cell_type": "code",
"source": "from rdkit import Chem\nfrom rdkit.Chem import Draw\nfrom rdkit.Chem.Draw import IPythonConsole\nIPythonConsole.ipython_3d = True\nfrom rdkit.Chem import rdDistGeom\n\nimport rdkit\nprint(rdkit.__version__)",
"execution_count": 1,
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": "2022.09.1\n"
}
]
},
{
"metadata": {
"trusted": true
},
"id": "5a38af40",
"cell_type": "code",
"source": "m = Chem.MolFromSmiles('CNC(=O)C1=CC2=CC=CC=C2OC1=O')\nm",
"execution_count": 2,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<rdkit.Chem.rdchem.Mol at 0x7f0b693d18c0>"
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"id": "bdf592f4",
"cell_type": "code",
"source": "mh = Chem.AddHs(m)\nIPythonConsole.drawOptions.addAtomIndices = True\nIPythonConsole.molSize = 450,400\nmh",
"execution_count": 13,
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": "<rdkit.Chem.rdchem.Mol at 0x7f0b66b5b530>"
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"id": "becba1f0",
"cell_type": "markdown",
"source": "Generate some conformers so that we have 3D structures to play with"
},
{
"metadata": {
"trusted": true
},
"id": "722497b4",
"cell_type": "code",
"source": "ps = rdDistGeom.ETKDGv3()\nps.randomSeed = 0xf00d\nrdDistGeom.EmbedMolecule(mh,ps)",
"execution_count": 26,
"outputs": [
{
"data": {
"text/plain": "0"
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {},
"id": "d03b1e9c",
"cell_type": "markdown",
"source": "Look at the first conformer"
},
{
"metadata": {
"trusted": true
},
"id": "85daef0c",
"cell_type": "code",
"source": "mh",
"execution_count": 27,
"outputs": [
{
"data": {
"application/3dmoljs_load.v0": "<div id=\"3dmolviewer_1671285621483664\" style=\"position: relative; width: 400px; height: 400px\">\n <p id=\"3dmolwarning_1671285621483664\" 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://cdn.jsdelivr.net/npm/3dmol@latest/build/3Dmol-min.min.js');\n}\n\nvar viewer_1671285621483664 = null;\nvar warn = document.getElementById(\"3dmolwarning_1671285621483664\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_1671285621483664 = $3Dmol.createViewer($(\"#3dmolviewer_1671285621483664\"),{backgroundColor:\"white\"});\nviewer_1671285621483664.zoomTo();\n\tviewer_1671285621483664.removeAllModels();\n\tviewer_1671285621483664.addModel(\"\\n RDKit 3D\\n\\n 24 25 0 0 0 0 0 0 0 0999 V2000\\n -4.7107 -0.2152 -0.0197 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.3232 -0.5963 0.2957 N 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.2248 0.1252 -0.1631 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.5003 1.1493 -0.8823 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.8249 -0.1287 0.0647 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.1594 0.6997 -0.4723 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.4968 0.5047 -0.2877 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.4497 1.3386 -0.8298 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.7714 1.0885 -0.6076 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 4.1761 0.0120 0.1527 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.2211 -0.8233 0.6957 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.8693 -0.5845 0.4802 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.9582 -1.3743 0.9932 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.3502 -1.1792 0.8096 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.0834 -2.0138 1.3602 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -5.4101 -1.0130 0.2296 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.8837 0.7263 0.5579 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.8022 0.0795 -1.0897 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.1634 -1.4342 0.8818 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1553 1.5491 -1.0721 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.0781 2.1791 -1.4254 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 4.5177 1.7452 -1.0345 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.2440 -0.1584 0.3103 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.4905 -1.6762 1.2962 H 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 2 0\\n 3 5 1 0\\n 5 6 2 0\\n 6 7 1 0\\n 7 8 2 0\\n 8 9 1 0\\n 9 10 2 0\\n 10 11 1 0\\n 11 12 2 0\\n 12 13 1 0\\n 13 14 1 0\\n 14 15 2 0\\n 14 5 1 0\\n 12 7 1 0\\n 1 16 1 0\\n 1 17 1 0\\n 1 18 1 0\\n 2 19 1 0\\n 6 20 1 0\\n 8 21 1 0\\n 9 22 1 0\\n 10 23 1 0\\n 11 24 1 0\\nM END\\n\",\"sdf\");\n\tviewer_1671285621483664.setStyle({\"stick\": {}});\n\tviewer_1671285621483664.setBackgroundColor(\"0xeeeeee\");\n\tviewer_1671285621483664.zoomTo();\nviewer_1671285621483664.render();\n});\n</script>",
"text/html": "<div id=\"3dmolviewer_1671285621483664\" style=\"position: relative; width: 400px; height: 400px\">\n <p id=\"3dmolwarning_1671285621483664\" 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://cdn.jsdelivr.net/npm/3dmol@latest/build/3Dmol-min.min.js');\n}\n\nvar viewer_1671285621483664 = null;\nvar warn = document.getElementById(\"3dmolwarning_1671285621483664\");\nif(warn) {\n warn.parentNode.removeChild(warn);\n}\n$3Dmolpromise.then(function() {\nviewer_1671285621483664 = $3Dmol.createViewer($(\"#3dmolviewer_1671285621483664\"),{backgroundColor:\"white\"});\nviewer_1671285621483664.zoomTo();\n\tviewer_1671285621483664.removeAllModels();\n\tviewer_1671285621483664.addModel(\"\\n RDKit 3D\\n\\n 24 25 0 0 0 0 0 0 0 0999 V2000\\n -4.7107 -0.2152 -0.0197 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.3232 -0.5963 0.2957 N 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.2248 0.1252 -0.1631 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -2.5003 1.1493 -0.8823 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.8249 -0.1287 0.0647 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.1594 0.6997 -0.4723 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.4968 0.5047 -0.2877 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.4497 1.3386 -0.8298 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.7714 1.0885 -0.6076 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 4.1761 0.0120 0.1527 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.2211 -0.8233 0.6957 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 1.8693 -0.5845 0.4802 C 0 0 0 0 0 0 0 0 0 0 0 0\\n 0.9582 -1.3743 0.9932 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.3502 -1.1792 0.8096 C 0 0 0 0 0 0 0 0 0 0 0 0\\n -1.0834 -2.0138 1.3602 O 0 0 0 0 0 0 0 0 0 0 0 0\\n -5.4101 -1.0130 0.2296 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.8837 0.7263 0.5579 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -4.8022 0.0795 -1.0897 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -3.1634 -1.4342 0.8818 H 0 0 0 0 0 0 0 0 0 0 0 0\\n -0.1553 1.5491 -1.0721 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 2.0781 2.1791 -1.4254 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 4.5177 1.7452 -1.0345 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 5.2440 -0.1584 0.3103 H 0 0 0 0 0 0 0 0 0 0 0 0\\n 3.4905 -1.6762 1.2962 H 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 2 0\\n 3 5 1 0\\n 5 6 2 0\\n 6 7 1 0\\n 7 8 2 0\\n 8 9 1 0\\n 9 10 2 0\\n 10 11 1 0\\n 11 12 2 0\\n 12 13 1 0\\n 13 14 1 0\\n 14 15 2 0\\n 14 5 1 0\\n 12 7 1 0\\n 1 16 1 0\\n 1 17 1 0\\n 1 18 1 0\\n 2 19 1 0\\n 6 20 1 0\\n 8 21 1 0\\n 9 22 1 0\\n 10 23 1 0\\n 11 24 1 0\\nM END\\n\",\"sdf\");\n\tviewer_1671285621483664.setStyle({\"stick\": {}});\n\tviewer_1671285621483664.setBackgroundColor(\"0xeeeeee\");\n\tviewer_1671285621483664.zoomTo();\nviewer_1671285621483664.render();\n});\n</script>"
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"image/png": "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\n",
"text/html": "",
"text/plain": "<rdkit.Chem.rdchem.Mol at 0x7f0b66b5b530>"
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"id": "401d90ed",
"cell_type": "code",
"source": "def find_intramolecular_hbonds(mol,confId=-1,eligibleAtoms=[7,8],distTol=2.5):\n '''\n eligibleAtoms is the list of atomic numbers of eligible H-bond donors or acceptors\n distTol is the maximum accepted distance for an H bond\n '''\n res = []\n conf = mol.GetConformer(confId)\n for i in range(mol.GetNumAtoms()):\n atomi = mol.GetAtomWithIdx(i)\n # is it H?\n if atomi.GetAtomicNum()==1:\n if atomi.GetDegree() != 1:\n continue\n nbr = atomi.GetNeighbors()[0]\n if nbr.GetAtomicNum() not in eligibleAtoms:\n continue\n # loop over all other atoms except ones we're bound to and other Hs:\n for j in range(mol.GetNumAtoms()):\n if j==i:\n continue\n atomj = mol.GetAtomWithIdx(j)\n if atomj.GetAtomicNum() not in eligibleAtoms or mol.GetBondBetweenAtoms(i,j):\n continue\n dist = (conf.GetAtomPosition(i)- conf.GetAtomPosition(j)).Length()\n if dist<distTol:\n res.append((i,j,dist))\n return res\n",
"execution_count": 30,
"outputs": []
},
{
"metadata": {
"trusted": true
},
"id": "0574ce87",
"cell_type": "code",
"source": "find_intramolecular_hbonds(mh)",
"execution_count": 31,
"outputs": [
{
"data": {
"text/plain": "[(18, 14, 2.211592139678877)]"
},
"execution_count": 31,
"metadata": {},
"output_type": "execute_result"
}
]
},
{
"metadata": {
"trusted": true
},
"id": "b7a4256f",
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3 (ipykernel)",
"language": "python"
},
"language_info": {
"name": "python",
"version": "3.10.8",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"toc": {
"nav_menu": {},
"number_sections": true,
"sideBar": true,
"skip_h1_title": false,
"base_numbering": 1,
"title_cell": "Table of Contents",
"title_sidebar": "Contents",
"toc_cell": false,
"toc_position": {},
"toc_section_display": true,
"toc_window_display": false
},
"gist": {
"id": "",
"data": {
"description": "Github5829 - intramolecular h bonds.ipynb",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 5
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment