Skip to content

Instantly share code, notes, and snippets.

@greglandrum
Created May 28, 2021 07:56
Show Gist options
  • Save greglandrum/ce4c613abb095201c4a071473d80c21f to your computer and use it in GitHub Desktop.
Save greglandrum/ce4c613abb095201c4a071473d80c21f to your computer and use it in GitHub Desktop.
Copying stereinfo.ipynb
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "from rdkit import Chem\nfrom rdkit.Chem import rdDistGeom\nfrom rdkit.Chem.Draw import IPythonConsole\nIPythonConsole.ipython_3d = False\nIPythonConsole.drawOptions.addAtomIndices = True\nimport rdkit\nprint(rdkit.__version__)",
"execution_count": 14,
"outputs": [
{
"output_type": "stream",
"text": "2021.03.1\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "mb = '''\n RDKit 3D\n\n 11 11 0 0 0 0 0 0 0 0999 V2000\n -0.2301 2.1359 0.6071 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.7333 1.1836 0.3744 C 0 0 0 0 0 0 0 0 0 0 0 0\n 0.3032 -0.0717 -0.0237 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1.2370 -1.0667 -0.2707 O 0 0 0 0 0 0 0 0 0 0 0 0\n 2.6289 -0.8412 -0.1287 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.0189 -0.3927 -0.1907 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.4128 -1.7594 -0.6201 C 0 0 0 0 0 0 0 0 0 0 0 0\n -0.9366 -2.9561 0.6112 Cl 0 0 0 0 0 0 0 0 0 0 0 0\n -0.8535 -2.0916 -1.8412 F 0 0 0 0 0 0 0 0 0 0 0 0\n -1.9582 0.5870 0.0515 C 0 0 0 0 0 0 0 0 0 0 0 0\n -1.5803 1.8580 0.4515 C 0 0 0 0 0 0 0 0 0 0 0 0\n 1 2 2 0\n 2 3 1 0\n 3 4 1 0\n 4 5 1 0\n 3 6 2 0\n 6 7 1 0\n 7 8 1 0\n 7 9 1 0\n 6 10 1 0\n 10 11 2 0\n 11 1 1 0\nM END\n'''\nmb_m = Chem.MolFromMolBlock(mb)\nprint(Chem.MolToSmiles(mb_m))\nmb_m",
"execution_count": 27,
"outputs": [
{
"output_type": "stream",
"text": "COc1ccccc1C(F)Cl\n",
"name": "stdout"
},
{
"output_type": "execute_result",
"execution_count": 27,
"data": {
"text/plain": "<rdkit.Chem.rdchem.Mol at 0x7f01cde4d3a0>",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "smi_m = Chem.MolFromSmiles('COc1ccccc1[C@H](F)Cl')\nsmi_m",
"execution_count": 28,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 28,
"data": {
"text/plain": "<rdkit.Chem.rdchem.Mol at 0x7f01cddfbd60>",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# get mapping from smi_m to mb_m\nmatch = mb_m.GetSubstructMatch(smi_m)\n\n# find chiral atoms:\nchi_ats = []\nfor atom in smi_m.GetAtoms():\n if atom.GetChiralTag() != Chem.ChiralType.CHI_UNSPECIFIED:\n chi_ats.append(atom)\n\n# copy over chiral info\nfor smi_atom in chi_ats:\n # order of the neighbors around smi_atom\n smi_order = [x.GetIdx() for x in smi_atom.GetNeighbors()]\n \n mb_atom = mb_m.GetAtomWithIdx(match[smi_atom.GetIdx()])\n mb_atom.SetChiralTag(smi_atom.GetChiralTag())\n \n # check if we need to change that due to neighbor ordering differences\n # current order of neighbors in the mb_mol\n mb_order = [x.GetIdx() for x in mb_atom.GetNeighbors()]\n \n # with the smiles order:\n mb_smi_order = [match[x] for x in smi_order]\n \n # check if it's a cyclic permutation:\n tmp1 = ','.join([str(x) for x in mb_smi_order])\n tmp2 = ','.join([str(x) for x in smi_order + smi_order])\n \n \n if tmp1 not in tmp2:\n # not cyclic:\n mb_atom.InvertChirality()\nprint(Chem.MolToSmiles(mb_m))\nprint(Chem.MolToSmiles(smi_m))",
"execution_count": 30,
"outputs": [
{
"output_type": "stream",
"text": "COc1ccccc1[C@H](F)Cl\nCOc1ccccc1[C@H](F)Cl\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "smi_m2 = Chem.MolFromSmiles('c1cccc(OC)c1[C@@H](F)Cl')\nsmi_m2",
"execution_count": 31,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 31,
"data": {
"text/plain": "<rdkit.Chem.rdchem.Mol at 0x7f01cdae0d00>",
"image/png": "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\n"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "# get mapping from smi_m to mb_m\nmatch = mb_m.GetSubstructMatch(smi_m2)\n\n# find chiral atoms:\nchi_ats = []\nfor atom in smi_m2.GetAtoms():\n if atom.GetChiralTag() != Chem.ChiralType.CHI_UNSPECIFIED:\n chi_ats.append(atom)\n\n# copy over chiral info\nfor smi_atom in chi_ats:\n # order of the neighbors around smi_atom\n smi_order = [x.GetIdx() for x in smi_atom.GetNeighbors()]\n \n mb_atom = mb_m.GetAtomWithIdx(match[smi_atom.GetIdx()])\n mb_atom.SetChiralTag(smi_atom.GetChiralTag())\n \n # check if we need to change that due to neighbor ordering differences\n # current order of neighbors in the mb_mol\n mb_order = [x.GetIdx() for x in mb_atom.GetNeighbors()]\n \n # with the smiles order:\n mb_smi_order = [match[x] for x in smi_order]\n \n # check if it's a cyclic permutation:\n tmp1 = ','.join([str(x) for x in mb_smi_order])\n tmp2 = ','.join([str(x) for x in smi_order + smi_order])\n \n \n if tmp1 not in tmp2:\n # not cyclic:\n mb_atom.InvertChirality()\nprint(Chem.MolToSmiles(mb_m))\nprint(Chem.MolToSmiles(smi_m2))",
"execution_count": 34,
"outputs": [
{
"output_type": "stream",
"text": "COc1ccccc1[C@@H](F)Cl\nCOc1ccccc1[C@@H](F)Cl\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "",
"execution_count": null,
"outputs": []
}
],
"metadata": {
"kernelspec": {
"name": "python3",
"display_name": "Python 3",
"language": "python"
},
"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
},
"language_info": {
"name": "python",
"version": "3.9.4",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"gist": {
"id": "",
"data": {
"description": "Copying stereinfo.ipynb",
"public": true
}
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment