Skip to content

Instantly share code, notes, and snippets.

@ptosco
Created February 18, 2020 13:04
Show Gist options
  • Save ptosco/162b52b018dc95709bd43757c0078a28 to your computer and use it in GitHub Desktop.
Save ptosco/162b52b018dc95709bd43757c0078a28 to your computer and use it in GitHub Desktop.
Implciit, explicit and real Hs in the context of molecule fragmentation
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"from rdkit import Chem\n",
"from rdkit.Chem.Draw import IPythonConsole, MolsToGridImage"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Test cases for fragmentation with FragmentOnBonds"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test case one"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"smiles1 = 'C[C@H]1C[C@H]1C'"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x1471f5c73d00>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mol1 = Chem.MolFromSmiles(smiles1)\n",
"mol1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that this molecule has no real hydrogens, only implicit Hs and explicit Hs, that you introduced to specify chirality at the chiral centres:"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 C 3 0\n",
"1 C 0 1\n",
"2 C 2 0\n",
"3 C 0 1\n",
"4 C 3 0\n"
]
}
],
"source": [
"for a in mol1.GetAtoms():\n",
" print (a.GetIdx(), a.GetSymbol(),\n",
" a.GetNumImplicitHs(), a.GetNumExplicitHs())"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"5"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bonds1 = mol1.GetBonds()\n",
"len(bonds1)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [],
"source": [
"b = 1"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x1471f5d5b6c0>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f_mol1 = Chem.FragmentOnBonds(mol1, (b,))\n",
"f_mol1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This molecule still has no real hydrogens, only implicit and explicit Hs. Note that the 2D layout above shows explicit Hs as they concur to determining stereochemistry, even though they are not real hydrogen atoms."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 C 3 0\n",
"1 C 0 1\n",
"2 C 2 0\n",
"3 C 0 1\n",
"4 C 3 0\n",
"5 * 0 0\n",
"6 * 0 0\n"
]
}
],
"source": [
"for a in f_mol1.GetAtoms():\n",
" print (a.GetIdx(), a.GetSymbol(),\n",
" a.GetNumImplicitHs() if a.GetAtomicNum() > 1 else 0,\n",
" a.GetNumExplicitHs() if a.GetAtomicNum() > 1 else 0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we convert the dummy atoms into real hydrogens. Now the 2D layout shows both the real hydrogens and the stereochemistry-determining explicit Hs:"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x1471f5d5b6c0>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"for atom in f_mol1.GetAtoms():\n",
" if (atom.GetAtomicNum() == 0):\n",
" atom.SetAtomicNum(1)\n",
" atom.SetIsotope(0)\n",
"f_mol1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now the molecule has some real hydrogens, in addition to implicit and explicit Hs:"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 C 3 0\n",
"1 C 0 1\n",
"2 C 2 0\n",
"3 C 0 1\n",
"4 C 3 0\n",
"5 H 0 0\n",
"6 H 0 0\n"
]
}
],
"source": [
"for a in f_mol1.GetAtoms():\n",
" print (a.GetIdx(), a.GetSymbol(),\n",
" a.GetNumImplicitHs() if a.GetAtomicNum() > 1 else 0,\n",
" a.GetNumExplicitHs() if a.GetAtomicNum() > 1 else 0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As this situation is not desirable, and we started from a molecule with no real hydrogens, let's convert the real hydrogens into implicit/explicit hydrogens:"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"f_mol1 = Chem.RemoveHs(f_mol1)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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c3X27NmoiaB049mdpaWlamtrU1pampYuXaq8vDxdunRp0O2DwaByc3NVUVEhScrMzFRDQ4N+/vlnVVdXE0FgEKwIEXUGBga0aNEinTt3btj7vPDCC/L7/UpISIjgZJHX0tKi0tJSffPNN3rzzTf11ltvKS4uTtKN35aRnZ2tK1eu6OWXX1ZRUZFmzZrl8cTAfx8hRFQ6c+aMlixZoqH++Y4bN05VVVXavHmzYmLujjdAnHMKBAKqqKjQpEmTVFtbq5iYGPn9fmVlZSknJ4cHXwMjQAgRtVavXq39+/ff8fX7779f+/bt03PPPTeGU42dzs5Obdu2TY2Njfr000/1+OOPez0SEJUIIaLWxYsX9eijjw769Ymnn35ahw4d0sMPP+zBZGOnq6tLEydO1HfffUcIgVG6O94rgknJycnauHHjbX++evVqffHFF3d9BAGEByFEVCsrK7t1J2RsbKyqq6sVCAQUHx/v7WAAogYhRFSbMGGCqqurNXXqVJ04cULl5eVejwQgyvAZIaKec04dHR2aNm2a16OMOT4jBELHihBRz+fzmYwggPAghAAA0wghAMA0QggAMI0QAgBMI4QAANMIIQDANEIIADCNEAIATCOEAADTCCEAwDRCCAAwjRACAEwjhAAA0wghAMA0QggAMI0QAgBMI4QAANMIIQDANEIIADCNEAIATCOEAADTCCEAwDRCCAAwjRACAEwjhAAA0wghAMA0QggAMI0QAgBMI4QAANMIIQDANEIIADCNEAJRLDY2Vi+++KKmTJni9ShA1PI555zXQwAA4BVWhAAA0wghAMA0QggAMI0QAgBMI4QAANMIIQDANEIIADCNEAIATCOEAADTCCEAwDRCCAAwjRACAEwjhAAA0wghAMA0QggAMI0QAgBMI4QAANMIIQDANEIIADCNEAIATCOEAADTCCEAwDRCCAAwjRACAEwjhAAA0wghAMA0QggAMI0QAgBMI4QAANMIIQDANEIIADCNEAIATCOEAADTCCEAwDRCCAAwjRACAEwjhAAA0wghAMA0QggAMI0QAgBMI4QAANMIIQDANEIIADCNEAIATCOEAADT/gcYzh+dPEiU6QAAAABJRU5ErkJggg==\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x1471f5d3af30>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f_mol1"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now the molecule has no real hydrogens anymore, only implicit and explicit Hs:"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 C 3 0\n",
"1 C 0 2\n",
"2 C 3 0\n",
"3 C 0 1\n",
"4 C 3 0\n"
]
}
],
"source": [
"for a in f_mol1.GetAtoms():\n",
" print (a.GetIdx(), a.GetSymbol(),\n",
" a.GetNumImplicitHs(), a.GetNumExplicitHs())"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAADICAYAAAA0n5+2AAAL5klEQVR4nO3dbWiVdR/A8d/UNJ+TMixNTQsrCkOhssQXooEvMh9qgo/04BRLZkS6mpiSwkyKmYKyKK01XY9i0otAKUZhWRpJ1sQCI6nMktJpOtRzv+hWuslud9x/nu34+bzcua7r/La92Jf/+e+6CjKZTCaAf1OQ6wEAaHla5XoAAIB8I7AAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrBI4oMPPog///wz12MAQLMgsGiUTCYTS5cujZEjR8Zzzz2X63EAoFkoyGQymVwPQctUV1cXDzzwQLz11lsREdGhQ4f45ptvonfv3jmeLKmCXA8AQMtjBYvzsmfPnhgyZMiZuIqIOHr0aJSWluZwKgBoHqxgJVRXVxcdO3aMgoL8XvR47733YvLkyfH777//47WCgoKoqamJoUOHXvjBmkZ+/zIBaBJWsBI4ceJE1NTUxPTp02PYsGGxffv2XI/UJE7vtxo9evRZ4+r0McXFxXHq1KkLOxwANCMCqxH27dsXS5cujXHjxkWvXr1ixYoVMWjQoLjjjjti6tSp8fPPP+d6xGQOHToUY8eOjZKSknPG044dO6KysvICTQYAzY/AylJ9fX1s2rQpCgsLo2/fvrFz586orq6Ofv36xRVXXBHLly+PTz/9NPbu3RvXXXddLFy4MI4fP57rsRtl586dMWjQoNi4cWODz5k3b14cOnSoCacCgOZLYDXQnj17oqSkJK655poYPXp0bNiwIZYsWRJVVVXRoUOH/zl20KBBUVNTE+vXr49XXnklbr755njzzTdzNHnjVFdXx5133hnfffddVuft378/ysrKmmgqAGjebHL/P44fPx7vvvtuVFRUxJYtW+L0j6p79+5RXV0dw4cPP+c1jh49GitWrIjFixfHbbfdFuXl5XHLLbc09eiNdvLkySgtLY2lS5ee9zXatm0bX331VVx//fUJJ7vgbHIHIGtWsM5i9+7dZ1arCgsLY/PmzWfiavDgwfH55583KK4i/ro31Lx586K2tjZ69uwZgwcPjhkzZsSBAwea8ltolAMHDsSIESMaFVeXXXZZTJ8+PVq3bp1wMgBoGaxg/de/rVb9XVFRUaxYsSLatm173u+zbdu2KC4ujt27d8fTTz8djzzySLRp06Yxoye1Y8eOGD9+fOzdu/e8zh88eHAUFRXFpEmTomPHjmmHyw0rWABk7aIPrNra2li7dm289NJL8euvv571mHbt2sXKlSvj4YcfTvKep06ditdeey3mzp0b3bp1i+effz5GjRqV5NqNUVlZGTNmzMj6mYJdu3aNCRMmxKxZs2LgwIFNNF3OCCwAsnZRBtaxY8di06ZNUVFREZs3b/6/x/bs2TPefvvtuP3225PPceTIkVi2bFmUlZXFyJEjo7y8PPr375/8fc7l+PHjMXfu3HjhhReyOu/0atXkyZP/sdE/jwgsALJ2UQXW119/Ha+++mq8+OKLcfDgwXMeP2zYsHj99dejR48eTTrXt99+G0899VRs3LgxZs6cGc8880x06dKlSd/ztB9//DHuu+++2Lp1a4OO79atW9x///3x6KOPtojN+gkILACylveBdfjw4diwYUNUVlaec7Xq74qKimLlypVxySWXNOF0/2vLli0xZ86c+O2332LhwoXx0EMPNekm8Y8++igKCwvjp59+Ouexp1erpkyZEu3bt2+ymZohgQVA1vI2sLZv3x4VFRWxbt26qKura/B5l156aaxevTqmTZvWhNP9uxMnTsTLL78cpaWl0adPnygvL2+S5/pVVFTE7Nmzo76+/l+P6dGjR0ybNi2mT5+ek48umwmBBUDW8iqwDh06FNXV1bF69er44osvsj6/f//+sWHDhmbx0dfBgwdj0aJFsWrVqhgzZkwsW7Ys+vTp0+jrHjt2LGbNmhVr1qw56+utWrWK4cOHR1FRUYwZM+aCruA1UwILgKzlRWCdXq2qqqqKI0eOnNc1Ro0aFVVVVdGtW7fE0zVObW1tPPbYY1FTUxOzZ8+O+fPnR6dOnc7rWj/88EOMHz8+Pvvss3+8dtVVV8XUqVOjqKgo+vXr19ix84nAAiBrLTqwtm3bFg8++GDs2rXrvK9RUFAQpaWlsWjRomjVqvned3XTpk0xZ86cqK+vjyVLlsSUKVOioKDhf/s//PDDmDBhQvzyyy9nvma1qkEEFgBZa9GBdfjw4RgwYECDNmmfTefOnWPt2rUxbty4xJM1jfr6+li1alUsWLAgbrzxxli+fPk5bx+RyWTi2WefjdLS0jh58mRERFx99dUxZcqUmDlzZvTt2/cCTN6iCSwAstZ8l2waoHPnzrF48eLzOnfAgAHxySeftJi4ivjr2X7FxcVRW1sbAwcOjKFDh8bUqVNj//79Zz2+rq4uCgsLo6SkJCIiRowYEW+88UZ8//33UVZWJq4AoIm06BWsiL/uij5kyJDYtm1bg8+55557orKyMrp27dqEkzW97du3R3FxcXz55Zfx+OOPx5NPPhnt2rWLiIg9e/bE2LFj448//ohJkybFrFmzonfv3jmeuEWyggVA1lp8YEVEbN26Ne66666zPj/w71q3bh3z58+PBQsWNOv9VtnIZDJRVVUVJSUl0alTpygvL49WrVpFZWVljB49OsaNG+eBy40jsADIWl4EVkTExIkTY/369f/6+uWXXx7r1q2Lu++++wJOdeEcOXIklixZElu2bIk1a9bETTfdlOuR8oXAAiBreRNY+/btixtuuOGst2m49dZb45133olrr702B5NdOEePHo2OHTvGrl27BFY6AguArOXH52QR0atXr3jiiSf+8fWJEyfGxx9/nPdxBQA0H3kTWBERc+fOPfOfcW3atImysrKoqqqKDh065HYwAOCikleB1b59+ygrK4vu3bvH+++/H/Pmzcv1SADARShv9mCdlslk4sCBA3HllVfmepQLzh6sJmEPFgBZy6sVrIi/Hn1zMcYVANB85F1gAQDkmsACAEhMYAEAJCawAAASE1gAAIkJLACAxAQWAEBiAgsAIDGBBQCQmMACAEhMYAEAJCawAAASE1gAAIkJLACAxAQWAEBiAgsAIDGBBQCQmMACAEhMYAEAJCawAAASE1gAAIkJLACAxAQWAEBiAgsAIDGBBQCQmMACAEhMYAEAJCawAAASE1gAAIkJLACAxAQWAEBiAiuPtGnTJu69997o0qVLrkcBgItaQSaTyeR6CGjGCnI9AAAtjxUsAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAkJrAAABITWAAAiQksAIDEBBYAQGICCwAgMYEFAJCYwAIASExgAQAk9h8Vk93HVttpAQAAAABJRU5ErkJggg==\n",
"text/plain": [
"<PIL.Image.Image image mode=RGBA size=600x200 at 0x1472440BC4A8>"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"frags1 = Chem.GetMolFrags(f_mol1,asMols=True, sanitizeFrags=True)\n",
"MolsToGridImage(frags1)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nothing has changed in the implicit/explicit H counts:"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fragment 0\n",
"0 C 3 0\n",
"1 C 0 2\n",
"2 C 3 0\n",
"3 C 0 1\n",
"4 C 3 0\n"
]
}
],
"source": [
"for i, f in enumerate(frags1):\n",
" print(\"Fragment\", i)\n",
" for a in f.GetAtoms():\n",
" print (a.GetIdx(), a.GetSymbol(),\n",
" a.GetNumImplicitHs(), a.GetNumExplicitHs())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Test case two"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"smiles2 = 'N#CC1(C#N)[C@H]2C[C@@H]1N2'"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAYAAABNcIgQAAAUWElEQVR4nO3de1SUBf7H8bcSSidruxgSmrr5c0W3bL0cyziZSkUabK454WpwvJ6ic7JS0dA2f2imrR4xt9suaj+RYgEvWLalcFZWk4MXUitSzIWOV2xTUEou6jy/P/jBT8uBGZiZh5nn8zqnI2d4Zp4vM+q752obwzAMRERELKqt2QOIiIiYSSEUERFLUwhFRMTSFEIREbE0hVBERCxNIRQREUtTCEVExNIUQhERsTSFUERELE0hFBERS1MIRUTE0hRCERGxNIVQREQsTSEUERFLUwhFRMTSFEIRb7LDOxHQNhCm77ji8YswrRuMz756ubv/BJe4ernpd8GoD7w2sYjfUwhFTPCrm2H1XDh82exJREQhFDHBryfAqKPw3xvBMHsYEYtTCEVM0OZm+NPLsGUeFFSZPY2ItSmEIibpPhGeDYC5q8DuYJniZRDSETrW/3cHvHfUq2OK+L3rzB5AxLLaw4z5cO/z8NGT116kxxTYkgAB9Q9cgvkPwffemlHEAhRCERPd+nuY9Sa8ugzuv8b3r7sJOne54g/qRegQoBCKuJN2jYqYqS1MWQiX/gYbzpg9jIg1KYQiJrt+MCSNhPILZk8iYk1tDMPQ2dsiImJZ2iIUERFLUwhFPGzZMli50uwpRMQRhVDEg5KTYc4c6NTJ7ElExBGFUMRDkpMhMRGysiA62uxpRMQRhVDEAzwRwUuXml5GRFynEIq4mae2BB9/vO54o4i4l+4sI+JGntwdOn06jBoFNTV16xAR91AIRdzE08cEIyMhO7suhqAYiriLQijiBt46MUYxFHE/hVCkhbx9dqhiKOJeCqFIC5h1iYRiKOI+CqFIM7311mqWLx/Bxo13MGKE99evGIq4h0Io0gzLli1j7ty5ZGdvJjLyDtPmUAxFWk7XEYq4KDk5mTlz5pCZmUlkZITZ4xAZCRs2QGZmJW+++a7Z44j4HG0RirggOTmZxMREsrKyiG5F902r2zW7k9Gjp3P5chXTp083eyQRn6EQijiptUaw3ogRj5Gdnc2oUaOoqakhUftJRZyiXaPS6pSWljJr1ixqa2vJyckxexyg9UewXmRkJNnZ2cyfP59FixaZPQ4AOTk51NbWMmvWLEpLS80eR+QXFELxHuNH9met4H92nsZ+5eP2E+StXMGmg7UAlJeXk5uby7lz5xg3bhwAp06dwmazAfDTTz9RWFjotbF9JYL1zIphYWEhP/30EwA2m41Tp04BMG7cOM6dO0dubi7l5eVO/z4Q8RaFUHxCdXU1e/fuBaCkpIQJEyYAcPDgQV566SUAKisrOXLkiFvX62sRrOfJGB45coTKykoAXnrpJQ4ePAjAhAkTKCkpAWDv3r1UV1e7db0inqIQik+rqKigoKAAgIKCAuLj4wHYvXs3S5YsAeoCWVZW5vJr+2oE67U0hmVlZQ3BW7JkCbt37wYgPj7+qve8oqLCbTOLmEEhFL904sQJ8vPzAcjOziYhIQGAvLw8UlNTgbpdrPV/0f+cr0ewnjMxrKysbNilmZqaSl5eHgAJCQlkZ2cDkJ+fz4kTJ7wxsojX6axR8TI75YVZvHeg7VWPXaw26O6FtR86dIj9+/cTFxfHu+++S1lZGUuXLuXTTz8FYMSIEezcuZOEhATeffddn45gvcjISFasWEF8fDxDhgwhPDz8qp83KSmJkJAQZs6cSX5+PhcuXGDo0KEensrc3wciV1IIxcvacvM9UTw58Dba1D9klFGQ8SkXTJyqQ4cODV+fO3cOu93OM888wzvvvMNTTz1FTEwMd911l4kTuq6kpISMjAwyMzM5cOAAUPezwdU/rzla5+8DsSaFULyuTbvr6XDjjf+/X95+nsA2jT3Dffr3709ISAgAM2fObHj8wQcfbPh65MiRpKenExsby29/+1s++eQT5s6dS+/evbHZbMTGxtKjRw/vDOyi48ePs379erKyssjPz6d379706dOHoqIiVq5cyciRI4Grf96lS5c2fP3YY48RGhrqlVnN/H0gciWFUPxSjx49Gv7SHzt2bMOlF4MGDXLq+TExMQDExcWRkpLChx9+yMaNG8nKyiIpKYk+ffoQFxdHbGys18LhyA8//MCGDRtITU1tiJ/NZmP16tXs27ePuLg4Vq5cSVxcXJOvNar+pqVASkoKAQEBQN3/HLTW+Iu0lEIoPi04OLgheEOGDGHAgAEA9O3bl759+wIQGBhIYGCgy6/98xi+8MILvPDCC3z33Xds2rSJtWvXMmfOHAYPHozNZiMmJqZha9PTzp49y+bNm8nKyuKzzz7jN7/5DTabjZUrVxIWFgZARkZGw+zORPDngoKCGr6eOnVqw9cZGRnccMMNQF0gg4ODW/jTiJjMEGllCgsLjX79+hnff/+90bFjR8MwDOP06dNGfHy8YRiGUVNTY5SWlnptnr///e9Gu3btjDVr1vzie19//bUxb948IywszGjbtq0RHh5uLF++3Dh9+rTb5zh79qyxZs0aIyoqyggMDDS6d+9uTJs2zdixY4dLM3tKaWmpUVNTYxiGYcTHxze8Bx07djS+//57o1+/fkZhYaHX5hFxlkIorc6xY8eMxYsXGxcvXjT2799v9jiGYTgXlvoo9uzZ0wgICGiI4n/+859mr7eioqIhfu3atTO6du3qMH6uzOpN+/fvNy5evGgsXrzYOHbsmNnjiPxCG8MwDLO3SkV8gSu7GouKisjKyiItLY3jx4/zyCOPYLPZGDVqFDfddFOjz62qqiI3N5esrCzWr1/PrbfeyujRo7HZbISHh9OmjeMzSlq6O1TEkswusYgvac7W1t69e41p06YZoaGhRlBQkBEVFWWsWbPGqKysbFimqqrK+Oijj4zY2FijQ4cORseOHY3Y2FgjJyfHsNvtHptNRLRFKOKy5m512e12tm/fTmZmJuvWraOqqopHH30UgK1bt3L99dczZswYnnrqKYYMGULbts7f+ElbgiLNpxCKNENLw3P58mU+/fRT/vjHPwKQnp7OiBEjGi5X8OYsIlanyydEmuHKSyuu/NVZAQEBFBQUEBwcTEBAALt27SIqKsrlORRBkZbTFqFICzQ3REeOHOGee+5h3bp1BAYGEh0dzZdffkmvXr08vm4RuZpCKNJCzQnS448/TlBQEOvXrwdg9OjR/Pjjj2zdutVj6xSRa9OuUZEWcnU36fr169m2bRvffPNNw2NvvvkmvXv3ZsOGDYwePbrR5yuCIu6lEIq4gbMxvHDhAjNnzuSVV16he/fuDY/feeedJCYm8uKLLxIZGdlwC7OfUwRF3E//MK+Im8TExJCamsrUqVMb/vHfn1uwYAGBgYHMmDHjF99LSEjghhtuYOHChdd8riIo4iHmXcIo4p8cXdh++PBho3379sY//vEPh8/Nyckx2rVrZxw8eNCp1xSRltPJMiIecK2ttxEjRnDjjTeSmZnZ6HNtNhsVFRXk5OQ4fC0RcR8dIxTxgJ8fMwwKCmL79u1XnSDjSHJyMr179yYrKwu73a4IiniYQijiIVfG8KabbuLVV1+lW7duTT6vS5cuzJ07l2effZYff/xRERTxMJ0sI+JBMTExREZGcubMGW6//Xann3fnnXdSXl7Oww8/rAiKeJhCKOJB33zzDVu2bOGVV14hPj7e4dmkV8rIyGDSpEkkJiaSk5PDV1995YVJRaxLJ8uIeFBERATBwcGkp6c7ddLLz5cZO3Ysp06dIi8vr9F/h1BEmk/HCEU8JD09nT179nDw4EGg6YvurxXK5cuX06tXLzIyMhg7dqwXpxexEHOv3hDxT+fPnzc6d+5sLFmy5Bffu9Y1gY1dJ/jnP//ZCAkJMSoqKjw6s4hVadeoiAfMmDGDzz77jP379xMYGPiL71+59de+fftGd5leunSJAQMG8Mgjj7B06VJvjC9iKQqhiJsVFRXRr18/tmzZwrBhwxwul5aWxsSJEwF4//33efrppx0uu2PHDiIiIti7dy99+/Z1+8wiVqYQirjZ8OHDCQ0NJS0trcllv/zySwCn4jZ+/HiOHj3K9u3bdeKMiBsphCJulJaWxnPPPcehQ4cIDQ1162uXlZURFhbG22+/zfjx49362iJWpusIRdzk/PnzzJ49m/nz57s9ggAhISHMmzePGTNmUFFR4fbXF7EqbRGKuMmLL75Ibm4u+/btu+YJMu5w6dIlBg4cyLBhw0hOTvbIOkSsRiEUcYOvv/6a/v37s3XrVoYOHerRdX3++ecMHz6cPXv2cO+993p0XSJWoBCKtJBhGAwbNoxu3bqxZs0ar6wzLi6OkpISduzYoRNnRFpIxwhFWig1NZV9+/axePFir61zyZIlFBUVsXbtWq+tU8RfKYQiLXD+/HkSExN57bXXuOOOO7y23k6dOpGUlERCQoJOnBFpIe0aFWmB559/nn/961988cUXXHedd2/de/nyZQYOHMiDDz7IihUrvLpuEX+iEIo001dffcWAAQPIzc1lyJAhpsyQn5/PQw89xO7du+nXr58pM4j4OoVQpBkMwyA8PJywsDBWr15t6iwTJ06kqKiIgoIC2rbV0Q4RV+lPjUgzvP/++xQVFbFw4UKzR+GNN97gyJEjXjtjVcTfKIQiLiovL+fll19m0aJFXj1BxpHg4GAWLFhAQkICZ86cMXscEZ+jXaMiLnruuefYtWsXu3fvJiAgwOxxALDb7QwePJiBAwfy9ttvmz2OiE9RCEVc8MUXX3Dfffexfft2Bg8ebPY4V9mzZw8PPPAAO3fuZNCgQWaPI+IzFEIRJ9ntdsLDw7n77rtJSUkxe5xrmjJlCgcOHGDXrl06cUbESfqTIuKkVatWcfjwYV5//XWzR3HojTfe4LvvvjP9TFYRX6IQijjh7NmzzJkzh9dff53bb7/d7HEcuu2221iwYAGzZ8/mhx9+MHscEZ+gXaMiTnjmmWcoLCxk165dreYEGUfsdjsPPPAAv/vd73jvvffMHkek1VMIRZpQWFjI/fffz+eff859991n9jhO8cWZRcyiEIo0wpe3rnxpK1bETDpGKNKIv/71r3z77be89tprZo/iskWLFnH06NFWe4arSGuhLUIRB86cOUNYWBiLFi1iypQpZo/TLCkpKcyePZvi4uJWfZKPiJm0RSiWc/LkSTZv3tzkcrNnz6Z79+5MmjTJC1N5xuTJk+nVqxdz5sxpctnNmzdz8uRJL0wl0rpoi1As5eTJkwwdOpRevXrx8ccfO1zOn+7S4uzdcKKjoykuLiYvL4/Q0FAvTihiLoVQLKOsrIzhw4fTtWtXsrOzCQoKuuZy/njfTmfuj1pbW8uYMWM4dOgQ27Zto3Pnzl6eUsQc2jUqluBsBAH+8pe/UFpa6pMnyDiycOFCjh07xltvveVwmXbt2rFu3TrCwsIYNmwYJ06c8OKEIuZRCMXvuRLBtLQ0Zs2aRXp6OrfccosXp/SsW265hfT0dGbNmkVaWprD5RRDsSKFUPyaKxHMyMhg8uTJpKSkEBER4cUpvSMiIoLU1FQmT55Mamqqw+UUQ7EahVD8lqsRjIuLIyUlhbi4OC9O6V0xMTGkpqYydepUxVDk/yiE4pcUQccUQ5Gr6axR8TsnToDNNoZf/eonNm7cqAg64OzPXl1dzR/+8AfOnasmK2sbOplU/I1CKH7lxAkYNgwGDapk5cpARbAJrsRwypQydu/uzrZtKIbiVxRC8RtlZTB8OHTtCtnZ0EgDFcErOPte1NbCmDFw6BCKofgVHSMUv+CJCFZXVxMdHd3oHWhau48//pjo6Giqq6sdLuP8MUNYtw7Cwuq2unXIUPyFQig+zxMRrK2txWazUVxcTP/+/d0/tJcMGjSIkpISnnjiCcVQxBFDxIedOmUYvXsbRmSkYVRVNb7sBx9kGYGBgcbatWsbXa6mpsaIiooyevbsaRw/ftyN05qjrKzM6NOnj/Hoo48aVU28SWvXrjUCAwONDz7IaHS5mhrDiI42jJ49DcMP3iKxOB0jFJ/lypZgWhokJdWSlPQR48aNcbhcbW0tTz75JMXFxX51v83Tp08zfPhwunTpwqZNmxo9iejDDzOZN68f8+b15OmnHb+mjhmKv1AIxSe5tjsU4uIgJaXuV0f8NYL1XImh8++ZYii+TyEUn1NdDffeCz16wIYNiqArPBHD6moYPRr+/W84cKDxz0OkNVIIxSd98gk8/DC0b+94GUXw2jwRw5oayM2Fxx/3wMAiHqYQil9SBBvniRiK+CpdPiF+x5VdepMm1XDmTHvy8vIsE0GATp06kZOTQ2VlLVOmlNHIlRXExEBqKkydWveriL/RFqH4FVdO8njySSgutvZJHqdP15101KULbNrknuOtIr5GW4TiNxRB13XqBP/8Jxw/Dk88gbYMxZIUQvELimDzKYZidQqh+DxFsOUUQ7EyhVB8XkkJrFrl3IXfiqBj9TE8dgxGjWo6hqtW6V6j4h90soz4Pd39xDWu3LVHxB9oi1BaJzu8EwFtA2H6jisevwjTusH4bOdeRhF0XUhI3Zbh0aNNbxk2cNPnJWIGhVBatV/dDKvnwuHLzXv+1q3aHdocISGQkwOlpXV3jHFWSz8vETMohNKq/XoCjDoK/70RmrMPPyqq7v6XiqDrOneue++iopx/Tks/LxEzKITSqrW5Gf70MmyZBwVVzXsNHeNqPlffO3d8XiLephBKq9d9IjwbAHNXgd3sYaRJ+rzE1yiE0vq1hxnz4ds34KMfzB5GmqTPS3yMQig+4dbfw6z/gleXgTMnMYq59HmJL1EIxTe0hSkL4dLfYMMZs4eRJunzEh+iEIrPuH4wJI2E8gtmTyLO0OclvkJ3lhEREUvTFqGIiFiaQigiIpamEIqIiKUphCIiYmkKoYiIWJpCKCIilqYQioiIpSmEIiJiaQqhiIhYmkIoIiKWphCKiIilKYQiImJpCqGIiFiaQigiIpamEIqIiKUphCIiYmn/CxNvpLB4OhbVAAAAAElFTkSuQmCC\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x1471f597b670>"
]
},
"execution_count": 17,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"mol2 = Chem.MolFromSmiles(smiles2)\n",
"mol2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note that this molecule has no real hydrogens, only implicit Hs and explicit Hs, that you introduced to specify chirality at the chiral centres:"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 N 0 0\n",
"1 C 0 0\n",
"2 C 0 0\n",
"3 C 0 0\n",
"4 N 0 0\n",
"5 C 0 1\n",
"6 C 2 0\n",
"7 C 0 1\n",
"8 N 1 0\n"
]
}
],
"source": [
"for a in mol2.GetAtoms():\n",
" print (a.GetIdx(), a.GetSymbol(),\n",
" a.GetNumImplicitHs(), a.GetNumExplicitHs())"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"10"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bonds2 = mol2.GetBonds()\n",
"len(bonds2)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x1471f5d4d440>"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"b = 1\n",
"f_mol2 = Chem.FragmentOnBonds(mol2, (b,))\n",
"f_mol2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This molecule still has no real hydrogens, only implicit and explicit Hs. Note that the 2D layout above shows explicit Hs as they concur to determining stereochemistry, even though they are not real hydrogen atoms."
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 N 0 0\n",
"1 C 0 0\n",
"2 C 0 0\n",
"3 C 0 0\n",
"4 N 0 0\n",
"5 C 0 1\n",
"6 C 2 0\n",
"7 C 0 1\n",
"8 N 1 0\n",
"9 * 0 0\n",
"10 * 0 0\n"
]
}
],
"source": [
"for a in f_mol2.GetAtoms():\n",
" print (a.GetIdx(), a.GetSymbol(),\n",
" a.GetNumImplicitHs() if a.GetAtomicNum() > 1 else 0,\n",
" a.GetNumExplicitHs() if a.GetAtomicNum() > 1 else 0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now we convert the dummy atoms into real hydrogens. Now the 2D layout shows both the real hydrogens and the stereochemistry-determining explicit Hs:"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x1471f5d4d440>"
]
},
"execution_count": 22,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"for atom in f_mol2.GetAtoms():\n",
" if (atom.GetAtomicNum() == 0):\n",
" atom.SetAtomicNum(1)\n",
" atom.SetIsotope(0)\n",
"f_mol2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now the molecule has some real hydrogens, in addition to implicit and explicit Hs:"
]
},
{
"cell_type": "code",
"execution_count": 23,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 N 0 0\n",
"1 C 0 0\n",
"2 C 0 0\n",
"3 C 0 0\n",
"4 N 0 0\n",
"5 C 0 1\n",
"6 C 2 0\n",
"7 C 0 1\n",
"8 N 1 0\n",
"9 H 0 0\n",
"10 H 0 0\n"
]
}
],
"source": [
"for a in f_mol2.GetAtoms():\n",
" print (a.GetIdx(), a.GetSymbol(),\n",
" a.GetNumImplicitHs() if a.GetAtomicNum() > 1 else 0,\n",
" a.GetNumExplicitHs() if a.GetAtomicNum() > 1 else 0)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"As this situation is not desirable, and we started from a molecule with no real hydrogens, let's convert the real hydrogens into implicit/explicit hydrogens:"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [],
"source": [
"f_mol2 = Chem.RemoveHs(f_mol2)"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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\n",
"text/plain": [
"<rdkit.Chem.rdchem.Mol at 0x1471f5d5b350>"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"f_mol2"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Now the molecule has no real hydrogens anymore, only implicit and explicit Hs:"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"0 N 0 0\n",
"1 C 1 0\n",
"2 C 1 0\n",
"3 C 0 0\n",
"4 N 0 0\n",
"5 C 0 1\n",
"6 C 2 0\n",
"7 C 0 1\n",
"8 N 1 0\n"
]
}
],
"source": [
"for a in f_mol2.GetAtoms():\n",
" print (a.GetIdx(), a.GetSymbol(),\n",
" a.GetNumImplicitHs(), a.GetNumExplicitHs())"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"data": {
"image/png": "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3pv29vZhmgig9lnBggb3yiuv5N133+33nDPPPDNjxowZpomoIVawoAyBBUClBBaU0VztAYDqWbNmTSZMmDDg18c//vFqjwpQU6xgQQPr7u7OwYMHBzyvubk548aNG4aJqDFWsKAMb3KHBrZ27docOHBgUOdeccUVOf/880/xRAD1QWBBA3v22Wezb9++QZ170UUXneJpAOqHLUIAKmWLEMrwJncAgIIJLACAggksaHSlt/L02nuy+jcvp/f9x3v/nC0/uScPPtf/Q0gBOJ7AAgAomMACACiYwAIAKJjnYAFJevPGzrX58TPNfY51HyplerVGAqhhAgtI0pxJFy7Iok+d8d6DjUp7s73z4XRVcyyAGiWwgCRJ02ltGTd+/HvvG+jdn1aPkQSoiPdgAQAUTGABABTMZxECUCmbyFCGFSwAgIIJLACAggksAICCCSwAgIIJLACAggksAICCCSwAgIIJLACAggksAICCCSwAgIIJLACAggksAICCCSwAgIIJLACAggksAICCCSwAgIIJLACAggksAICCCSwAgIIJLACAggksAICCCSwAgIIJLACAggksAICCCSwAgIIJLACAggksAICCCSwAgIIJLACAggksAICC/T+6541h9Gy+QAAAAABJRU5ErkJggg==\n",
"text/plain": [
"<PIL.Image.Image image mode=RGBA size=600x200 at 0x1471F54F7898>"
]
},
"execution_count": 27,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"frags2 = Chem.GetMolFrags(f_mol2,asMols=True, sanitizeFrags=True)\n",
"MolsToGridImage(frags2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Nothing has changed in the implicit/explicit H counts:"
]
},
{
"cell_type": "code",
"execution_count": 28,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Fragment 0\n",
"0 N 0 0\n",
"1 C 1 0\n",
"Fragment 1\n",
"0 C 1 0\n",
"1 C 0 0\n",
"2 N 0 0\n",
"3 C 0 1\n",
"4 C 2 0\n",
"5 C 0 1\n",
"6 N 1 0\n"
]
}
],
"source": [
"for i, f in enumerate(frags2):\n",
" print(\"Fragment\", i)\n",
" for a in f.GetAtoms():\n",
" print (a.GetIdx(), a.GetSymbol(),\n",
" a.GetNumImplicitHs(), a.GetNumExplicitHs())"
]
},
{
"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.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment