{ "cells": [ { "cell_type": "markdown", "id": "7fb27b941602401d91542211134fc71a", "metadata": {}, "source": [ "## Hydrogen Bonds from MD" ] }, { "cell_type": "markdown", "id": "07cc68bb-55a4-40b0-9ada-360ae74ab807", "metadata": {}, "source": [ "### Initial imports" ] }, { "cell_type": "code", "execution_count": 1, "id": "acae54e37e7d407bbb7b55eff062a284", "metadata": {}, "outputs": [], "source": [ "import os\n", "from io import StringIO\n", "\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from scm.flexmd import PDBMolecule\n", "from scm.plams import AMSJob, RKFTrajectoryFile, Settings, from_smiles, packmol, view" ] }, { "cell_type": "markdown", "id": "9a63283cbaf04dbcab1f6479b197f3a8", "metadata": {}, "source": [ "### Run Short MD Simulation" ] }, { "cell_type": "code", "execution_count": 2, "id": "8dd0d8092fe74a7c96281538738b07e2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[31.03|12:27:35] JOB plamsjob STARTED\n", "[31.03|12:27:35] JOB plamsjob RUNNING\n", "[31.03|12:27:36] JOB plamsjob FINISHED\n", "[31.03|12:27:36] JOB plamsjob SUCCESSFUL\n" ] } ], "source": [ "mol = packmol(from_smiles(\"O\"), n_molecules=8, density=1.0)\n", "\n", "settings = Settings()\n", "settings.input.ams.Task = \"MolecularDynamics\"\n", "settings.input.ams.MolecularDynamics.NSteps = 200\n", "settings.input.ams.MolecularDynamics.TimeStep = 0.5\n", "settings.input.ams.MolecularDynamics.InitialVelocities.Temperature = 300\n", "settings.input.ams.MolecularDynamics.Trajectory.SamplingFreq = 1\n", "settings.input.ReaxFF.ForceField = \"Water2017.ff\"\n", "settings.runscript.nproc = 1\n", "os.environ[\"OMP_NUM_THREADS\"] = \"1\"\n", "\n", "job = AMSJob(settings=settings, molecule=mol)\n", "job.run();" ] }, { "cell_type": "code", "execution_count": 3, "id": "72eea5119410473aa328ad9291626812", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "view(mol, direction=\"tilt_z\", width=200, height=200, padding=-1)" ] }, { "cell_type": "markdown", "id": "8edb47106e1a46a883d545849b8ab81b", "metadata": {}, "source": [ "### Hydrogen-bond analysis helpers" ] }, { "cell_type": "code", "execution_count": 4, "id": "10185d26023b46108eb7d9f57d49d2b3", "metadata": {}, "outputs": [], "source": [ "def collect_hbond_counts(filename, indices=None, elements=None):\n", " indices = [] if indices is None else list(indices)\n", " elements = {\"O\"} if elements is None else set(elements)\n", "\n", " rkf = RKFTrajectoryFile(filename)\n", " mol = rkf.get_plamsmol()\n", "\n", " for i, at in enumerate(mol.atoms):\n", " if at.symbol in elements and i not in indices:\n", " indices.append(i)\n", "\n", " f = StringIO()\n", " mol.writexyz(f)\n", " f.seek(0)\n", " pdb = PDBMolecule(xyzstring=f.read(), bonddetectorflag=False)\n", " f.close()\n", "\n", " heavy_atoms = [i for i, at in enumerate(mol.atoms) if at.symbol != \"H\"]\n", " hydrogens = [i for i, at in enumerate(mol.atoms) if at.symbol == \"H\"]\n", "\n", " values = []\n", " for istep in range(len(rkf)):\n", " crd, cell = rkf.read_frame(istep, molecule=mol)\n", " d_indices, boxlist = pdb.divide_into_cubes(range(len(mol)))\n", " pdb.coords = crd\n", " pdb.set_cellvectors(cell)\n", "\n", " for iat in indices:\n", " atomlists = (heavy_atoms, hydrogens)\n", " atoms, hs = pdb.find_neighbours_using_cubes(iat, d_indices, boxlist, atomlists)\n", " hbonds = pdb.get_hbonds(iat, atoms, hs)\n", " values.append(len(hbonds))\n", "\n", " rkf.close()\n", " return values\n", "\n", "\n", "def normalized_histogram(values):\n", " xvalues = np.arange(max(values) + 1, dtype=float)\n", " yvalues = np.bincount(values, minlength=len(xvalues))\n", " return xvalues, yvalues / float(len(values))" ] }, { "cell_type": "markdown", "id": "8763a12b2bbd4a93a75aff182afb95dc", "metadata": {}, "source": [ "### Analyze trajectory and save histogram" ] }, { "cell_type": "code", "execution_count": 5, "id": "7623eae2785240b9bd12b16a66d81610", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Wrote normalized histogram to hist.txt\n" ] } ], "source": [ "values = collect_hbond_counts(job.results.rkfpath(), elements={\"O\"})\n", "xvalues, yfrac = normalized_histogram(values)\n", "\n", "with open(\"hist.txt\", \"w\") as outfile:\n", " for x, y in zip(xvalues, yfrac):\n", " outfile.write(f\"{x:20.10f} {y:20.10f}\\n\")\n", "\n", "print(\"Wrote normalized histogram to hist.txt\")" ] }, { "cell_type": "markdown", "id": "7cdc8c89c7104fffa095e18ddfef8986", "metadata": {}, "source": [ "### Plot the hydrogen-bond distribution" ] }, { "cell_type": "code", "execution_count": 6, "id": "b118ea5561624da68c537baed56e602f", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkAAAAHHCAYAAABXx+fLAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMywgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/P9b71AAAACXBIWXMAAA9hAAAPYQGoP6dpAABL6UlEQVR4nO3deVxWZf7/8fcNyg2igIqyKAkuuQupSZpbRWI5JrZ8zRpFMptcMsOsKBOXGtDMyMllanLLSpsWp8WwIq2pcM9WJXU0NQWXFAQLFK7fH/648xY0QPBWzuv5eJxH3te5znU+53Ar7865zn3bjDFGAAAAFuLm6gIAAAAuNgIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQAACwHAIQUEG7d++WzWbTokWLXF1KlQsNDdVf/vIXV5fhpHfv3urdu7ery7hk2Gw2TZ482fF60aJFstls2r17d5Xve9iwYQoNDXW8Lv67MXPmzCrftyRNnjxZNpvtouwL1QcBCNVG8T/4GzduLHV979691a5du4tcFXB+r732mlJSUlxdhiTpxIkTmjx5stasWePqUkq4lGvD5YkABAAuVFUBaMiQIfrtt9/UpEmTMm9z4sQJTZkypdwh46WXXlJGRkY5Kyyf89U2ceJE/fbbb1W6f1Q/BCCgiuXl5bm6BFiQu7u7PD09q/TWUPF7u2bNmrLb7VW2nz9To0YNeXp6umz/uDwRgGBZvXr1Unh4eKnrWrZsqejoaMfrY8eOadiwYfL19ZWfn59iY2N17NixEtsNGzZMtWvX1s6dO3XzzTerTp06uvvuuyWd/mUxfvx4hYSEyG63q2XLlpo5c6aMMU5j/Pbbbxo7dqz8/f1Vp04d3XLLLfrll19KzPGQpF9++UX33HOPAgICZLfb1bZtWy1YsMCpz5o1a2Sz2fTGG2/o6aefVuPGjeXp6akbbrhBO3bsKNc5++ijjxQRESFPT0+1adNGb7/9dok+//vf/3THHXeoXr16qlWrlq655hp98MEHF1TTiy++qGbNmsnLy0tdunTRf//733LVvXTpUnXp0kW1atVS3bp11bNnT3300UdOfebOnau2bdvKbrcrODhYo0ePLvEzDg0N1bBhw0qMf/Z8pLIeX+/evfXBBx/o559/ls1mk81mc5pLU5r8/Hw99NBDatCggeP9sW/fvhL9SpsDtHHjRkVHR8vf319eXl4KCwvTPffcI+n0vJ0GDRpIkqZMmeKop/g9d7739tlzgM703HPPqUmTJvLy8lKvXr30/fffn/fcFTtzzD+rrbQ5QKdOndK0adPUrFkz2e12hYaG6vHHH1d+fr5Tv+L5bV988YW6dOkiT09PNW3aVEuWLCn1eFB91HB1AUBly87O1uHDh0u0nzx50un1kCFDNGLECH3//fdOc4M2bNign376SRMnTpQkGWM0YMAAffHFF7r//vvVunVrvfPOO4qNjS11/6dOnVJ0dLS6d++umTNnqlatWjLG6JZbbtHq1as1fPhwRUREaNWqVZowYYJ++eUXPffcc47thw0bpjfeeENDhgzRNddco88++0z9+vUrsZ+srCxdc801stlsGjNmjBo0aKAPP/xQw4cPV05OjsaNG+fUPzk5WW5ubnr44YeVnZ2tGTNm6O6779a6devKdF63b9+uQYMG6f7771dsbKwWLlyoO+64Q6mpqbrxxhsdNXXr1k0nTpzQ2LFjVb9+fS1evFi33HKL3nzzTQ0cOLDcNb388sv629/+pm7dumncuHH63//+p1tuuUX16tVTSEjIn9Y9ZcoUTZ48Wd26ddPUqVPl4eGhdevW6dNPP1WfPn0knf4FOmXKFEVFRWnkyJHKyMjQvHnztGHDBn355ZeqWbNmmc7R2f7s+J544gllZ2dr3759jvdA7dq1zzvmvffeq6VLl+quu+5St27d9Omnn5b6/jjbwYMH1adPHzVo0ECPPfaY/Pz8tHv3bkeIbdCggebNm6eRI0dq4MCBuvXWWyVJHTp0cIxR2nv7fJYsWaLjx49r9OjR+v333/X888/r+uuv13fffaeAgIA/rblYWWo727333qvFixfr9ttv1/jx47Vu3TolJSVp69ateuedd5z67tixQ7fffruGDx+u2NhYLViwQMOGDVOnTp3Utm3bMteJy4wBqomFCxcaSedd2rZt6+h/7Ngx4+npaR599FGnccaOHWu8vb1Nbm6uMcaYFStWGElmxowZjj6nTp0yPXr0MJLMwoULHe2xsbFGknnsscecxiwe46mnnnJqv/32243NZjM7duwwxhizadMmI8mMGzfOqd+wYcOMJJOYmOhoGz58uAkKCjKHDx926nvnnXcaX19fc+LECWOMMatXrzaSTOvWrU1+fr6j3/PPP28kme++++6859UYY5o0aWIkmbfeesvRlp2dbYKCgsxVV13laBs3bpyRZP773/862o4fP27CwsJMaGioKSwsLFdNBQUFpmHDhiYiIsKp34svvmgkmV69ep237u3btxs3NzczcOBAx76LFRUVGWOMOXjwoPHw8DB9+vRx6vPCCy8YSWbBggVO5yE2NrbEfnr16uVUS3nOeb9+/UyTJk3OexzFtmzZYiSZUaNGObXfddddJd4fxX8fdu3aZYwx5p133jGSzIYNG845/qFDh0qMU+xc7+3idWcew65du4wk4+XlZfbt2+doX7dunZFkHnroIUfb2efuXGOer7bExERz5q+z4vN07733OvV7+OGHjSTz6aefOtqK39uff/65o+3gwYPGbreb8ePHl9gXqg9ugaHamTNnjj7++OMSy9n/t+jr66sBAwbo9ddfd9yGKiws1PLlyxUTEyNvb29J0sqVK1WjRg2NHDnSsa27u7seeOCBc9ZwZt/iMdzd3TV27Fin9vHjx8sYow8//FCSlJqaKkkaNWqUU7+z92WM0VtvvaX+/fvLGKPDhw87lujoaGVnZ2vz5s1O28TFxcnDw8PxukePHpJO37Iqi+DgYKcrOD4+Pho6dKi+/vprZWZmOo6zS5cu6t69u6Nf7dq1dd9992n37t368ccfy1XTxo0bdfDgQd1///1O/YpvR/6ZFStWqKioSJMmTZKbm/M/d8W3TD755BMVFBRo3LhxTn1GjBghHx+fErfvyuNCz/nZVq5cKUkl3kdnX+0rjZ+fnyTp/fffL3E1tDzOfm+fT0xMjBo1auR43aVLF0VGRjqOo6oUjx8fH+/UPn78eEkq8TNt06aN42cjnb7i1LJlywr/nHB5IACh2unSpYuioqJKLHXr1i3Rd+jQodqzZ49jTsknn3yirKwsDRkyxNHn559/VlBQUIlbEy1btix1/zVq1FDjxo2d2n7++WcFBwerTp06Tu2tW7d2rC/+r5ubm8LCwpz6NW/e3On1oUOHdOzYMb344otq0KCB0xIXFyfp9C2PM11xxRVOr4vPx9GjRyVJubm5yszMdCyHDh0qUcPZ8yyuvPJKSXLMM/n5559LPS9nH2dZayru36JFC6d+NWvWVNOmTUvs52w7d+6Um5ub2rRpc84+xfs4u24PDw81bdq0RM3l8WfHV17F749mzZo5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QfHx8Y7XxV+mBgAAqieXXgHy8PBQp06dlJaW5mgrKipSWlqaunbtWqJ/q1at9N1332nLli2O5ZZbbtF1112nLVu2KCQkRGFhYQoMDHQaMycnR+vWrSt1TEmy2+2OLz7lC1ABAKj+XP5t8PHx8YqNjVXnzp3VpUsXpaSkKC8vT3FxcZKkoUOHqlGjRkpKSpKnp6fatWvntL2fn58kObWPGzdOTz31lFq0aKGwsDA9+eSTCg4OLvF5QQAAwJpcHoAGDRqkQ4cOadKkScrMzFRERIRSU1Mdk5j37NkjN7fyXah65JFHlJeXp/vuu0/Hjh1T9+7dlZqaKk9Pz6o4BAAAcJmxGWOMq4u41OTk5MjX11fZ2dncDqtGQh/7wNUlXDZ2J/dzdQkAUG7l+f19WT0FBgAAUBkIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHJc/kGIVsTn0ZQdn0cDAKgKXAECAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWQwACAACWc0kEoDlz5ig0NFSenp6KjIzU+vXrz9n37bffVufOneXn5ydvb29FRETolVdeceozbNgw2Ww2p6Vv375VfRgAAOAyUcPVBSxfvlzx8fGaP3++IiMjlZKSoujoaGVkZKhhw4Yl+terV09PPPGEWrVqJQ8PD73//vuKi4tTw4YNFR0d7ejXt29fLVy40PHabrdflOMBAACXPpdfAZo1a5ZGjBihuLg4tWnTRvPnz1etWrW0YMGCUvv37t1bAwcOVOvWrdWsWTM9+OCD6tChg7744gunfna7XYGBgY6lbt26F+NwAADAZcClAaigoECbNm1SVFSUo83NzU1RUVFKT0//0+2NMUpLS1NGRoZ69uzptG7NmjVq2LChWrZsqZEjR+rIkSPnHCc/P185OTlOCwAAqL5cegvs8OHDKiwsVEBAgFN7QECAtm3bds7tsrOz1ahRI+Xn58vd3V1z587VjTfe6Fjft29f3XrrrQoLC9POnTv1+OOP66abblJ6errc3d1LjJeUlKQpU6ZU3oEBAIBLmsvnAFVEnTp1tGXLFuXm5iotLU3x8fFq2rSpevfuLUm68847HX3bt2+vDh06qFmzZlqzZo1uuOGGEuMlJCQoPj7e8TonJ0chISFVfhwAAMA1XBqA/P395e7urqysLKf2rKwsBQYGnnM7Nzc3NW/eXJIUERGhrVu3KikpyRGAzta0aVP5+/trx44dpQYgu93OJGkAACzEpXOAPDw81KlTJ6WlpTnaioqKlJaWpq5du5Z5nKKiIuXn559z/b59+3TkyBEFBQVdUL0AAKB6cPktsPj4eMXGxqpz587q0qWLUlJSlJeXp7i4OEnS0KFD1ahRIyUlJUk6PV+nc+fOatasmfLz87Vy5Uq98sormjdvniQpNzdXU6ZM0W233abAwEDt3LlTjzzyiJo3b+70mDwAALAulwegQYMG6dChQ5o0aZIyMzMVERGh1NRUx8ToPXv2yM3tjwtVeXl5GjVqlPbt2ycvLy+1atVKS5cu1aBBgyRJ7u7u+vbbb7V48WIdO3ZMwcHB6tOnj6ZNm8ZtLgAAIEmyGWOMq4u41OTk5MjX11fZ2dny8fGp9PFDH/ug0sesrnYn96u0sTjvZVeZ5x0ALpby/P52+QchAgAAXGwEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDkEIAAAYDmXRACaM2eOQkND5enpqcjISK1fv/6cfd9++2117txZfn5+8vb2VkREhF555RWnPsYYTZo0SUFBQfLy8lJUVJS2b99e1YcBAAAuEy4PQMuXL1d8fLwSExO1efNmhYeHKzo6WgcPHiy1f7169fTEE08oPT1d3377reLi4hQXF6dVq1Y5+syYMUOzZ8/W/PnztW7dOnl7eys6Olq///77xTosAABwCXN5AJo1a5ZGjBihuLg4tWnTRvPnz1etWrW0YMGCUvv37t1bAwcOVOvWrdWsWTM9+OCD6tChg7744gtJp6/+pKSkaOLEiRowYIA6dOigJUuWaP/+/VqxYsVFPDIAAHCpcmkAKigo0KZNmxQVFeVoc3NzU1RUlNLT0/90e2OM0tLSlJGRoZ49e0qSdu3apczMTKcxfX19FRkZec4x8/PzlZOT47QAAIDqy6UB6PDhwyosLFRAQIBTe0BAgDIzM8+5XXZ2tmrXri0PDw/169dP//jHP3TjjTdKkmO78oyZlJQkX19fxxISEnIhhwUAAC5xLr8FVhF16tTRli1btGHDBj399NOKj4/XmjVrKjxeQkKCsrOzHcvevXsrr1gAAHDJqeHKnfv7+8vd3V1ZWVlO7VlZWQoMDDzndm5ubmrevLkkKSIiQlu3blVSUpJ69+7t2C4rK0tBQUFOY0ZERJQ6nt1ul91uv8CjAQAAlwuXXgHy8PBQp06dlJaW5mgrKipSWlqaunbtWuZxioqKlJ+fL0kKCwtTYGCg05g5OTlat25ducYEAADVl0uvAElSfHy8YmNj1blzZ3Xp0kUpKSnKy8tTXFycJGno0KFq1KiRkpKSJJ2er9O5c2c1a9ZM+fn5WrlypV555RXNmzdPkmSz2TRu3Dg99dRTatGihcLCwvTkk08qODhYMTExrjpMAABwCXF5ABo0aJAOHTqkSZMmKTMzUxEREUpNTXVMYt6zZ4/c3P64UJWXl6dRo0Zp37598vLyUqtWrbR06VINGjTI0eeRRx5RXl6e7rvvPh07dkzdu3dXamqqPD09L/rxAQCAS4/NGGNcXcSlJicnR76+vsrOzpaPj0+ljx/62AeVPmZ1tTu5X6WNxXkvu8o87wBwsZTn9/dl+RQYAADAhSAAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAyyEAAQAAy7kkAtCcOXMUGhoqT09PRUZGav369efs+9JLL6lHjx6qW7eu6tatq6ioqBL9hw0bJpvN5rT07du3qg8DAABcJlwegJYvX674+HglJiZq8+bNCg8PV3R0tA4ePFhq/zVr1mjw4MFavXq10tPTFRISoj59+uiXX35x6te3b18dOHDAsbz++usX43AAAMBlwOUBaNasWRoxYoTi4uLUpk0bzZ8/X7Vq1dKCBQtK7f/qq69q1KhRioiIUKtWrfSvf/1LRUVFSktLc+pnt9sVGBjoWOrWrXsxDgcAAFwGXBqACgoKtGnTJkVFRTna3NzcFBUVpfT09DKNceLECZ08eVL16tVzal+zZo0aNmyoli1bauTIkTpy5Eil1g4AAC5fNVy588OHD6uwsFABAQFO7QEBAdq2bVuZxnj00UcVHBzsFKL69u2rW2+9VWFhYdq5c6cef/xx3XTTTUpPT5e7u3uJMfLz85Wfn+94nZOTU8EjAgAAlwOXBqALlZycrGXLlmnNmjXy9PR0tN95552OP7dv314dOnRQs2bNtGbNGt1www0lxklKStKUKVMuSs0AAMD1XHoLzN/fX+7u7srKynJqz8rKUmBg4Hm3nTlzppKTk/XRRx+pQ4cO5+3btGlT+fv7a8eOHaWuT0hIUHZ2tmPZu3dv+Q4EAABcVlwagDw8PNSpUyenCczFE5q7du16zu1mzJihadOmKTU1VZ07d/7T/ezbt09HjhxRUFBQqevtdrt8fHycFgAAUH25/Cmw+Ph4vfTSS1q8eLG2bt2qkSNHKi8vT3FxcZKkoUOHKiEhwdF/+vTpevLJJ7VgwQKFhoYqMzNTmZmZys3NlSTl5uZqwoQJWrt2rXbv3q20tDQNGDBAzZs3V3R0tEuOEQAAXFoqNAdo9erVuu666yqlgEGDBunQoUOaNGmSMjMzFRERodTUVMfE6D179sjN7Y+cNm/ePBUUFOj22293GicxMVGTJ0+Wu7u7vv32Wy1evFjHjh1TcHCw+vTpo2nTpslut1dKzQAA4PJmM8aY8m5kt9vVuHFjxcXFKTY2ViEhIVVRm8vk5OTI19dX2dnZVXI7LPSxDyp9zOpqd3K/ShuL8152lXneAeBiKc/v7wrdAvvll180ZswYvfnmm2ratKmio6P1xhtvqKCgoEIFAwAAXEwVCkD+/v566KGHtGXLFq1bt05XXnmlRo0apeDgYI0dO1bffPNNZdcJAABQaS54EnTHjh2VkJCgMWPGKDc3VwsWLFCnTp3Uo0cP/fDDD5VRIwAAQKWqcAA6efKk3nzzTd18881q0qSJVq1apRdeeEFZWVnasWOHmjRpojvuuKMyawUAAKgUFXoK7IEHHtDrr78uY4yGDBmiGTNmqF27do713t7emjlzpoKDgyutUAAAgMpSoQD0448/6h//+IduvfXWcz5a7u/vr9WrV19QcQAAAFWhQrfAEhMTdccdd5QIP6dOndLnn38uSapRo4Z69ep14RUCAABUsgoFoOuuu06//vprifbs7OxK+4BEAACAqlKhAGSMkc1mK9F+5MgReXt7X3BRAAAAValcc4BuvfVWSZLNZtOwYcOcboEVFhbq22+/Vbdu3Sq3QgAAgEpWrgDk6+sr6fQVoDp16sjLy8uxzsPDQ9dcc41GjBhRuRUCAABUsnIFoIULF0qSQkND9fDDD3O7CwAAXJYq9Bh8YmJiZdcBAABw0ZQ5AHXs2FFpaWmqW7eurrrqqlInQRfbvHlzpRQHAABQFcocgAYMGOCY9BwTE1NV9QAAAFS5MgegM297cQsMAABczi742+ABAAAuN2W+AlS3bt3zzvs5U2mfEg0AAHCpKHMASklJqcIyAAAALp4yB6DY2NiqrAMAAOCiKXMAysnJkY+Pj+PP51PcDwAA4FJUrjlABw4cUMOGDeXn51fqfKDiL0ktLCys1CIBAAAqU5kD0Keffqp69epJklavXl1lBQEAAFS1MgegXr16lfpnAACAy02FvgtMko4ePaqXX35ZW7dulSS1adNGcXFxjqtEAAAAl6oKfRDi559/rtDQUM2ePVtHjx7V0aNHNXv2bIWFhenzzz+v7BoBAAAqVYWuAI0ePVqDBg3SvHnz5O7uLkkqLCzUqFGjNHr0aH333XeVWiQAAEBlqtAVoB07dmj8+PGO8CNJ7u7uio+P144dOyqtOAAAgKpQoQDUsWNHx9yfM23dulXh4eEXXBQAAEBVKvMtsG+//dbx57Fjx+rBBx/Ujh07dM0110iS1q5dqzlz5ig5ObnyqwQAAKhEZQ5AERERstlsMsY42h555JES/e666y4NGjSocqoDAACoAmUOQLt27arKOgAAAC6aMgegJk2aVGUdAAAAF02FPwhRkn788Uft2bNHBQUFTu233HLLBRUFAABQlSr0FNj//vc/hYeHq127durXr59iYmIUExOjgQMHauDAgeUeb86cOQoNDZWnp6ciIyO1fv36c/Z96aWX1KNHD9WtW1d169ZVVFRUif7GGE2aNElBQUHy8vJSVFSUtm/fXu66AABA9VShK0APPvigwsLClJaWprCwMK1fv15HjhzR+PHjNXPmzHKNtXz5csXHx2v+/PmKjIxUSkqKoqOjlZGRoYYNG5bov2bNGg0ePFjdunWTp6enpk+frj59+uiHH35Qo0aNJEkzZszQ7NmztXjxYoWFhenJJ59UdHS0fvzxR3l6elbkkAFUQOhjH7i6hMvK7uR+ri4BsIwKXQFKT0/X1KlT5e/vLzc3N7m5ual79+5KSkrS2LFjyzXWrFmzNGLECMXFxalNmzaaP3++atWqpQULFpTa/9VXX9WoUaMUERGhVq1a6V//+peKioqUlpYm6fTVn5SUFE2cOFEDBgxQhw4dtGTJEu3fv18rVqyoyOECAIBqpkIBqLCwUHXq1JEk+fv7a//+/ZJOT5TOyMgo8zgFBQXatGmToqKi/ijIzU1RUVFKT08v0xgnTpzQyZMnHV/CumvXLmVmZjqN6evrq8jIyHOOmZ+fr5ycHKcFAABUXxUKQO3atdM333wjSYqMjNSMGTP05ZdfaurUqWratGmZxzl8+LAKCwsVEBDg1B4QEKDMzMwyjfHoo48qODjYEXiKtyvPmElJSfL19XUsISEhZT4GAABw+alQAJo4caKKiookSVOnTtWuXbvUo0cPrVy5UrNnz67UAs8nOTlZy5Yt0zvvvHNBc3sSEhKUnZ3tWPbu3VuJVQIAgEtNhSZBR0dHO/7cvHlzbdu2Tb/++qvq1q0rm81W5nH8/f3l7u6urKwsp/asrCwFBgaed9uZM2cqOTlZn3zyiTp06OBoL94uKytLQUFBTmNGRESUOpbdbpfdbi9z3QAA4PJWoStAZ9q7d6/27t2revXqlSv8SJKHh4c6derkmMAsyTGhuWvXrufcbsaMGZo2bZpSU1PVuXNnp3VhYWEKDAx0GjMnJ0fr1q0775gAAMA6KhSATp06pSeffFK+vr4KDQ1VaGiofH19NXHiRJ08ebJcY8XHx+ull17S4sWLtXXrVo0cOVJ5eXmKi4uTJA0dOlQJCQmO/tOnT9eTTz6pBQsWKDQ0VJmZmcrMzFRubq4kyWazady4cXrqqaf07rvv6rvvvtPQoUMVHBysmJiYihwuAACoZip0C+yBBx7Q22+/rRkzZjiuqqSnp2vy5Mk6cuSI5s2bV+axBg0apEOHDmnSpEnKzMxURESEUlNTHZOY9+zZIze3P3LavHnzVFBQoNtvv91pnMTERE2ePFnS6S9pzcvL03333adjx46pe/fuSk1N5TOAAACAJMlmzvx69zLy9fXVsmXLdNNNNzm1r1y5UoMHD1Z2dnalFegKOTk58vX1VXZ2tnx8fCp9fD4cruwq84PhOO9lV1nnnXNePnwQInBhyvP7u0K3wOx2u0JDQ0u0h4WFycPDoyJDAgAAXDQVCkBjxozRtGnTlJ+f72jLz8/X008/rTFjxlRacQAAAFWhzHOAbr31VqfXn3zyiRo3bqzw8HBJ0jfffKOCggLdcMMNlVshAABAJStzAPL19XV6fdtttzm95tOTAQDA5aLMAWjhwoVVWQcAAMBFU6HH4IsdOnTI8eWnLVu2VIMGDSqlKAAAgKpUoUnQeXl5uueeexQUFKSePXuqZ8+eCg4O1vDhw3XixInKrhEAAKBSVSgAxcfH67PPPtN7772nY8eO6dixY/rPf/6jzz77TOPHj6/sGgEAACpVhW6BvfXWW3rzzTfVu3dvR9vNN98sLy8v/d///V+5PgkaAADgYqvQFaATJ044vqriTA0bNuQWGAAAuORVKAB17dpViYmJ+v333x1tv/32m6ZMmcI3rgMAgEtehW6BpaSkqG/fviU+CNHT01OrVq2q1AIBAAAqW4UCUPv27bV9+3a9+uqr2rZtmyRp8ODBuvvuu+Xl5VWpBQIAAFS2cgegkydPqlWrVnr//fc1YsSIqqgJAACgSpV7DlDNmjWd5v4AAABcbio0CXr06NGaPn26Tp06Vdn1AAAAVLkKzQHasGGD0tLS9NFHH6l9+/by9vZ2Wv/2229XSnEAAABVoUIByM/Pr8S3wQMAAFwuyhWAioqK9Mwzz+inn35SQUGBrr/+ek2ePJknvwAAwGWlXHOAnn76aT3++OOqXbu2GjVqpNmzZ2v06NFVVRsAAECVKFcAWrJkiebOnatVq1ZpxYoVeu+99/Tqq6+qqKioquoDAACodOUKQHv27NHNN9/seB0VFSWbzab9+/dXemEAAABVpVwB6NSpU/L09HRqq1mzpk6ePFmpRQEAAFSlck2CNsZo2LBhstvtjrbff/9d999/v9Oj8DwGDwAALmXlCkCxsbEl2v76179WWjEAAAAXQ7kC0MKFC6uqDgAAgIumQl+FAQAAcDkjAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMshAAEAAMtxeQCaM2eOQkND5enpqcjISK1fv/6cfX/44QfddtttCg0Nlc1mU0pKSok+kydPls1mc1patWpVhUcAAAAuNy4NQMuXL1d8fLwSExO1efNmhYeHKzo6WgcPHiy1/4kTJ9S0aVMlJycrMDDwnOO2bdtWBw4ccCxffPFFVR0CAAC4DLk0AM2aNUsjRoxQXFyc2rRpo/nz56tWrVpasGBBqf2vvvpqPfPMM7rzzjudvpD1bDVq1FBgYKBj8ff3r6pDAAAAlyGXBaCCggJt2rRJUVFRfxTj5qaoqCilp6df0Njbt29XcHCwmjZtqrvvvlt79uw5b//8/Hzl5OQ4LQAAoPpyWQA6fPiwCgsLFRAQ4NQeEBCgzMzMCo8bGRmpRYsWKTU1VfPmzdOuXbvUo0cPHT9+/JzbJCUlydfX17GEhIRUeP8AAODS5/JJ0JXtpptu0h133KEOHTooOjpaK1eu1LFjx/TGG2+cc5uEhARlZ2c7lr17917EigEAwMVWw1U79vf3l7u7u7Kyspzas7KyzjvBubz8/Px05ZVXaseOHefsY7fbzzunCAAAVC8uuwLk4eGhTp06KS0tzdFWVFSktLQ0de3atdL2k5ubq507dyooKKjSxgQAAJc3l10BkqT4+HjFxsaqc+fO6tKli1JSUpSXl6e4uDhJ0tChQ9WoUSMlJSVJOj1x+scff3T8+ZdfftGWLVtUu3ZtNW/eXJL08MMPq3///mrSpIn279+vxMREubu7a/Dgwa45SAAAcMlxaQAaNGiQDh06pEmTJikzM1MRERFKTU11TIzes2eP3Nz+uEi1f/9+XXXVVY7XM2fO1MyZM9WrVy+tWbNGkrRv3z4NHjxYR44cUYMGDdS9e3etXbtWDRo0uKjHBgAALl0uDUCSNGbMGI0ZM6bUdcWhplhoaKiMMecdb9myZZVVGgAAqKaq3VNgAAAAf4YABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALMflAWjOnDkKDQ2Vp6enIiMjtX79+nP2/eGHH3TbbbcpNDRUNptNKSkpFzwmAACwHpcGoOXLlys+Pl6JiYnavHmzwsPDFR0drYMHD5ba/8SJE2ratKmSk5MVGBhYKWMCAADrcWkAmjVrlkaMGKG4uDi1adNG8+fPV61atbRgwYJS+1999dV65plndOedd8put1fKmAAAwHpcFoAKCgq0adMmRUVF/VGMm5uioqKUnp5+UcfMz89XTk6O0wIAAKovlwWgw4cPq7CwUAEBAU7tAQEByszMvKhjJiUlydfX17GEhIRUaP8AAODy4PJJ0JeChIQEZWdnO5a9e/e6uiQAAFCFarhqx/7+/nJ3d1dWVpZTe1ZW1jknOFfVmHa7/ZxzigAAQPXjsitAHh4e6tSpk9LS0hxtRUVFSktLU9euXS+ZMQEAQPXjsitAkhQfH6/Y2Fh17txZXbp0UUpKivLy8hQXFydJGjp0qBo1aqSkpCRJpyc5//jjj44///LLL9qyZYtq166t5s2bl2lMAAAAlwagQYMG6dChQ5o0aZIyMzMVERGh1NRUxyTmPXv2yM3tj4tU+/fv11VXXeV4PXPmTM2cOVO9evXSmjVryjQmAACASwOQJI0ZM0ZjxowpdV1xqCkWGhoqY8wFjQkAAMBTYAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIIQAAAwHIuiQA0Z84chYaGytPTU5GRkVq/fv15+//73/9Wq1at5Onpqfbt22vlypVO64cNGyabzea09O3btyoPAQAAXEZcHoCWL1+u+Ph4JSYmavPmzQoPD1d0dLQOHjxYav+vvvpKgwcP1vDhw/X1118rJiZGMTEx+v7775369e3bVwcOHHAsr7/++sU4HAAAcBlweQCaNWuWRowYobi4OLVp00bz589XrVq1tGDBglL7P//88+rbt68mTJig1q1ba9q0aerYsaNeeOEFp352u12BgYGOpW7duhfjcAAAwGXApQGooKBAmzZtUlRUlKPNzc1NUVFRSk9PL3Wb9PR0p/6SFB0dXaL/mjVr1LBhQ7Vs2VIjR47UkSNHzllHfn6+cnJynBYAAFB9uTQAHT58WIWFhQoICHBqDwgIUGZmZqnbZGZm/mn/vn37asmSJUpLS9P06dP12Wef6aabblJhYWGpYyYlJcnX19exhISEXOCRAQCAS1kNVxdQFe68807Hn9u3b68OHTqoWbNmWrNmjW644YYS/RMSEhQfH+94nZOTQwgCAKAac+kVIH9/f7m7uysrK8upPSsrS4GBgaVuExgYWK7+ktS0aVP5+/trx44dpa632+3y8fFxWgAAQPXl0gDk4eGhTp06KS0tzdFWVFSktLQ0de3atdRtunbt6tRfkj7++ONz9pekffv26ciRIwoKCqqcwgEAwGXN5U+BxcfH66WXXtLixYu1detWjRw5Unl5eYqLi5MkDR06VAkJCY7+Dz74oFJTU/Xss89q27Ztmjx5sjZu3KgxY8ZIknJzczVhwgStXbtWu3fvVlpamgYMGKDmzZsrOjraJccIAAAuLS6fAzRo0CAdOnRIkyZNUmZmpiIiIpSamuqY6Lxnzx65uf2R07p166bXXntNEydO1OOPP64WLVpoxYoVateunSTJ3d1d3377rRYvXqxjx44pODhYffr00bRp02S3211yjAAA4NLi8gAkSWPGjHFcwTnbmjVrSrTdcccduuOOO0rt7+XlpVWrVlVmeQAAoJpx+S0wAACAi40ABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALIcABAAALKeGqwsAAFSu0Mc+cHUJl5Xdyf1cXQJcgCtAAADAcghAAADAcghAAADAcpgDBABAJWDuVdldCvOuLokrQHPmzFFoaKg8PT0VGRmp9evXn7f/v//9b7Vq1Uqenp5q3769Vq5c6bTeGKNJkyYpKChIXl5eioqK0vbt26vy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G2OMOXr0qGnQoIFJSEgwW7duNZs3bzY33nijue666xz77tWrl6ldu7aZMGGC2bZtm9m2bVupxztr1izj4+NjXn/9dbNt2zbzyCOPmJo1a5qffvrJGGPMgQMHTNu2bc348ePNgQMHzPHjx0sdp1evXsbHx8dMnjzZ/PTTT2bx4sXGZrOZjz76yBhjzJdffmnc3d3N/v37Hdu8/fbbxtvb2zHmyJEjzRVXXGE++eQT8+2335q//OUvpk6dOubBBx90bNOkSRPj4+NjZs6caXbs2GF27NhhNm7caNzc3MzUqVNNRkaGWbhwofHy8jILFy50bBcVFWUiIiLM2rVrzaZNm0yvXr2Ml5eXee6555z69O/f32zYsMH89NNPZvz48aZ+/frmyJEjjp957dq1za233mq+++478/nnn5vAwEDz+OOPl3pOjDFm4cKFpmbNmqZz587mq6++Mhs3bjRdunQx3bp1czoPNWvWNHPmzDEZGRnm2WefNe7u7ubTTz919Cl+T7z22mtm+/btZuzYsaZ27dqO2vbs2WPsdruJj48327ZtM0uXLjUBAQFGkjl69Kgxxph+/fqZG2+80Xz77bdm586d5r333jOfffbZOWsHLjYCEOBCxQHIGGOuueYac8899xhjKh6AmjRpYgoLCx1tLVu2ND169HC8PnXqlPH29javv/66MeaPAJScnOzoc/LkSdO4cWMzffp0Y4wx06ZNM3369HHa9969e40kk5GRYYw5HUiuuuqqPz3e4OBg8/TTTzu1XX311WbUqFGO1+Hh4SYxMfG84/Tq1ct07969xDiPPvqo43WbNm0cx2CMMf379zfDhg0zxhhz/Phx4+HhYd544w3H+iNHjhgvL68SASgmJsZpP3fddZe58cYbndomTJhg2rRpY4wxZuvWrUaS2bBhg2P99u3bjSRHAPrvf/9rfHx8zO+//+40TrNmzcw///lPY8zpn3mtWrVMTk6O034iIyPPeV4WLlxoJJm1a9c62orrWbdunTHGmG7dupkRI0Y4bXfHHXeYm2++2fFakpk4caLjdW5urpFkPvzwQ2OMMQkJCY7jLfboo486BaD27dubyZMnn7NWwNW4BQZcIqZPn67Fixdr69atFR6jbdu2cnP74691QECA2rdv73jt7u6u+vXr6+DBg07bde3a1fHnGjVqqHPnzo46vvnmG61evVq1a9d2LK1atZJ0er5OsU6dOp23tpycHO3fv1/XXnutU/u1115boWPu0KGD0+ugoCCn47r33nsdt/uysrL04Ycf6p577nHUXVBQoMjISEf/evXqqWXLliX207lzZ6fXW7duLfUYtm/frsLCQmVkZKhGjRrq2LGjY33z5s1Vt25dx+tvvvlGubm5ql+/vtN53bVrl9M5DQ0NVZ06dc55jKWpUaOGrr76asfrVq1ayc/Pz3GOz1X/2T+DM8+vt7e3fHx8HPveunWr07mTnN9DkjR27Fg99dRTuvbaa5WYmKhvv/32vHUDF1sNVxcA4LSePXsqOjpaCQkJGjZsmNM6Nzc3GWOc2k6ePFlijJo1azq9ttlspbYVFRWVua7c3Fz1799f06dPL7EuKCjI8Wdvb+8yj1kZ/uy4hg4dqscee0zp6en66quvFBYWph49epR7P1VxXLm5uQoKCtKaNWtKrDvzMfYL/dldiAvd97333qvo6Gh98MEH+uijj5SUlKRnn31WDzzwQGWXClQIV4CAS0hycrLee+89paenO7U3aNBAmZmZTiGoMj+7Z+3atY4/nzp1Sps2bVLr1q0lSR07dtQPP/yg0NBQNW/e3GkpTzjw8fFRcHCwvvzyS6f2L7/8Um3atKmcAzlD/fr1FRMTo4ULF2rRokWKi4tzrGvWrJlq1qypdevWOdqOHj2qn3766U/Hbd26danHcOWVV8rd3V0tW7bUqVOn9PXXXzvW79ixw+kpv44dOyozM1M1atQocU79/f0v5LB16tQpbdy40fE6IyNDx44dc/w8z1V/eX4GrVu31vr1653aznwPFQsJCdH999+vt99+W+PHj9dLL71UnkMBqhQBCLiEtG/fXnfffbdmz57t1N67d28dOnRIM2bM0M6dOzVnzhx9+OGHlbbfOXPm6J133tG2bds0evRoHT161HG7aPTo0fr11181ePBgbdiwQTt37tSqVasUFxenwsLCcu1nwoQJmj59upYvX66MjAw99thj2rJlix588MFKO5Yz3XvvvY7birGxsY722rVra/jw4ZowYYI+/fRTff/99xo2bJjT7cNzGT9+vNLS0jRt2jT99NNPWrx4sV544QU9/PDDkk7fcoqKitJ9992n9evX6+uvv9Z9990nLy8vx2c7RUVFqWvXroqJidFHH32k3bt366uvvtITTzzhFF4qombNmnrggQe0bt06bdq0ScOGDdM111yjLl26SDr9M1i0aJHmzZun7du3a9asWXr77bcd9ZfF/fffr+3bt2vChAnKyMjQa6+9pkWLFjn1GTdunFatWqVdu3Zp8+bNWr16tSOEAZcCAhBwiZk6dWqJWw2tW7fW3LlzNWfOHIWHh2v9+vXl+oX1Z5KTk5WcnKzw8HB98cUXevfddx1XIoqv2hQWFqpPnz5q3769xo0bJz8/vzIFhjONHTtW8fHxGj9+vNq3b6/U1FS9++67atGiRaUdy5mioqIUFBSk6OhoBQcHO6175pln1KNHD/Xv319RUVHq3r37n85jkk5fvXnjjTe0bNkytWvXTpMmTdLUqVOdblsuWbJEAQEB6tmzpwYOHKgRI0aoTp068vT0lHT6dtLKlSvVs2dPxcXF6corr9Sdd96pn3/+WQEBARd0zLVq1dKjjz6qu+66S9dee61q166t5cuXO9bHxMTo+eef18yZM9W2bVv985//1MKFC9W7d+8y7+OKK67QW2+9pRUrVig8PFzz58/X3//+d6c+hYWFGj16tFq3bq2+ffvqyiuv1Ny5cy/o2IDKZDNnTywAgGoiNzdXjRo10sKFC3Xrrbe6rI59+/YpJCREn3zyiW644QaX1QHgD0yCBlDtFBUV6fDhw3r22Wfl5+enW2655aLu/9NPP1Vubq7at2+vAwcO6JFHHlFoaKh69ux5UesAcG4EIADVzp49exQWFqbGjRtr0aJFqlHj4v5Td/LkST3++OP63//+pzp16qhbt2569dVXSzxZBcB1uAUGAAAsh0nQAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcghAAADAcv4fJyq+9SX4whYAAAAASUVORK5CYII=\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "ax.bar(xvalues, yfrac, width=0.8, align=\"center\")\n", "ax.set_xlabel(\"Number of hydrogen bonds\")\n", "ax.set_ylabel(\"Probability\")\n", "ax.set_title(\"Hydrogen-bond count distribution\")\n", "ax.set_xticks(xvalues)\n", "ax;" ] }, { "cell_type": "code", "execution_count": null, "id": "732fb880-d046-4e5d-bdf2-4adc7312dae3", "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 }