Skip to content

Instantly share code, notes, and snippets.

@john-bradshaw
Last active April 28, 2022 00:26
Show Gist options
  • Save john-bradshaw/40608a0361ea8073faee8fd850a260e2 to your computer and use it in GitHub Desktop.
Save john-bradshaw/40608a0361ea8073faee8fd850a260e2 to your computer and use it in GitHub Desktop.
Notebook showing how different SMILES can sometimes have the same fingerprint
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# But I thought they were different!"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"RDKit WARNING: [20:26:02] Enabling RDKit 2019.09.3 jupyter extensions\n"
]
}
],
"source": [
"import functools\n",
"import warnings\n",
"\n",
"from rdkit import Chem\n",
"from rdkit.Chem import AllChem\n",
"import numpy as np"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"one = \"CCCCCCCC\"\n",
"two = \"CCCCCCCCCCCCCCCCCCCCCCCC\""
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7fcd218d3bc0>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Chem.MolFromSmiles(one)"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAIAAADCEh9HAAAABmJLR0QA/wD/AP+gvaeTAAAM80lEQVR4nO3cW0wUdxvH8f8iunKwLVVE5FAq1Ug0tchBqz1IYtKWYEwb5Ub3wovijSGxN2hi3AsT5ZJbtMZwQUy4pOnBQDlVERHsQaukeCxaay1VWZBa3J334p9O5t3dWZZ5ZnzzJt/PFeoyz+4cfvM8M7P6DMNQAACnUv7XbwAA/r8RowAgQowCgAgxCgAixCgAiBCjACBCjAKACDEKACLEKACIEKMAIEKMAoAIMQoAIsQoAIgQowAgQowCgAgxCgAixCgAiBCjACBCjAKACDEKACLEKACIEKMAIEKMAoAIMQoAIsQoAIgQowAgQowCgAgxCgAixCgAiBCjACBCjAKACDEKACLEKACIEKMAIEKMAoAIMQoAIsQoAIgQowAgQowCgAgxCgAixCgAiBCjACBCjAKACDEKACLEKACIEKMAIEKMAoAIMQoAIsQoAIgQowAgQowCgAgxCgAixCgAiBCjACBCjAKACDEKACLEKACIEKMAIEKMAoAIMQoAIsQoAIgQowAgQowCgAgxCgAixCgAiBCjACBCjAKASOqLLBYOh9va2oqLixctWlRSUuJprSdPnty+fXtycnLTpk0+n8/TWrdu3XrppZeUUosXL/a0kFLq0aNHSqmsrCyvC0UiEcMwIpHI/Pnzva4F/H8zXpSurq4333xTKZWfn5+amlpXV/fw4UMvCoXD4ZaWlpycnLy8PJ/PV15e3t/f70UhwzAmJyeDweDChQu3bNmSlZXV2Nj47Nkzj2r9+uuvgUAgPz8/Nze3pqbm9u3bHhUyDOP8+fMbNmz49NNPV65c2dbW5l2hSCTS0tJSXl7+ySef1NfXT0xMeFcrFAodPHjw2LFj27Ztu3z5sneFDMO4c+fO3r17T5w4cfLkyXA47Gmtc+fOtba2Hj169MGDB54WikQira2tQ0ND3d3dnhYyDGNqaqqvr6+3t3d6etrrWmNjY48fP5Ys4UXE6Ojo6Pbt23VqFxUVVVdXz5s3TymVnZ19/Phxd3eyrq6udevW6Vpr165dunSpUiolJWXPnj337993sVA4HD5+/HhOTo5e/ooVK8yinZ2dLhYyDGNiYuLAgQN+v18plZaWpn/IyMg4cuSI6zvZzZs3d+zYoT/Lyy+/rH+orq4eGRlxt5BhGH19fWVlZbqEnhjy8/NbW1t1I+yicDh86tSp3NxcpdTChQuVUqmpqfv27RsfH3e3kGEYk5OThw4dSktL0xtLKeXdifzu3buBQMDn8+kPlZGREQwG//77by9qXbx4cfPmzUqp119/XSlVU1Nz8+ZNLwpFIpG2trbXXnstPT3d7/cXFBS0tLR4UcgwjKdPnzY2Ni5atGj//v2S5Xgbo7pZMw/7YDCoD/urV69+8MEH+vgpLS3t6+uT19LNml6mXvWRSMTsFt3dyXp6et566y1da8OGDefPnzcMo6Ojw7xSUVNTc+PGDXkh3awtW7ZMB83OnTvv3LljHjw6d9zayazrKj09PRgMTkxMNDc3L1myRCk1f/78+vp64UnbNDY2Zn6EvLy8lpaWwcHBTZs26bVXUVGhV6krLly48Pbbb5tLPnPmTENDw4IFC5RSWVlZTU1NMzMzrhQyj39zY33++edFRUXmH10cIKamphobGzMzM3VY19XVffzxx/ozrly58osvvnCrkGEYY2Nju3btMjdWbW1tRkaGrnv48OGpqSkXaw0MDGzcuFF/kDVr1qxatUr/vHXr1itXrrhYKBKJnD59urCwUG+d3bt3S5bmVYyak7Vu1gKBQGwz2N7ers9sOndu3brlrFZsVkb1aNevX9+5c6cu9MYbb0imVB3W1giztk7//PNPU1OTvk66YMEC4ZRq3aUqKyujOpqenh6z796yZcuPP/7ouJA+/gsKCqxhbf7r+Ph4fX29HiAWL17c1NT0/Plzx7WmpqaCwaBu09LT0xsaGkKhkPk2rOeMQCDw+++/Oy5kxAtrc2ONjIx89NFHeu2tXr36m2++kRQyDMN6GigvL//uu+/031vzTp+chAOENayjDpzOzs41a9aYufPzzz8LP5TZrOnQbGho0PvzvXv36urqUlJSYlesY9Zl5ubmNjc3P3/+XMdIdna2HiDcuhI4NDT07rvv6hW1fv363t5e4QI9idHu7u7YZi0uvZ2sO9nTp0+TL6TXclSzZvfib7/9du3atY5PbrHNmt1b/e2338wdYvny5Q52sgTHv5X++OaFi0Ag8Mcff8ypkBHTrJ07dy7uy77//vv33nvP3PPMmEiePv7N879dd2adYDIzM50NEFHhZQ1rq/b2dvNqjOMp9e7du9bN3dzcHHudyrpBJVOqOVkrpcrKymK3gj6R66sxeoB48uSJs1rt7e26lbZbOYODg+aeU1lZOTAw4KyQNax18xH1nv/666/6+vrU1FSl1Kuvvio5ketjU/cES5YsEfYEJpdjNHGzZsfZlJq4WYtrZmbGwZQad7Ke9bcuXrzoYEpN0KzZefTokbMpNcmwtjIPrblOqVHN2tmzZxO/fnR01Bwg5jSlxk7WiaecZ8+eOR4g7Jo1O93d3eYAUVVV9dNPPyVZyPjvZs0urE1//vmnOUA4CIuhoaF33nknmWbNemjoE/lcB4iokTTBpbBr1659+OGH+pUlJSVnzpyZU6HYDe34BBPLtRiNbdbmOrwMDAxUVlbq1ZR4SrUe/8mHtWlOU2qSzVpcUcNy4p0syWbNTtSU+vXXXyd4cZLNWjK/O+uGtp4jZz3+o8x1Sp21WbPjYEqdtVmLy8GUOmuzZufSpUvm6FpWVjbrqcuwmaxn/S3rAPHKK68k+bzK8PCw+fZKS0uTnKyjBogkrwRG/ZYr9y2sXIhRZ81aXLNOqbpZM8N6Tsd/lFmnVAfNWlyx99lip9S5Nmt22tvbi4uLExzbc23W7CQzpUbdBpm1WYsrdkqNO0DMqVmzk+SUGtWsObhBmvyU6iyso5Zg3dx2x6a8Wfvll19qamr0W121atWXX35p90rhZK3fqnUISBACly5dMg/zkpIS+UXwuKQxeuHCBXOyrqiocOXBjrhTqrBZsxO1m+plOpisZ2U3pUqatbgS3Oayuw3imPU2l3VK1RtLePxbWafUqAEitlmT3NZLPKU6a9bsRE2pUUe4i7dBrM1H3HuwyU/Ws+ro6LAOEFevXrX+qzWshZdu7927l7jLefjwoYu3RhMTxeju3bv1xygsLDx9+rS7j/tduXJl69at5snN3DYbN250fDE7rqmpqcOHD+vQzMjIqK2tzcvL02G9a9eusbExF2tZp9SqqqrPPvtM2KzZiZpSm5qa5M1aXLFTakdHh7BZs2OdUtevX3/27Fl5sxZX7JQaCoXMDsjdK2uxt7k8ug1ifSKwuLhYP68yPDxsNmulpaU9PT3yQna3uaI+6fXr1+W1BgcHzTbu/fff/+GHH4z/7iTcfVDPjihG9+/f71azZkdPqX6/PzMzMy8vz8XjP4o5peoJSDJZJ2bdydLT05XsYa/E+vv7y8vL1b/PgaelpR06dGhyctL1QuPj4/v27dNTqu56cnNzT5065frG0l+kyc/PV/8+sa+UKisrczGsTSMjI9XV1bqE+U2EHTt2uP7Y+fT09JEjR/TDmH6/X28sv99/4MAB17/W1dnZaT6vsmLFCn1mzcnJcf2LMPfv39+zZ49e/tKlS82i69at6+rqcrGQ/iKMPpHPmzevurraPLNu3759dHTUxVp2RDH6+PFjd5u1uKanp3t7e/v6+tx90Deu7u7uoaEhL75IE+XBgwdHjx5tbW2d0z0rB8Lh8MmTJ0+cOLF3717H16yTdPny5W3bth07duzgwYPenVmNf78pVFtbW1FR4fW3LfWUWldX51azZkdPqcuWLSssLHSrWYtLP6+SnZ1dVVXldbM2PDy8efNmn89XUFDg6WQdCoX0ALF8+XKl1OrVq7/66isvCsXlMwxDAbA3MzOTkpLi8/l0b+WpF/Zfz4yPjyulJiYmzKuiHjEMo7+/PzMzs6ioyGzqPXLt2rVQKHTjxo3a2lp9VeTFIEYBQIT/bxQARIhRABAhRgFAhBgFABFiFABEiFEAECFGAUCEGAUAEWIUAESIUQAQIUYBQIQYBQARYhQARIhRABAhRgFAhBgFABFiFABEiFEAECFGAUCEGAUAEWIUAESIUQAQIUYBQIQYBQARYhQARIhRABAhRgFAhBgFABFiFABEiFEAECFGAUCEGAUAEWIUAESIUQAQIUYBQIQYBQARYhQARIhRABAhRgFAhBgFABFiFABEiFEAECFGAUCEGAUAEWIUAESIUQAQIUYBQIQYBQARYhQARIhRABAhRgFAhBgFABFiFABEiFEAECFGAUCEGAUAEWIUAESIUQAQIUYBQIQYBQARYhQARIhRABAhRgFAhBgFABFiFABEiFEAECFGAUDkP2pNeKQBJeJdAAAAAElFTkSuQmCC\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7fcd218d6530>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Chem.MolFromSmiles(two)"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"_CHECKS = True\n",
"\n",
"@functools.lru_cache(int(1e5))\n",
"def get_fp(smi_str, num_bits=2048, radius=2):\n",
" mol = AllChem.MolFromSmiles(smi_str)\n",
" fp_ = np.array(AllChem.GetMorganFingerprintAsBitVect(mol, radius, nBits=num_bits), dtype=np.float32)\n",
" if _CHECKS and fp_.sum() == 0:\n",
" warnings.warn(f\"All zeros fingerprint obtained for molecule {smi_str}.\\n\")\n",
" return fp_"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"one_fp = get_fp(one)\n",
"two_fp = get_fp(two)\n",
"(one_fp == two_fp).all()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"three = \"C1CCC2CCCCC2C1\"\n",
"four = \"C1CCC(C1)C1CCCC1\""
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7fcd218e45d0>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Chem.MolFromSmiles(three)"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x7fcd218e40d0>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"Chem.MolFromSmiles(four)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"three_fp = get_fp(three)\n",
"four_fp = get_fp(four)\n",
"(three_fp == four_fp).all()"
]
}
],
"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.8.3"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment