{
 "metadata": {
  "name": "",
  "signature": "sha256:efadf496ab8f99f01a2ee2065a009d455b36b7967d01177641e54bac65ee8129"
 },
 "nbformat": 3,
 "nbformat_minor": 0,
 "worksheets": [
  {
   "cells": [
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "from rdkit import rdBase\n",
      "print rdBase.rdkitVersion\n",
      "\n",
      "from rdkit import Chem\n",
      "from rdkit.Chem import AllChem\n",
      "from rdkit.Chem import Draw\n",
      "from rdkit.Chem.Draw import IPythonConsole"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "output_type": "stream",
       "stream": "stdout",
       "text": [
        "2014.03.1\n"
       ]
      }
     ],
     "prompt_number": 1
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "m1 = Chem.MolFromSmiles(\"C=O\")\n",
      "m1.SetProp(\"_Name\", \"Formaldehyde\")\n",
      "Draw.MolToImage(m1, legend=m1.GetProp(\"_Name\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "png": "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\nl19+uXR3d5dKpVI2bdpUGhsby8mTJ0sppTQ3N5c9e/aUSqVSWltby9q1a0ulUik7duwoI0eOLKtW\nrSqllHL27Nkyb9680tnZWU6dOlUOHjxYWltby/bt26trmj9/fjly5Ejp6ekpM2fOLJs3by6llNLV\n1VXq6urKsWPHSiml9PX1lUmTJpW9e/f+z/My/AlWQrNmzSr19fWloaGhNDQ0lBtvvLGUUsru3bvL\nhAkTSl9fX/XYFStWlM7OzlJKfwjefPPNAdeaPHly2blzZ3V70aJF5ZFHHqlub9iwoXR0dPzbtTQ3\nN5d9+/ZVv+/Zs6e89957paGhoVQqlepxCxcurIZj3759ZezYsQP2P/3009V5/nmdq1evrv4bSinl\n1ltvLZs2bSqllLJt27bS1tZWSin/87wMfxcP9S88Bufxxx+Pu+66KyL6bw8jIrq6umLatGlx8cV/\n/29taWmJjz76qLo9ZcqUc67V1NRU/V5XV3fO9okTJ6rbL7zwQjzzzDPR3d0dtbW10dXVFUePHh1w\nva6urpg+fXrU1tZWx2bMmFH9/sUXX8SZM2di1qxZ1bHvvvsuZs+eXd2eOnVq9fvo0aPjyy+/rG53\ndHTEc889F/fff3+89NJLcd999523eRneBCupCRMmxGWXXTZgbOrUqXH48OGoVCrVaB08eDCmTZtW\nPeZvz7oG45NPPomVK1fGrl27qs/AZsyYEaWUc9bx1VdfDRjr6empxuPyyy+P8ePHx8cffzyo9dx5\n553xwAMPxP79+2P79u2xbt26CzIvQ89D9x+ROXPmRGNjY6xZsyb6+vrinXfeiS1btsTSpUvPy/W/\n/fbbqKuri6uuuioiIrZt2xaff/75Oce1t7fHqFGj4pVXXomI/tC98cYb1f3XXnttXHHFFbFq1ao4\nceJEfP/993HgwIHYvXv3D1rHqFGjYsmSJbF06dKYO3duTJ8+/YLMy9ATrB+R2tra2Lp1a+zatSsm\nTZoUK1asiI0bN8acOXPOy/Xb29vj3nvvjdmzZ8dNN90Ub7311oDbq39cx6uvvhrr16+PuXPnxkMP\nPRSLFy+u7r/ooovitddei66urrjyyitj4sSJsXz58nP+ovefdHR0xIcffli9HbxQ8zK0aso//56H\nBA4dOhQzZ86M7u7uGDt27FAvhwvELyzSOXv2bGzYsCHuuecesfqJ8dCdVHp7e2Py5MnR3NwcO3bs\nGOrlcIG5JQTScEsIpCFYQBqCBaQhWEAaggWkIVhAGoIFpPFX0A1xffGhS2gAAAAASUVORK5CYII=\n",
       "prompt_number": 2,
       "text": [
        "<Image.Image image mode=RGBA size=300x300 at 0x7FCE8CF3F560>"
       ]
      }
     ],
     "prompt_number": 2
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "m2 = Chem.MolFromSmiles(\"CC=O\")\n",
      "m2.SetProp(\"_Name\", \"Acetaldehyde\")\n",
      "Draw.MolToImage(m2, legend=m2.GetProp(\"_Name\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "png": "iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAPN0lEQVR4nO3df0yW9f7H8RfgkcCv\nICk/Dv6AJGHUTJhG6+fqHEpr/mhTWXkmmi3Pcg1sVLd1WvLPWZpp2tnZxDp/cC9q82zlFJfVaiVF\nKayRIphZaSpCv2Rk8kNu3ucPFhtZXzHF2zc+H5sTruu+rs/bzT13Xfd9MSLMzAQADkSGewAAGCiC\nBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIF\nwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXA\nDYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcAN\nggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2C\nBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIF\nwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXA\nDYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcAN\nggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2C\nBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIFwA2CBcANggXADYIF\nwA2CBcANggXADYIFwA2CBcANggXADYKFQdXU1BTuETCEECwMmtraWk2cOFGBQEA//fRTuMfBEECw\nMGimTZum6upqVVdXKy0tTRs2bFB3d3e4x4JjEWZm4R4CQ0soFFJUVFS/bdu2bVNRUZGuuOIKrVu3\nTnfffXeYpoNnXGHhggmFQtq4caMyMzPV0tLSb9+sWbO0b98+LV68WAUFBZo1a5a+/PLLME0KrwgW\nLojKykplZ2ertLRUK1euVGJi4hmviY2NVSAQ0P79+5WQkKBrrrlGxcXFamtrC8PE8Ihg4bzs27dP\nd955p+bNm6cFCxbo4MGDKiwsVGTk7//XGjt2rILBoKqqqrR7925lZGRow4YNCoVCF3FyeESw8Ie0\ntraquLhYubm5SkhI0N69e1VaWqonn3xSu3btGtA58vLyVF1drbVr12rVqlXKy8tTVVXVIE8OzwgW\nzkkoFNKGDRuUkZGh9957T2+++aY2b96sSZMmqb29XSdPntTNN9+swsJCHTt27Kzni4iIUGFhofbt\n26ebbrpJ+fn52vmPf0jNzRfhXwN3DBig999/33JycmzMmDFWVlZmp0+f/s3XNTY22owZM2z48OFW\nVFRkbW1tA16jvr7eTs+ebTZypNnq1WYdHRdqfAwBBAtn9dVXX9nMmTMtKirKioqK7IcffhjQcVu3\nbrWMjAxLTU21srIyC4VCA1/03XfNJk82GzvWrLzcrKfnD06PoYRg4Xe1tbVZIBCwmJgYmz59ujU0\nNJzzObq6umz9+vUWFxdn06ZNsw8//HDgB58+bVZWZpaYaJaXZ1Zdfc7rY2ghWDhDT0+PlZeXW2pq\nqk2cONG2bt163udsamqypUuX2rBhw2z+/Pl26NChgR/8449mRUVmf/qT2cKFZsePn/c88IlgoZ+P\nPvrIrr/+eouLi7P169dbZ2fnBT1/bW2t3XLLLRYbG2srV660U6dODfzg/fvN7rnHbMQIs5Urzdrb\nL+hsuPQRLJiZ2TfffGPz58+3qKgoW7p0qR07dmzQ1gqFQvbyyy9bcnKyZWZm2puVled2gnfeMcvO\nNrv6arPNmwdnSFySeKzhMtfR0aHS0lJlZ2fr2LFj+uSTT1RWVqbU1NRBWzMyMlIPPvigDhw4oDlz\n5uj/XnhBuvtuqbFxYCfIz5c++0x65BHpoYekv/5V2rNn0ObFpYMffr6MBYNBPf3004qIiNDzzz+v\nefPmKSIi4uIPcvSo9NRTUkWF9Le/SWvWSMnJAzv2yBEpEOj9m4dOhzyCdRnas2ePli9fro8//liB\nQEBPPPGEYmNjwz2WtHu3VFws1ddLJSXSk09K0dEDO7ajQ7riisGdD2HHLeFl5LvvvlNhYaFyc3M1\nbtw4HThwQKWlpZdGrCQpL0/66CPp3/+WysqkyZOl//53YMcSq8sCwboMdHV1afXq1crKytKePXv0\n7rvvKhgMavz48eEe7UyRkVJhoXTwoLRggbRwoXTnnb1XXQP12mtSTk5vxJKTpaVLpR9/HLSRcRGF\n9z1/DLbt27dbVlaWJSUlWXl5+bk9bX4p+OILs/nze5/BWrrU7Lvv/v/Xb9xoNmqU2WuvmbW2mjU0\nmM2YYZaby4/5DAEEa4hqaGiw/Px8Gz58uAUCATtx4kS4Rzo/v/yozpVXmq1f3/sU/K+1t5slJJj9\n5z/9t//8s1lKSu9T83CNW8Ihpq2tTcXFxZoyZYqio6O1d+9erVq1SqNGjQr3aOfnL3+Ramp6PxF8\n5hnpppvOvM2rrZVOnJDmz++/PTZWmj1beuedizcvBgXBGmIOHz6syspKVVRUqLKyUpmZmeEe6cKJ\njpaeeEL6/HNp7lzpyiv77//+e2nECGnkyDOP/fOfe/fDNR5rGIJ+65dAXBY+/FC69Vapre3MaP39\n771XZAP91BGXJK6whqDLMlaSNHWqNGrUmVE6dUraurX3iXi4NizcAwAXTEyM9M9/9j50OmKENGOG\ndPy49OijUlKStHhxuCfEeeKWEENPRYX03HPS/v1SXJw0Z460erU0enS4J8N5IlgA3OA9LABuECwA\nbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABu\nECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4Q\nLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAs\nAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwA\nbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABu\nECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4Q\nLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAs\nAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLABuECwAbhAsAG4QLJyX9PR0\n1dbW/ua+xx57TCtWrBjQeVJSUlRfX39BZjqXdeELwXLu9ttvV0JCgjo7Oy/I+caNG/e7AQLCjWA5\ndujQIe3atUuJiYnaunVruMcBBh3BciwYDCo/P1+FhYUqLy/vt6+pqUkFBQVKTk7W6NGjtWTJkr59\nLS0tKigoUFJSktLT0/XCCy9IkpYtW6bm5mbNnj1b6enpCgaDkqRnnnlGaWlpGjlypHJzc/XBBx/8\n5jwNDQ264YYbFB8fr5kzZ6q1tbXf/t9b9xfV1dXKzs5WfHy8Fi9erO7ubknSmjVrNHfu3H6vLSoq\nUnFx8QVZF44Y3MrIyLBgMGiff/65DRs2zJqbm83MLBQK2bRp0+zhhx+2trY26+josJ07d5qZWU9P\nj914441WUlJi7e3tdujQIcvMzLTKykozMxs7dqzV1NT0W+fVV1+15uZm6+7utk2bNllSUpKdOnXK\nzMzS0tKspqbGuru7LTMz05599lnr7u62HTt2WHR0tAUCgQGtm5ycbHfccYcdP37cWlpaLCsryyoq\nKszMrKmpyWJjY+3EiRNmZnb69GlLTEy02tra814XvhAsp6qqqiw6OtpaW1vNzOy6666zdevWmZnZ\np59+avHx8dbR0XHGcXV1dRYXF2fd3d1921588UVbtGiRmf12sH4tLS3N6urq+r6uqamxXbt22ejR\no/ud95577ukLx9nWTU5Otrfeeqtv34oVK6ykpKTv++nTp9umTZvMzGzbtm2WnZ1tZnbe68KXYeG+\nwsMfU15errvuukvx8fGSpIKCApWXl+vRRx/VkSNHNG7cOEVHR59x3OHDh9XZ2alrr722b1tXV5dy\ncnJ+d61gMKh//etfam5uVlRUlJqamvT999/3e01TU5MmTJigqKiovm0TJ048p3VTU1P7vh4xYoSO\nHj3a9/2iRYu0ceNGPfTQQ3rllVe0cOHCC7Yu/CBYDrW3t2vz5s0KhUJKSUmRJHV2dqq1tVWfffaZ\nxo8fr6NHj6qrq0vDhw/vd+z48eM1atQoNTY2KiIi4oxzR0b2f1vziy++UHFxsXbu3KnJkydL6g2C\nmfV7XWpqqr799tt+21paWvricbZ1z+bee+/VsmXLVF9fr8rKSj333HMXZV1cWnjT3aEtW7YoKipK\nDQ0NqqurU11dnRobG3XrrbcqGAwqJydHkyZNUklJiU6ePKnOzk5VVVVJkqZMmaKrrrpKgUBAJ0+e\nVCgUUkNDg3bv3i1JSkpK0sGDB/vWamtrU2xsrCZNmiRJ2rZtm77++uszZpo6dapiYmL0+uuvS+oN\n3fbt2/v2n23ds4mJidHcuXO1YMEC5eXlacKECRdlXVxaCJZD5eXleuCBBzRhwgSlpKT0/XnkkUdU\nUVGhUCikLVu2qKmpSenp6UpNTe37FDEyMrJv39VXX60xY8ZoyZIlfZ+sPfXUU3r88ceVkJCgl156\nSVOnTtX999+vnJwc3XbbbXr77bf73V79IioqSm+88YbWrFmjvLw8LV++XHPmzOnbf7Z1B2LRokXa\nu3dv3+3gxVoXl44I+/W1PXCJOnLkiLKystTc3Ky4uLhwj4Mw4AoLLvT09Gjt2rW67777iNVljDfd\nccn7+eeflZycrLS0NO3YsSPc4yCMuCUE4Aa3hADcIFgA3CBYANwgWADcIFgA3CBYANwgWADc+B+O\nWW5MMgo62AAAAABJRU5ErkJggg==\n",
       "prompt_number": 3,
       "text": [
        "<Image.Image image mode=RGBA size=300x300 at 0x7FCE6055DA70>"
       ]
      }
     ],
     "prompt_number": 3
    },