diff --git a/ipython/Handle molecule with XYZ.ipynb b/ipython/Handle molecule with XYZ.ipynb new file mode 100644 index 00000000..f198a47d --- /dev/null +++ b/ipython/Handle molecule with XYZ.ipynb @@ -0,0 +1,310 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# A Demo of using RDMC with XYZs\n", + "Author: Xiaorui Dong\n", + "\n", + "This notebook demonstrates how RDMC handles XYZ. Molecules can be perceived by using [openbabel](http://openbabel.org/wiki/Main_Page) / [method from Jensen et al.](https://github.com/jensengroup/xyz2mol). The created molecule can be visualized by `mol_viewer` and exported to xyz format." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "from rdmc.mol import RDKitMol\n", + "from rdmc.view import mol_viewer\n", + "from rdkit.Chem.Draw import IPythonConsole" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 1. An example of XYZ block" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "######################################\n", + "# INPUT\n", + "xyz=\"\"\"14\n", + "\n", + "C -1.77596 0.55032 -0.86182\n", + "C -1.86964 0.09038 -2.31577\n", + "H -0.88733 1.17355 -0.71816\n", + "H -1.70996 -0.29898 -0.17103\n", + "O -2.90695 1.36613 -0.53334\n", + "C -0.58005 -0.57548 -2.76940\n", + "H -0.35617 -1.45641 -2.15753\n", + "H 0.26635 0.11565 -2.71288\n", + "H -0.67469 -0.92675 -3.80265\n", + "O -2.92111 -0.86791 -2.44871\n", + "H -2.10410 0.93662 -2.97107\n", + "O -3.87923 0.48257 0.09884\n", + "H -4.43402 0.34141 -0.69232\n", + "O -4.16782 -0.23433 -2.64382\n", + "\"\"\"\n", + "\n", + "xyz_without_header = \\\n", + "\"\"\"O 2.136128 0.058786 -0.999372\n", + "C -1.347448 0.039725 0.510465\n", + "C 0.116046 -0.220125 0.294405\n", + "C 0.810093 0.253091 -0.73937\n", + "H -1.530204 0.552623 1.461378\n", + "H -1.761309 0.662825 -0.286624\n", + "H -1.923334 -0.892154 0.536088\n", + "H 0.627132 -0.833978 1.035748\n", + "H 0.359144 0.869454 -1.510183\n", + "H 2.513751 -0.490247 -0.302535\"\"\"\n", + "######################################" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 2. Generate an RDKitMol from xyz\n", + "**Arguments:**\n", + "- `backend`: choose the `openbabel` or `jensen` backend\n", + "- `header`: indicate if the str includes lines of atom number and title" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAIAAADCEh9HAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO3deVyN2R8H8M+9aZdSaRFCKpOUpTQhBpEM2SYmy5BMGIz9F4YpTCbGFlmSLfvSkHWQJduQZK2omEpUKnWr2173/P54brft3rqtt+W8X71ec3vuec49T6Nv53nOOd/DIoSAoiiKqim2pBtAURTVtNEwSlEUVSs0jFIURdUKDaMURVG1QsMoRVFUrbSSdAOoJiUtDUlJYLOhpQUlJUm3hqIaBdobpcSQkIClS6GnB1VVdO8OAwO0aYMePeDqCg5HrBr69weLJfzr5ct6bj1F1S8WnTdKVeHKFTg4gMsFAGVldOwIHg+xscjKAoB27XDxIiwtq6ikSxfExAh/Ky0NKip12WCKali0N0pV6v59jB8PLhfffIOrV5GSgjdvEBaGlBQcPw5tbSQnw9oa4eGVVUIIEhMBIDAQhJT/ojGUauJob5QSLT8fBgaIjYWxMe7fR9u25QtER+Pbb5GUhH79EBQksp7UVKipAUBkJPT167HBFCUJtDdKiebnh9hYANi3T0gMBdClC7ZsAYCnT3H/vsh64uP5L7S167yNFCVxNIxSovn7A0CPHhgwQGSZyZOhqlpSWKiEBABo0watW9dtAymqMaBhlBKNuU+vJIYCkJGBhUVJYQCjRkFHB3PnlpRhwqi2NtLScOkSvLxw5AiePq2XNlNUg6PzRikRCOHfjHftWkVJPT0A+PyZ/21SEuLj8fVrSQEmjMbEQEMDhYUlx01McOAAzM3rrtENoaioKD09HYCKigqbLbwjwuFweDyegoKCnJxc5bXl5+d//Pjx06dPSkpKhoaGrWmHvQmivVFKhOxsfsir8he7TRsAJRNIf/wRCxdi1KiSAkZG0NGBri7mzsWWLfDwwJQpkJbG69cYPBjPn9dH8+vP8+fP1dTU1NTUIiMjRZXR19dXU1PbvXt3JfVkZGSsWrVKU1NTX19/yJAhZmZmKioq48ePj4qKqodWU/WI9kYpEeTkwGKBEOTnV1EyNxcAFBT43y5fXr7AmDEYNQpSUmUOrlmD4cPx+TPmzatslL+ZiouLs7W1DQsLk5KS6tOnj6qqalxcXEREhL+/f2Bg4P3793v27CnpNlLior1RSgQpKX43Mzm5ipJMAWagqZLayvnmG7i6AsDTp3j/voaNbJoIITNnzgwLC/vuu+9iY2NDQkICAgLevXsXEBCgqKjI4XCWLl0q6TZS1UDDKCWaiQkAvHpVRTFmNaepabXrF6x9amFhtLCw0Nra2tTU9NKlSzo6OoLj1tbW8+fPB3D37t2CggLJNZCqHhpGKdEGDQKAu3eRni6yTGQkQkMBYPDgatcvWPohLV2D1jVd0tLSq1atevHihVKF9C6ampoAeDxeYemxOKpxo2GUEu3nnyElhZwcbN4ssoyrKwiBkhJ+/FFkmcJCCO1bMTP2WSwYGta6rU0Pi8WqeDAoKAhA9+7d5eXlG7xFVA3RMEqJxoytA9i0CYcOlX+Xx8P69Th9GgBcXfkPUgH4+WHPHty8WVLM0RGjR/OX1Qu8fYsNGwBg1Ch06FBv19AorFmzRlpaul27dpWUKSoq2rdvn5+fH4vFcnNza6imUXWAjtRTldq8Ga9e4eFDODnh2DFMmgQ9PRQVISICx47x5yrZ22PJkpJTPDwQEoIffsCIEQDw/Dn8/JCbCwMD2Nvj22/BZiMkBIcOIS8PGhrw9JTMpdXa8uXLK96VMzIzM0t/W1RUVFhYKPRx5717906ePJmUlPTixYvY2Fh1dfVt27ZNmjSpXlpM1Q8aRqlKKSjg5k3873/w9kZgIAIDy7yrqAgXF/z2G0TMQgcAMzPcvYtff0VwMA4dKtOr7d8fBw/yZ+83QVevXhWz5IgRIxQVFYVOxQ8LC9u/f7/g24EDB5owI3tU00EzPFHi+fgRV68iOBjJyWCxoKUFS0uMHo2KN6rZ2SgqgrQ0SkcNQvD0KQICEB2NoiJ07oyRI2FhAWHPBwVSUlIuXrwIYOLEiSoi8umdPHkyJyfHwsLC2Ni4yov4999/X79+3adPn379+okqk56efvbsWVVV1aFDh7YVlpAlODiYOX3nzp2lx9lLc3R0zMjI2LJly7JlyypvUnJy8sePH1NTUz9+/Hjq1Knbt2/LysqePn163LhxVV4O1VgQihJHbi7hcOq4zuxsEhpayfvBwcHMv9KwsDBRZZgHjn/99Vcl9RQVFV26dGlAcXKAnj17Ci0WHR3t4uIiiNcXLlwQWuxpcTaAt2/fivpEdXV1AFu2bKmkVUI5OTkBUFdXz8jIqO65lKTQISZKDFwu7OwwciQ/431dWbYMffti0ybweHVZbSlZWVnbt2/X09Ozs7N79OiRqGJPnz6dNGlSt27dNm3axBFzW5T6wcwbTUlJuXv3rgSbQVULDaNUVb58weDBuHkTHz/yk4zUCR4PRUXIy8PKlRg7tuq1UjWSm5u7atWq5OTkiRMn+vr6Llq0SGixM2fOnDt3rnv37qtXrw6S6MrUrsWJYOLi4iTYDKpa6BATVanoaIwcichIdO2KGzfQrVud1cxmw9sbtraYPRtXrsDYGEeOwNa2zuoHAKipqT18+NDY2JgZ3omOjhZabPny5b/88ouenh4AInq0IDk5ufJJS+LjcrkJCQn6FfYCEOQl0dDQqJMPohoA7Y1SooWGwsoKkZEwM8Pjx3UZQwXGjcPLlxg8GElJ+P57LFpUdSaUajIzM6syW522trZepRMGcnNzV65caWhoGCNqY75K3b59283NzcPDg/k2Kyvr+++/Hzhw4OPHj0sXy8/PX7lyJQB5efkhQ4bU4IMoiaC9UUqEe/cwdizS0zF0KC5cKJldX+c6dMDdu9i5EytWYOdOPHqEkydhYFCzyiIiIqKioqSlpW1sbOqqgS9fvpw6dWp4eLi0tPTjx4+7Vf/Pya1btzw8PJSVlZkoyWKxZGRkkpKSrKysJkyYMHDgQGVl5ZiYmGPHjn348AGAq6srM0hFNQm0N0oJc/EibG2Rno4JE3DtWj3GUAaLhUWL8PAhunVDSAh69arxnPyjR4+OGTPG3t6+TtpFCPH09Pz222/Dw8O7d+/++PFjBweHGtQjLS0tJycnWN+poKBw+fLlFStWsFisc+fOLVq0aObMmW5ubh8+fFBUVNy+fbuLi0udtJ9qGLQ3SlVw+DCcnVFYiAUL4OlZ2dT6utWvH0JCMH8+jh/H4sV48AC//MK806dPH6Er0AHkMtlO60FycvLQoUMDAwNZLJazs/O2bdsUFRUBdOnS5eDBgwC0Re/Qt3PnzpycHMHs1PXr169fv750ATk5uc2bNy9fvvzKlSsREREcDkdVVdXY2HjUqFFCJ6tSjZqkZ1xRjYyHBwEIi0VcXSXWhiNHiJISAYLF3klUMG/0y5cvoaGhomZ0MmvVRc0bZfCKZ18x+3loaGhcvny57q+RakboTT1VrKgIv/yClSshJQVvb0gwO8aMGXj9Gv3748sX5sDr16+LRCg3dK6hodGjR4/u3bvX+MPTi7MCcrnc8ePHh4WFjR49usa1US0BDaMUACA/H1OnYu9eyMri9Gn8/LOE29O5MwIDo4pv6mfNmvXp0ye2MHX7sXfu3BHs3uHk5HT+/Hk61ENViYZRCuByMWYMzpyBigoCAvDDD5JuEABAWlp/xgzm5bNnz0xMTE6dOlV/n5aXl7dy5crhw4d/+vSJOUI7oZSYaBht8QSLlLS1ERgIKytJN0iIIUOGpKenT5ky5aeffuJyuXVef2hoqLm5+aZNm6SkpNatW1fn9VPNGw2jLVt0NKys8Pw59PTw4EFN9lNqEF5eXr6+vgoKCseOHTMzM3vx4kXd1p+fnx8REdGlS5e7d++uXbu2biunmj0aRlswZpFSVBR/kVLjzvv5008/PXv2zNTUNCIiwsLCws3NjScsoYmXl5epqakgmZOY+vTp4+/v/+bNm+qeSFGg80ZbrsBAjBvHX6Tk7w8RWdwblW+++ebJkycuLi67du1at27do0ePfH19y5VJSEh4/fq1goLC+vXr4+Pjs7KyuFxuQECAtLQ0i8ViJpmGh4erFm8HfenSpYEDBwJwd3efOnUqAMFectOnT5eWlgZgZWXFpD2lKKFoGG2R/P3h4IDcXEyZgsOHISMj6QaJS05OztPTc9SoUTNnzrx161avXr3yy67Bz8/Pb926NZfLdXV1FVVJUVFRWloa81oQNDMyMgQHGYKHsPXxNJZqTmgYbXkEi5QWLsSOHQ23SKn6evfu/fXrVwDlUt/b2NiEhIRMnz79zp07rVu3fv/+PZOFfufOnVu3biWEyMvLT5gwoV+/foqKirGxsefOnXv37h2AdevWLVy4sHRVSkpKhYWFXl5e6RU2kf769SuzdKpVK/prQlVK0vP/W4acHOLrS6ZMIRYWRE+P9OpF7OzItm0kIaEalRQVkcuXydixxNFRZNL4yEiybBkZOpQYGpKePYmDA7l8mfB4JQUawyKlulBYWPjo0SNnZ+ejR48yRx49esTEu549e0ZHR5cr7Orq2rFjx+fPnwutzcjISEFBYfTo0b6+vocPH2Z+NXilf24UJRoNo/Xvn39Ix44EEPKlqEgq3f2CLzeX+PoSI6OSE/38ypfh8cjvvxMWS8inTJpECgoIISQ8nMjKklatyMGDdX+ZDcvf3x/AgAEDBEeGDh0KQFlZ+dOnT0JPyczMFFVbTExMXl4e8/r8+fM0jFLVQsNoPTt/nkhLE4BoaZFNm8izZyQmhoSGkgMHiIkJP8wtX15ZDXv3EnV1fkkNDX6grBhG//iD382cNYvcu0f++4/cu0dGj+af+Pvv/GJnz5KLF+vlShtWRkaGtLR0q1atOBwOISQmJoa5AV+9enUta6ZhlKouGkbr06dPREWFAKRfP5KaWv7dggLy00/82Hf1qshKPD1J167k119JQAApKCBstpAwmpdH9PUJQDw9yxzn8ciAAQQgKir8DmkzMmjQIADnz58nhJw8eZKJfc+ePavyxLi4uMOHDx8+fDgtLa3iuzSMUtXVeIcXmoMdO8DhQFER586hYvazVq3g44MePUBIZXlAFizAhw/w9IS1NUSNdcjIIDQU/v4oO34CFgtz5wIAh4Pw8FpcSWM0YsQIADdu3AAQFhYGoFWrVuJss/zq1StHR0dHR0fBuk+Kqg0aRusNITh6FAB+/BGdOgkvIyMDZh/z4GC8fcscy8nJyc7OLikj5ki6jAzGjhWy7XvnzvwXZWfzNANMfnsmjDLbebZp00ZWVlbCzaJaHhpGRfLy8tLV1a1kWUtYWJiurq6urm5kZKSQt6OikJQEACNH5ufn+/r69u7dW09Pb/v27WWKjRrF/PfFqVMODg5ampoKCgqKiopaamozZ84UXnO1MG0AoKZW26oamT59+mhoaMTExERGRjKzR2XEmwA7fPjwxMTExMTEb775pp7bSLUIdEKcSBwO5+PHj5UUyMvLYwrkC92F7f17AOnAkZCQLUuWCO4fmQmMJTQ1oabm+fXrsj/+KCIEQFsgC/iSmurr63v27Fl/f3/m7rWGHj4EgLZtUYsUnI0Tm80eNmzYqVOnbty4oaysDCAjI0OcE2VkZDQ1Neu5dVQLQnuj9SYt7TrQHljs4fHp06c+ffp06NBBaEF/GZnFgBSLtW3bNk5ERKqubo6u7nVXVx0dnZycnOnTp+fk5NSwDenpOHgQAKZOFflctSkT3Ncz+3lkZ2cnJCRIulFUi0PDaD3qBQwAdv3xR2xsbEhIiCAfcDmfCwtbAwcGD16yZImygQFiYtgxMTZubnv37gWQlJR0//59kZ9RvJZRuLlzkZEBFRWsWlWrK2msbGxsWCxWYGBgr169mCMPHjyQbJOoFoiG0XrTtq0WcBNYMH58J1FDTACA+YTEAtPNzcsdFww6MwsiSyPv3mHDBgwdinbtIKqvunUrTp8Gi4V9+9C+fQ2vonHT0tLq2bNnVlZWQUEBs5uIt7e3pBtFtTg0jNYbQd654iF44ZKSkJKiCkBfv9w74cVTlAwMDAC8fPnSw8ODEAKgYO9e/P477t5FRgZevRJS7Y4dWLECALZsweTJtbmORo65r79z586cOXOYF/v375d0o6iWhYbRujR79ux+/fqtYOKXgQF/cPz27crOuXWL/8LSsvThr1+/MjmKBgwYYGZmBmDnzp2rVq1iwujHzp2xcCHOn0dyMr79tkyFPB5++w1Ll4IQbNqEpUvr6OIaKSaM3rx5c/Xq1UZGRgDmzZu3bNmy0g9JORzOnj17Ro4cWVRUBOD27ds6Ojo6OjoRERGSajbVnDTDYYe6lZGRsXnzZqFvxcfHlzsSHh4eHBzM376cxYKDA7y8cOoU1q1D2Q0s+Xg87NwJAL17o0ePrKysEydOZGZmRkREnD59OjMzs3///hcuXGDKjh8/XlZWluXtDUK6LVmCiROFVMjlYvp0+PtDRgZeXpLfma7+WVlZtW7d+tWrVxwOJyAgwNbW9vXr19u2bdu+fbuenp6qqmp8fLxgmsStW7dsbGxyc3OZ/3cFBQXM8Q8fPnTr1q1czYL98jw9PX/99deGuiCq6aFhtAocDsfFxUXMwkOGDNHW1u7Xrx//+8WLcegQOBzMnIniJYZluLkhKAgAfvuN+SzmzpRhbGx86NAhwQbCY8aMGTNmDPbvByHCP/7tW0yejDdvoK2Nv/8u171trmRkZH755ZfWrVu3atWqXbt2wcHB3t7evr6+L168eP/+PVNGVlbW0tJyypQpQ4YMAdClSxcmXZ5as5tLS0kEi4j6nWzx/vjjj7Vr1yorK5fLUCmQmJh44MABAG/evBG5BnH/fjCRsXfvUSzWP8+fOzs7e+/Zg6AgbNkCpqc5YwaOHAGQlZV1wssrd+XKz8ADff3HUVFsNnv37t1zBw+GYF1Tv37g8bB5M4YOBQAlJRgYAICPDxYtQk4OtLXh7S1kTElDAx071uon0qRkZmbGx8dzuVx1dXUdHZ1mnDP0jz/+iI2Ntba2niziIfjFixevXLmipaW1YcOGSuohhFy/ft3f3z8yMjIrK6tdu3ZmZmY//fSTXuPeXaZRkOyS/saM+TfXqVMnUQVCQkKYn+GbN28qq+jAAaKoSABbAICzjExJOjs2m/z6KyksLCkcF8d/6/jxP//8EwCLxXppaCg8zx5AvvuOEEJevhRZQPC1aFFd/WQk5cOHDzt27Jg6derIkSNtbW1nzZp18uRJLpdbukxeXl5oaGhhYSEhJDMzMzY2lhASHx/v4eExffr04cOH29nZubq6vn//XjLXUA969+4NYJHo/7+//fYbAH19/UoqycjIYJ4ylyMjI7N79+56aHWz0mz/RDciTk6wtcXu3fDyQkYG8vMhK4uOHWFtjTlzUDzhkU9NDcePA8CAAf/r1Gnr1q0pKSkHCNnVt6/wypmuqKwsRBUQEDH5v0nIyspatGjRkSNHmDEigUOHDnXo0MHHx2fkyJHMkYKCggcPHly8eHHFihVt2rSRkpJau3atu7t76ZVmly5dcnd3/+uvvxYvXtygl9GIzZ8//8aNG1JSUmvWrHFwcGjbtm1UVNTvv/9+586dBQsWGBgYWFtbS7qNjZik43jjVWe90WK2trYAnGfPFr8NVlZWAGxtbcU/pfnJysqysLBgftS9evXasmXLpUuXLl26tHHjxq5duwKQkZG5f/9+xRNLbz1ib29/9uzZe/fuHThwQDCa5O/v3/CXU+dq3xvlcDjM5n1LliwpfTwrK6tjx44AJk6cWJctbnZob7TBCcvYxOFwym03xPjy5QsApaawbWf9+d///hcUFARgzZo169atEwygjxkzZvHixY6OjvLy8iXDeqW0bduWyfy0d+/euUzCQGDQoEE//PCDoaHhly9f3N3dx44d21DX0XjFxcUxkxaYFK4CCgoKFhYWcXFxHz58kFDTmgY6b7QuMbeTT58+rdZZ58+f79q16y3BBNJily9fjoqKAsDsANwyxcfHM9PpJ0yYsGHDBnbZP0Ly8vInTpw4fPiw0Px4TP4RFxcXQQxlKCsr//zzzwBCQkLorp8A2hYnwxXMbRBgVtDx5/BRItDeaF1ycXF5/PixnZ2dYFvzoKCgV8WrjOLi4gC8fftWsMzGyclJSkrq8uXLaWlpNjY2Tk5O48aN69ChQ0pKSkBAgKenJyGka9euM2fOlMTVNAqnTp1iOkq///670AJSUlKizlVXVwcgNNUhszCMx+N9/fq1devWddPWJiIzM3PTpk0A7O3tTU1NAbRv397IyCg8PNzd3b1v377MtDAAoaGhTD4HR0dHCTa48aNhtH6dP3++3Oz9Bw8eCNJnzJgxQ0pK6sCBA1paWlu2bPHx8fHx8Sld2NTU1M/PryXf1D9+/BiArq4u8wtfudu3bwcFBSkqKi5atAjFYTQlJaViScGW9EKfpTRFKSkpr4QuCwaSBDlnAQCZmZnu7u4ADA0NmZ8qi8XatWuXra0th8MZNmyYtbX1zJkzjYyMJk6cWFRUtGLFCnt7+wa4hKaLhlGRzM3NFyxYoKqqKqqAhobGggULUGoW9+nTp7Ozs0tHPQsLC2dnZ1E1MD0pKSmpP//809HR8cyZM0+fPk1KSpKTk9PT07O1tR03bhzz7L/FYtZrmpiYiFP46tWr27dv19DQYMIo8/9FaBhlHrzo6+sziUqbgRMnTpw4cUKckmw2m+mAl/6nNXTo0Bs3bowYMaKgoCAgICAgIIA5vnHjxlXNND1YHaJhVCQbGxuhM+kEOnTosGvXrtJHKmZymjBhwoQJE8T5OAMDg7Vr11a3kc0e021k+pVVYrPZbDZbcJvPhNGK+bESEhL8/PwAODg41GVbJUpTU1NUIrHPnz+XXrispaWVmZlZrkxoaOjcuXMLCgqsra27dOny999/p6amAli7dm1CQsK2bdua8fqFOiDpqQIUVRlmcGN2dWaJCTDPoMudy+Px7OzsALRr1+7r16911ExJqv2Ep8TERObnPGPGjKKiIkJIbm7u33//PXjwYCZKTJs2rV6a3lzQkXqqUWNuutPT02twrtBnox4eHpcuXWKz2T4+PpU8sWlRtm3blpCQoKamtmfPHmYuhKys7IQJEwIDA5mV0MePH3/+/Lmkm9l40TBKNWrMzis1y2hXMYxu37599erVLBZr9+7ddMaowL///gtgwIABCgoK5d5yK976+9mzZw3cqiaEhlGqUWPm1YeHh5cbbhZH6TBKCPn999+XLl0KYOvWreVmkrZwzGZfgrSBpbGKt+wWvm8jBYCG0boRFYULF3DgAI4exc2bEG9/yvLCwxEcDDFng6elISSE//XlS00+rokYP348gMLCwhrsDiIIo1lZWfb29hs2bJCRkdm7d++SJUvqvqFNSk5OTk5OjiBBAZPu+vHjx18q/Fu6cuUK80KcCWctl6QfzjZlPB7x9SUGBuVzKbVqRcaPJ2Fh4tbz4AEZPZqf9umXX8Q6xc6u5OO2bKnxFTQJTGIBeXn5f//9t1onFhYWTpw4ccqUKUwaQ01NzQcPHtRTIxsYj8fz8PB49+4dqf4Q0+fPn5nf/aNHjzJHHj9+zDwS/fbbb0sniLhw4QKzwMnMzIzH49XnBTVtNIzWVH4+mTKFH8iUlYmdHVmwgMyaRfr1I2w2AYi8PKk880VeHvH1JT17lgnB4oTR48f5H6qq2hLCaGRkJDMVV0FBYcOGDZ8+fWKOZ2VlBQYGTps2zcnJiTnC3LNramoKzvX19VVUVARgZGT0+vXr1ApycnIkcEm1w+VymfnwRkZGBQUFtQ+jhJBdu3YxU5rYbLaurq6FhYWGhgZTTF9fPy4urt6vqimjYbSmli3jB74lS0hmZpm3nj8nRkYEILKy5NUrkTWcOUMAIiVFBgwgmzeTvn3FCqMpKURDgwDEy4t07doSwigh5NmzZ+1LJaJmMjELvm3dujUTDZm7dVlZWabXef369SrvxrZt2yZOA44dO2ZfLDAwsH6vtlJxcXHM3lxKSkoXL14khIwbN05fX9/d3V3UKdu3b9fX1x8xYgTzLZfL3bFjx44dO96+fVu62IsXL6ZPny74OUtJSfXq1cvd3T07O7ter6gZoGG0Rt684Xc5Fy8WXuDLF6KtTQAyYIDISnJzycGD5MsX/rfDh4sVRqdOJQAxNyeFhS0njBJCuFzupk2bLCwsBPPApaWljY2Nly5dGlb8/ESQ3uX48eOEkBs3bnStQF5enom8zLcHDx4khPzzzz9RUVGiPjo6OppZ9sOMtxw5cqRhLrmihw8fMvlWunXrFib+U6NqysrKSk1NZSaQUuKgYbRG5s0jAGnblmRliSxz4AC/u/r8uVh1ihNGr13jP3tl6mxJYbS05OTklJSUwtK7BhBCCBGMmTBhVChmZZqDg4PgCJfL1dTUZLPZ9vb2QrPijx49GsD48eOZZwuSCqPe3t4yMjIAbGxs0tLSJNIGSig6Ul8jN28CwPjxqDDPrsSPP0JGpqQwgI8f8d9/qLA2UVxZWZg/HwAWL0bv3jWspGnKz8+fNWvWkydPmG/V1dXV1NQqye1ULbm5uXZ2dlJSUufOnTMyMlq4cGHpzZmPHTt25coVJSWlncwerpJQWFi4cuXKOXPm5OfnOzs7X7lypdlkVGkeaBitPg4HTBZbc/PKiikqwsgIAIqT5KN/f+jpwdW1hp+7ahWio9GpU81raJq4XO6YMWMOHz48depUoXMba0lNTW3//v1RUVHOzs48Hs/Ly6tLly5z5sxJTExMSUlZtmwZgA0bNnSQ0C4sX79+tbGx2bRpk6ys7OHDh729veny9saGhtGqEUKcnJy+//57JpU6BPPAK+6+WQ4zDJKcXAeNCArCnj0AsGsXWlJ+zNTU1BEjRty8eVNTU9PPz6/+8l3p6up6e3u/efNm+vTpBQUF+/fv79at2+DBg5OTk01NTecz9wEN7vXr1+bm5nfu3GnfvnWeE50AABQvSURBVP39+/dbcubZxoyG0aolJiYeOnTo2rVrTO5LZGXx35CXr+JMRUUAEGTT8fbG2bNwcqp2C/Lz4eSEoiJMnAg7u2qf3mTFxsb279//8ePHXbp0efDgQe96eJQRERGxcOHChQsXfvr0CUD37t2PHj366tUre3v77Ozs8PBwACYmJtmCDa4b0JUrV6ysrKKjo/v06fPkyROhG6VQjQG9O6iatrb2zp074+Pjhw0bBgCCdKJV/moxS5IEGS2//76GLdi4EWFhUFLCjh01rKEJCg8PHzlyZFxcnLGx8Y0bN9pX2fcv5d27d/fu3RP6liBhM+Pjx49eXl4AHB0dBbftxsbGBw8evH//PrOq59ixY//888/y5ctreCXVRwjZvHnz6tWreTzelClTDhw4IF/l32xKgiQ9xtUEcTj8FUdeXlWUNDEhAPnxR7GqFTVS//YtkZUlAPH0LP9W8x2pDwoKYpZyfvfddxwOR8yzym2/XAnBSP39+/d1dHR0dHTKbe/K3MVra2tfv35dsKkGM+HJx8enjq+2rMzMTCZHrZSUlIeHR71+FlUnaG+0+pSV0a0boqJQec4bLhdv3wKAmVmtPm7uXOTlAYC/Py5fLvMWM6Ds7Y3r12FvD2dnZGaidWsUp5Nooq5cuTJ58uTs7OyxY8eeOnWqBh2xnj17amlpCX3r+fPnpRM5W1lZMbfzpT158mTv3r0Adu/ezWTvvnXr1urVq4ODgwGsXLmSx+PNmjWrnoZ6IiIirl271rZt2zNnzgwfPrw+PoKqY5KO403T/PkEICoqlc0bPXiQP29UvF3sRfZGO3Qov2Zf6Nfy5YQQMnky6dmTnD1LmuwK6GPHjjHjSDNnziwoKKjWuTWbN1pObm4uk6rD1ta23Ful88h17tzZ29u74tzVOnHhwoVKlgNQjQ3tjdbI3LnYuxccDtzcUHbHOj4Ohz8t6bvvYGxcq8+6dg2icpSNHYvPn7F4MaZNg6YmMjPx6BE+fcKkSbCwwLp1qHQTlEbI09Nz6dKlPB7PxcXFw8NDIm1wd3cPDw+XkpL6+eefQwST1Uqxt7d/+vRpTEzMnDlzPD093dzcfvjhB1ZVdwCFhYXPnz+Pi4vjcDjt2rUzNjbu2rWrqMLjxo0rdyQuLu7ly5cpKSlqampdunTp2bNnDS6Nqi+SjuNN1uLF/G7g2rUkL6/MW5GR/AXycnJluqLz55MffySHDwuvUMzFoKVVfDaal0e8vUn79vy2WVqSS5eqUaEE8Xj5Li5WJiZsNnvXrl01q6NOeqNMKpMqTZ06tVu3bszrnj17nj17VlSFKSkpS5curbh3nrm5+f3796u8qLt371pYWJQ718jISJxzqYZBw2hN5eaSiRP50ap9ezJrFnFzIytXkpEjiYwMP4aeP1/mFB0dApD580uO7NtHrK35X0y6pg4dSo5UuahZ1BBTVhbZsYNoafGbN2AAuXWrLq653hQUkBkzCJDWrt0l0fGoSnUSRi0tLfuKwKyb6ty5c9++fY8cOZKfn+/t7S1IkmJpaXmrws85IiKiS5cuTAFVVdXvv/9+6tSp1tbWcnJyANhs9mFRf1YJIYTs2bOH6ecqKCjY2Ng4Ozs7ODgYGhq2adMmISGhmj8eqr7QMFoLhYVk925+CpLSXywWGT6cvHxZvvyIEcTUlPz5Z8kRQZoooV9VPnerfKSeyyU7dhBNzZJgevduzS+2/uTmkgkTCEAUFck//9SmphqE0by8vISEhISEBHGewwpdU5+Xl+ft7S0Y0RowYIAgBRSXyzU0NAQgLS29Y8eO0h/x9evXadOmsVisNWvWiPq4wMBAJoaOHj36iyCFDSGEEEG2QKoxoGG01oqKSFAQ8fEhGzeSbdvIyZMkPl7cc+PiyLNnIr+qHCZ684Y8e0YSEysrk5lJPDxI27b8YGptTYKCxG1eA0hNJQMHEoCoqpJqZmWuqAZh9GZxxoOQkJAq668kNUlmZqa7uzuT5FhGRiYxMZEQsm7dOqZyoafweLzK00ibmJgAMDExySv31IhqZGgYbRkyMoiHB1FRKQmmT59Kuk2ExMcTU1MCEF1d8u5d7euTYBhlpKWlrV27dsWKFYQQHo/HzOfv379/9S+FMJOrAFy4cKEGp1MNiY7UtwxKSnBxwc8/Y+dO7NiBW7dw6xasrbFpE/r0kUyTPnyAjQ0+fICREW7cQF0k/mCxWObm5ijehUkoQ0PD1NRUweiQsbHxkSNHAHTu3LnK+nv16pWdna2mpiaqgIqKyvr165nXERERzIzU6dOnV1lzUVERk5ReXV2dmVbFxHc5OblRo0ZVeTolYZKO41SDS0khrq6kTRv+Y9zRo8XNiFqHgoNJu3YEIBYWJCWloT+9QZw8eZL5FXsuxo+34sYezDYh5ubmhJD3799v2bJl9uzZ8+bN8/T0LPeclJI4GkZbquRk4uJC5OUJQNhsYm9Pym4pUY9u3yZKSgQgo0dXtn6hiRPkJ01OTq6ycMUw2r9/fwAjRoyYPXt2ucyq8vLyhw4dqufmU9XAIoQ0TLeXaoySk7F1K3buRE4O2GxMnIg//oCBQT1+4vnzmDIFeXmYPh0HD6LeEt9JnIeHx6pVqwBwuVxmLurMmTM7deq0bNmyinNIc3Jy/P39AVhaWjKPF3r27BkaGsq8O2jQIDs7O21t7ejoaG9v77i4OBaLdfny5e9rnOyGqluSjuNUIxAXR379lcjJEYCsWFGPH8TjEWtrAhAXl6a7XFVMu3btYn7FkpKSCCHJyclsNltBQSE3N1ec05kFqe3atQsICCh9PD09nVn+ZGJiUi/tpqqP5hulgA4d4OmJd+8wbx5WrKjHD2Kx8Pff8PWFh0dTz59SJcFIFDPQFBAQwOPxrKysZGVlxTmdmRXQr18/a2vr0sfbtGnDpOx7/fp1XFxcHTeaqhE6Uk8V09XlJ9gnBKGhiIlBWhqUldGxI3r1Arv6f3GfPYOaGjp3LhMx27TBTz+VfBsaiqgoZGWhQwdYWkK8ENMkCJJMBwcH9+7dOyAgAID4GZs6dOgQFBQUGxtb8a3u3bszLz5//tyxY8e6aCxVO5LuDlONSVYW2bhRyLosdXXy229EzLyfeXnk7Flibs4/9/Jl4cUePiTGxmU+RVmZbNxY9dqtJoLH4zHrRAcNGkQIuXz5sqOjo/i7Iru5uQFQVFSsOPfez8+P+eWNjIys40ZTNULDKFUsMZGfUQUgGhpk3Dji7Ex++KEk0YmBAfnvv8pq4HDIjh3lM/sJDaN37/IzDygokAkTyIwZpFs3fnln53q6vobHhEIAZ86cqe65gun3586dK/fWpEmTAKirq+fn59dRS6laoWGUIoQQUlhIBgwgAJGVJXv3lukS8njkyBGioEAA8s03JDtbZCXTpvFzsowaRXbvFhlGc3JIp04EIPr6JCampAG//MI/5dq1ur68BnL06FFLS0s7Ozvm28zMTD09PQCysrIHDhwoKip6//69paWlpaVlZGTkx48fN2zYwHQ209LSpk2bNm3atIcPHzLnXr16lVlaymazO3XqNGvWrJcvXxJC9jAPXoCVK1dK6jKpcmgYpQghhOzdyw9hfn7CC1y/zt86xc1NZCUvX5Jz50hmJiGE5OeLDKM+Pvy3Hj8uc7yggH+bb2VVm0uRoI0bNwJo37694MibN28EKaA6d+48duxY5nWvXr2Y2aB+fn6k7LzRwsJCoTuAstlsXV1d5nXfvn2zK/l7RjUsGkYpQgghRkYEIMOHV1Zm0iQCEC0tIs69ZCVh1NaWAMTcXMhZu3bxlwM0zSxwFcMoISQ+Pn727NkyMjLlwmKrVq1sbW1fvHhBCElKSurRo0ePHj0uXbr022+/MQUmT5588uRJJkGJgLS0tJOTUybzt4pqHGgYpQj5+JEf8nx9Kyt29Sq/WHAwIYQUFJDPn8nnz0ToRMhKwiiTWVXoBNXQUP5ZTSXbdFlCwyiDy+Vev37dldkTAdi3b19qamrFYikpKUwq0kmTJgkOvnr16uDBg9ra2gCsmmxXvRmj80YpQLBVRuU7oQtysDN7+UVGQkcHOjooTpIklqQkpKYCQPGtbhmCBCUREdWosylQVFS0sbFhtvwEYG5uzjz6LOeff/7Jzc0FsHbtWsFBExOTWbNmMUlPHj16lMBsZUg1GjSMUsCXL/wXQkObgJoa5OQAICmp5p/F4fBfaGgIeVdZmT91tOxu8s3PoEGDEhMTKx5nJorKyMj06NGj3FsDBw4EwOPxgoKCGqCFlPhoGKWArCz+i1I7XwrXujUAcLkAoKODo0dx9Gj1Uu3l5PBfVFhXzqeiAgDZ2dWoswnKysq6d+8egJUrV44fP16wfx9zR19QUMBlfsildOrUiUmG/+7du4ZtLFUFuoqJKg6OALKzoaRUWUnmd7tNGwBQVoYYmTTLY/qzANLThRdguqvi7SvXOOXk5Aiy5JVTevnm3bt3J0+efO/evSdPnpDiDEGmpqYACCFXr1798ccfS5/L5XLl5ORycnI4gh491TjQMEoB7drxX3z+jOKFhkKkpiI3t0z5GhA8EBT6ZCA9HXl5QHGftGlKS0ubOnVqlcXu3LkDwNjYmBDCbNkEYOjQoQYGBpGRkYsWLVJSUho1ahSLxcrMzDx79qyrq2tOTg6AHEGPnmocaBilUHJXHhJSWRgtXlcDM7Oaf5aGBtq2RVoahI6TxMfzX1TSjEZPQUGBWWhUUVpa2sWLFwEoKSlFRUV9+vTJx8endAE2m33y5Mlhw4YlJSWNHj1aUVFRVVU1MTGxoKDA0NBQXl4+JyenteDugWokJDxTgGokDAz4eZQrMWMGAYimZm3njdrYEIBYWgo5i1kF0LzmjZb26tUr5vdu0KBBAI4dOya02H///Td16lSF4kfVenp669evT0tLY7PZAP766696uwKqJugQEwUAmDcPAK5exe3bwguEhODECQCYM6e2uZbHjweAJ0/w8mWZ4zweDhwAgIEDUbxfcXNlZmYG4O7du0Lf7dKly/Hjx7OysuLj49PT09+/f7927dqEhAQejweg4iA+JVk0jFIAgHnzYGoKQjBxIq5eLf/u/fsYNQqFhdDTK0lIGh8PR0c4OqK4hyWu6dPRvj0IwU8/lTwhJQRr1vBnsLq41OZSmgRm6z1RYVRAW1u7DTOgBwQGBgKQkpLq27dvPbeOqh76bJQCAMjK4vx5jBiBDx8wejTMzfHdd1BTA4eDhw/x6BEIgY4O/P1LhvU5HBw5AgATJsDUlH9w1iwwg9GCzWnWroWnJwCYmeHPPwFAQQGHDmH0aLx5g2++wfjxaNMG9+7h+XMAcHREC9gL08DAQE1NLTo6OiYmRpxNSYuKiry9vQEMGzZMQ+iUW0pyaBilinXtiidPsHYtDh5EcHDJgBIAKSlMm4aNG9G+fclBWVkw48ul50g9foxysxoFd+6l92WzscG1a3B2RkwMDh4sqXD5chQvl2ze2Gy2lZWVv7//qVOnhg8f3rZtWyYXlCjr1q179eoVi8VyaQFd9SaHhlGqFHV17N2LTZtw5w6io5GSAlVV6Opi6FCoqpYvrKdXPmICOHSoZDJ/OeW2dx8+HB8+4N9/ERGBrCx06oQhQ0TOyW+OhgwZ4u/vv3379tWrV48dO5bZ0g7Aly9fXFxcfvjhBwMDAxaLFR4e7uPjc/XqVQDz588fOnSoRFtNCUHDKFVBmzYYN66G51paVqMwm42BAzFwYA0/q4kbMmQIgPQKyxDc3Nx8fX19fX1LH5SWll6+fLm7u3vDtY8SGw2jFFVnDA0Nx40bp1au312KsrLyuHHjAKioqOjq6mpoaCQlJR09etRU8HAZ8PDw6N69++3bt2NjYwsLC7W0tKysrBwcHART9KnGhu5TT1ESY29v7+fn5+PjM3v2bEm3hao5OuGJoiSGedDJzGSimi7aG6UoiUlMTAwLC+vfv7+8vLyk20LVHA2jFNXQsrOzU1NTWSyWjogErzweLz4+HkC7du1kmQSsZXE4nFQm+7VonTp1atWKDn40BPpTpqiGdvr0aScnJykpqcLCQqEFkpKSOnbsCODGjRsjRoyoWGDfvn2rVq2q/FNiY2M7depU+9ZSVaJhlKKaHhUVla5duwp9i8vlJiUlARDajaXqAw2jFNX0zJ07d+7cuULfmj179sGDB4cPH66pqdnArWqx6Eg9RTUfSUlJJ06cALBs2TJJt6UFoWGUopqPXbt25ebmGhsbC32iStUTelNPUU1AUVERj8djs9lSpTO8lJWdnb1v3z4AS5cuZTa/oxoG7Y1SVBNgZ2cnIyPDLMMX5ciRIykpKRoaGg4ODg3WMAq0N0pRksLj8caJSAGTx+zrV83adu3aBeDXX3+VE2y/SjUIGkYpSjIIIcz2duL4+eefhw0b1qFDB1EFLl68+O7dOwUFhTlz5tRRAylx0TBKUZLBZrOvXLki9K2KWzSL6rcKbN26FcDMmTPV1dXrqoWUmGgYpSjJYLFYtra2Qt9KTEysVlXBwcGPHj1is9kLFy6si6ZR1UOHmCiqyfvrr78A2NnZde/eXdJtaYloGKWopi0mJubChQsAli5dKum2tFA0jFJU07Z9+/bCwkIzMzMrKytJt6WFos9GKaoJOHz48Nu3b7t27VpuKX1aWtqhQ4cALF++XEJNo2hvlKKaAj8/v7/++uvkyZPljnt7e3O5XF1d3YkTJ0qkYRRoGKWoJqFNmzaqqqrKZTegLigo2L17N4BFixbRDM0SRLPfU1RD+++//4KCgths9uTJk4UWyM3NZUaNhgwZoqWlJaqer1+/3rlzB4CtrW3r1q3rqbVUlWgYpSiKqhV6U09RFFUrNIxSFEXVCg2jFEVRtULDKEVRVK3QMEpRFFUrNIxSFEXVCg2jFEVRtULDKEVRVK38H6yAkugiwkkDAAABTHpUWHRyZGtpdFBLTCByZGtpdCAyMDIzLjAzLjMAAHice79v7T0GIOBlgAAmIOaD8hsY2TQUgDSLBJzBxKihAWQwMkoww1ksHGBJJglWmCo2uBw7nMUBZ3HC1HPBhbhhQjxwIV4OjQUQFh83BysDFyMDKzsDK5BkY+DlZOBkZGCEuJaFgYGZgYebgYWbQQTkAfFNIF1QzMC3Iujx/mMPeextFsTsjw14v19NcqftZFORA/wayfsfm02zD71pvv/H/Vv7XwjP3FerpL+vgtvqQOTddfY/Ojj2a9SJ7F8RJLz/pq3hgVfR2/Ytzd61/6cI1wH2+A67Fzff2F6er3ugZofO/lr73P3z4ooPlH+2OhClH7d/1XaZA5NXsh0IOZZvz6xmd8DPteJAlvB3uwU5p2zrHvce8D67zu6RteH+E3GtB0y+5O+LNNE8IAYAHythUcGLoc4AAAHNelRYdE1PTCByZGtpdCAyMDIzLjAzLjMAAHicfZNNUuQwDIX3OYUvQMqyZP0sWHR3KGZqoFMFDXdgz/0LycZJejNJFrbrs/QkvUwpnrfl39d32h5cpiml/J/PzNIn5pyn1xSLdH56/ntNl9vpPE4u68f19p6AEqDf8feePd3W13EC6ZIeYBapxg7OtWYsOT3kWRnUVzDI0kllYwoyW0Z1sswIVcSBQWL60wKoYGSYQdDDxpGAgqfBQVKQnt2r4gYUU9O2AoEcxEBrWiOXZbYaQZEZsJEVEV1RHSSHUD/WnHvWKpW6UmGj7MRApSvFyuAFuBKqTNBQr6kGMVB11PUxY43qASrXHhOKenQdoPWYLMTW0lthCRRnzSUu2db8/FtUAYDfpov1/ETqHXBkgyECu7DsCkOCeQtKY81JCWJjSwT2hGIFgyUtVfrUVCmADW3Topm8hyUIJKAuhv1yOGAblztqDRZYtJukIMWMXQMTNrtQejstjyV9nl4eNz1P1+XOdd2H5/W67D4E7xzvZoMo+GAp8Lnq7pvYlt0bsZXdANDMn/cxQ/S67LOEyLBPLLLjYSqxr4fGx0uH5kK07a6HECLKsd5jdbEff6ivpx9SSr+0u/AXYgAAAXV6VFh0U01JTEVTIHJka2l0IDIwMjMuMDMuMwAAeJxtUrtOJEEM/BVCVppttd92T4RILrnjcjQncRIZq0UIMj4euzecSdzTVeVy9cjPjwO2++fHgbNq1l/DtlMdvp2yRl2eBvStKk8M4Kag21Hg05ApwK142u6+78/QzCR06U2kEy7n3lzBcU3GNZST6dHJlzM2AjFbUyLeu5RWTHhSpsHFkCjYks0sylBM9gitvaEqSboBiMpsAXSvHjXWKLdAtaSoeUeVNTWBAHALZTHtmN1gPXMDNZ95kZioKGWq4Dmy5+i0I1UsIgz6zO1uKYUGRjLzGzhovdV65F8ot/Dw+oBsopmha0g2pRvQfDQR5WMzpgVSDmJHsfmj3LmyMXHHBIiBZ3xNIZ6WfzBsefm8Xv5+XN9Hb5fr20Pefr+8//m6/H/9aDBgD+LAPaiD9qAN3oM+ZA/G0IPpfdgBysMPUBixRymXcI9ybuMeldzEA1/M1TyA6fsHPXPN9cBI10gAAAAASUVORK5CYII=", + "text/plain": [ + "" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "RDKitMol.FromXYZ(xyz, backend='openbabel', header=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Next is an example of parsing XYZ without the first two lines (e.g., extracted from gaussian output), where `header` is set to `False`. Please set the `header` arguments correctly according to the input xyz." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "RDKitMol.FromXYZ(xyz_without_header, backend='openbabel', header=False)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Use `jensen` backend. For most cases, Jensen's method returns the same molecule as using `openbabel` backend" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "RDKitMol.FromXYZ(xyz, backend='jensen', header=True)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The optional arguments for the Jensen et al. method are provided." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "!!! Warning !!! Distance between atoms 13 and 12 (0.976551 A) is suspicious.\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "RDKitMol.FromXYZ(xyz,\n", + " backend='jensen',\n", + " header=True,\n", + " allow_charged_fragments=False, # radical => False\n", + " use_graph=True, # Use networkx to accelerate (enabled by default)\n", + " use_huckel=True, # Use extended Huckel bond orders to locate bonds\n", + " embed_chiral=True, # Embed chiral information\n", + " force_rdmc=False, # use RDMC's implementation of xyz2mol\n", + " )" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 3. Check the coordinates of the molecule and visualize it" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "xyz coordinate: \n", + "[[-1.77596 0.55032 -0.86182]\n", + " [-1.86964 0.09038 -2.31577]\n", + " [-0.88733 1.17355 -0.71816]\n", + " [-1.70996 -0.29898 -0.17103]\n", + " [-2.90695 1.36613 -0.53334]\n", + " [-0.58005 -0.57548 -2.7694 ]\n", + " [-0.35617 -1.45641 -2.15753]\n", + " [ 0.26635 0.11565 -2.71288]\n", + " [-0.67469 -0.92675 -3.80265]\n", + " [-2.92111 -0.86791 -2.44871]\n", + " [-2.1041 0.93662 -2.97107]\n", + " [-3.87923 0.48257 0.09884]\n", + " [-4.43402 0.34141 -0.69232]\n", + " [-4.16782 -0.23433 -2.64382]]\n" + ] + } + ], + "source": [ + "mol = RDKitMol.FromXYZ(xyz)\n", + "print(f'xyz coordinate: \\n{mol.GetPositions(id=0)}')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## 4. Export XYZ" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "C -1.775960 0.550320 -0.861820\n", + "C -1.869640 0.090380 -2.315770\n", + "H -0.887330 1.173550 -0.718160\n", + "H -1.709960 -0.298980 -0.171030\n", + "O -2.906950 1.366130 -0.533340\n", + "C -0.580050 -0.575480 -2.769400\n", + "H -0.356170 -1.456410 -2.157530\n", + "H 0.266350 0.115650 -2.712880\n", + "H -0.674690 -0.926750 -3.802650\n", + "O -2.921110 -0.867910 -2.448710\n", + "H -2.104100 0.936620 -2.971070\n", + "O -3.879230 0.482570 0.098840\n", + "H -4.434020 0.341410 -0.692320\n", + "O -4.167820 -0.234330 -2.643820\n" + ] + } + ], + "source": [ + "print(mol.ToXYZ(header=False))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "@webio": { + "lastCommId": null, + "lastKernelId": null + }, + "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.10.9" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/ipython/XYZ + RDKitMol.ipynb b/ipython/XYZ + RDKitMol.ipynb deleted file mode 100644 index 4ada075c..00000000 --- a/ipython/XYZ + RDKitMol.ipynb +++ /dev/null @@ -1,316 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# A demo of XYZ and RDKitMol" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "There is no easy way to convert xyz to RDKit Mol/RWMol. Here RDKitMol shows a possibility by using openbabel / method from Jensen et al. [1] as a molecule perception backend. \n", - "\n", - "[1] https://github.com/jensengroup/xyz2mol. " - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [], - "source": [ - "import os\n", - "import sys\n", - "sys.path.append(os.path.dirname(os.path.abspath('')))\n", - "\n", - "from rdmc.mol import RDKitMol" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 1. An example of xyz str block" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [], - "source": [ - "######################################\n", - "# INPUT\n", - "xyz=\"\"\"14\n", - "\n", - "C -1.77596 0.55032 -0.86182\n", - "C -1.86964 0.09038 -2.31577\n", - "H -0.88733 1.17355 -0.71816\n", - "H -1.70996 -0.29898 -0.17103\n", - "O -2.90695 1.36613 -0.53334\n", - "C -0.58005 -0.57548 -2.76940\n", - "H -0.35617 -1.45641 -2.15753\n", - "H 0.26635 0.11565 -2.71288\n", - "H -0.67469 -0.92675 -3.80265\n", - "O -2.92111 -0.86791 -2.44871\n", - "H -2.10410 0.93662 -2.97107\n", - "O -3.87923 0.48257 0.09884\n", - "H -4.43402 0.34141 -0.69232\n", - "O -4.16782 -0.23433 -2.64382\n", - "\"\"\"\n", - "\n", - "xyz_wo_header = \"\"\"O 2.136128 0.058786 -0.999372\n", - "C -1.347448 0.039725 0.510465\n", - "C 0.116046 -0.220125 0.294405\n", - "C 0.810093 0.253091 -0.73937\n", - "H -1.530204 0.552623 1.461378\n", - "H -1.761309 0.662825 -0.286624\n", - "H -1.923334 -0.892154 0.536088\n", - "H 0.627132 -0.833978 1.035748\n", - "H 0.359144 0.869454 -1.510183\n", - "H 2.513751 -0.490247 -0.302535\"\"\"\n", - "######################################" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 2. Use pybel to generate a OBMol from xyz" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "pybel backend, `header` to indicate if the str includes lines of atom number and title." - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "execution_count": 3, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rdkitmol = RDKitMol.FromXYZ(xyz, backend='openbabel', header=True)\n", - "rdkitmol" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Please correctly use `header` arguments, otherwise molecule perception can be problematic" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAcIAAACWCAIAAADCEh9HAAAABmJLR0QA/wD/AP+gvaeTAAAgAElEQVR4nO2dZ1xTSdfAJyFAQOkKAgKKAkoRFDuyWAEVXSygu4oFG48FF1EBZe0Kq74qir2yuugiKmJdEdFFFBcbUixIEYHQeyfJfT8MDFdIQighCcz/x4eTmzNzzyXJuXNnzpxDIQgCYDAYDKatUIVtAAaDwYg32I1iMBhMu8BuFIPBYNoFdqMYDAbTLrAbxWAwmHZBE7YBGHGlqKjo+fPnUB46dGjfvn1bbMJise7fvw/lAQMGGBoa8nmuxMTEly9fpqSklJSUSEtLKykpmZqajhs3TklJqW3GYzAdCYHBtIkXL16gb9HFixf5aVJaWoqauLu789MkJCTEzMyM41eXTqcvWrQoKyurXZeBwbQb/FCPEVEIglizZo29vf379+85KlRXV//5559GRkZRUVGdbBsGQwY/1GNElH379p04cQLKUlJSTk5OY8eO7d+/f1lZ2devXwMDA9+8eQMAKCoqmjZt2ocPH3R0dIRqL6b7gt0oRhTJz8/fu3cvlOXl5cPCwkaOHElW+O2339avX+/v7w8AKC0t9fb2vnz5shAMxWDwSj1GNLl7925VVRWUN27c2MSHAgCoVOqhQ4fQCDQkJKS2trZTTcRgGsBuFCOKfP78GclTpkzhqCMpKTlx4kQol5eXZ2ZmdoZlGEwzsBvFiCLkoSWVyvVbSqfTkVxXVydYmzAYLmA3ihFFyFGor1694qaWlJQEBUlJyf79+wvcLAyGE9iNYoRMbW1tZQNEQ9rG4cOHI4U9e/akpaU1b5iZmfn06VMoz5w5U1JSUuC2YjCcwG4UI2ScnZ17NJCVlQUPWlpampiYQDk3N3fMmDHXr18nSLlx2Wy2i4sLk8kEAMjKyu7atavzLcdgINiNYjoANpvN5AMWi8V/n3/++aecnByUs7OzHR0d9fT0du/enZ6eXlNT4+zsfPfuXQAAnU4PCQnhf18pBtPhYDeK6QCWLVsmyQet2gJvZmb28OFDclB9cnLytm3b+vfvP3DgwICAAADAsGHD/vvvP25L+RhM5yB+4fcXLlz49OkTAEBJScnLy4ufJvfu3Xv27BmUd+/eLS0tzU2TyWR6e3vz0+eIESPmzJnDjyaGN2ZmZoWFhVAmr7wDAMaOHbthw4b169eTD7LZ7IyMDChPnDhRW1u7c+zEYLgi5D39rcfW1hZarqWlxWcTd3d3dL0lJSU8NNHvs0V+//33jrgaMYacmoRKpUrwB2rSYmqSgoKCadOmQWUKheLs7Gxvb9/EzwIAevXqFRwc3DmXjMFwBD/U/wBa4mgRvIObzPnz5/mZGy0qKuKzw8rKSjs7O5hVT0ZG5vbt2+fPn79161Z2dvbZs2ctLS0pFArUzM/Pd3R09PPzE9S1YTAtIX4P9QIlOzsbybt27ZKSkuKmOX78+M4wqLuyevXqly9fQvnSpUszZsyAsoKCwvLly5cvX56UlOTl5XXjxg0AAJvNdnNzGzx4sLW1tdAsxnRjsBv9AbShkE6n//7778I1ptuSmpqK8oxMmjTJ0dGxuY6enl5wcPDWrVv37dsHACAIYs+ePdiNYoQCfqj/AQaDAQUNDQ3hWtKdiYyMZLPZUHZycuKhuXPnzgEDBkD55cuXFRUVAjcOg2kGdqM/gN2oKJCcnIxk5CU5QqPRRo8eDWUmk4k+PgymM8EP9T+AlpjU1dU5Kpw8efLff/8FAEhJScHQxRa5e/fuX3/9BeUjR46oqam1wbDt27d//PiRfOTChQs9e/ZsQ1eiD9ybBEFLSdyg0Rq/wzySmGAwggO70R9ocTQaHR197do1AIC0tDSfbvTjx4+wCQBg9+7dbXCj9+/fb77Z8dSpU63tR1zQ1NRE8uvXry0sLHgov337FgpSUlLkhhhMp9FN3WhVVRUcVAIA+vbta2RkBOUWR6OdT1lZmYuLC5QlJSW7Xjq4nJwcVOpOV1dXQkKCvCvJz89v+fLlPXr04Nj24cOHcXFxULaysuKxsQKDERzd1I1mZWWhMH5nZ+fz588DAFgsVl5eHjyorq5eWlr6+PHjlJSUzMxMCQkJLS0tc3PzzjfV09Pz+/fvAABZWdmlS5ceP368820QKO7u7mjSIyMjQ1NTU09Pz8bG5p9//gEApKamzpw58+rVq6qqqk0avnz5cuHChejlxo0bO81mDIaMGLvRmpqaiIgIfjShG2qR3NxclDvDx8dnxYoVzetSoGQZnUN0dDR6eN+1axdBSnHUtfH39x89enRBQQEA4MmTJwYGBgsXLhw/fryGhgaLxUpNTb1z587NmzfR5+Xi4oKjnTDCQozdaG5uLqoh0SGQtzDBbfvNKSsr68Az8qampmbZsmUw9MfExMTV1bX77NUZOHDg48eP7e3tv337BgAoLi729/eHBeyaQKVSXV1dDx482Ok2YjD1iLEbbQ8qKio+Pj5QNjU1hYK2tvayZcsuX74sISExadKkCRMmaGlpaWhoVFdXf/r06datW0+ePEHjwU6Yo9yzZ09iYiIAgEqlnj59uqumJZ4wYYKMjAyUyXOgZmZm8fHx+/fvP3/+PMdNuhISEpaWlj4+PijmCYMRChSxe06cOnXqw4cPAQDS0tJjxozhp0lycjJ6ri8pKZGXl+ehnJOTIycnJysr2/yt+/fv29vbIwd648aN2bNnt3j2AwcObN68GcpJSUkDBw7kx+a4uLjhw4fDWYU1a9bAgdjBgwc3bdoEFQoKCpSVlfnpSkCUlZW9e/cOygYGBvxEILBYrKioKChraWnxWfaDyWS+ffv2zZs36enpxcXFUlJSampqOjo61tbWvXv3Jmvm5OSsW7fu4MGDOO0TplMRbmaUNiDQDE8tQp5GsLCw4KfJ/v37UZOkpCR+mrBYLHSH6NOnT1FRETx+4MAB1FVBQUHbL6OLsmTJEvi51NXVCdsWTDeimz7UtxlyqbWXL1+Wl5e3IQaeyWRevHgRynBU1UTBz88PJeY4evSooqJiW+3tXhw6dOjJkydRUVE7d+7cvXu3sM3BdBfwro+2w2az09PT29Cwurp6ZQPHjh1r8u63b9+2bdsGZVtbWwcHh/Ya2m1QUlK6cuWKhITEvn37wsPDhW0OpruAR6Pt4tKlSyh0nxtv3rxpVZ8rV64sLy8HAMjKyna9KFFBY2lp6e3tvXPnzgULFsTGxrZt6y0G0yqwG20X5MnKDiEgIODRo0dQ3r59u66ubsf23x3Ytm1bZGTkkydPli5deu/evRZ35WMw7QS7USFAp9OvXLkCZfJka35+PlqINzY2dnNzE4Jx4g+VSg0ICDAzM3vw4IGfn99vv/0mbIswXRzsRn/g3r171tbWPCI0yeH3SkpKKCs7DxISEpo819NotAULFjTXXLt2LdyN2rUDRTuBvn37BgQEzJgxY/PmzWPGjBk1apSwLcJ0ZbqpGy0rK7t+/TqU9fX1x40bBwA4duyYq6urra3tn3/+2SQgEbWKjIxEL318fFatWtXiuQ4cOMDP9Oj9+/f//vtvKK9atWrs2LH8XAiGG9OnT4fxtgsXLnzz5g3vYGEMpl0IO+Kq1XRI3OjXr1/REWdnZ4IgAgMD0SSagoLCnj17vn79inpgMpmhoaH6+vqoFZVK5TM4kZ+40ZKSEi0tLaijpqZWWFjIUQ3HjbaK6urqoUOHAgDmzZsnbFswXZluOhptjrW19ZgxY2DR4JKSEm9vb29vb01NTW1tbYIgPn36VFxcTNan0WjkhMHtBKVxAgA4OzunpKRwVEOlogAAsbGxcISlr6/fyQlTxAVpaenAwMDhw4f//fffdnZ25HRQGEwHgt1oPSoqKo8fP96xY8exY8eqqqrgwczMTLLnItOB679paWmnT59GL318fNB+fx6g/VTh4eEdm6JF9GEymWVlZQoKCi2mux80aNDRo0fPnj3LLfczQRDFxcUSEhL4qR/TZrqpG1VTU0O56/X09KAgIyPzxx9/uLq6nj59+t69e+/evSNICQeUlZVnzZqVkZEB82B2IGVlZaiCG4YbT58+ffDgwZMnT5KTk2G9eyqVqqqqampqOnv27Dlz5qioqHBs6OzsvGTJkiYONzEx8dy5c2FhYR8/foTZ9mg0mpGR0fjx45ctW2ZiYtIJV4TpMohfahIAALS5VeNBdJn8tyosLMzMzMzJyZGRkenbt6+mpiaNRlu8ePGff/4JAJCWlq6uriYI4smTJ5MmTeLRT4upSb5+/Tp//nx+TMrJycnIyICyqakpnFU4efLkiBEj+LwocSQiIsLLy+vVq1c8dBQVFffu3evi4tLi+LSysnLjxo1nzpxBuUqbQKFQli1bduTIEW4p9zGYpghxXlYcWbRoEfy/SUtLEwQBd2oGBwfzaNKG1CTc6IZLTL6+vvzf+WbNmsV73S8vLw8uOpHp2bNn89iyn376qbKystMuEyPW4D317WLChAkAABcXl9zcXP5b1dXV7WwAVbvDNGfbtm2enp5Ew5OEpqbmzp07Y2Ji8vPzCYLIycl5/vy5m5sbyg5z69at1atXc+uNyWTOmjULJvejUCiLFy+OjIysqKgoKyurrKxMTk729fVFXf3777/79u0T8PVhugrC9uNiRpPRKJvNhvmZ5s+fz61J89EoOYbfzs6O/7N3q9FoeHg4+Ql91apVZWVlHDXT0tLgCtKAAQPi4+O5dYgSFEhKSgYGBnLUefXqlZSUFFRTVFSsqanpmIvBdGnwaLRdUCiU06dPy8nJXbt27caNG8I2p+vAZDJRARUAwNq1a0+dOsUtJ6GOjs6DBw9cXV3/++8/HpliRo0aBUMaPD09f/nlF446I0eO/PXXX6FcXFyM8lJjMDzAbrS99OvXD8Yn/e9//2vVoz2GB3fu3ElLS4Oyvr5+i6WW5OTk/Pz8eJcDMDc3Dw8PDw8P9/b25qGGisoAABgMBr8WY7ox3TTgqc2oqKjAZCJ0Oh0dXL169e3bt8PCwtzc3FCtYIS8vDzKPwKXMmRkZFBN0169evF/dkVFRZTzqcUlabHm7NmzSN6zZ08HFqBvMcYWZimEcKwlg8E0QSwDnkSQtLQ0ExOT8vJyVKApNzd3165dWVlZN2/eFLZ1YgaLxVJUVITuTElJicFgdKAbbRFbW1sYGkylUhkMhqqqaqedGiOmYDfaYcDMJn369ElISFBWVq6oqOjTp09FRUVycjKftdswkNjYWDMzMyj//PPPISEhbegkOTn53LlzULaxsRk/fjw/rSIjI62srOCPwt7e/tatW204Naa70ZUfDDuZNWvWWFlZZWdnr1+/HgDQo0ePmTNnEgSBQ5paS1xcHJLJM5WtIjU11bcBVI6UBwRB3Lhxw97eHvrQ3r17Hz58uG2nxnQ3sBvtMKhU6sWLF3v27HnlyhU4ioFJRS9fvixs08SMwsJCJPfr109AZ6mtrT1z5syZM2cOHjzo4uKip6c3d+5ceOrBgwdHREQI7tSYLgZeYupI+vfvv3fvXnd39+TkZACAtbX19OnTp02bxmKxJCQkhG2d2EBOpiW4jCFVVVXN08VKSkoePHhw9erVHZi+S4SoqAAREeCff8D796CgAOTnA0lJ0KsX0NQE48YBa2tgbg7ak3MnNRUEBYFHj0BWFsjNBSoqoE8fYGUF5s0DxsYddxkiB54b5Ux5efmzZ88iIyOzs7MLCgrq6upUVVXV1dUnTJgwceJEFKHdHDabnZiYaMzlS/Ps2bO7d+8OHDjQ2NiYW84hjKen5x9//AHle/fuTZs2rQ2dlJaWJiYmQllbW1tDQ6OJQklJCcfK1fLy8i4uLt7e3ij9IJPJpFAo4n0jrK0Fly6B338HvGPyjI3Btm2gDcVoq6vBjh3g4EHAJVMBcHAAJ08CLuljxB7hRf6LKCkpKYsXL+bhKBUVFXfu3AnzkvAJi8UKDQ0dPXo06oROpwvuEsSdPXv2oH9UUFCQgM5SW1sb1IC/v/+qVavIrtbAwCAjIwNqhoSESEpK6urqTp48eeXKlUeOHAkLC0tOTmaxWAKyrYNJSyMGDyYA4Pdv5UqCyWxF/zU1xPjxLXc7eDDBJR+5uIPd6A/4+fnxcKBkDAwMvnz50mKHJSUlR44c0dbWbtIcu1EeHDt2DP2jzp0712nnra2t3b59Ozr1iBEjmEwmQRAnTpzgmB5FVlbW1NR07ty5Xl5eFy5ciIqKys3N7TRr+eXTJ0JDo9GXSUkRTk7E338TCQlEbi6RkUHExBCHDhEjR/7g8n7+uRWedOnSxoayssTWrcS7d0ReHhEfTxw4QKiqNr47fjwhLvee1oDdaCMeHh7kH4mUlJS1tbWPj8+lS5f++uuvQ4cOOTg4kOOxtbW109LSuPWWkpLi4eHB8bERu1HeXL16Ff2jtmzZ0slnJyc3uXbtGjxYU1OTnJwcFhZ25MiRlStXTp48WVdXl6NvVVRUNDc3d3Bw8PDwOH36dGRkZHFxcSdfQiM1NcTQoY1ezMKC4HbvZ7OJwECiZ89G5V27+DrFixcEhVLfREWFePeuqUJ6OqGn19jtX3+164pEEuxG62my+2jOnDnp6enN1QoKCpYuXQp1NDU137x5w63DJrU/Bw4cuHHjRlRJFLtRHnz8+BH936ZNm0Z+Kysri81mC/TscHkQ4ujoyEOzqqoqPj4+KCjI19cX+tY+ffpwvGsqKSlB37p9+/agoKDXr19zS7PSwWzd2ui/Jk4kKipa0I+KInr0qNeXlCTev2/5FJMmNZ7i1i3OOm/fEjRavc6AAV1vQIrdKEEQRGZmJnnYuGHDBt76u3fvHjVqVFZWFg+d8PBwAIChoeH27dtfv34ND27YsAG70RZhsVgKCgrwHyUvL19B+vE/f/78/PnzgjYAJdI3NDRsbdvc3NyoqKiLFy9u2bLFwcHBzMyMY/pnCoWyzNaWmDiRcHEh/u//iNBQ4tMnomMTSpWVEQoK9c5LQYFomOptAT+/Rrfo5NSCckYGQaXWK48YwUtz/vzGbqOi+L0EMQG7UYIgCHKuismTJ/PTpLa2lrcCm81u7mexG+UTuKEW8tePj4EhISGCPjvadaajo9MhHRYWFr5+/TogIMDDw8PBwcHc3FxWVnazlRWHdRh1dWLyZGLlSsLXlwgKIuLjW7faQ+bkycZud+/mtxWLRQwcWN9KWprIyeGl7O/feIqzZ3lpPn7cqOnuzq8xYgJ2o0RtbS16FqNSqZ8+fRLcubAb5ZOHDx8iN6qnp1dVVdVRPbc4J1BbW4tmwC0sLDrqvE1gMpnlKSnEw4fEsWPEunWEjQ2hq0tISHBwrNLShKEhYW9PbNpEnDlDRETwO66cNq2+ByqV4DRDxZW9exvPfvkyL81ffmnUTE3lpVlVRcjK1muOHt0KY8SBrhhj3EpevXqVnZ0NZSsrKwMDA+HagwEATJkyZfDgwXCSNCkpyc3Njdtyeau4fPnyX3/9dfPmTR6pm0JDQysrK6EsuC+DhIREj/79Qf/+wMam8WhdHfj+HaSkgJQUkJAAEhNBSgpISwOJiaAhBrYeaWmgqQkMDYGREdDVbfxDEASIjq6XDQ2BllYrjJs2DWzdWi+/fAlgYeqiIoAy6hoZgTFjAAAgIaH+SK9egPemLzodGBmBmBgAAEhMBATRrjh/EQO7URADP1oAAACzZs1qWyfp6el5eXlQNjY27syMRF0SKpV6/vx5S0tLWHju1KlTNTU1R44c4bapic1mh4SEKCsroxQkCQkJKIbfwcFhxowZV69eXbp0KYvFsrGxuXbtmqamZvN+vn///ttvv6GXDm0IRG8PkpJNvSEAoLISJCU1/n35Ar58AXl59d727t1GTWVloKcHfv0VuLqC5GSA9tQ25HnhFyMjIC0NamoAAOD16/qDGRlgxYp6ee1aMGYMIAjw+XP9kSY2c2TAgHo3WloKsrIAp/+/uCLs4bDwISdCj4yMbFsnK9A3DAAe8aT4ob5V7N27l/xdVVVV3bFjR0xMDHrGLy0tjYiI8PT0hPvfycv6YWFhqOGePXsIgti4cSM6oqio6OPj8/nzZ6Sfm5vr7+9PTv9qbW3dydfbCoqKiNeviaAgwteXWLmSsLBoXE3y9CQIgnjxovFxe9u2Vvevr1/ftl+/+iMfPjR2uHYtQRBERcUPcaYt4ubWqB8X12qTRBg8GgXoiR4AMHjwYCFagmnCli1bevTosWHDBlhNJDc3d8eOHTt27AAAwIIi5BTLAIBHjx4xGAx1dXWOvR04cIBCocB6VsXFxV5eXl5eXpKSkr17966rq0MPExATE5OgoCDBXFZHoKgIzM2BufkPB3NzwZcvQE0NAABI6V1AG/ISoCbkfppAKikG+ClGTdb58YMTd3CGJ1BUVAQFCoXCLVoeIyzWr1//7NmzsWPHNjleXl7exIfKyMisXbuWXJWgOfv37797966Ojg46UldXl5WVRfahFArFyckpIiICBV2JDaqqYNw4oKcHwI9+ih8f1wRU9qq8HMC0G1pa4PLl+r/FiwEAoGEGGQAA+JnFkpFplCsqWm2SCINHowDV6ZSRkWlz+glra2uUyUJJSaljLMMAAAAYN25cVFTUs2fP7t+/Hx4enpKSgu58srKygwYNMjY2trW1nT59Onnm1NLS8tu3b1Am3x2nT59uZWUVEhISEhLy/PlzuH0TACAtLd2/f/+ZM2fOmzdv2LBhnXh9goHsOquqWt0cuciePevXghQV69eaEOQ7Vm1ty33CyVYI2aWKP9iNArSJvq6urs2dzJ07d+7cue03Jj4+PiEhwcTERF9fv2vmamsrVlZWVlZWUK6rqysvL+/Ro4eUlFRaWtqWLVuaV/qUlpZunsoA0rNnz4ULFy5cuBAAwGQy8/Ly6HR6V7v5kZ+rSktb3bykhEM/TSAXauXHU5NHoA1jjq4B/qEC9OxWV1dXXV3N+6lQ0AQHB+/cuRMAICkpqaenZ2RkZGhoaG5ubmRkpMvPYmj3QFJSEnm9fv36aWtrx8fHc0tOyBsajcZtLlW8Iaek+/69dW3ZbJCZWS/zKLnYoweg0QCTCQBoIf8ehDz7LLA0skIBu9EfnvgYDIZw6yYNGjTI3t7+w4cPqampiYmJiaRoQRUVFVNTU2NjYxMTE1NTU0NDQ467DMWImpqaFy9epKenFxQUlJaWqqio9OnTx9zcvLU3DF9fXwAAk8mMiYmJjY2F+WGVlZUHDBgwbtw48Zvi7BD09UHPnvUzpLGxrWv75Uvj1CqP+Q0qFQwYUB/zlJracrcpKfWCjAxoqJXbRRB2qIDwIccJ3uKWW6GD4D/gqaamJj4+Hm4ftLOz41ifUl1d3c7OzsPDIyAgID4+ntnmXYOdzpMnT6ZNm8YtBn7o0KEnTpzg/3IKCgo8PDw4lqqm0WgLFixISkoS6OWIKCgHqLQ0UVTUioanT/O7xXP27Ho1CoXIy+OlyWIRysr1ysOGtcIYcQC70R9yO23evFmg52pP3GhhYWFkZCRM1GZhYSHTbJJeSkrK0NDQycnJ19c3NDSUwWAI4hLaCYPBmDJlCj83+BEjRvCzMTc8PJxbXiWEvLz83bt3O+HqRIvduxu94enTrWhoYdG4izQlhZemj0/jKa5f56UZE9Oo6eLSCmPEAVxEBKSlpenq6sL/g5aWVlpaGpUqqDgwd3f3Q4cOAQDodHpVG9ZPSTCZzPT09ISEhDdv3iQmJiYkJHz8+LHJp6mkpISmVg0NDYcNG8ZjE2Qn8Pnz56lTp6aSHgAlJSXHjh2ro6MjLy9fUFAQHx9PLguqrq7+77//Dhw4kFuH4eHh06dPr2lYApaXl7e2ttbS0pKXl09OTr579y4q6yQjIxMZGWneJNCya8NgAB0dABdODQxAbCxfYUkREWDSpPogp+nTf9gl1ZwvXwDaLztrFrh5k6vmhg0AVVp99AjwdysVG4TsxkUDchHzwMBAwZ1IoLuYiouLYRohV1fXyZMnN3/IpdFourq6dnZ2MOtlfHx8Z5bBKCkpIc879+zZ848//ihq9rD56dMne3t7pObl5cWtw8LCQjUYag4AlUrdtWtXkySeBQUFU6dORV2N7nIZMVpmwYLGMaCHR8v6xcWN+5cAIMLCWm5iato4dOW2Nyknp3GTlZoa0VJ2NLEDu1GC+LGUvJqamuBKQXTyZtDMzEyYsN3Jycnc3Lz5Tn85OTlzc3MnJydYXyiHd1a09rEYxmwDAABQV1fn/cB+4MABCQmJQ4cO8dCB43reN7+Kigo9GI4OAADg1atX7boGsYPBIHr1anSLO3bwSpmcm0sMH8412WhODrFzZ/3fgweNx4ODG5sYG3OYhK2pIWxsGnX8/Dru8kQF7EYJgiBYLNa4cePQj83IyCgzM5N3k6SkJHLKtdjY2NAGysvLubUS7p762tpamK19+/btdnZ2HBfE1dXVJ0+e7OrqGhAQ8Pr1647KUPfx40eUn0lKSio2NrbFJi2uC7FYrODg4JEjRy5dupSH2vHjx9HV7d27t3V2dwFu3foh/96IEcSdO0STjzUzkzh4kFBSalQbOJBoUvuk+Z56CJtNWFo2vmVgQDx8SKCfRnQ0MW5c47uDBnVwamrRALvRepKTk+VIIcGKiooHDx7Mz89volZdXX3r1i17e3sqlRoREYGOi2lqkqKiosjIyNOnT7u6ulpYWDSPoKLRaIaGhrD6RWhoaHJycttqeKxfvx716QlzZ3QcdXV1PN5NQMncAFiyZEnHnlo8uHmToNN/yGHaowdhakrY2BA//UTo6zcWU4J/ZmZE8/VJbm6UIIicHEJX94ceFBQIQ8MfBsIAEL16EV00ZAK70Uaio6N79+5NdiISEhIjRoyYM2fOypUrFyxYMGbMGHJwPvk3ydGNXrt2TelHUHMKhdLkrfj4eCFd9w9kZmaGhob6+vo6OTkZGho23x2roKBgYWEB6wxHRkaWlpby0y0K2JKQkMjgM+twB4F2jgIAfuYnEVGXJCaGGDuWQ07oJn9SUsT69URJCYceeEd/LOgAABNtSURBVLhRgiC+fSMmTODVs5kZIRrfcEGAw+8bGTVqVFRU1MqVK58+fQqPsFismJgYckJSMuUtZampqakh/4bJED/+vOG5Wm2xANDQ0NDQ0ECl92pra5OSklAwwOvXr7Ozs6OioqKiolATdXV18m4rExOTJkWqU1JScht2uVhaWnJM9Ck4aknbvbtpKD4AYPhwEBUF7t4FQUHg0SOQk/PDuxQKMDUFtrZg+XIwYADnHnR1QXh4vdw8CbS2NggPB0FBIDAQPHoEqqvrj9No4KefwC+/gMWLgaRkB16QSIHd6A/o6elFREQ8ePDg7Nmz4eHhpZw2I2tra8+cOXPBggWjR49GBx0dHQcNGgTlJkNasUZKSsrIyMjIyAgdYTAYcXFxHz58iIuLi4uLS0xMZDAYDAbj8ePHUIFOp0NnamJiYmdnp6+v/99//6HmI0aMaJslN27ccHJygvLRo0eXL1/OZ8MUtHkGAA0NjbadvYtgZwfs7ABBgMxMkJ8PcnMBnQ569QLq6oBjSoGyssbN7z16gIkTeXVOoYB588C8eQAAkJMDCgqAkhJQUwMCCx8UHbAb5cDUqVOnTp3KZDJjY2Ozs7Pz8/NramqUlJRUVVWNjY1VyLuVG5g8efLkyZObHJw/fz4a1rUIt7zuooa6urq6urq1tTV82Tx89dOnT2/evHnz5g0AQE1NTV9fPy0tDTU3MTFp23mZTCaKtG1VEpknT54gGSU36dZQKKBv35a3Yz5+DJYuBbt3gyVLWn0KNTXQEIvWHcBulCs0Gq0N0dqxsbHR0dErVqygUqlSUlJNHm+7HjAWVVdXF90wSktL4+Li4uPjY2NjR40aBQBAMfCg04fqLBbr0qVLUFZQUMButBUwGCAjA6xfDyZMAKQMrZjmYDfakbDZbBcXl+jo6PLycnd3d2GbIxzk5eUtLCwsLCzQkRKUda0dg24VFZWRI0dCWY3vkc7ly5eTkpKgvGbNmuY7aDFccXICt2+DGzdSN23SuXZNcFv7ugLCXuPqUpw8eRIAoK6uXtwk5q574+Ligr5vUVFRnXbe5ORktKakoqKSxzt3BqY5eXkXpk+XkZHhvQ8Cg+8wHUZOTs6WLVsAAEePHu2+K8KcIKci5LhqJwjq6uoWLFiABsInTpzgmAIKw4tevTTWrauurvby8oqPjxe2NaILdqMdhru7e1FRkY2NTYekwe9KkG8qBQUFnXBGJpPp5OQU3VCoffny5Y6Ojp1w3q6HjY2Ns7NzTU0NmmLGNAfPjXYMz549CwwMlJGROXHihLBtETnIJeTICZwEBIvFWrJkyd9//w1fTpw4kbwfFNNaDh8+TKfTzc3Nr1271q9fP3KcHw/CwsLgLVNJScnGxoafJmw2+8WLF2/fvk1PTy8qKlJWVtbW1raxsdHX12/XBXQCwp5V6ArU1NTAoNF9+/YJ2xZRBC3yAAAmTZok0HNVV1c7ODig01laWjZJ+4RpA2hpbuHChXw2GT58OGxiZmbGj/7ly5cHcIn8Hz58+MuXL9thvsDBbrQDgJXTDQwMqqurhW2LKMJms9G8JI1Gy87OFtCJ8vLyyCFNVlZW2Id2CAJ1o9XV1fNg0D53qFSqv79/u69DUOC50fby9etXX19fCoVy8uTJ5pnoMAAACoWCpiaZTOa5c+cEcZbY2Njhw4c/e/YMvnR0dHz48GFPcvVKjEhCnoEBAJiamm7atOmPP/5wc3NDOwPZbPa6deuCgoKEZGNLCNuPiz1w8xLvXG2YDx8+oK+crKxsCu/SFK3n+vXryGNSKBRvb++2ZaLCcERwo9HAwED0xaDT6ZcvXya/y2azjx8/jvLjqKqqimYoIXaj7QLWcVJWVhZcpucuAzmAYfDgwS1mdCUIglzVrra2trCBGlLOyqqqqtWrV6Oe5eTkrl27JpAL6MYIyI2y2Wzy8lETH4rYt28f0tm2bVtbLkDAYDfadkpKSmCqi/PnzwvbFjEgLy+PXHtOU1Pz8uXLHMeMlZWVV69eHTly5NGjR9FBcoWCEydOwIOfP382MzNDxwcNGiQi+Qa7GAJyo69fv0afnYWFBTe16upqlFNGV1dXBJ8zcMBT2/H09MzKyho3btzSpUuFbYsY0KtXr9u3b0+fPj0/Px8AkJmZ6eTktHnzZltbW0NDw969ezOZzO/fv799+zYiIgImIWSxWOvWrePWYXBwsLOzc1lZGXxJoVAGDBiwc+dO3mYcOnSobxcrki62kKPfFixYwE1NWlp6zpw5x44dAwCkpKS8f/9+6NChnWEf32A32kZiYmLOnDlDo9H8/f1ReQwMb0aOHBkVFTV79myUkZ7BYFy8eJGbfnx8PIPBUFdX5/ju+fPnkQ8FABAEce/evRZtgGEVGFEgPT0dyYMHD+ahaWVlBd0oAODNmzfYjXYFWCzWqlWrWCyWp6enqampsM0RJ/T19WNjYwMCAg4cOPDp0yduan379p07d66bmxvyoX379kUVQzlWkcKIONXV1WgrsLy8PJ1Or6ysRO82L2BDxtjYGMmdsIOjtWA32haOHj367t07bW1tb29vYdsifkhISDg7Ozs7O6elpT1+/Pj79+/5+fklJSXy8vIqKiqDBg0aMmSIsbExGuNXV1e7uLgsWrTo1q1b5H62bNni7Ozc2rPjJ3phcfXqVfR5BQQELFq0iPxZpKen80jpTa6YQM7DLSJgN9pqGAwGnIDz9/fnfQvF8KZfv378JLE/f/58QEDAnTt3oqOjydWSLS0tBWkdhgN1dXXk7LE84KcojqGhIZLv3LkzZ84cbprS0tI0Go3JZAIAyDM5ooKw17jEj9mzZwMA5syZI2xDugssFuvnn38GABgYGBQ1L4OOETztydOKVuovXLiADgYEBBAEwWQytbW14RFJSUluSRQZDMb48eNR22HDhnXelfMH3sXUOh4+fHjz5k05ObkjR44I25buApVKvXLlypAhQz5//uzo6AiHJBixo3///g4N9OvXDwAgISGBSo7X1dXZ2tqeOXOmGpXDAyAxMXHr1q16enqoyiQQmeKPZCgEQQjbBrGhqqrK2Ng4JSXl8OHDv/32m7DN6V58+/Zt1KhROTk5rq6ufn5+wjaneyErKwsLYUlKSsrKyvLTpLy8HPo7MzOzd+/ecVMjCGLGjBnkEAs6nT5w4EAqlcpgMPLy8uBBeXn5iooK2OFPP/2EtvyKCsIeDosTHh4eAIAhQ4bU1dUJ25buSFRUFMxagMLvMZ2DQFOTVFRULOFZNc/c3PzDhw9oydHOzq7dF9TB4Id6fklISDh06BCVSj116hSNhpfmhMDYsWPPnDkDAFi/fn04qpmOEXNkZWUvXrz48OHDWbNmSZJq2cvKytrY2AQHB8fExMjJyRENz80iWMUAuwO+IAhi7dq1dXV1q1evHjNmjLDN6b4sWrQoISFh//79jo6OTRbuMWKNjY2NjY0Ni8XKysrKzc1VVlbW1NREhXU/f/6MNIcMGSIkG7mCR6N8ceHChadPn6qpqe3Zs0fYtnR3fHx8fv7558LCwhkzZvAZfIMRFyQkJLS0tMzNzfv3708uTv7q1SskDxs2TBim8QK70ZYpKCjw8vICABw+fFhJSUnY5nR3yAv38+bNwwv33YEHDx5AgU6nYzcqlmzcuDEvL2/8+PHz588Xti0YAADo2bNnaGioqqrqo0ePNm7cKGxzMIIlPj4eVSe0t7eXk5MTrj3NwW60BSIjIwMCAqSlpU+dOoVTkIgOOjo6N2/elJaWTklJqaqqqqurq6ur4z+ikMViwSZ4MCv6kO+UoplNDbtRXtTW1rq4uBAE4eXlZWBgIGxzMD9gYWERGRkZEhJibm4uJSUlJSVF3uvCm/nz58MmqqqqHBXgpv5WwWfJzG5LYWHh+waKior4bLVjx45//vkHylOmTLG2thaYgW0Hu1FeXL9+PTExUV9f39PTU9i2YDgwYsQIKhV/h8WD27dvD23gzp076Hh6enpQUFBNTU0T/dTUVEdHR5RAVlZW9uTJk51nbmvAAU+8WLBgAY1G69OnD65Vh2kR/CVpG+7u7sHBwcrKymPGjNHS0lJQUMjLy4uNjX379i2KFe3Ro0doaCi3CsxCR+TcaExMDLwvKSsrkxPA8CAhIQE+I9DpdLR3gk8Ignj37l1iYmJ+fn5eXp6cnJyGhsaIESNQEtkWS79iuiTx8fH8qH369MnIyIjNZgMAFi5cKGCjuiBPnz4NDg4GABQWFnLLuq2vr3/p0iVRjtcWOTc6e/bsjIwMAMDUqVPv37/PTxN3d3c4e6Ktrf3t2zc+T5Sfn793796goKCsrKzm7xoYGKxdu3bFihV4iIHhwYEDB6AP7d27N3ajvDEyMkKZKNAIafjw4T4+PmfOnElNTW2iT6FQzMzMFi1atHr1anIMqQgicm60c7h48aK7uzuPee7Pnz97eXnNmjWLnC8WgyGTm5uL6gOvWbOmPdnkRJwXL17Au4WKigqfTa5cuVJRUQEAQKlMRo4cOXLkyCZqPXv29PT09PDwSEhIiI2Nzc7OZjKZvXv37t2797Bhw8Tl19cd3aifn5+bmxuadqHT6RMmTDAwMFBRUcnLy0tLS3v69GlpaemWLVvE5VPECIVjx47BrG7S0tIuLi7CNkeAkMuv8kmrIlsoFIqxsTG5Uoh40e3c6O3bt9GTBY1Gc3d337p1a5OA3srKypCQEB65uDGYysrKU6dOQXnx4sVqamrCtQcjRLqXGy0tLV2zZg2UaTRaYGCgg4NDczVZWdlff/21c03DiBmXLl2ClaIpFApOPtvN6V4xd35+fpmZmVDesGEDRx+K6Z68ffv2pwYCAgJ4K7PZbFT+YPr06byLA2O6PN1oNEoQBPp5KCoqbtu2Tbj2YESK4uLiyMhIKE+ePJm38u3bt5OSkqDs7u4uWMswIk83cqPR0dHJyclQnj9/Pi7q2fWIj49v0QNC2lnr/P/+7/+gMGTIEP53oGK6Kt3Ijb548QLJ06dPF6IlGAFRXFzc5qz4cF88knloxsTEREVFQXnz5s1tOx2mK9E150bv3r0r3cCxY8fgwffv3yMFcvxaUVFRXFzc8+fPU1JSamtrO9tWjGgwYcIEdgO///47D839+/dDQVNTE0+vY0BXHY2yWCzkEFEmNPQcp6ioqKqqWlVVde7cuStXrrx+/RqGFgMA6HT6rFmz1qxZY2Fh0flmY9qJsbHx4cOH+dHcvXv3v//+24ZTpKamhoSEQHn9+vUivrsG0zmIrht99OgRn/lZYenXFiksLISCmppaWFjY4sWLGQxGE53q6uqrV69eu3bNw8Nj9+7duHSdeKGoqMjn3Ojp06fbdorDhw/DG7OcnNyKFSva1gmmiyG6boLFYpWXl7etLcwWA2UNDQ0olJaWQiEjI8PW1haOQKlUqq6urrq6ekVFRWJiItyUQhCEr69vdXU1n0MbTDehqKjo4sWLUF62bJmioqJw7cGICKLrRtuDpaUleUEJAEAQRFlZGZThVl8tLa1NmzY5ODj06dMHHq+srDx+/Li3tzecEPDz87OxsbG1te1c2zGiy6lTp+CtXUJCYt26dcI2ByMqiO4Sk7W1dSl/8PMcR6FQJCQk0MvVq1cnJSWtW7cO+VAAgKys7KZNm1BsKUEQKK4Fg6mrqztx4gSU58yZo6urK1x7MKKD6I5GJSQk+JwbJftHHsjJycHp0SFDhhw/fpyb2vz58/38/GAJrSdPnjAYDHV1df5MxnRlAgMDYQpHAICbm5twjcGIFKI7Gu1wkFNGT/fcQFGlbDb78+fPgjULIyag3Z/jxo3DZZcwZLqRG+3fvz8UsrOzeZeQ7Nu3L5LRAATTnXn06BGKO8a7PzFN6EZuFGUzrKqqQrtCOYLW9AHfMwYYcSc6OnpAA/7+/k3eRbPkurq6M2bM6HTrMCKN6M6Ndjjm5uZIjoiI0NfX56aZmJiIZB0dHcGahRENKisrU1JSoIxCjCHx8fFhYWFQdnd3x3dWTBO60Wh0xowZkpKSUL5y5Qo3taqqKlhjCwAgKyvbhrzfmC7GwYMHYa0EZWXlxYsXC9scjMjRNd1obW1tfgMwoh4AoKKiYm1tDeXnz5/fuHGDY1svL6+CggIoz5o1C1WSwXRt6HR63wYUFBTQ8aysrKtXr0L5f//7H04MhmlO13yof/Dggb29PZQPHTqEwlP27Nnz8OFDuL4EhxXkSiHV1dVbt2718/ODL6WkpLZu3dqpdmPaxMqVK3NzcwEA/fr147PJ7Nmz9fT0AKng2tixY79//95c89u3b+j7s3bt2vZbi+l6dE03yg0zMzN3d3eYoaeiomLu3LkwX6SKikpGRkZoaGhOTg5SPnDgAM5qLha0oYbHL7/88ssvv/CjOWbMGFGukI4RBbqXGwUA+Pr6lpSUoMwUHz58+PDhQxMdKpXq4+Pj6ura6dZhMBjxo2u6UQ0NDfS03mRFnkKhnDp1aurUqZs3b/7y5Uvztj/99JOvry8egGAwGD6hoHLtIsKjR49g4js1NTU+94pER0fDh3FZWdkpU6bwf664uLhnz55lZ2cXFhb26dNHR0dn7NixcMoMg8Fg+ETk3CgGg8GIF10z4AmDwWA6DexGMRgMpl1gN4rBYDDtArtRDAaDaRfYjWIwGEy7+H9MJWIbCemCRwAAAQR6VFh0cmRraXRQS0wgcmRraXQgMjAyMC4wOS4xAAB4nHu/b+09BiDgAWJGBgjgAmJOIG5g5ODQANLMTBIMbBwKQBaLBCMbRIhFggnOYmYEsxgZJVjgLFY4iw3OYoezOOAsTm4OZqAhCkALmZk0mFgZGZiAiJ2BkY2BkYVBhEGcEeYwrqBtHA7TTxbY3rhWv1+3cs3+dduUbK+tZbJvW/nWtjgjcZ/jnml2jkn+9qpTG+2i3G3377p7eP/mCl77fL7d9pOLHu5/tk7TPunApH3n9b/tN0lJ2S9gy2m/s1vBfmp96P6UyS32Ox9ut+uaEme/1vfgfp+HCg4rGH/vu/d01j4xAHn7Q6q9+L3wAAABFnpUWHRNT0wgcmRraXQgMjAyMC4wOS4xAAB4nIWRTU4EIRBG95yiLjCkfqiCWtsmJkZNXHgH994/QoPMYHQgLOpLU6+pR4C23o/nzy+YS44QgBDAAfDP7e7wwYgY2nmOJEatwohaSi0uGOuZBG/wH+J2N8qFoqScBkU890oJFR7uU+hKqR1Ehv0GzDhuxZ7SjsILpdDsVaHOy+JbiiwTqSCPOZStVRSTUYKn+5S0ULKRdIoZD7tczHYUXSjOIr23OP/cqr3bhmKLF+M8bBRJ2CdC0byj5IUi6sNuMdfhiqqrDaXcULh2yLCR/PRcqypcdxSfFD9VUw+0BsIZ0vmu9Q8STh88v8ivUGbgc+Zr0BFeAB5fj/ANKG6J+qg5lT8AAAEdelRYdFNNSUxFUyByZGtpdCAyMDIwLjA5LjEAAHicZY67bkIxDEB/pSNIl8jPxA7qUHXp0seO7kClblyBULvx8bWzZrGdc/zI6bPDuju9dl53z5FoPDDiW5d1n0nXfcQ6YhvRRvT16bGjglyRFyig1qwuByjuzo2OUAwBPB0pg2O6xuFCIVaQ0U0ESJpNLgJ6PGBhaZIE2NtQitE8VCyiBEqVeMEicdxStCgwTK1kMZOLLWpJ58TMicwJVXKeK5jFPyo1ZBqO45rFSmBtGorVUbLZqktM5XUEtCNF5jZuiANJyyr+paz75fx73b7u11uHsl0vL/F6P98+/rbvn3uBjjPkTjOkzjPELjOUrjPUXmdYe5th6zZD6z5Df/wDlD2UCzeBaOUAAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rdkitmol = RDKitMol.FromXYZ(xyz_wo_header, backend='openbabel', header=False)\n", - "rdkitmol" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Using `jensen` backend. For most cases, Jensen's method returns the same molecule as using `pybel` backend" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rdkitmol = RDKitMol.FromXYZ(xyz, backend='jensen', header=True)\n", - "rdkitmol" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Here some options for Jensen et al. method are listed. The nomenclature is kept as it is in the original API." - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rdkitmol = RDKitMol.FromXYZ(xyz, backend='jensen',\n", - " header=True,\n", - " allow_charged_fragments=False, # radical => False\n", - " use_graph=False, # accelerate for larger molecule but needs networkx as backend\n", - " use_huckel=True,\n", - " embed_chiral=True)\n", - "rdkitmol" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 3. Check the xyz of rdkitmol conformer" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([[-1.77596, 0.55032, -0.86182],\n", - " [-1.86964, 0.09038, -2.31577],\n", - " [-0.88733, 1.17355, -0.71816],\n", - " [-1.70996, -0.29898, -0.17103],\n", - " [-2.90695, 1.36613, -0.53334],\n", - " [-0.58005, -0.57548, -2.7694 ],\n", - " [-0.35617, -1.45641, -2.15753],\n", - " [ 0.26635, 0.11565, -2.71288],\n", - " [-0.67469, -0.92675, -3.80265],\n", - " [-2.92111, -0.86791, -2.44871],\n", - " [-2.1041 , 0.93662, -2.97107],\n", - " [-3.87923, 0.48257, 0.09884],\n", - " [-4.43402, 0.34141, -0.69232],\n", - " [-4.16782, -0.23433, -2.64382]])" - ] - }, - "execution_count": 7, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "rdkitmol.GetConformer().GetPositions()" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### 4. Export xyz" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "C -1.775960 0.550320 -0.861820\n", - "C -1.869640 0.090380 -2.315770\n", - "H -0.887330 1.173550 -0.718160\n", - "H -1.709960 -0.298980 -0.171030\n", - "O -2.906950 1.366130 -0.533340\n", - "C -0.580050 -0.575480 -2.769400\n", - "H -0.356170 -1.456410 -2.157530\n", - "H 0.266350 0.115650 -2.712880\n", - "H -0.674690 -0.926750 -3.802650\n", - "O -2.921110 -0.867910 -2.448710\n", - "H -2.104100 0.936620 -2.971070\n", - "O -3.879230 0.482570 0.098840\n", - "H -4.434020 0.341410 -0.692320\n", - "O -4.167820 -0.234330 -2.643820\n" - ] - } - ], - "source": [ - "print(rdkitmol.ToXYZ(header=False))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "@webio": { - "lastCommId": null, - "lastKernelId": null - }, - "kernelspec": { - "display_name": "Python 3.7.6 64-bit ('arc_env': conda)", - "language": "python", - "name": "python37664bitarcenvconda83c4abf9215d4a698ce68e2a44e6e6bc" - }, - "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.7" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/rdmc/utils.py b/rdmc/utils.py index 642e50b7..8b024ce4 100644 --- a/rdmc/utils.py +++ b/rdmc/utils.py @@ -18,9 +18,9 @@ from rdkit.Chem import rdDetermineBonds except ImportError: rdDetermineBonds = None - from rdmc.external.xyz2mol import parse_xyz_by_jensen as parse_xyz_by_jensen_rdmc # TODO: Could raise an warning says RDKit built-in xyz2mol not supported due to lower version # uses a rdmc-implemented version of xyz2mol +from rdmc.external.xyz2mol import parse_xyz_by_jensen as parse_xyz_by_jensen_rdmc from rdkit.Chem.TorsionFingerprints import CalculateTorsionLists # Mute RDKit's error logs