{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "from matplotlib import style\n", "import os\n", "import pandas as pd\n", "import numpy as np\n", "from rdkit import Chem\n", "from rdkit.Chem import RDConfig\n", "from rdkit.Chem import rdMolDescriptors\n", "from rdkit.Chem import Draw\n", "from rdkit.Chem.Draw import IPythonConsole\n", "from sklearn.svm import SVR\n", "from sklearn.metrics import mean_squared_error, r2_score\n", "import knime\n", "style.use('ggplot')" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [], "source": [ "train_path = os.path.join(RDConfig.RDDocsDir, 'Book/data/solubility.train.sdf')\n", "test_path = os.path.join(RDConfig.RDDocsDir, 'Book/data/solubility.test.sdf')\n", "\n", "train_mols = [m for m in Chem.SDMolSupplier(train_path)]\n", "train_y = np.asarray([m.GetProp('SOL') for m in train_mols], dtype=np.float32)\n", "train_table = {'smiles':[Chem.MolToSmiles(m) for m in train_mols]}\n", "train_df = pd.DataFrame(train_table)\n", "\n", "test_mols = [m for m in Chem.SDMolSupplier(test_path)]\n", "test_y = np.asanyarray([m.GetProp('SOL') for m in test_mols], dtype=np.float32)\n", "test_table = {'smiles':[Chem.MolToSmiles(m) for m in test_mols]}\n", "test_df = pd.DataFrame(test_table)" ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "data": { "image/png": "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c/XqVbmPjfVGAQAAdojgDljMnDlzhJW7ZeTFw8PDrTcEAACwT2wHCVjM3LlzP/zww08//fTy5ctWGuKHH34Q9MkAAOCUCO6AxQQFBb3zzjsff/xxcnKylYbo0KHDG2+8MWrUKCtdHwAA2C2CO2AxOp3u7bffDgwMLCsrs9IQnp6eYWFhVro4AACwZwR3wMII1gAANE6HDh38/Pw6deqkdSF2SmcymbSuAQAAAMAjsKsMAAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAAAKAAgjsAAACgAII7AAAAoACCOwAA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AIBl7Nu3Lzo6et++feY/GT16dHx8/OjRozWsCnBOThrcRZ1z3V599dUmnut29+7dDz/8UHbgtGzZ0hpn0cFumUym2bNn//Wvfw0JCdm5c2ezZs20rggALMZkMn355ZcvvfSSEOLzzz9fsGCBTqfTuijAGTlvcJeKioreeeedTz75pKampl27dm+//fbixYsfN3UZjcYvv/zyjTfeKCws1Ol0CxYs+NOf/tS5c2cr1Qw7tHr16ujo6DZt2uTm5vbq1UvrcgDA8mRYd/LYAGjL2YO7lJubK09aFUIEBgYaDIbx48c38Gf3798fHR2dnZ0thAgKCoqPjw8ODrZirbA/R48eDQoKKi8v/+6775599lmtywEAqyC4A5rjpHQhhAgMDMzMzExJSendu3dubu6ECRNmzZp1/vz5+n+qoKAgMjIyODg4Ozu7W7duiYmJ2dnZpHZnU1ZWNn/+/PLy8t/+9rekdgAAYD3MuP+D8vLy1atXv/vuu6WlpR4eHlFRUW+99Za3t/d9HysrK/v4449rf+yPf/yjl5eXJjVDWy+//PLnn3/u7+9/4MABDw8PrcsBAGthxh3QHMH9AQoKCt58880vv/zSZDJ169bt/fffj4iIMC/ESU1NjYqKys/PF0KEhYV9/PHHvXv31rBaaGjjxo3z5s1zd3fft2+f+fhAAHBIBHdAcwT3hzpw4EB0dPTevXuFEKNGjYqPj2/RosWSJUtkK/zw4cMNBkNISIjWZUIzly5dCggIuHXr1l/+8pff/OY3WpcDANZFcAc0R3Cvj9Fo/N///d+33nrr2rVr5i+szp07v/feey+++KKLCysEnFd1dfXEiROzsrJmz5797bffal0OAFgdwR3QHMH90eQG7d9//71Opxs/fnwTt3uHY3j77bfffffd7t275+XltWvXTutyAMDqCO6A5gjuDVVdXS2EcHV11boQaC8zM3Py5Mkmkyk9PX3SpElalwMAtkBwBzRHDG0oIjuk4uLiiIiImpoavV5PagcAADZDlzbweH7++eeqqqqQkJC3335b61oAAIAToVUGeGw3btyorKzs1q2b1oUAgO3QKgNojuAOAAAejeAOaI5WGQAAAEABBHcAAABAAQR3AAAAQAEEdwAAAEABBHcAAABAAQR3AAAAQAEEdwAAAEABBHcAAABAAQR3AAAAQAEEdwAAAEABBHcAAABAAa5aFwAAABTw9ttva10C4Ox0JpNJ6xoAAAAAPAKtMgAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAII7gAAAIACCO4AAACAAgjuAAAAgAL+H/BTjBilLZuzAAAAAElFTkSuQmCC\n", "text/plain": [ "" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Draw.MolsToGridImage(train_mols[:10], molsPerRow=5)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+gAAAGQCAIAAACyL902AABR4ElEQVR4nO3deVxU1/3/8TMILoj7vhtFNncIbrgvjUbQtAab1ABNmmJM7KAmLUSTgFkqmDQZTGqLzSLgI4s0qQWXpLjjgqi4oAIKRgUVFdCobAIzvz/Or/OlgARhZi53eD3/SvBy7wcdZt733M85R2MwGAQAAACAps1G6QIAAAAA/DyCOwAAAKACBHcAAABABQjuAAAAgAoQ3AEAAAAVILgDAAAAKkBwBwAAAFSA4A4AAACoAMEdAAAAUAGCOwAAAKACBHcAAABABQjuAAAAgAoQ3AEAAAAVILgDAAAAKkBwBwAAAFSA4A4AAACoAMEdAAAAUAGCOwAAAKACBHcAAABABQjuAAAAgAoQ3AEAAAAVILgDAAAAKkBwBwAAAFSA4A4AAACoAMEdAAAAUAGCOwAAAKACBHcAAABABQjuAAAAgAoQ3AEAAAAVILgDAAAAKkBwBwAAAFSA4A4AAACoAMEdAAAAUAGCOwAAAKACBHcAAABABQjuAAAAgAoQ3AEAAAAVILgDAAAAKkBwBwAAAFSA4A4AAACoAMEdAAAAUAGCOwAAAKACBHcAAABABQjuAAAAgAoQ3AEAAAAVILgDAAAAKkBwBwAAAFSA4A4AAACoAMEdAAAAUAGCOwAAAKACBHcAAABABQjuAAAAgAoQ3AEAAAAVILgDAAAAKkBwBwAAAFSA4A4AAACoAMEdAAAAUAGCOwAAAKACBHcAAFAXg8GgdAkAhCC4AwCAOhQUFEybNi0xMVHpQgAIW6ULAAAATVRmZuaTTz558eLFe/fuzZw5U6PRKF0R0Kwx4g4AAGqRnJw8adKkixcvjhkzZseOHRqN5uTJkxUVFUrXBTRfBHcAAFDdv/71r+nTp9+6dWv+/Pl79uzp3r37zZs3p06dOnz48B07dihdHdBMEdwBAMD/iIyMfPrpp0tKSl588cV//vOf9vb2QogrV6506dIlIyPjySef/OUvf5mdna10mUCzQ3AHAAD/n8FgCAkJWbZsmcFgCA0N/cc//mFr+/+nw7Vv397f33/x4sXt27ffsmWLq6trUFDQ3bt3lS0YaFYI7gAAQAghysrKnn322YiIiJYtW27atCksLEwIceXKlcjIyIkTJ7q4uISFheXl5WVkZAQGBur1+nXr1rm4uGzYsKGyslLp2oFmQcPirAAAoLCw8KmnnkpKSurUqdO//vWvgQMHxsXFffPNN8eOHZMHdOjQ4amnnvrNb37zi1/8Qghx/PjxZcuWHThwQAjh7u4uw72SPwDQDBDcAQBo7n788ccnn3wyIyOjZ8+efn5+hw4dOnTokEwIbdq0mTFjhq+v79NPPy2b3Y0MBsM///nPP/7xj5cvXxZCeHt7f/LJJwMGDFDmZwCaAYI7AADN2tGjR+fOnXvr1i0HB4fi4mK9Xi+q5PUFCxa0bdu2jm8vLi7++OOP33333fv379vb2//hD3944403HBwcLFU+0IwQ3AEAaKYKCwvXrFmj0+mMq7O3bt165syZvr6+v/rVrx4pfOfm5q5cuXLTpk0Gg6Fv377vvfeen58fGzYBpsXkVKC+Pvjgg2HDhkVHRytdSF2io6OHDRv2wQcfKF0IgKbr9u3bMTExPj4+3bt3/+CDDyoqKlq0aDF37tzo6OgbN24kJCT4+/s/6pB53759Y2JiDh8+PHbs2Nzc3ICAgPHjxx85csRMPwLQPNkqXQCgGtevXz979mx+fr7ShdQlPz//7Nmz169fV7oQAE3OnTt34uPj4+Lifvjhh/LycuPXn3rqqY0bN3bo0KHxlxg7duyhQ4c2bdr0pz/96ciRIxMmTFi0aNH777/fo0ePxp8cACPuAABYs+Li4ri4OB8fnx49egQEBGzdulWv13fr1k0IYWtru2HDhn/9618mSe2SjY2Nv79/VlZWaGionZ1dbGyso6NjWFhYWVmZqS4BNFsEdwAArFBJSYlseunWrdvChQu3bt1aWVnp5eW1Zs2asWPHyqmo8fHxv//9781xdQcHh7CwsLS0NF9f3/v3769evXr48OFxcXHmuBbQfBDcAQCwKmfPnl2wYEGXLl3mzZsXGxtbVlY2bdq0v/3tb9evX9+8efPXX3996NChXr167d+/f86cOWatZMiQIZs3b05MTBw2bNiFCxcWLlw4c+bMM2fOmPWigBUjuAMAYFXs7Oy+++67srIyLy8vnU6Xk5Oze/ful156KS8vb9y4cadOnRo6dGhycvLo0aMtU8/MmTNPnDgRFRXVtWvXXbt2jR49evHixU18vhDQNBHcAQCwKk5OThs3brxy5cqBAweCgoJ69eolhNi5c+fEiRNzcnKmTZt24MCB/v37W7IkW1vbwMDAzMxMrVZrMBg2bNjg7OwcGRlpXIYSQH0Q3AEAsDYBAQF9+vQx/m90dPSTTz559+5dX1/f7du3d+zYUZGqOnfuHBkZefz48alTpxYWFi5btmzmzJmKVAKoFMEdAABr89VXXz3zzDPx8fFCiIiIiOeff768vFyr1X799detW7dWtraRI0fu2bMnPj6+Z8+ed+/e/eqrr5StB1AR6wzuGRkZeXl5ly9fVrqQuly+fDkvLy8jI0PpQgAA1ubUqVPffPPNmTNnXnrppZCQEBsbm/Xr10dGRtrYNJXPfR8fn1deeeXEiROnTp1SuhZANZrKL7Cp3LlzJyQkZOTIkQsWLHB1dQ0JCbl3757SRVVXXFwcERExbNiwBQsWDB8+nDk6AABzSEtLi4qKatu27ZYtW5YsWaJ0OdXZ2rILJPBorCe4V1ZW/u1vfxsyZEhERERlZeWdO3dKS0sjIiLc3Ny+/PJLg8GgdIFCCGEwGL788ktnZ+eQkJCioqI7d+7IOTqurq5/+9vfKisrlS4QAGA9Ro4cuWrVqr1793p7eytdCwATsJLgvmfPHnd395dffjk/P3/q1KnHjx8/e/bskSNHxo8fn5ubu2jRIrkJs7JFHj9+fPLkyYsWLcrNzXV3d9+3b9/Zs2fPnDkze/bs/Pz8l19+ediwYTt27FC2SACow5YtW86dO6d0FXgE77777uOPP650FVC9c+fObdmyRekqHo1Vvl+pPrjn5OT4+/tPnz799OnT/fr1i46O3rNnz8iRI4UQnp6eBw8ejI6O7tmz59GjRydOnLhw4cKcnBzLF3n9+vXFixePHTv2wIEDXbt21el0KSkpkyZNEkK4uLjs2LEjPj5+0KBBGRkZTz75pI+PT3Z2tuWLBIC63bp16/nnnx85cuTixYtv3bqldDkALOH27dshISGjR48OCAjIy8tTupz6stb3KxUH96KiorCwMCcnp9jY2LZt24aGhp4/f97f37/qMRqNxt/fPysrKzQ0tFWrVnFxca6urmFhYaWlpZYpsry8PDIy0sXFZcOGDTY2NlqtNjs7OygoqEWLFlUP8/HxSU9P1+l07du337p1q6ura1BQ0N27dy1TJADUh62t7bPPPmts8Fu/fj2LcANWrKKiYv369cYm5EWLFrVq1UrpourLWt+vVBncDQZDXFycm5vb6tWry8rKfH19z507FxYW9rAlrtq2bRsWFnb+/Hk/P7+ioqLVq1c7OTnFxMSYu86EhARXV9dly5bdvXvX29s7PT09MjKyffv2tR7csmXLoKCgjIyMwMDAysrKdevWybhP4ztgxa5du/bb3/42KipKq9UWFhYqXU7tCgsLtVptYmJip06d1q9ff+bMmTlz5hQUFLzyyivDhw+nwQ+wSnv27PHw8HjllVcKCgqmTZuWmpq6fv36Tp06JSYm8n6lJIPapKSkTJgwQRb/+OOPHzx48JG+fffu3SNGjJDfPm3atFOnTpmjyPT09Dlz5siruLi4bN++/ZG+/dixY15eXvLbPTw8kpKSzFEkHtWKFSuEEB988IHShdTlgw8+EEKsWLFC6ULwM0pKSt577z0HBwchRLt27YQQXbp0+eSTT8rLy5Uu7f+Ul5d/8sknXbp0EUKMGDFCr9cb/yg+Pn7w4MHybcrb2zsrK0vBOlFTcHCwEGLNmjVKF1KXNWvWCCGCg4OVLgT/4/Lly35+fvK3WzYhG/9Ir9fLEMX7lVLUFNyvXr0aGBgo16Dt3bt3VFRUZWVlA85TWVkZHR3dvXt3IYSNjY2fn9+NGzdMVWRBQYFWq5VLXHXq1Emn0zXsZa3X6zdv3jxgwAAhhEaj8fX1vXTpkqmKRMMQ3GEqclqL8VPkP//5j/FW39nZedu2bUoXaDAYDLt27TIOc0ydOrXmMMeDBw9kg58Qws7OTqvV/vTTT4qUipoI7miA+/fvh4aGyv4F2YRcUlJS7Zj09PTZs2fzfqUUdQT34uLi8PBwOSjVsmVLrVZ79+7dRp6zsLAwODi4ZcuWMmGHh4eXlZU15oTl5eVRUVHdunUTQtja2gYGBt68ebORRRYVFYWGhrZp00YIYW9vHxwcfO/evUaeEw1GcEfjnTt37oknnjA+jtuxY4fxj6qOCc2cOfPcuXNKFZmVleXr62scb/v000+dnJy0Wq1cwbaaa9euBQYGynk7cvJ9RUWF5WtGNQR3PBK9Xi8X8zAOF165cqXmYTLZDxkyJC4ujvcrRagguMfHxz/22GPGoamLFy+a8ORyIRd5cicnp61btzbsPDt37hw+fLg8j1zixoRF5uTk+Pn5aTQaIUTfvn2jo6OrPgCCxRDc0RjycZz8wOjcuXOtj+MUHxOqdbwtISFBPurs2bPnZ599VuujzmPHjk2cOFG+B7q7u9PgpziCO+ovJSVl/Pjx8vfX09Pz0KFDNY+prKz87LPPZLK3sbFJSEjg/UoRTTq4p6amTp48Wf7Njho1au/evWa6UGJiopubm/HG8cyZM/X/3vPnzxtv9RwdHTdv3mymIpOTk8eOHSsvNHbs2OTkZDNdCA9DcEfDPHjwICoqqmvXrsbHcbdu3arjeEXGhOoebzt+/LhcwVZ+zu3fv7/Wk8THx8sGPznO8uOPP5q7bDwMwR31kZubaxwZ7N2798NGBo8cOTJu3Lhakz3vVxbWRIN7fn6+cWiqS5cuFngdyBvHDh06GG8ca33IUpW81ZNLI8lbvdLSUrMWKbvze/ToIf7bnZ+Xl2fWK6IqgjsaIDExcdiwYfKzYcaMGWlpafX8xuPHj1cdE3rYZ49J1Ge8zWAwxMfHDxw4sO7PuaKiovDwcDnplgY/BRHcUbeqTcht2rQJDg6utQm5arLv06fPw5I971cW0xSDe2Vl5ZAhQ2SAXrFixe3bty126XreMNQM0NevX7dYkbdv316xYoWdnZ0QYsiQIQ2boYsGILjjkVR9HDdkyJCGPY6rz2dPY9TzU9lIftjLzzn5YV/r51zVBr/6nBYmR3BHHerThFzPX/Zqp+X9ytyaYnA3GAwbNmx41JYVE6raojN69Oh9+/ZV/dPk5GTjA6MxY8YcPnxYkSJlJvjHP/6hyNWbJ4I76un27dvBwcHycZyDg0MjH8eZaUyonuNttarnx2fVBj8F3y2bJ4I7alV3wjFqcATn/crcmmhwbwpq3o+q654MJvfyyy8LId577z2lC6nLe++9J4R4+eWXlS6kmTJfP5tp33+qfSo3bNJ/1bbXMWPGPGxCm4LPJ5szgjuqqWdPQT0bxOvG+5X5ENzrUlxcvHr1ant7eyFEq1at5PiZvb396tWri4uLla4OliPX+mzfvv2AAQM6d+7c4D0EzEqu/d+9e/cBAwa0bdu28Suc4lHt3bt31KhR8oPBTDPIq332NGBMqOqnch3jbfVUbYrYwz7n7ty58+qrr8rld9evX9+YK6KeCO6o5q9//asQomXLlq+99lqts/hMPr2Q9ytzILj/PPmQpW3btm3btlXRvGOYyg8//GBcdEj+wjfB52iHDx8eM2ZMtSLd3Nx++OEHpUtrFiy5ZqscE/rZz56azDfpv+ZM/ZqbthgMhszMzKVLlzaprRatGMEd1ZSXly9dujQzM7PmHzVgfY564v3K5Aju9SWTkNJVwKIuXLhQba3PJrijba07Cldb4fTs2bPKFmnFKisrV61aZVxI+J133rHM47hHWtXKfJ/KVdX8fTH5JVB/BHfUkwU+L3i/MiGSaH0R3JuVut9lqu1oGxoaqkjrVFlZmU6ne9iOwpZ574PBYJg/f75Sd3H1+eyx8F3crl27qu5GV3PjcVgGwR0/q+oelM7Oztu2bTPr5Xi/MgmSaH0R3JuJqnNT6n6up+yOttUmT2dnZ9d6mOW3RGiGsrOzH7aQsGU8bOfmap/KDd4Z+lHJOSHdunUT/91w6ubNm5a5NIwI7qhDYWFhcHCwbOPu1KmTJedE8X7VSCTR+iK4NwcNmEljgfmI1Zw4cWLKlCnyiq6urt9///3Pfks91/+CelX77AkICPjDH/6gyKeyUX5+/ssvv2xrayuE6Ny588GDBy1cQDNHcMfDHDx4sHPnzvK94uWXX87Pz7dwAbxfNQZJtL4I7tatMWtXWWxH24KCAuPweefOnR91+NwkK2qhKSssLNRqtba2thqNRqPRyFfjjRs3FCwpPT19zpw5PXr0+OmnnxQsoxkiuONh7t6926tXr2nTpinbGcL7VcOQROuL4G6tTLVbhGn33KlGNqx37NhRNqwHBgbeunWrAedpzB4WUIvTp0+///7777//vvEZtOJycnKULqHZIbijDk3nV5L3q0dFEq0vgrtVio+Pl0vECBPtz2ySXe6rSUxMHDp0qHGyTuN3FK66jVzv3r3ZSgywPgR3wCrZCKBZSk1NnTRp0rx58y5fviw3h0tISDB2kjSYDOuJiYnDhg27cOHCwoULZ82adebMmYad7fz58z4+PrNmzTp79qyTk1NCQkLVEN9gffr0iYmJOXLkyPjx469duxYQEDB27NjDhw838rQAAMCsCO5odq5fv7548eIxY8YcOHCga9euOp0uJSXFuDebScycOTM1NTUqKqpr1647d+4cPXr04sWL8/Pz63+GO3fuhISEjBgxYuvWrR07dgwPDz99+rS3t7cJi/T09Dx48KDcGuPo0aNeXl4LFy7Myckx4SUAAIAJEdzRjJSXl0dGRrq4uGzYsMHGxkar1WZnZwcFBcnpnqYlO9EzMzO1Wq3BYNiwYYOzs3NkZGRlZWXd36jX62NiYpydnSMiIsrLy/38/DIyMozd86al0Wj8/f2zsrLkovVxcXGurq5hYWGlpaUmvxYAAGgkgjuaC71e7+npuWzZsrt3786fP//cuXORkZHt27c360U7d+4cGRmZlpb2xBNPFBYWLlu2bPjw4d9///3Djt+7d6+7u3tAQMDNmzenTp2ampoaExMj16sxn7Zt24aFhaWlpc2fP7+oqGj16tXjxo3T6/VmvSgAAHhUBHc0FzY2Nr/+9a+dnZ23b9++ZcsWR0dHi11arrYeHx8/aNAgudqUj4/PxYsXqx6Tk5Pj7+8v1+eS2znt3r175MiRFivS0dFxy5Ytu3fvHjFixDPPPGNjw5sDAABNC5/NaEZeffXVM2fOzJkzR5Gr+/j4pKen63S69u3bb9261dXVNSgo6O7du8XFxWFhYU5OTrGxsfb29qGhoRcuXPD395ervljYtGnTjh8/vmLFCstfGoDJHTp0qKKiQukqaldRUXHo0CGlqwBURmP470KHqJtMUfx1ofGuXr36+uuvb9q0yWAwdO3aVQiRn5+v0Wiee+65NWvW9OnTR+kCAaheYWHh/PnzDxw44Ozs/OGHHxo3k28idu/evWzZsrS0tHHjxm3btk1u5AngZzHiDliaXI0xJSXFy8tLbn36+OOPJyUlxcTEkNoBmETnzp1DQ0Pd3NwyMzPnzp07a9asc+fOKV2UEEJkZWUtXLhwxowZaWlpjo6OK1asILUD9ceIe30x4g6TMxgMFy5cEEIMGTJEkcYYANatvLx8/fr1oaGhP/30k52d3ZIlS95+++0OHTooUkxRUdH7778fHh5eVlbWtm3b1157LSQkpHXr1ooUA6gUwb2+CO4AADUqKCh4++23//rXv1ZWVnbp0uXNN99cunSpOZbBfRiDwRAbGxscHJyXlyfbAteuXduzZ0+LFQBYDYJ7fRHcAQDqlZqaumzZsqSkJCGEu7u7Tqcz7cZzD5OSkhIUFJScnCyE8PT0jIyMHD9+vAWuC1gletwBALB+7u7u+/fvj4+PHzhwYGpq6uTJk318fC5dumS+K169etXf33/cuHHJycl9+vSJjo4+cuQIqR1oDEbc64sRdwCAFSgpKVm3bt277757//79Nm3aaLXaN954w8HBQV2XAJongnt9EdwBAFaj6rq0ffr0+fOf/+zn52eSWfIJCQlarVaO5Xt7e3/88ccDBw5s/GkBCIJ7/RHcAQBWpmoD+pgxYyIjI8eNG9fgs504cSIoKEi20Y8ePVqn002ePNlktQKgxx0AgGZrzJgxhw4dio6O7tmzZ0pKyoQJE/z9/fPy8h71PAUFBUFBQZ6enklJSV26dNHpdEePHiW1AybHiHt9MeIOALBWNRdZf/3111u1avWz39iklooHrB7Bvb48PT2FEEePHlW6EAAAzCIrK2vlypVxcXFCCEdHxz//+c++vr51HL9z586goCC5J+vMmTMjIyPd3NwsVCvQLBHcAQDA/9m1a9fy5cvT0tKEEDNmzPjoo4+GDx9e7ZjMzMxXX31127ZtQggnJ6cPP/xw7ty5CtQKNDP0uAMAgP8zY8aM1NTUqKiorl277tq1y93dffHixbdu3ZJ/evv27ZCQkBEjRmzbtq1jx47h4eFpaWmkdsAyGHEHAAC1KCwsXL169fr16ysqKjp37vzmm2926NAhJCTk5s2bNjY2ixYt+uCDD7p37650mUAzQnAHAAAPdfr06eXLl+/evdv4lenTp3/00UcjRoxQsCqgeSK4AwCAn/Hdd9/t2LFDCDFnzpxf/epXSpcDNFMEdwAAAEAFmJwKAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAVslS4AAGACx48ff/fddz08PFq3bq3Valu2bKl0RQAAE9MYDAalawAANFxeXt6qVas2btyo1+ttbW0rKiqGDBnyl7/8xcfHR+nSAACmRKsMAKhVeXl5ZGSks7Pz559/3qJFC61W++233w4fPvzChQvz5s2bMWNGWlqa0jUCAEyGEXcAUKWdO3dqtdr09HQhxMyZMyMjI93c3IQQFRUVn3/++apVq/Lz821tbV944YV33323W7duStcLAGgsRtwBQGUyMzPnzp07a9as9PR0Z2fnbdu2JSYmytQuhLC1tQ0MDMzMzNRqtUKIDRs2uLi4REZGVlRUKFo1AKCxGHEHANW4fft2RETERx999ODBg06dOgUHBy9fvryOeagZGRnLly///vvvhRAuLi4ffvjhnDlzLFgvAMCUCO4AoAKyAeaNN964deuWjY3NokWL/vKXv9SzASYhIWH58uXZ2dlCCG9vb51ON3jwYDPXCwAwPYI7ADR1u3fvXr58+enTp4UQ06ZN0+l0I0aMeKQzlJeXr1+//q233rp7966dnd2SJUveeeed9u3bm6deAIBZ0OMOAE1XVlbWwoULZ8yYcfr06X79+kVHR+/evbtmat+1a9fYsWMvX778sPPY2dkFBQVlZGQEBgZWVlauW7fOxcVlw4YNlZWVZv4JAAAmQ3CvF55LALCwoqKisLCw4cOHx8XFtW3bNjQ09Pz58/7+/tUOkys/zpw5MyUlRafT1X3OXr16RUVFpaSkeHl5Xb9+ffHixWPHjj1w4IC5fgYAgEkR3H/GvXv3nn322cjISKULAdBcGAyGmJgYR0fH1atXl5WV+fn5ZWVlhYWFtW7duuphxmSfkJAgk314eHh9zu/h4ZGUlLR58+YBAwYcP3588uTJCxcurGO0HgDQRNDjXpeTJ0/6+vpmZWV17dr14sWL7dq1U7oiAFbu6NGjQUFBhw8fFkJ4enpGRkaOHz++2jEGgyE2NjY4ODgvL0+j0Tz33HNr167t2bPno16ruLh47dq1a9euLSkpsbe3/+Mf/xgcHNymTRvT/CQAAFNjxP2hYmJivLy8srKyRo8effjw4Xbt2uXk5ChdFACrdfXqVX9//7Fjxx4+fLh3797R0dFHjhypmdpTUlImTJgQEBCQl5c3ZsyYQ4cOxcTENCC1CyHs7e3DwsLOnz/v5+dXUlKyevVqJyenmJgYBnQAoGkiuNfi/v37ixYtCggIKC4u9vPzO3jwoKOjY2lp6dixY0ePHh0XF8enGgATKikpiYiIcHV1jY2Nbd26dXBwcEZGhr+/v0ajqXqYTPbjxo1LTk7u06dPdHR0cnLyuHHjGnn1vn37xsTE7NmzZ9SoUbm5uQEBAePHjz9y5EgjTwsAMD0D/te5c+eGDh0qhGjXrt2XX35p/PrRo0e7d+8u/9JGjBjx1VdfVVZWKlgnAOsQHx//2GOPyfcWb2/vixcv1jymqKgoPDzcwcFBCNGmTZvg4OB79+6ZvJLKysro6OgePXoIIWxsbPz8/PLy8kx+FQBAg9Hj/j9iYmKWLFlSXFzs5ua2efNmmeClmzdvJiYmXr9+fd26dbJnZtCgQVqt9qWXXmrVqpVyJQNQqxMnTixbtmz//v1CiNGjR+t0usmTJ9c8LCEhQavVXrp0SQjh7e398ccfDxw40HxV3blzJzw8XKfTlZWVOTg4vPrqq6+//jrvcgDQJCh959BUFBcXv/jii/LvxM/Pr6ioyGAw3Lt3LzExMTg42MPDw8bGRgjx6aeflpWVRUdHOzk5yYP79++v0+mKi4uV/gkAqElRUdErr7wihOjSpYtOp6uoqKh5zPHjxydNmiTfatzd3ffv32+x8s6fP+/r6yvLS09Pt9h1AQB1YMRdCCEyMjIWLlyYlpbWpk2b999/f/Dgwbt3796zZ8+JEyeMu5PY29tPnDhx6dKlPj4+Qgi9Xv/tt9+GhYWdO3dOCNG9e/clS5YsX768Q4cOSv4kAFQiPj5+/vz5Tk5OKSkpNd83CgoK3n777b/+9a+VlZVdunR58803ly5d2qJFCwsXuXbt2uDg4EmTJsnHAmjOKioqzpw5I4QYNmyYra2t0uWgqTh9+vSlS5euXLni7+/PZsyWoPSdg/JiYmLatm0rhOjWrdu4ceOqPhG2tbX18PAIDg5OTEwsLS2t+b16vT4+Pn7MmDHy+C5duoSGhhYUFFj+pwCgLv/+97+FED4+PtW+/uDBA51OJ6O8nZ2dVqu9c+eOIhUaDIZ9+/YJISZNmqRUAWgi5H69Dg4O7du3d3Fx2b59u9IVQXmFhYVardbW1laGqJ49e0ZFRTH9z9yab3CvqKg4dOiQl5dXtTuZFi1ayLAeHx//008/1fNsSUlJM2bMkGdwcHDQarXXrl0za/0AVO1hwX3Xrl3ynWTevHnnz59XpDYjgjuysrKeeuop+Zrs06dPnz595H8/9dRTWVlZSlcHZZSXl3/yySedO3eW4wvPPffchAkT5Atj/Pjxx48fV7pAa9a8gntlZeWZM2eioqJ8fX2rPdAZNGhQYGDg5s2bCwsLG3z+pKQkb29vecJWrVoFBgbm5OSYsH4AVuNhwd1gMCxfvvw///mP5UuqieCuoNLSUmVnT92/fz80NFTu1yu35i0pKZFPhOQHqHwiVP8RLnMoLi6u9Xk4zGfPnj0jRoyQUWf69OlpaWny6/Hx8f379xf/XZPq5s2bytZprZpFcM/OzpZhXd4dVtWxY8f3338/Pz/fhJc7ceKEr6+vXIC5ZcuWfn5+mZmZJjw/ACtQR3BXyuHDhzdu3Fj1/YrgrqC3335brtav1+stfGm9Xr958+Z+/foJITQaja+v75UrV6oecO3atcDAQDnpolevXlFRUbXOrjY3uZTqO++8Y/lLN085OTl+fn4y3vTr1y86OrraAfJmT7Ycd+rU6WHT7tEYVhvcs7Ozo6OjAwMD+/btWzWp9+zZc8iQIfK/n3vuOXOshSylpaX5+fnJGTw2Nja+vr5nz54107UAqE4TDO6BgYFCiL///e/GrxDclaLX6ydOnCg/qiZNmpSammqxS6ekpBj36/X09Dx48ODDjjx27JixSHd396SkJIsVmZqaalxwaeLEiZa/t2luiouLjVtJ2Nvby8cvDzv4/PnzTz75pPzXGTVqlCVfGM2BtQX33Nxcf3//amG9T58+fn5+X3zxhdwaUAjRunVrnU5ngXqys7O1Wq28+9RoNN7e3ikpKRa4LoAmjuCOull+P6yrV68ax1N79+5dn4mGcmx+wIAB8tPW29v70qVLZi0yPz9fq9XKwf46llKFCcXHxxv3jqj/P3G1reWqPbRRimz3UrqKRrG24H737l07OzshRLdu3by9vcPDw48dOybvxb/77ruOHTsKIZycnE6ePGnJqi5fvqzVatu0aSNfwV5eXrt27bJkAQCaGoI76uPevXvG3gPZaG6Olm45ntquXTvx36157969W/9vr7qzr729vZl29m1SCy41E+np6U888YSMLqNHj37UrSSqjtOb79Vbz0ri4+P9/Pzat2+/atWqqKgoRcowCWsL7gaD4auvvjp9+nTVB2elpaVarVa+8n75y1/evn1bkcJu3LgRGhpqXLDZy8srPj5ekUoAKI7gjvoz7oclhHB0dNy8ebMJT15tZPTixYs1jykqKtqxY0fd56naAN23b1/TducnJia6ubnJImfOnHnmzBlTnRm1Mi71KITo3Lnzzz7ZKCoqWrlyZa3Le8gXhvy3GzJkiCXXEi0oKPjiiy/mzZsn51hLGo2mZcuW6m1/sMLgXs2lS5fGjRsnhGjVqpVl2mPqlp+f/+abb8qxfyHElClTKisrCwsL//Wvf+3du1fp6gBYCMEdj2rnzp3Dhg2Tnx0zZsw4ffp0I0+Ympo6efJkYy/yvn37aj1MdkrY2toa1w+pQ3Jy8tixY+U5x44dm5yc3MgiMzMz586dK0/o5OS0devWRp4QdZM9Wt26dRNC2NraBgYG3rp162e/a9WqVXVH/F27dg0dOrTu+0NTuXXrVnR0tLe3d8uWLeUVbWxsPDw8QkNDMzMzg4KChBCDBg1S6RMbKwzur732mlarlT1YW7Zs6dSpkxBiwIABjX/7MKE7d+6EhYX16tVryZIlBoNB7ko4ceJEpesCYCEEdzRAeXl5VFRU165dHylU1VTPTvHjx49XnX564sSJ+pzcVN35t2/fDg4OltmrY8eO4eHhZWVlDTgP6m/v3r21LvX4szIyMoxNNe7u7rXOaa66lqjsyDJtS9WlS5d0Op2Xl5eNjY2spEWLFl5eXjqd7urVq1XLkPeWvr6+Jry6xVhbcNfr9fI28cKFC8HBwfKZ3VNPPdWY1dlNLj09ffDgwSNHjiwqKpLbrB45ckQI4enpqXRpACyE4I4GKygoqNbGUF5eXs/vrWeneOPngFbtzndwcHik/mYZ/bt3726M/jdu3Hikq+NR/exSj/VhnMaq0WgedsN27dq1ai1Vjaw8Oztb5nV5TiFE69atvb29o6KiHvayycrKkvcPGzZsaOTVLc/agnt6eroQomfPni+88IJsj1m3bp3SRVVXVlbWq1cvIURiYqL8ysmTJ4UQI0aMULYwABZDcEcjpaenz549WyYVFxeXn+1BNxgMiYmJxnaFh3WKm3YOaNXu/CFDhtSnO3/37t3GQd+pU6daeDGJZuiRlnr8WUVFRcZ9u+p4TpKSkjJmzBjj0H4DJi2cOXMmNDTU1dXV2Lxub2/v7e0dHR1dn6nV33zzjYz4qnuBWVtw/+yzz4QQTz/99IULF4YPH3748GGlK6rdu+++K4SYPXu2/F95v+Hi4qJsVQAshuAOk4iPjx80aJCxdTgrK6vWwzIzM40bezs5OSUkJNR6WLU5oKbafiQxMbFqd/7DGjCuXLlinMXY4EFfPJKGLfX4s7Kysow3bM7Ozt9//33NY6o209dzF97KysqkpKTg4GBHR0djXu/cubOfn198fPyjLlnzu9/9Tgjh5uZWVFT0SN+oLGsL7vKf4cMPPzQYDE15R4aCgoK2bdsKIU6dOmUwGC5evCiEeOyxx5SuC4CFENxhKmVlZcbW4ZoBqGaneK35JiMjw7hpjrOzs8nngNbdnS933JTDtI0f9EV9NHKpx/pITEw0jog/7K5ALl9j3IW31sWIKioqkpKStFqt7FYw3toFBgbGx8c3eF32kpIS+Wznd7/7XcPOoAhrC+7yJdKk5qE+zMsvv2x8uVy9elUI0bt3b6WLAmAhBHeY1rVr1wIDA+W0vF69ekVFRZWXl9enU7ywsNCY7Dt16mTWOaCyO1+mNNmd/+DBg82bN/fv318IodFofH19L1++bKarQ3rUpR4bQ3ZeyS0C6rglS01N9fLykonc09PzyJEjhiqLrxvX0ZZDnFqtNikpySSDs2fOnLG3txdCxMbGNv5slmFVwb2wsNDGxqZNmzaqmHienZ3dokWLVq1aXb9+PT8/XwjRpUsXpYsCYCEEd5jDkSNH5ArI8jOl7k5xpeaAnjx5curUqdWKHDdunIxrMKuDBw927txZPpwJCgqyzM42VTflHTx4cK1THfR6/caNG3v27CmEaNGixahRo4zbVgohRo4cuXr16sYvgVrThg0bhBAODg4ZGRkmP7k5WFVwT0hIEEJMnjxZ6ULq66mnnhJCvPnmm/fu3ZOvG6UrAmAhBHeYiV6v37x5c9euXfv379+lS5eHbYRUdQ7otGnTZN+mJcXHx/fs2bN///6dOnWKioqqrKy0cAHN09KlS9u2bTt9+nRzhOC6VV1rcubMmefOnat5jGyasrW1lQnezc0tNDTU3JF60aJFQogRI0aookHLqoL7ypUrhRAhISFKF1JfSUlJ8kHV7du35e2v0hUBsBCCO8xqxYoVQoh33nmn5h81nTmg77zzjhBixYoVShXQDMlmKvP1xtRNTnWQj1nkfIxaV4CZNGmSEOKrr76yTFX37t1zcnISQgQFBVnmio1hI6zIwYMHhRATJkxQupD6mjhx4rhx4woLC7/++msbG5vy8nK9Xq90UQAA1bOzsxNCyD7mqv7xj38MGTIkNjbWwcFhzZo1Fy5c8Pf3V6JAIf5bniwVzYGcl3zu3LkXXnihsrJy3bp1Q4cOPXPmTLXD5PL/xjYqc3NwcPjyyy9btmy5bt26LVu2WOaiDWY9wb28vPzo0aMajcbY3qcKy5cvF0J8+OGHcmLQgwcPlK4IAGC1PDw8KioqfH19z549GxISIhMSYEndu3f/7LPPUlJSxo8fr9FojOuZKsjDwyM8PNxgMLzwwguXL19Wupy6VL8XV6+TJ08WFxc7OzvLNUHVYsGCBYMGDbpw4YKc11xWVibXw0KtsrOzv/jiiz59+ri5uU2ZMkXpcmp3/fp1nU43bNiwDh06zJs3T+lyanf79u21a9d6eHiUlJQ899xzxg3nAFg3d3f3rKws49LdgFI8PDwOHDiQk5Mj84/ili1btm/fvn//+9+//vWvk5KSmuyDIOsZcZd9MsblhNSiRYsWS5cuFUKUl5cLIcrKypSuqIkqKioKCwsbNmzYe++9FxQUNHXqVB8fH7n+fdNRXl4eGRnp4uKydu3aJUuWzJ8/X241onRd/0Ov18fExLi4uISHhwcGBvr7+3t6espfHwDNgVKpfdasWf369cvMzFTk6niYt956a/To0Vu3brX8pW1sbAYMGGD569ZKo9F88cUXAwYMOHLkyOrVq5Uu56GsJ7gfPnxYCDF+/HilC3lkL774YseOHQnuD2MwGOLi4lxdXVevXl1WVrZgwYKVK1e2a9du69atrq6uQUFBck0exSUkJLi6ui5btuzu3btz5859/fXXu3Xrtnv3bnd398WLF9+6dUvpAoUQYs+ePe7u7gEBATdv3pw6derKlSv79+9//PjxSZMmLVy4sIk/HwSgatevX8/NzZUfdmg6Ll++fPLkyYKCAqULUV6nTp1iY2NtbW3XrFmTmJiodDm1s57gfujQIaHCEXchRLt27V588UX53wT3ao4ePerl5bVw4cKcnBxPT88DBw7885//DAsLy8jICAwMrKioWLdunYuLy4YNGxSc15uRkTFnzpx58+ZlZ2e7uLhs375969atq1atyszM1Gq1QogNGzY4OztHREQoOIchJyfH399/+vTpp06dkutI7Nmz57XXXktPTw8NDW3VqlVcXJybm1tYWFhJSYlSRQIAoKBJkya99dZber3+ueeeu379utLl1MJKgvvly5dzc3M7derk7OysdC0NsWzZMtlkfOnSJaVraSquXbvm7+8/duzYw4cP9+7dOyoqKjk52bhkkPzKkSNHJkyYcO3atcWLF48dO1bevFlSYWFhUFDQ8OHDv//+e7n/XFpa2pw5c+SfdurUKTIyUn7l9u3bISEhI0aM2L59u4WLlF1GTk5OsbGxcuO68+fPG9eRsLe3DwsLO3/+vJ+fX0lJyerVq52cnGJiYgwGg4XrBABAcatWrZo5c+bNmzcXLVpUWVmpdDnVWUlwl4ltwoQJcoFS1enTp0/Hjh2FEDExMUrXorySkpKIiAgXF5fY2NjWrVsHBwfL8fWa/7iPP/74gQMH5HbZx44dmzhx4sKFC69cuWKBIisqKuQ4+rp164QQgYGBGRkZQUFBNRdfk2Pw8fHxgwcPzszMnDt37qxZs86dO2eBImWXkZubm+wy8vX1TU9PDwsLqzkBul+/fjExMbt37x45cmRubm5AQMC0adNOnjxpgSLRdHTp0qV///5yc3IAaJ5sbGw2bdrUs2fPPXv2rF27VulyqlNlzK3JGNyVLqTh+vbtK4T49ttvf/rpJ6VrUVJCQsLQoUNDQkLu3bvn7e199uzZ8PDwOpKERqORedTY7+Hq6hoWFlZaWmq+Inft2jV69OjFixfn5+fPmDEjNTU1Kiqq7uWMfHx80tPTdTpd+/btd+7cOWrUqKCgILP+Wx89etR4J1P1DqeOb5k6dWpqaqrcAn3fvn0eHh7+/v43btwwX5Go1Y8//qjIE48///nPly9f/s1vfmP5SwNA09GjR4+NGzfa2Ni89dZbTW3xBoJ7U9G5c2chRHFx8WeffaZ0Lco4ceLElClT5s2b9+OPP44ePXrfvn0JCQmPPfZYfb63ar9HcXGx+fo9Lly4sHDhwpkzZ545c8bR0XHz5s07d+4cPnx4fb7Xzs4uKCgoOztbq9Xq9fp169YNHjw4MjLS5E/iZO/QuHHjDh06VLWnqD7fa2Nj4+/vn5mZGRwcbGdnFxsb6+LiEhERwewLi7lz587YsWPHjRuXnJysdC0A0Ew98cQTr732WkVFxTPPPNOkZu5aQ3AvKio6ffq0ra3t448/rnQtDWfcBeOjjz5qbpPuCwoKgoKCPD099+/f36VLF51Od/To0cmTJz/qeWS/x549e0aOHJmTkxMQECDnYpqkyPv374eFhQ0fPjwuLq5t27ahoaFnzpzx9fV91PN07do1MjIyJSVl0qRJBQUFy5YtGzNmTFJSkkmKNHYZbdiwwdbWVqvVPqzLqG4dO3YMDw8/ffq0t7f3nTt3QkJC5A9ukiJRt/T0dI1Gk5KS4uXl9fvf/54nHgCgiPfee2/ChAmyfbTpzPuyhuCenJxcUVExevRoBwcHpWtpOBnc+/Xrl5ub++233ypdjoXIhc8HDx68bt06GxsbrVabnZ0dFBTUokWLBp+zar/H3r173d3d/f39b9682eATyoXPHR0dV69eXV5e7ufnl52dHRYW1pgdB93d3ffv3x8fHz9w4MDU1NTJkyf7+Pg0cmpytS6jjIyMyMjIxvQrOzk5JSQkJCYmDh06VD5qmDVrVs29qdEYFRUV1b4yfvz4ixcvhoaG2tnZffrpp4MHDw4LC1PqiUfT+awCAAuztbX9+uuvO3fuvG3btk8++UTpcv4/awjuVtAnI/4b3OWCJB988IHS5ViCbPVetmzZTz/9NHPmzBMnTkRGRnbo0KHxZ67a72FraxsbGytXY2xA+pFNJgEBATdu3BgzZszBgwdjYmJ69OjR+CKFED4+PrKJ38HBYevWrW5ubiEhIffv33/U81TtMnJ1df3+++/r32X0s+Q/TVRUVNeuXXfu3CmXpc/PzzfJyZuzvn37zpo1a/fu3TWnZLRt2zYsLEw+0ikqKlq9evWwYcMs/8Tj+PHjK1as6Nev36xZsyx8aQBoCuTqyRqN5o9//GNqaqrS5QghhDCo3+zZs4UQ33zzjdKFNMqiRYuEEF988YUMhfv27VO6IjOSi6vIV6CTk9PWrVvNei1vb2/jtRISEur5jTk5OX5+fnKZzr59+0ZHR+v1ejMVmZuba7xWnz596n+t/Px8rVYrH1DI9SgrKirMVGRBQYHFrtVMvP766/KVOXjw4C1bttR6TNVJFNOnTz99+rQFCrt27VpAQIDssOrVq9etW7cscFGYVnBwsBBizZo1Shfyf4YOHSqESEtLM35lzZo1Qojg4GAFq2pu5O911XdvuTrwxo0bFayqmpkzZwoh/vOf/yhdyP/3wgsv2NjYrF+/XulCDAaDQfXBXa/Xd+rUSQiRk5OjdC2N8vzzzwshPvvss7feeksIMX/+fKUrMovCwkKtVmtnZyeE6NSpk06ne/DggQWuK/s9ZPqRU0vrOLioqEiOggsh7O3tg4OD7927Z4Eijxw5Mm7cOFnkmDFjDh06VMfBDx480Ol08gGFnZ2dVqu9ffu2BYo8d+7cE088IYuUo/s/+y2XL1++dOmSBWpTo127do0YMUL+fU6bNu3UqVM1jykvLzcuW2RraxsYGHjz5k0z1SNfV+3btze+rn766SczXQtmRXBHrQjuj0qv18tuiDfffFPpWgwGKwjuaWlpQoj+/fsrXUhjvfTSS0KI9evX37hxo02bNhqNJj09XemiTO/y5cv29vY2NjZ+fn43btyw5KVlIpHr5dvZ2QUGBtYcR9Tr9Zs3bx4wYIAMUt7e3hZOnHq9Pjo6umfPnkIIjUbj5+d3/fr1moc90n2IOcTHxw8aNMj4t5SdnV3HwfPmzWvZsqVWq717967FKlSRqrlc/mrUmsvlEw+5UYC86S0vLzdtJXK3AeM/a1ZWlmnPD0siuKNWBPdHJXdr6dSp0+XLl5WuxWCwguD+97//XQjx7LPPKl1IYwUFBQkhPvroI4PB8OKLLwohlixZonRRZrFx48ZahxUto45+D7mFk0wt7u7uSUlJShV5//59uSy9EEKuYFNSUiL/qFqXUf07f0yurKxMp9PJya8yl9c6NFtWVvab3/zG2HG0adMm83UcqVphYWFwcHDLli3lJ0R4eHhZWVnNw9LT041b88q9vUxy9fT0dNlzaNrTQkEEd9SK4P5Izpw506ZNmybVj6364C5fcB9//LHShTTWn/70JyFEeHi4wWDIyMiwsbGxt7entdRM5GxOY7/Hl19+aVwzsVevXlFRUU2he/vChQvG5SYdHR2/+OILY7CTyzWWlpYqXaPh6tWr1f7qKisrax6WkpJinD7++OOPHzx40PKlqkJGRsaTTz4p/6KcnZ23bdtW62EmHBq3wEA+FEFwR60I7vVXWloqWxkXL16sbCVVqT64Ozo6CiGOHz+udCGN9eabbwoh3n77bfm/8sP7nXfeUbYq62bsipH3061atQoODm5q7Rz/+c9/3NzcZHuPEKJFixYvvfRSU7ujO3z48JgxY2R5v/zlL5OTk2seI9uQ+vXrJ/67320TeezYBCUmJrq6uhpboc6ePVvzmMY3o8sWna5du1qgdR6WR3BHrQju9bd06VI5cGaZeW71pO7gLrcmadu2bXl5udqfv7/77rtCiFWrVsn/3blzpxCie/fuxh4JmENxcfE777zz8ccfP/vss022o7e8vHzdunXh4eG//vWvFewyqpvszpcL+Mju/Nzc3JqHyS6g1q1b1+wCQlU1c/mdO3dqHiaXf5GdSL169YqLi6vn+RVZrAaWRHBHrQju9bRjxw6NRmNnZ5eSkqJgGTWpex13uYL7mDFjIiMjR40aVVxcrHRFDScbmo0Ljc+YMWP06NE3b9788ssvFa3LyrVp0+aNN95YunTpl19+aew9aGpsbW3/8Ic/BAcHf/3118YVSJoajUbj7+//zTffyO782NhYJyensLCwkpKSqofJFcrPnz/v5+cnVyh3cnKKiYlRquwmy87OLigoKDs7W6vV6vX6devWDR48ODIysrKysuphvXr12rhx49GjRydOnHj9+vVq68HXKisra+HChTNnzkxLS3N0dNy8efOuXbuMIR4AcPPmzeeff95gMKxZs8bT01Ppcv6HNQT3iRMnxsXFnT59ev369UpX1HDG4F5SUlJeXi6EWL58+fDhw+VaE4Aq2NvbG3N5SUmJMZcb/ncDzn79+sXExOzevXvEiBE5OTkBAQFyJUSlym6yunbtGhkZmZKSMmnSpIKCgmXLlo0ZMyYpKanaYR4eHnIjXrkdxMMUFRWFhYXJvZzk4w65x5M5fwIAUBmDwfDCCy/k5eXNmjVr+fLlSpdTnbqDe0BAwEcfffTUU0+FhYUJISIiIu7du6d0UQ1kDO5LliyZNm1aXl7eokWLTp065ePjo3RpwKMx5vKRI0fm5ubKXH7y5Mlqh02bNu3EiRPR0dHdu3ffu3evu7u7v7//zZs3lSi5SXN3d5e5fODAgampqZMnT/bx8bl06VLVYzQajY+Pj+yZqUmv18fExDg6Oq5evfrBgwd+fn5ZWVlhYWHybQcAYKTT6bZt29a1a9eNGzfKzqImpckVVH8ZGRlDhw5dtmyZu7v77Nmzp0yZkp+fHxkZqXRdDfTss89evXp14MCB0dHRp06dKigosLGxedjHMND0TZ06NTU1Vebyffv2eXh4+Pv7y3kpRjY2Nv7+/pmZmcHBwba2trGxsc7OzhEREcaeMRj5+PicPXtWbg22detWNze3kJCQ+/fv/+w3pqSkeHl5BQQE5OXlyY29YmJi5F4BAICqzpw5s3LlSiHEp59+2rt3b6XLqYVag/u2bduGDx8eEhKi1+vlV+Tkzg8++KCwsFDR0hqoXbt2GRkZb731lkaj+eKLL4zb6wDqVTWX29nZxcbGuri41MzlcnXLtLS0uXPn3rlzJyQkZMSIEVu3blWq7CZL7uObkZHh5+dXWloaERHh4uJSsxPJ6OrVq/7+/uPGjUtOTu7Tp090dHRycrJxd14AQFWlpaW/+c1vSktLX3755fnz5ytdTu3UGtzlQnIRERGLFi2S87EmTpw4Y8aMn3766aOPPlK6uoa4cuXKM888U1FR8cYbbzz99NNKlwM00NGjR+UkDSOZy0+fPu3t7S1z+fDhw+Pi4qp9o5OT09atWxMSEpycnM6fP+/j47Np0yYLFq4affr0iYmJkRH86tWrAQEBMppXPaa4uFjG+tjY2NatW8u47+/vz0M8KGjNmjXR0dF9+/ZVuhD8j8DAwI0bNxr3H2zOVqxYkZaW5ubm9v777ytdy8MpuqZNo/zwww8dOnQQQowdO1ZuC5+SkqLRaBwcHG7cuKF0dY+mpKTk8ccfF0L84he/aApb/wANk5eX1759+yFDhmzevLnWAxITE41Pk+TCJjWPkSshDhs2rKioyMz1qltlZWV0dHSPHj3Ef5fglO+Eshte/iV7e3v/+OOPSlcKBTxsOciioqLnnnuu1s0BLI/lIC2v5nKQCtq/f/+HH35Y8+uKLAe5fft2jUbTqlWrEydOWPK6j0rFwd1gMKSlpcnPpz59+sg9mORu8K+99prSpT2a3/72t0KIIUOG3L59W+lagIZLTU11cXGRkXH27Nnp6ek1j3nw4IFx3x87O7vAwMBa95OqdQdW1HTnzp3XXntNbqnbrl07Jycn+ffv4eGRlJSkdHVQzMOC+zvvvCP+u8hsQUGBIrUZEdwtr4kE96tXry5atEij0dja2tYcwbF8cM/Ly5ODIDqdzmIXbRh1B3eDwZCfnz958mQhhIODw7///e9Tp07Z2Ni0bt261s1fmqYPP/xQ1l/r6COgLlVzudyPs9ZcXlBQoNVqW7RoIYTo3LmzTqdT/INE1S5cuCAXduzWrVunTp34+8TDgnthYaFWq7W1tRVCyJdKeXm5IhUaCO5KUDy4V91drk2bNrVuw2fh4K7X6+V29b/4xS+a/m6eqg/uBoOhtLRU7vvVokWL8PDwBQsWCCGWLl2qdF31kpSUZGdnp9FovvnmG6VrAUymZi6vNRycO3fuiSeekCPErq6u33//veVLtSYjR460/PNlNE0yuPv4+NT6q5eenj5nzhz5q+fi4rJ9+3bLV1heXi7XOya4W5IM7idPnlTk6rt27TJ2S3p7e1+8eLHmMYWFhY899pgQ4te//vWRI0cskKRlR3u3bt2uXbtm7ms1njUEd4PBoNfrw8PD5ctxwYIFNjY2LVu2rPUF0aRcuXKle/fuQoiVK1cqXQtgeufOnZs9e7YxHOzYsaPWw+Li4ow92QsWLLh69aqF67QaEyZMEEIcPHhQ6UKgvIKCAjnd0NnZedu2bbUeEx8fb9wx2tvbOysry2LlGffrHTdunOIdO81KQkKCjY2NjY2Nn5/fzZs3LXbdnJwcPz8/+WJzcnKq9V5Rr9fLFYTl4yB5cL9+/QIDA+Pj4x88eGCOwlJTU1u2bKnRaOLj481xfpOzkuAuxcXF2dvby9smIcTvf/97pSuqS0lJidxHd9asWTzUhhWLj48fNGiQMRxkZ2fXPKasrEyn07Vr165du3aqGPNomry8vIQQBw4cULoQNAmJiYlubm7GueC1Tkit2rdgZ2en1Wp/+ukns1ZlbOsSQjg6Oj5sIjvM5Pbt28HBwXJWjGV6pYqLi8PDw9u2bSuEkHs2l5aW1jzs2LFjxsVqp06d+tlnn2m12n79+hkXU+nWrduLL764ffv2srIyU9VWVFQk52X94Q9/MNU5zc2qgrvBYDhx4oRcakqj0bRo0SIjI0Ppih7qhRdeEEIMHDiw1g5gwJrIXC7DQcuWLR8WDnJzcx82NIj6ILijGpnL5QpsMpffuXOn5mHXrl0LDAyUT6179eoVFRVljuGk+/fvh4aGyv16ZYCr2dwMy8jIyKjaK2W+NsX4+HjZ96LRaHx9fa9cuVLzmPz8fK1WK19+cseJqn965syZ0NBQV1dXY4K3t7f39vaOjo6+e/duI8v7/e9/L4QYOnRocXFxI09lMdYW3A0GQ25uroeHh/zXnTVrltLl1G7dunVyWoZcDAdoDmqGA5aOMS3ZGsFiMqhGBiM556RLly4Pm7t87Ngx42Lepl2VSLZAyP16qy5dCmVVexxq2gbj8+fPG+8NRo0aVevLqby83HhjKcd07t2797ATZmdn63Q6Ly8v434UrVu39vb2joqKatgi4N99950QolWrVqdOnWrAtyvFCoO7wWC4f/++ccbbG2+8oXQ51R08eFA2VH399ddK1wJY2rFjx+TAsMnDAQjuqMPx48cnTZokf/Xc3d33799f8xi9Xr958+YBAwYYh0gvXbrUyOseOXLE2ALh6el56NChRp4QJmRsU5SDicHBwXVE53qq+miljkWu9uzZI+c5yFauWpcPrtWlS5dkgpfDQEKIFi1aeHl56XS6+k+Rys3N7dKlixDi448/ru8P1jRYZ3A3GAx6vV52kAshtFpt0xnYu3btWq9evYQQf/rTn5SuBVCGOcIBDAaDjGW1BjJAqs/+XEVFRaGhoW3atJFtCQ0Oc7m5uX5+fnJ8VLZANP219pqnq1evmuRfSr63y8b0Oua/Vn1hODo6bt26tWFl37p1Kzo62tvb287OTr6kbWxsPDw8QkNDz58/X8c3VlZWzpgxQwgxe/Zs1b0mrTa4GwyGa9euyekXQog5c+aYe8JNfZSWlo4ZM0YIMWPGDCakopm7f//+qlWrWrduLYTo0KEDu481HsEd9SEnCzo4ONQ9yCqXAZHpqm/fvo8U5up5CTQpKSkpxmcjU6ZMedQGkhMnThhbrTw9PZOTk2seIyddyAF+e3v7h01UfVSFhYXR0dG+vr5yCqzk5uYWGhp67NixmsfLDQS6d++uxpYtaw7uBoNhxYoVsnFKCDF8+HDFR/VefPFFIcSAAQOYkApIMhwEBQUpXYg1kLvR7du3T+lCoAL1HA7fu3fvqFGjZBKq5wow9RnUR9NUWVkZHR0t9xB9pCUjw8PD5SSKXr16xcTE1PpaSkxMNM4x9fb2NkckKy4ujo+P9/Pzk2shSIMGDdJqtUlJSbKqY8eOyXblBo/0K8vKg/utW7fkjZ18E+nVq9eRI0eUKuavf/2rHHuo9f4PaM6aTjObqk2ZMkUIsXfvXqULgWpUbUAfM2bM4cOHax5TUVERFRU1bdq0n103MDU11dhGP3r0aO4hVaoBS0bu2rWrjuVEL1y44O3tLV8YLi4uP/zwg3kK/z8lJSXx8fHPP/+8bGSXBg4cuHTpUtmluXz5cnPXYCZWHtwNBsPKlSuFEFOnTpX9TK1bt960aZPlyzh06JD8Hdi4caPlrw6gOSC4owFMsuRLPReugYo86pKRubm5Nb8o50vIlsiOHTtaYNn4aioqKpKSkrRabZ8+feTP0qNHj5EjR5qkRUcR1h/cb9++Lfff2rlz5yuvvCLfmIKDgy05HeH69evyFfPqq69a7KIAmpupU6cKIfbs2aN0IVCfmous1zPZ1HOpeKhUY5aMjI+PNy5C4Ofnl5eXZ746f1ZlZeWhQ4dee+211NTUnJwcBStpJOsP7gaDYfXq1UIILy8vg8EQFRVla2srhFi4cKFl1tt/8OCBnK4xffp0C99oAmhWCO5opEfd1rQ+m7NC7RqwZGRGRsYvfvEL+cLw8PBgDVATahbB/d69e927dxdCyLaq77//Xo4NjBs3zgL3f3Jfrv79+9dzhgcANMy0adOEELt371a6EKjbzp07jQtsz5gx4/Tp0zWPycjImDt3rjzGyclJpfP8UH/1XDKyan98586daZoyuWYR3A0GQ0REhBDi8ccfl6+ztLQ0OV21b9++qamp5rvu3//+d9lYf/ToUfNdBQAMBHeYTnl5eVRUVNeuXYUQtra2gYGBxrGnwsJCYzLr2LFjeHh4WVmZstXCYqotGXny5EnjH8nJEnJFGvmayc/PV7BUa9VcgntxcXHv3r2FEP/+97/lV/Ly8uSLr0uXLmZa4v3w4cOyX/Dzzz83x/kBoKrp06cLIXbt2qV0IbASBQUFWq1W9pd27tz5o48++vzzz+UTbLlWYMO2moeq1bpk5PHjx8ePH28M9I+6Bjzqr7kEd4PBoNPphBDDhw83LjxXUlLyzDPP/OMf/zDH5fLy8uSE1GXLlpnj/ABQDcEd5nDq1Cn50jKaPn06yayZu337dlBQkLypa9u2rY2Njexi+Prrr5UuzcppDAaDaB7KysqGDBmSk5PzzTffLFy4UAjx9NNP37p1y0yXu3Tp0pUrV6ZMmZKYmGjcjBcAzGfmzJm7du3auXOnXP0WMKHvvvtOfnRu3rz5V7/6ldLloEk4f/788uXL79y5c+7cOX9//3fffVfOYYX5NKPgLoSIiop66aWXnJyczp49a2tr26dPn2vXrpnpWj179pw9e3ZERIR8qggA5kZwh1nJiYnNKjagPu7duyeEILJbhq3SBVjUCy+8sHbt2vPnz2/fvn3evHnffvttWVmZma7VqlUr4wQOALAAchUAyyOyW1LzCu52dnYff/yxEOLJJ58UQhCsAQAAoBbNK7iL/0Z2ALA+jLgDgHWzUboAAIBpENwBwLoR3AEAAAAVILgDgJVgxB0ArBvBHQAAAFABgjsAWAlG3AHAuhHcAQAAABUguAOAlWDEHQCsG8EdAAAAUAGCOwBYCTnifu3aNaULAQCYBcEdAKxESEiIo6PjkiVLgoKC7t69q3Q5AAATI7gDgJVwd3f38vKqrKxct26ds7Pz559/rtfrlS4KAGAyGqYxAYA1SU1NDQoKOnDggBDC3d1dp9NNmjRJ6aJgDZj9DCiO4A4AVighIUGr1V66dEkI4e3tvW7duscee0zpoqBuBHdAcbTKAIAV8vHxOXv2bHh4uIODw9atW4cOHRoSEnLv3j2l6wIANBwj7gBgza5evfr6669v2rTJYDD07t07NDT0xRdftLFh1AaPjBF3QHEEdwCwfkePHg0KCjp8+LAQwtPTU6fTTZgwQemioDIEd0BxDLoAgPXz9PQ8ePDg5s2b+/Xrd/To0YkTJy5cuPDKlStK1wUAeASMuANAM1JUVPT+++9HRESUlpba29v/8Y9/DAkJad26tdJ1QQUYcQcUR3AHgGYnJydn1apVsbGxQoi+ffu+9957fn5+MpYBD0NwBxRHcAeAZmrv3r3Lli07deqUEGLKlCk6nW7UqFFKF4Wmi+AOKI4edwBopqZOnZqamhodHd2jR499+/Z5eHj4+/vfuHFD6brQREVERERERChdBdCsMeIOAM3dnTt33n777U8++aS8vPx3v/vdp59+qnRFAIBaENwBAEIIkZmZuXLlysjIyL59+ypdCwCgFgR3AAAAQAXocQcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAgR3AAAAQAUI7gAAAIAKENwBAAAAFSC4AwAAACpAcAcAAABUgOAOAAAAqADBHQAAAFABgjsAAACgAv8PYl3IvVWAHcgAAAAASUVORK5CYII=\n", "text/plain": [ "" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "Draw.MolsToGridImage(test_mols[:10], molsPerRow=5)" ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [], "source": [ "#My Knime env uploaded to 3.7 from 3.6.\n", "knime.executable_path = '/Applications/KNIME 3.6.1.app/Contents/MacOS/Knime'\n", "workspace = '/Users/iwatobipen/knime-workspace/'" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [], "source": [ "workflow = 'jupyter_integration'" ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "data": { "image/svg+xml": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " Node 2Node 5Node 7Node 10Node 11Node 12Node 13Node 14Node 15Node 16ContainerInput (Table)\n", " \n", " \n", " \n", " \n", " \n", " \n", " ContainerOutput (Table)\n", " \n", " \n", " \n", " \n", " RDKit From Molecule\n", " \n", " \n", " \n", " \n", " \n", " RDKit Salt Stripper\n", " \n", " \n", " \n", " \n", " \n", " RDKit DescriptorCalculation\n", " \n", " \n", " \n", " \n", " Column Splitter\n", " \n", " \n", " \n", " \n", " \n", " CSV Writer\n", " \n", " \n", " \n", " Table Creator\n", " \n", " \n", " \n", " OpenBabel\n", " \n", " \n", " \n", " \n", " Normalizer\n", " \n", " \n", " \n", " \n", " \n", " Node 2Node 5Node 7Node 10Node 11Node 12Node 13Node 14Node 15Node 16ContainerInput (Table)\n", " \n", " \n", " \n", " \n", " ContainerOutput (Table)\n", " \n", " \n", " \n", " \n", " RDKit From Molecule\n", " \n", " \n", " \n", " \n", " \n", " RDKit Salt Stripper\n", " \n", " \n", " \n", " \n", " \n", " RDKit DescriptorCalculation\n", " \n", " \n", " \n", " \n", " Column Splitter\n", " \n", " \n", " \n", " \n", " \n", " CSV Writer\n", " \n", " \n", " \n", " Table Creator\n", " \n", " \n", " \n", " OpenBabel\n", " \n", " \n", " \n", " \n", " Normalizer\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "" ], "text/plain": [ "" ] }, "execution_count": 22, "metadata": {}, "output_type": "execute_result" } ], "source": [ "knime.Workflow(workflow_path=workflow, workspace_path=workspace)" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [], "source": [ "with knime.Workflow(workflow_path=workflow, workspace_path=workspace) as wf:\n", " wf.data_table_inputs[0] = train_df\n", " wf.execute()\n", "train_x = wf.data_table_outputs[0]" ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "with knime.Workflow(workflow_path=workflow, workspace_path=workspace) as wf:\n", " wf.data_table_inputs[0] = test_df\n", " wf.execute()\n", "test_x = wf.data_table_outputs[0]" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "svr = SVR()\n", "svr.gamma = 'auto'" ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "SVR(C=1.0, cache_size=200, coef0=0.0, degree=3, epsilon=0.1, gamma='auto',\n", " kernel='rbf', max_iter=-1, shrinking=True, tol=0.001, verbose=False)" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "svr.fit(train_x, train_y)" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [], "source": [ "pred = svr.predict(test_x)" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "0.703289693583441\n", "1.2055499665537373\n" ] } ], "source": [ "print(r2_score(test_y, pred))\n", "print(mean_squared_error(test_y, pred))\n", "a, b = min(test_y), max(test_y)\n", "data = np.linspace(a,b, num=100)" ] }, { "cell_type": "code", "execution_count": 29, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0,0.5,'actual')" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.scatter(pred, test_y, c='b', alpha=0.5)\n", "plt.plot(data, data, c='r')\n", "plt.xlabel('pred')\n", "plt.ylabel('actual')" ] }, { "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.6.6" } }, "nbformat": 4, "nbformat_minor": 2 }