
    {
     "cell_type": "heading",
     "level": 4,
     "metadata": {},
     "source": [
      "Aldehyde SMARTS functional group (copied from Functional_Groups_Hierarchy.txt)"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "p1 = Chem.MolFromSmarts(\"[C&H1&D2&!$(C-[!#6&!#1])]=O\")\n",
      "p1.SetProp(\"_Name\", \"Aldehyde FG\")\n",
      "Draw.MolToImage(p1, legend=p1.GetProp(\"_Name\"))"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "png": "iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAAAB5fY51AAAKs0lEQVR4nO3aUYiVZRrA8WdSMR11\nnEadWanRMhzEyMCwpIRkI1uLLGQlAtOElpCw1MC53Yu1TTeDbjZFipkaFjIaUyNjLwUXy4uJxNno\nxrBGJwQtm0Zz9N2LobM7tRs12Z557PeDA3O+9zvnfZiLP+c756sppZQASOCqag8A8GMJFpCGYAFp\nCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkI\nFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgW\nkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQ\nhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCG\nYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZg\nAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmAB\naQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFp\nCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkI\nFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkMboag/AyNDX1xdvvfXWsF9/zZgx\nce+FC8MfYPLkiKVLh/96fhVqSiml2kNQfZ999lksXrx42K+/vakp2k+eHP4ALS0Re/cOPfa3v0U8\n91zEP/8ZUVcXsWxZxJ//HHHNNcPfh9QEi5Fp+/aI1taIv/414ne/i+jpidiwIaK3N+If/4gYO7ba\nE1IFgsXIc+5cxPTpEX/5S8SaNf8+/vXXEbNmRfzxjxF/+EP15qNqfOnOyHP4cMTp0xG///3Q4+PH\nRzzwQMTf/16duag6wWLkOXUqorY2YuLE76/95jeD6/wqCRYjz5QpEX19EWfPfn/txInBdX6VBIuR\nZ/78wdscdu0aevzrryP27In47W+rMhbV5z4sImKE3dYwblzEn/4UsXHj4KXhvfcOfrJavz5i2rSI\n1auHvw+p+ZWQiBihN452dERs2TJ4H9akSYP3YT33XERDw/D3ITXBAtLwHRaQhmABaQgWkIZgAWkI\nFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgW\nkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQ\nhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCG\nYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZg\nAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmAB\naQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFp\nCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkIFpCGYAFpCBaQhmABaQgWkIZgAWkI\nFpCGYAFpCBaQhmABaQgWkIZg/QrMnDkzDh8+/F/XnnnmmWhtbf1R79PU1BRHjhy5LDP9lH3hW4J1\nBbnrrruivr4+zp8/X+1RflE33XRT1NTUDHn8Z5A7OzvjjjvuiNra2qivr4/bb789du7cGRcvXqzi\n1FwOgnWFOHbsWBw6dCimTp0ae/bsqfY4v7iXX345+vv7K4/58+dHRMT27dtj9erVsXLlyuju7o7j\nx4/H1q1bY//+/XHq1KkqT83PJVhXiPb29rj77rvj0Ucfjba2tv953tGjR+O2226Lurq6uP/+++PM\nmTND1nt7e2PFihUxbdq0mDlzZrzwwgtD1g8ePBhz5syJurq6WL16dQwMDERExNatW2P58uVDzl23\nbl089dRTl2Xf7xozZkxcffXVlUdNTU309/dHa2trbNu2LZ544olobm6OCRMmxKJFi+KNN96IxsbG\nH3xPEihcEWbNmlXa29vLRx99VEaPHl1OnjxZWZsxY0Z5//33y8DAQJk9e3Z59tlny8DAQNm/f38Z\nO3Zs2bRpUymllEuXLpWFCxeWjRs3lv7+/nLs2LEye/bssm/fvlJKKY2NjWXx4sXlxIkTpbe3t7S0\ntJSOjo5SSik9PT1l/Pjx5fTp06WUUi5cuFCmTp1aDh8+/LP3/a65c+eWV1999XvHDxw4UCKifPnl\nl5ft/8rIIlhXgAMHDpSxY8eWM2fOlFJKufnmm8u2bdsq698G69ChQ6WhoaEMDAxU1pYuXVoJR1dX\nV5k0adKQ9RdffLGsWrWqlDIYrHfffbey1traWjZu3Fh5vmTJkrJjx45SSil79+4tc+bMKaWUn73v\nd82dO7dMmDChNDQ0lIaGhnLnnXeWUkrp7OwstbW1Q85dsmRJaWxsLI2NjeWdd975oX8jCYyu9ic8\nfr62tra45557oq6uLiIiVqxYEW1tbbF+/foh5/X09ERzc3OMGjWqcuyGG26o/P3JJ5/E+fPnY+7c\nuZVj33zzTdxyyy2V59OnT6/8XVtbG59++mnl+apVq+Kll16Kxx9/PF577bVYuXLlZdv3uzZv3hwP\nPfRQRAxeHkZENDQ0RF9fX5w9ezYmTpwYEREdHR1x4cKFWLhwYZw7d+5/vh85CFZy/f398frrr8fF\nixejqakpIiLOnz8fZ86ciQ8++CDmzZtXOXf69Onx+eefD3l9b29vJR7XXXddTJ48Obq7u6OmpuYn\nz/Lggw/G2rVr48iRI7Fv377YsmXLL7ZvfX19XHvttUOO3XrrrVFXVxe7du2KNWvWRMRgxCJiSCzJ\ny5fuye3evTtGjRoVR48eja6urujq6oru7u5YtGhRtLe3Dzl3/vz5MW7cuHjzzTcjIuLjjz+Ot99+\nu7I+b968uP7662PTpk3x1VdfxcWLF+Po0aPx3nvv/ahZxo0bF8uXL49HHnkkFixYEM3Nzf+Xff9z\n/82bN8eGDRtix44dcfz48Th79mwcPHgwvvjii2FFmJFFsJJra2uLxx57LJqbm6OpqanyePLJJ6Oj\no6PyK17E4KeMzs7O2Lp1ayxYsCCefvrpWLZsWWX9qquuit27d0dPT0/ceOONMWXKlFizZs33ftH7\nIatWrYoPP/ywcjn4/9r3W2vXro2dO3fGK6+8Ei0tLTFt2rRYt25dbNmyJe67776f/H6MLDWllFLt\nIbhyHD9+PFpaWuLkyZMxadKkao/DFcYnLC6bS5cuxfPPPx8PP/ywWPGL8KU7l0VfX180NjbGjBkz\nYv/+/dUehyuUS0IgDZeEQBqCBaQhWEAaggWkIVhAGoIFpCFYQBr/Ali2txN40f8TAAAAAElFTkSu\nQmCC\n",
       "prompt_number": 4,
       "text": [
        "<Image.Image image mode=RGBA size=300x300 at 0x7FCE605668C0>"
       ]
      }
     ],
     "prompt_number": 4
    },
    {
     "cell_type": "heading",
     "level": 4,
     "metadata": {},
     "source": [
      "Formaldehyde is wrongly identified as not an aldehyde"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "m1.HasSubstructMatch(p1)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 5,
       "text": [
        "False"
       ]
      }
     ],
     "prompt_number": 5
    },
    {
     "cell_type": "heading",
     "level": 4,
     "metadata": {},
     "source": [
      "Acetaldehyde is correctly identified as not an aldehyde"
     ]
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [
      "m2.HasSubstructMatch(p1)"
     ],
     "language": "python",
     "metadata": {},
     "outputs": [
      {
       "metadata": {},
       "output_type": "pyout",
       "prompt_number": 6,
       "text": [
        "True"
       ]
      }
     ],
     "prompt_number": 6
    },
    {
     "cell_type": "code",
     "collapsed": false,
     "input": [],
     "language": "python",
     "metadata": {},
     "outputs": [],
     "prompt_number": 6
    }
   ],
   "metadata": {}
  }
 ]
}