Skip to content

Instantly share code, notes, and snippets.

@greglandrum
Created July 21, 2022 02:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save greglandrum/29e3c72b401ed5d88726be05908f100f to your computer and use it in GitHub Desktop.
Save greglandrum/29e3c72b401ed5d88726be05908f100f to your computer and use it in GitHub Desktop.
stereo and substructures.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.Draw import IPythonConsole\nfrom rdkit.Chem import Draw\nimport rdkit\nprint(rdkit.__version__)",
"execution_count": 4,
"outputs": [
{
"output_type": "stream",
"text": "2022.03.4\n",
"name": "stdout"
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "IPythonConsole.drawOptions.addStereoAnnotation = True\nm_unk = Chem.MolFromSmiles('CC(F)(Cl)O')\nm_spec = Chem.MolFromSmiles('C[C@](F)(Cl)O')\nm_and = Chem.MolFromSmiles('C[C@](F)(Cl)O |&1:1|}')\nm_or = Chem.MolFromSmiles('C[C@](F)(Cl)O |o1:1|}')\nm_abs = Chem.MolFromSmiles('C[C@](F)(Cl)O |a:1|}')\nlabels = ['unknown','specified','and','or','abs']\nms = [m_unk,m_spec,m_and,m_or,m_abs]\nDraw.MolsToGridImage(ms,legends=labels)",
"execution_count": 15,
"outputs": [
{
"output_type": "execute_result",
"execution_count": 15,
"data": {
"image/png": "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\n",
"text/plain": "<IPython.core.display.Image object>"
},
"metadata": {}
}
]
},
{
"metadata": {
"trusted": true
},
"cell_type": "code",
"source": "sso = Chem.SubstructMatchParameters()\nsso.useChirality = True\nsso.useEnhancedStereo = True\n\nfor q,ql in zip(ms,labels):\n print(ql,end=' | ')\n for m,ml in zip(ms,labels):\n print(ml,m.HasSubstructMatch(q,sso),end=' | ')\n print()",
"execution_count": 21,
"outputs": [
{
"output_type": "stream",
"text": "unknown | unknown True | specified True | and True | or True | abs True | \nspecified | unknown False | specified True | and True | or True | abs True | \nand | unknown False | specified False | and True | or False | abs False | \nor | unknown False | specified False | and True | or True | abs False | \nabs | unknown False | specified True | and True | or True | abs True | \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.1",
"mimetype": "text/x-python",
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"pygments_lexer": "ipython3",
"nbconvert_exporter": "python",
"file_extension": ".py"
},
"gist": {
"id": "",
"data": {
"description": "stereo and substructures.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