{ "cells": [ { "cell_type": "markdown", "id": "31139769-1daf-4765-803f-321d2eb342d5", "metadata": {}, "source": [ "## Initial imports" ] }, { "cell_type": "code", "execution_count": 1, "id": "f31e99f3-bde3-41b7-abde-54f3b6a3e361", "metadata": {}, "outputs": [], "source": [ "import pyCRS\n", "import matplotlib.pyplot as plt\n", "import math\n", "import scm.plams as plams" ] }, { "cell_type": "markdown", "id": "4cde646d-77e3-498f-ae62-e280172f2525", "metadata": {}, "source": [ "## Property prediction from SMILES (ethyl acetate)" ] }, { "cell_type": "code", "execution_count": 2, "id": "a30a9c33-ce52-44cf-a113-214ac16cc8b9", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ "from scm.plams import from_smiles\n", "\n", "# smiles = 'CCO' # ethanol\n", "smiles = \"O=C(OCC)C\" # ethyl acetate\n", "plams.view(plams.from_smiles(smiles), width=300, height=300)" ] }, { "cell_type": "markdown", "id": "5e2885e9-b22c-43db-93ff-909be9138bb8", "metadata": {}, "source": [ "### Temperature-independent properties" ] }, { "cell_type": "code", "execution_count": 3, "id": "c26688f6-8254-4e7f-b7cb-4660d76be837", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SMILES: O=C(OCC)C\n", "\n", "boilingpoint : 339.131 K\n", "criticalpressure : 38.243 bar\n", "criticaltemp : 544.189 K\n", "criticalvol : 0.271 L/mol\n", "density : 0.894 kg/L\n", "dielectricconstant : 6.834 \n", "entropygas : 382.780 J/(mol K)\n", "flashpoint : 265.005 K\n", "gidealgas : -323.540 kJ/mol\n", "hcombust : -2075.882 kJ/mol\n", "hformstd : -462.595 kJ/mol\n", "hfusion : 11.717 kJ/mol\n", "hidealgas : -437.815 kJ/mol\n", "hsublimation : 55.394 kJ/mol\n", "meltingpoint : 179.420 K\n", "molarvol : 0.098 L/mol\n", "parachor : 215.764 \n", "solubilityparam : 9.069 √(cal/cm^3)\n", "synacc : 1.756 \n", "tpt : 178.434 K\n", "vdwarea : 129.168 Ų\n", "vdwvol : 89.171 ų\n" ] } ], "source": [ "print(f\"SMILES: {smiles}\\n\")\n", "mol = pyCRS.Input.read_smiles(smiles)\n", "\n", "temperatures = [298.15, 308.15, 318.15, 328.15, 338.15]\n", "pyCRS.PropPred.estimate(mol, temperatures=temperatures)\n", "\n", "for prop, value in mol.properties.items():\n", " unit = pyCRS.PropPred.units[prop]\n", " print(f\"{prop:<20s}: {value:.3f} {unit}\")" ] }, { "cell_type": "markdown", "id": "42fe82f4-3c76-45b9-99a9-9992462587fd", "metadata": {}, "source": [ "### Temperature-dependent properties (vapor pressure)" ] }, { "cell_type": "code", "execution_count": 4, "id": "52cd71c8-a973-4a2a-9022-45b85f01ddf5", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "prop = \"vaporpressure\"\n", "unit = pyCRS.PropPred.units[prop]\n", "temperatures_K, vaporpressures = mol.get_tdep_values(prop)\n", "temperatures_C = [t - 273.15 for t in temperatures_K] # convert to Celsius\n", "\n", "plt.figure(figsize=(3, 3))\n", "plt.plot(temperatures_C, vaporpressures)\n", "plt.plot(temperatures_C, vaporpressures, \".\")\n", "plt.xlabel(\"Temperature (degree Celsius)\")\n", "plt.title(f\"SMILES: {smiles}\")\n", "plt.ylabel(f\"{prop} [{unit}]\");" ] }, { "cell_type": "markdown", "id": "54618cc8-2fc0-4481-b733-edee5fe2172f", "metadata": {}, "source": [ "## Create .csv for multiple compounds\n", "\n", "Define a list of compounds by their SMILES strings. This example also shows how to only calculate a subset of all properties.\n", "\n", "Note: The SMILES string 'C' corresponds to methane which is too small to be used with the property prediction tool, so the results are given as 'nan' (not a number)." ] }, { "cell_type": "code", "execution_count": 5, "id": "0b85d972-3604-4510-8d3b-ad772c9b40ec", "metadata": {}, "outputs": [], "source": [ "smiles_list = [\n", " \"CCO\",\n", " \"CCOC\",\n", " \"OCCCN\",\n", " \"C\", # methane is too small to be used with property prediction and will return \"nan\"\n", " \"C1=CC=C(C=C1)COCC2=CC=CC=C2\",\n", "]\n", "temperatures = list(range(280, 340, 10))\n", "\n", "mols = [pyCRS.Input.read_smiles(s) for s in smiles_list]\n", "\n", "properties = [\"boilingpoint\", \"criticaltemp\", \"hformstd\"]\n", "\n", "for mol in mols:\n", " pyCRS.PropPred.estimate(mol, properties, temperatures=temperatures)" ] }, { "cell_type": "code", "execution_count": 6, "id": "ac4fb39a-ed79-4b7b-942a-1f0063cff42e", "metadata": {}, "outputs": [], "source": [ "def get_csv(mols, properties):\n", " header = \"SMILES\"\n", " for prop in properties:\n", " unit = pyCRS.PropPred.units[prop]\n", " if unit:\n", " unit = f\" [{unit}]\"\n", " else:\n", " unit = \"\"\n", "\n", " header += f\",{prop}{unit}\"\n", " ret = header + \"\\n\"\n", "\n", " for mol in mols:\n", " s = f\"{mol.smiles}\"\n", " for prop in properties:\n", " value = mol.properties.get(prop, \"\")\n", " try:\n", " s += f\",{value:.4f}\"\n", " except TypeError:\n", " s += f\",{value}\"\n", " s += \"\\n\"\n", " ret += s\n", " return ret" ] }, { "cell_type": "code", "execution_count": 7, "id": "be9db892-4183-4006-a388-e312b095bfe6", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SMILES,boilingpoint [K],criticaltemp [K],hformstd [kJ/mol]\n", "CCO,337.6259,442.0008,-271.9478\n", "CCOC,296.4144,425.7282,-213.6494\n", "OCCCN,432.7489,541.4748,-290.7921\n", "C,nan,nan,nan\n", "C1=CC=C(C=C1)COCC2=CC=CC=C2,558.7903,661.7012,-167.0454\n", "\n" ] } ], "source": [ "csv = get_csv(mols, properties)\n", "print(csv)\n", "\n", "# To write to a .csv file:\n", "# with open('outputfile.csv', 'w') as f:\n", "# f.write(csv)" ] }, { "cell_type": "markdown", "id": "8abe2182-f759-494d-a6c0-3a705e525af8", "metadata": {}, "source": [ "### Bar chart for multiple compounds\n", "\n", "Continuing from the previous example, you can also create e.g. a bar chart with the boiling points:" ] }, { "cell_type": "code", "execution_count": 8, "id": "0372299c-0074-456f-95ec-0ccff98bee7d", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAxQAAAGzCAYAAAC2BVHuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAAA080lEQVR4nO3deXiM9/7/8dcQSURMIvZUmiCJpSltKXJwoU2lKOlGqk51O+iRKm1KOT1qKbWXWmo5WtpSS+uLVltLCXVKq1FqJ0pQS5U0iT3B/fvDlfmdaRKZfCRG4vm4rrkuc9+f+dzv+z1zybzmvu8Zm2VZlgAAAADAQAl3FwAAAACg6CJQAAAAADBGoAAAAABgjEABAAAAwBiBAgAAAIAxAgUAAAAAYwQKAAAAAMYIFAAAAACMESgAAAAAGCNQAABwiwkJCdFzzz3nuL927VrZbDatXbvWsey5555TSEjITa+tMCQnJ8tms2n27NmFvq3BgwfLZrPJZrPJ19fXeB5/f3/HPC+//HIBVggUPQQKAAAMzZ492/GmMutWqVIltWrVSt988427y7stnD9/XoMHD3YKW6745JNP9MEHHzgta9mypSIiIrKNXb16tXx8fHTfffcpJSVFkjRjxgx98sknxnUDxYmHuwsAAKCoGzp0qKpXry7LsvT7779r9uzZatu2rb788ks98sgj+Z5v7969KlHi+p/5/ec//9HVq1dNS76lBAcH68KFCypVqlS+H3v+/HkNGTJE0rVA4Kq///3vLo1bs2aN2rdvr1q1aunbb79VQECAJKlTp06SpGeeeSZ/BQPFEIECAIAb1KZNGzVs2NBx/8UXX1TlypU1b948o0Dh5eWV5xiTN9+3KpvNJm9vb3eXkc26devUvn17hYeHO4UJAM445QkAgALm7++v0qVLy8PD+XO7c+fOKT4+XkFBQfLy8lKtWrU0duxYWZblNO6v11Dk5K/XUGRdhzB27FjNmDFDNWvWlJeXl+6//3799NNP2R7/2WefqW7duvL29lZERIQWL17s8nUZISEheuSRR7Ry5Urdc8898vb2Vt26dfV///d/2cYeOHBAHTt2VEBAgHx8fNSkSRN99dVXTmNyuobiueeek6+vr44ePapHH31Uvr6+qlixol5//XVduXLF8biKFStKkoYMGeI47Wzw4MF57kNe1q9fr3bt2ik0NFTffvutypcvf8NzAsUVgQIAgBuUlpamU6dO6Y8//tDOnTv1z3/+U2fPnnU6rcayLHXo0EHjx4/Xww8/rHfffVe1atVS37599dprrxVYLZ9++qnGjBmjHj16aNiwYUpOTtbjjz+uzMxMx5ivvvpKsbGxKlWqlEaMGKHHH39cL774ojZv3uzydpKSkhQbG6s2bdpoxIgR8vDwUMeOHbVq1SrHmN9//11/+9vftGLFCvXs2VPDhw/XxYsX1aFDBy1evDjPbVy5ckXR0dEqX768xo4dqxYtWmjcuHGaMWOGJKlixYqaOnWqJOmxxx7TJ598ok8++USPP/64y/uRk++//15t27ZV9erVtXr1alWoUOGG5gOKPQsAABiZNWuWJSnbzcvLy5o9e7bT2CVLlliSrGHDhjktf/LJJy2bzWbt37/fsSw4ONh69tlnHfcTEhIsSVZCQoJj2bPPPmsFBwc77h88eNCSZJUvX95KSUlxLF+6dKklyfryyy8dy+6++26rWrVq1pkzZxzL1q5da0lymjM3wcHBliRr0aJFjmVpaWlW1apVrXvvvdexrE+fPpYka/369Y5lZ86csapXr26FhIRYV65ccap91qxZTvsnyRo6dKjTtu+9916rQYMGjvt//PGHJckaNGhQnnVblmUNGjTIyu3tT4sWLayAgACrbNmy1l133WWdPHkyz/kkWXFxcS5tGyiuOEIBAMANmjJlilatWqVVq1Zpzpw5atWqlf7xj384nQL09ddfq2TJknrllVecHhsfHy/LsgrsW6FiY2NVrlw5x/3mzZtLunbqkSQdO3ZM27dvV9euXZ2+NrVFixa6++67Xd5OYGCgHnvsMcd9u92url27asuWLTpx4oSka/vcqFEjNWvWzDHO19dX3bt3V3Jysnbt2pXndl566SWn+82bN3fsS2E4d+6czpw5o8qVK8tutxfadoDihEABAMANatSokaKiohQVFaUuXbroq6++Ut26dfXyyy8rIyNDknTo0CEFBgaqbNmyTo+tU6eOY31BuPPOO53uZ4WLP//802k7oaGh2R6b07LchIaGymazOS0LDw+XdO3ahqxt1apVK9tjXd1nb29vxzUSWcqVK+fYl8IQGhqqUaNGac2aNercubPjeg0AuSNQAABQwEqUKKFWrVrp+PHjSkpKuqnbLlmyZI7Lrb9c+F0U5LYvha1fv37q16+fFi9erG7duhXJ3gE3E18bCwBAIbh8+bIk6ezZs5Ku/dbCt99+qzNnzjgdpdizZ49j/c2QtZ39+/dnW5fTstzs379flmU5HaXYt2+fJDm+KSo4OFh79+7N9tiC3Oe/HiUpKKNGjVJKSopmzpypcuXKady4cYWyHaA44AgFAAAFLDMzUytXrpSnp6fj9J62bdvqypUrmjx5stPY8ePHy2azqU2bNjeltsDAQEVEROjjjz92hB3p2m8ubN++3eV5jh075vRNTenp6fr44491zz33qEqVKpKu7fOmTZu0ceNGx7hz585pxowZCgkJUd26dW94f3x8fCRJqampNzzXX02fPl1PPvmk3n33XQ0bNqzA5weKC45QAABwg7755hvHp+4nT57Up59+qqSkJPXv399xYW/79u3VqlUrvfnmm0pOTlb9+vW1cuVKLV26VH369FHNmjVvWr3vvPOOYmJi1LRpUz3//PP6888/NXnyZEVERDiFjOsJDw/Xiy++qJ9++kmVK1fWhx9+qN9//12zZs1yjOnfv7/mzZunNm3a6JVXXlFAQIA++ugjHTx4UIsWLcrz18BdUbp0adWtW1cLFixQeHi4AgICFBERoYiIiBueu0SJEpo7d67S0tI0cOBABQQEqGfPnjc8L1DcECgAALhBb731luPf3t7eql27tqZOnaoePXo4lpcoUUJffPGF3nrrLS1YsECzZs1SSEiIxowZo/j4+Jtab/v27TVv3jwNHjxY/fv3V1hYmGbPnq2PPvpIO3fudGmOsLAwTZo0SX379tXevXtVvXp1LViwQNHR0Y4xlStX1oYNG/TGG29o0qRJunjxourVq6cvv/xS7dq1K7D9mTlzpnr16qVXX31VGRkZGjRoUIEECkny9PTU4sWLFRUVpV69esnf319PP/10gcwNFBc2iyuNAACApHvuuUcVK1Z0+nG6nISEhCgiIkLLli27SZUVnMGDB2vIkCH6448/ZLPZjH8BOyUlRVevXlXFihUVFxeX7VQ24HbCNRQAANxmMjMzHReNZ1m7dq1++eUXtWzZ0j1F3WQVK1a8oYvCa9Soke0rbYHbFac8AQBwmzl69KiioqL097//XYGBgdqzZ4+mTZumKlWqZPshueKma9eujh/a8/Awfxu0dOlSZWZmSpKCgoIKpDagqCJQAABwmylXrpwaNGigmTNn6o8/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prJlyyoxMVGjRo3SBx98oHvuucel2vLLsix17txZX3zxhf7973+rdevWqlixorZv367x48erV69eevTRR3X69GlVrVpVP//8syIiIhyPf//99/Xyyy/r+eefV9euXRUSEqLffvtNH3/8sXx9fY2+OtbV/XTleTh//rwqVKigFStWqHnz5vma//PPP9dTTz2lF154QS+//LLsdrtWr16tvn376sEHH9TChQsd4cqVPrja61GjRumtt97Sp59+qqZNmzr68tcjD/nxxhtvaNy4cXrttdf02GOPKTAwUPv379e0adPUrFkz9e7d2+XXYX4VZG/ya+nSperYsaMefvhhvfLKKwoNDdWpU6e0cOFCHT58WPPnz9eOHTv0wAMPKDo6WmPGjHE8tmTJko4jW3khUAAAUDiKZKCQpOPHj2v48OFatmyZjh8/rooVK6pBgwZ69dVX1bJlSw0ePFhDhgzJ9rhZs2bpueeey+/mJF0LFePHj9enn36qpKQk+fj4qE6dOurWrZu6dOkiDw8Pl2ozcfXqVc2YMUMffvihdu7cKQ8PD4WFhalr167q1q2b4wLy2NhY1ahRQyNGjHB6/LfffquxY8dq06ZNunDhgkJCQvTII4/otddey/Ni3Ny4sp+uPA/z5s3TkCFDsp324mof169fr+HDh2vjxo26ePGiwsLC9Pzzz6tPnz4qWbJkvvvgSq9DQkJ06NChbPs1aNAgDR482Kif0rWvCJ4yZYq2bNmiq1evqmbNmnryySfVq1cvxyf1rr4O86ugemMiMTFRI0aM0Pr16x0XTz/wwAPq27evQkNDc30dBQcH53lkLQuBAgCAwlFkAwVytm3bNj300EP69ddfjT8pv9maNGmiV155RU8//bS7S0ExRqAAAKBw3AqBIt+/lI3c1atXT6NGjdLBgwfdXYpLTp06pccff1ydO3d2dykAAAAooszOz0CuTE/pcocKFSrk+qNmAAAAgCs4QgEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAmIe7CwBw+9gxJFp2u93dZQAAgALEEQoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxjzcXQCA20fEoBUq4eXj7jIAAC5IHtnO3SWgiOAIBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAHcAo4cOaIXXnhBgYGB8vT0VHBwsHr37q3Tp087jdu/f7+ef/55VatWTV5eXqpevbo6d+6sxMREp3EJCQlq27atypcvLx8fH9WtW1fx8fE6evSoY4xlWZoxY4YaN24sX19f+fv7q2HDhpowYYLOnz8vSRo8eLBsNpteeuklp/m3bt0qm82m5OTkwmkIAAAoMggUgJsdOHBADRs2VFJSkubNm6f9+/dr2rRpWr16tSIjI5WSkiJJSkxMVIMGDbRv3z5Nnz5du3bt0uLFi1W7dm3Fx8c75ps+fbqioqJUpUoVLVq0SLt27dK0adOUlpamcePGOcY988wz6tOnj2JiYpSQkKCtW7dq4MCBWrp0qVauXOkY5+3trQ8++EBJSUk3rykAAKDIsFmWZbm7COB21qZNG+3YsUP79u1T6dKlHctPnDihmjVrqmvXrnr//fd19913y9vbW5s2bVKJEs6fBaSmpsrf31+//fabatasqZ49e2r8+PHZtpU1buHChYqNjdWSJUsUExPjNMayLKWnp8vPz0+DBw/WkiVLVKlSJcfjpGtHKO69914dPHhQISEhee5j1nxBfRaqhJePQZcAADdb8sh27i4Bbpb19zstLU12uz3XcRyhANwoJSVFK1asUM+ePZ3ChCRVqVJFXbp00YIFC7R161bt3LlT8fHx2cKEJPn7+0uSPvvsM2VkZKhfv345bi9r3Ny5c1WrVq1sYUKSbDab/Pz8nJaNHDlSixYtynZqVW4uXbqk9PR0pxsAACieCBSAGyUlJcmyLNWpUyfH9XXq1NGff/7pON2odu3aec5nt9tVtWrVPMfVqlXL5Trvu+8+derUSW+88YZL40eMGCE/Pz/HLSgoyOVtAQCAooVAAdwC8jrz0NUzEy3Lks1mu+Ht5WTYsGFav3690/UVuRkwYIDS0tIctyNHjuR7ewAAoGggUABuFBoaKpvNpt27d+e4fvfu3SpXrpzCw8MlSXv27LnufOHh4UpLS9Px48fzHJfXXH9Vs2ZNdevWTf37988zkHh5eclutzvdAABA8USgANyofPnyeuihh/T+++/rwoULTutOnDihuXPnKjY2Vvfcc4/q1q2rcePG6erVq9nmSU1NlSQ9+eST8vT01OjRo3PcXta4p59+Wvv27dPSpUuzjbEsS2lpaTk+/q233tK+ffs0f/78fOwlAAAozggUgJtNnjxZly5dUnR0tL777jsdOXJEy5cv10MPPaQ77rhDw4cPl81m06xZs7Rv3z41b95cX3/9tQ4cOKBt27Zp+PDhjourg4KCNH78eL333nt68cUXtW7dOh06dEjff/+9evToobfffluS1KlTJ8XGxqpz58565513lJiYqEOHDmnZsmWKiopSQkJCjrVWrlxZr732miZOnHjT+gMAAG5tBArAzcLCwpSYmKgaNWqoU6dOqlmzprp3765WrVpp48aNCggIkCQ1atRIiYmJCg0NVbdu3VSnTh116NBBO3fu1IQJExzz9ezZUytXrtTRo0f12GOPqXbt2vrHP/4hu92u119/XdK1b3L69NNP9e6772rJkiVq0aKF6tWrp8GDBysmJkbR0dG51vv666/L19e3UHsCAACKDn6HAkCh43coAKDo4XcowO9QAAAAACh0BAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMObh7gIA3D52DImW3W53dxkAAKAAcYQCAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAmIe7CwBw+4gYtEIlvHzcXQaAQpQ8sp27SwBwk3GEAgAAAIAxAgUAAAAAYwQKAAAAAMYIFAAAAACMESgAAAAAGCNQAAAAADBGoAAAAABgjEABAAAAwBiBAgAAAIAxAgUAAAAAYwQKAAAAAMYIFAAAAACMESgAAAAAGCNQAAAAADBGoAAAAABgjEABAAAAwBiBAgAAAIAxAgUAAAAAYwQKAAAAAMYIFAAAAACMESgAAAAAGCNQAAAAADBGoAAAAABgjEABAAAAwBiBAgAAAIAxAgUAAAAAYwQKAAAAAMYIFAAAAACMESgAAAAAGCNQAAAAADBGoAAAAABgjEABFCEnTpxQr169VKNGDXl5eSkoKEjt27fX6tWrHWO2bNmijh07qnLlyvL29lZYWJi6deumffv2Oc310Ucf6f7775ePj4/Kli2rFi1aaNmyZdm2aVmWZsyYocaNG8vX11f+/v5q2LChJkyYoPPnzxf6PgMAgFsbgQIoIpKTk9WgQQOtWbNGY8aM0fbt27V8+XK1atVKcXFxkqRly5apSZMmunTpkubOnavdu3drzpw58vPz08CBAx1zvf766+rRo4diY2O1bds2bdq0Sc2aNVNMTIwmT57stN1nnnlGffr0UUxMjBISErR161YNHDhQS5cu1cqVK29qDwAAwK3HZlmW5e4iAOStbdu22rZtm/bu3asyZco4rUtNTZWnp6eCg4PVrFkzLV68ONvjU1NT5e/vrx9++EGRkZGaOHGievXq5TQmPj5ekyZN0q+//qqgoCAtXLhQsbGxWrJkiWJiYpzGWpal9PR0+fn55Vl71rigPgtVwsvHYO8BFBXJI9u5uwQABSTr73daWprsdnuu4zhCARQBKSkpWr58ueLi4rKFCUny9/fXihUrdOrUKfXr1y/HOfz9/SVJ8+bNk6+vr3r06JFtTHx8vDIzM7Vo0SJJ0ty5c1WrVq1sYUKSbDZbrmHi0qVLSk9Pd7oBAIDiiUABFAH79++XZVmqXbt2rmOSkpIk6bpjJGnfvn2qWbOmPD09s60LDAyU3W53XG+RlJSkWrVq5bveESNGyM/Pz3ELCgrK9xwAAKBoIFAARYArZybm5+xFV8eanhE5YMAApaWlOW5HjhwxmgcAANz6CBRAERAWFiabzaY9e/bkOiY8PFySrjsma9yBAweUkZGRbd2xY8eUnp7umCs8PDzP+XLi5eUlu93udAMAAMUTgQIoAgICAhQdHa0pU6bo3Llz2danpqaqdevWqlChgkaPHp3jHKmpqZKkp556SmfPntX06dOzjRk7dqxKlSqlJ554QpL09NNPa9++fVq6dGm2sZZlKS0t7Qb2CgAAFAcECqCImDJliq5cuaJGjRpp0aJFSkpK0u7duzVx4kRFRkaqTJkymjlzpr766it16NBB3377rZKTk5WYmKh+/frppZdekiRFRkaqd+/e6tu3r8aNG6dff/1Ve/bs0b///W+99957GjdunOOah06dOik2NladO3fWO++8o8TERB06dEjLli1TVFSUEhIS3NkSAABwC+BrY4Ei5Pjx4xo+fLiWLVum48ePq2LFimrQoIFeffVVtWzZUpKUmJioESNGaP369UpPT1dQUJAeeOAB9e3bV6GhoY65PvzwQ73//vvauXOnSpYsqfvuu099+/ZV+/btnbZ59epVzZgxQx9++KF27twpDw8PhYWFqWvXrurWrZtKly6dZ918bSxw++BrY4Hiw9WvjSVQACh0BArg9kGgAIoPfocCAAAAQKEjUAAAAAAwRqAAAAAAYIxAAQAAAMAYgQIAAACAMQIFAAAAAGMECgAAAADGCBQAAAAAjBEoAAAAABgjUAAAAAAwRqAAAAAAYIxAAQAAAMAYgQIAAACAMQIFAAAAAGMECgAAAADGCBQAAAAAjBEoAAAAABgjUAAAAAAwRqAAAAAAYIxAAQAAAMAYgQIAAACAMQIFAAAAAGMECgAAAADGCBQAAAAAjBEoAAAAABgjUAAAAAAwRqAAAAAAYIxAAQAAAMCYh7sLAHD72DEkWna73d1lAACAAsQRCgAAAADGCBQAAAAAjBEoAAAAABgjUAAAAAAwRqAAAAAAYIxAAQAAAMAYgQIAAACAMQIFAAAAAGMECgAAAADGCBQAAAAAjBEoAAAAABgjUAAAAAAwRqAAAAAAYIxAAQAAAMAYgQIAAACAMQIFAAAAAGMECgAAAADGPNxdAIDbR8SgFSrh5ePuMgDcBpJHtnN3CcBtgyMUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBVAMnThxQr169VKNGjXk5eWloKAgtW/fXqtXr3aM2bJlizp27KjKlSvL29tbYWFh6tatm/bt2+c010cffaT7779fPj4+Klu2rFq0aKFly5bd7F0CAAC3KAIFUMwkJyerQYMGWrNmjcaMGaPt27dr+fLlatWqleLi4iRJy5YtU5MmTXTp0iXNnTtXu3fv1pw5c+Tn56eBAwc65nr99dfVo0cPxcbGatu2bdq0aZOaNWummJgYTZ482V27CAAAbiE2y7IsdxcBoOC0bdtW27Zt0969e1WmTBmndampqfL09FRwcLCaNWumxYsXZ3t8amqq/P399cMPPygyMlITJ05Ur169nMbEx8dr0qRJ+vXXXxUUFJRnTenp6fLz81NQn4Uq4eVzYzsIAC5IHtnO3SUARV7W3++0tDTZ7fZcx3GEAihGUlJStHz5csXFxWULE5Lk7++vFStW6NSpU+rXr1+Oc/j7+0uS5s2bJ19fX/Xo0SPbmPj4eGVmZmrRokU5znHp0iWlp6c73QAAQPFEoACKkf3798uyLNWuXTvXMUlJSZJ03TGStG/fPtWsWVOenp7Z1gUGBsput2e73iLLiBEj5Ofn57i5chQDAAAUTQQKoBhx5QzG/JzlaHpG5IABA5SWlua4HTlyxGgeAABw6yNQAMVIWFiYbDab9uzZk+uY8PBwSbrumKxxBw4cUEZGRrZ1x44dU3p6umOuv/Ly8pLdbne6AQCA4olAARQjAQEBio6O1pQpU3Tu3Lls61NTU9W6dWtVqFBBo0ePznGO1NRUSdJTTz2ls2fPavr06dnGjB07VqVKldITTzxRoPUDAICix8PdBQAoWFOmTFHTpk3VqFEjDR06VPXq1dPly5e1atUqTZ06Vbt379bMmTPVsWNHdejQQa+88opCQ0N16tQpLVy4UIcPH9b8+fMVGRmp3r17q2/fvsrIyNCjjz6qzMxMzZkzR++9954mTJjAtREAAIAjFEBxU6NGDf38889q1aqV4uPjFRERoYceekirV6/W1KlTJUkxMTHasGGDSpUqpaefflq1a9dW586dlZaWpmHDhjnmmjBhgt5//33NmzdPERERatiwob777jstWbIk21fJAgCA2xO/QwGg0PE7FABuNn6HArhx/A4FAAAAgEJHoAAAAABgjEABAAAAwBiBAgAAAIAxAgUAAAAAYwQKAAAAAMYIFAAAAACMESgAAAAAGCNQAAAAADBGoAAAAABgjEABAAAAwBiBAgAAAIAxAgUAAAAAYwQKAAAAAMYIFAAAAACMESgAAAAAGCNQAAAAADBGoAAAAABgjEABAAAAwBiBAgAAAIAxAgUAAAAAYwQKAAAAAMYIFAAAAACMESgAAAAAGCNQAAAAADBGoAAAAABgjEABAAAAwBiBAgAAAIAxD3cXAOD2sWNItOx2u7vLAAAABYgjFAAAAACMESgAAAAAGCNQAAAAADBGoAAAAABgjEABAAAAwBiBAgAAAIAxAgUAAAAAYwQKAAAAAMYIFAAAAACMESgAAAAAGCNQAAAAADBGoAAAAABgjEABAAAAwBiBAgAAAIAxAgUAAAAAYx7uLgBA8WdZliQpPT3dzZUAAABXZf3dzvo7nhsCBYBCd/r0aUlSUFCQmysBAAD5debMGfn5+eW6nkABoNAFBARIkg4fPnzd/5DguvT0dAUFBenIkSOy2+3uLqfIo58Fj54WLPpZ8Ohp3izL0pkzZxQYGHjdcQQKAIWuRIlrl2v5+fnxn3YBs9vt9LQA0c+CR08LFv0sePT0+lz5IJCLsgEAAAAYI1AAAAAAMEagAFDovLy8NGjQIHl5ebm7lGKDnhYs+lnw6GnBop8Fj54WHJuV1/dAAQAAAEAuOEIBAAAAwBiBAgAAAIAxAgUAAAAAYwQKAAAAAMYIFAAAAACMESgAFKopU6YoJCRE3t7eaty4sTZt2uTukm5Z3333ndq3b6/AwEDZbDYtWbLEab1lWXrrrbdUtWpVlS5dWlFRUUpKSnIak5KSoi5dushut8vf318vvviizp49exP34tYxYsQI3X///SpbtqwqVaqkRx99VHv37nUac/HiRcXFxal8+fLy9fXVE088od9//91pzOHDh9WuXTv5+PioUqVK6tu3ry5fvnwzd+WWMXXqVNWrV8/xy8KRkZH65ptvHOvp540ZOXKkbDab+vTp41hGT/Nn8ODBstlsTrfatWs71tPPwkGgAFBoFixYoNdee02DBg3Szz//rPr16ys6OlonT550d2m3pHPnzql+/fqaMmVKjutHjx6tiRMnatq0afrxxx9VpkwZRUdH6+LFi44xXbp00c6dO7Vq1SotW7ZM3333nbp3736zduGWsm7dOsXFxemHH37QqlWrlJmZqdatW+vcuXOOMa+++qq+/PJLffbZZ1q3bp2OHTumxx9/3LH+ypUrateunTIyMrRhwwZ99NFHmj17tt566y137JLbVatWTSNHjtTmzZuVmJioBx54QDExMdq5c6ck+nkjfvrpJ02fPl316tVzWk5P8++uu+7S8ePHHbf//ve/jnX0s5BYAFBIGjVqZMXFxTnuX7lyxQoMDLRGjBjhxqqKBknW4sWLHfevXr1qValSxRozZoxjWWpqquXl5WXNmzfPsizL2rVrlyXJ+umnnxxjvvnmG8tms1lHjx69abXfqk6ePGlJstatW2dZ1rX+lSpVyvrss88cY3bv3m1JsjZu3GhZlmV9/fXXVokSJawTJ044xkydOtWy2+3WpUuXbu4O3KLKlStnzZw5k37egDNnzlhhYWHWqlWrrBYtWli9e/e2LIvXqIlBgwZZ9evXz3Ed/Sw8HKEAUCgyMjK0efNmRUVFOZaVKFFCUVFR2rhxoxsrK5oOHjyoEydOOPXTz89PjRs3dvRz48aN8vf3V8OGDR1joqKiVKJECf344483veZbTVpamiQpICBAkrR582ZlZmY69bR27dq68847nXp69913q3Llyo4x0dHRSk9Pd3wqf7u6cuWK5s+fr3PnzikyMpJ+3oC4uDi1a9fOqXcSr1FTSUlJCgwMVI0aNdSlSxcdPnxYEv0sTB7uLgBA8XTq1ClduXLF6T9lSapcubL27NnjpqqKrhMnTkhSjv3MWnfixAlVqlTJab2Hh4cCAgIcY25XV69eVZ8+fdS0aVNFRERIutYvT09P+fv7O439a09z6nnWutvR9u3bFRkZqYsXL8rX11eLFy9W3bp1tXXrVvppYP78+fr555/1008/ZVvHazT/GjdurNmzZ6tWrVo6fvy4hgwZoubNm2vHjh30sxARKAAAxV5cXJx27NjhdC41zNSqVUtbt25VWlqaPv/8cz377LNat26du8sqko4cOaLevXtr1apV8vb2dnc5xUKbNm0c/65Xr54aN26s4OBgLVy4UKVLl3ZjZcUbpzwBKBQVKlRQyZIls317xu+//64qVaq4qaqiK6tn1+tnlSpVsl3wfvnyZaWkpNzWPX/55Ze1bNkyJSQkqFq1ao7lVapUUUZGhlJTU53G/7WnOfU8a93tyNPTU6GhoWrQoIFGjBih+vXr67333qOfBjZv3qyTJ0/qvvvuk4eHhzw8PLRu3TpNnDhRHh4eqly5Mj29Qf7+/goPD9f+/ft5jRYiAgWAQuHp6akGDRpo9erVjmVXr17V6tWrFRkZ6cbKiqbq1aurSpUqTv1MT0/Xjz/+6OhnZGSkUlNTtXnzZseYNWvW6OrVq2rcuPFNr9ndLMvSyy+/rMWLF2vNmjWqXr260/oGDRqoVKlSTj3du3evDh8+7NTT7du3OwW1VatWyW63q27dujdnR25xV69e1aVLl+ingQcffFDbt2/X1q1bHbeGDRuqS5cujn/T0xtz9uxZ/frrr6patSqv0cLk7qvCARRf8+fPt7y8vKzZs2dbu3btsrp37275+/s7fXsG/r8zZ85YW7ZssbZs2WJJst59911ry5Yt1qFDhyzLsqyRI0da/v7+1tKlS61t27ZZMTExVvXq1a0LFy445nj44Yete++91/rxxx+t//73v1ZYWJjVuXNnd+2SW/3zn/+0/Pz8rLVr11rHjx933M6fP+8Y89JLL1l33nmntWbNGisxMdGKjIy0IiMjHesvX75sRUREWK1bt7a2bt1qLV++3KpYsaI1YMAAd+yS2/Xv399at26ddfDgQWvbtm1W//79LZvNZq1cudKyLPpZEP73W54si57mV3x8vLV27Vrr4MGD1vfff29FRUVZFSpUsE6ePGlZFv0sLAQKAIVq0qRJ1p133ml5enpajRo1sn744Qd3l3TLSkhIsCRluz377LOWZV376tiBAwdalStXtry8vKwHH3zQ2rt3r9Mcp0+ftjp37mz5+vpadrvdev75560zZ864YW/cL6deSrJmzZrlGHPhwgWrZ8+eVrly5SwfHx/rscces44fP+40T3JystWmTRurdOnSVoUKFaz4+HgrMzPzJu/NreGFF16wgoODLU9PT6tixYrWgw8+6AgTlkU/C8JfAwU9zZ/Y2FiratWqlqenp3XHHXdYsbGx1v79+x3r6WfhsFmWZbnn2AgAAACAoo5rKAAAAAAYI1AAAAAAMEagAAAAAGCMQAEAAADAGIECAAAAgDECBQAAAABjBAoAAAAAxggUAAAAAIwRKAAAAAAYI1AAAAAAMEagAAAAAGDs/wFanNN1A4dsXQAAAABJRU5ErkJggg==\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "prop = \"boilingpoint\"\n", "values = [mol.properties.get(prop, None) for mol in mols]\n", "filtered = [(s, v) for s, v in zip(smiles_list, values) if not math.isnan(v)]\n", "smiles_plot, values_plot = zip(*filtered)\n", "\n", "plt.barh(smiles_plot, values_plot)\n", "plt.title(\"Boiling point [K]\");" ] }, { "cell_type": "code", "execution_count": null, "id": "11d3fb12-da25-4dee-9ff4-d8fd5b813ada", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.16" } }, "nbformat": 4, "nbformat_minor": 5 }