Skip to content

Instantly share code, notes, and snippets.

@dominicrufa
Created November 20, 2020 18:00
Show Gist options
  • Save dominicrufa/5d33bb4a42121fd73ee1767eb3c52350 to your computer and use it in GitHub Desktop.
Save dominicrufa/5d33bb4a42121fd73ee1767eb3c52350 to your computer and use it in GitHub Desktop.
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"This notebook attempts to yield a converged solvent-phase free energy calculation for all ligands of the jnk1 system"
]
},
{
"cell_type": "code",
"execution_count": 42,
"metadata": {},
"outputs": [],
"source": [
"import matplotlib.pyplot as plt\n",
"import seaborn as sns\n",
"import numpy as np\n",
"\n",
"%matplotlib inline\n",
"\n",
"import os\n",
"colour_cycle = plt.rcParams['axes.prop_cycle'].by_key()['color']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"let's extract the forward and backward works"
]
},
{
"cell_type": "code",
"execution_count": 43,
"metadata": {},
"outputs": [],
"source": [
"raw_dict = np.load('solvent.out.npz', allow_pickle=True)['arr_0'].item()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"let's look at the ligand pairs we have..."
]
},
{
"cell_type": "code",
"execution_count": 44,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dict_keys([(0, 13), (10, 1), (10, 17), (11, 1), (11, 14), (12, 17), (13, 15), (13, 20), (14, 16), (14, 20), (15, 20), (16, 1), (17, 3), (17, 4), (18, 20), (18, 4), (1, 20), (1, 9), (20, 2), (20, 3), (20, 4), (20, 8), (20, 9), (2, 4), (5, 4), (6, 4), (6, 8)])"
]
},
"execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_dict.keys()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"each entry is a dict of 'old' and 'new'..."
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"dict_keys(['old', 'new'])"
]
},
"execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_dict[(0,13)].keys()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"each entry here is a dict of tuples corresponding to a simulation index and a forward/backward work tuple"
]
},
{
"cell_type": "code",
"execution_count": 46,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(-1081588.7570864186, 1081589.9689491775)"
]
},
"execution_count": 46,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"raw_dict[(0,13)]['old'][0]"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"let's plot the histograms of forward and (negative) backward works (A->B and B->A, respectively) of lig0to13 (old)"
]
},
{
"cell_type": "code",
"execution_count": 47,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fb8dc8debe0>"
]
},
"execution_count": 47,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"lig0_olds = np.array(list(raw_dict[(0,13)]['old'].values()))\n",
"forwards = lig0_olds[:,0]\n",
"backwards = -lig0_olds[:,1]\n",
"sns.distplot(forwards, rug=True, label = 'forward')\n",
"sns.distplot(backwards, rug=True, label='backward')\n",
"plt.xlabel(f\"work (kT)\")\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"let's look at the spread of the A->B->A works"
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"Text(0.5, 1.0, '$w_{fwd} + w_{rev}$')"
]
},
"execution_count": 48,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"final_agg_works = lig0_olds.sum(axis=1)\n",
"sns.distplot(final_agg_works, rug=True)\n",
"plt.xlabel('$\\Delta w$')\n",
"plt.title('$w_{fwd} + w_{rev}$')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"it's fortunate that most of the works are clustered around 0, meaning that the work dissipated in the forward direction is dissipated (negative) in the second half of the annealing process."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Let's see if we can generate a decently-converged free energy calculation from [this paper](https://static1.squarespace.com/static/530562f9e4b06fd3c041e221/t/57056c20f850827c4e7265fd/1459973152979/optimal+estimators+and+asymptotic+variances+for+nonequilibrium+path-ensemble+averages.pdf). Specifically, we take Eq 21.\n",
"$$\n",
"e^{-\\Delta \\hat{f}_t} = \\sum_{n=1}^{N_f} \\frac{e^{-w_t[X_{f_n}]}}{N_f + N_r e^{-\\hat{\\Omega}[X_{f_n}]}} + \\sum_{n=1}^{N_r} \\frac{e^{-w_t[X_{r_n}]}}{N_f + N_r e^{-\\hat{\\Omega}[X_{r_n}]}}\n",
"$$\n",
"where $\\Omega[X] \\equiv w_{2T}[X] - \\Delta f_{2T}$ and solve for $t=T$. In particular, I will split the trajectories $N$ in half so that $N_f = N_r = N/2$. Since the protocol is symmetric, then $\\Delta f_{2T} = 0$ and so $\\Omega[X] \\equiv w_{2T}[X]$. In this case, the equation should simplify to\n",
"$$\n",
"\\Delta \\hat{f}_T = -\\log \\left[\n",
" \\sum_{i=1}^{N/2} \\frac{e^{-w_{T}[X_{f_n}]}} {1 + e^{-w_{2T}[X_{f_n}]}}\n",
" +\n",
" \\sum_{i=1}^{N/2} \\frac{e^{-w_{T}[X_{r_n}]}} {1 + e^{-w_{2T}[X_{r_n}]}}\n",
" \\right]\n",
" - \\log (2/N)\n",
"$$"
]
},
{
"cell_type": "code",
"execution_count": 49,
"metadata": {},
"outputs": [],
"source": [
"def free_energy(full_work_array):\n",
" \"\"\"\n",
" compute \\Delta \\hat{f}_T from eq 21.\n",
" all unitless\n",
" \n",
" arguments\n",
" full_work_array : np.array(N,2)\n",
" full work array (in kT).\n",
" full_work_array[:,0] are the cumulative works up to time T;\n",
" full_work_array[:,1] are thw cumulative works at time 2T\n",
" \n",
" returns\n",
" dG : float\n",
" reduced free energy difference\n",
" \n",
" NOTE : this equation is _not_ solved recursively\n",
" \"\"\"\n",
" N, sdim = full_work_array.shape\n",
" assert sdim==2\n",
" assert N % 2 == 0, f\"N is not even. cannot split works evenly\"\n",
" \n",
" #split the data in half randomly\n",
" forward_indices = np.random.choice(range(N), size=int(N/2), replace=False)\n",
" backward_indices = [i for i in range(N) if i not in forward_indices]\n",
" assert len(forward_indices) == N/2\n",
" assert len(backward_indices) == N/2\n",
" \n",
" forward_works = full_work_array[forward_indices,:]\n",
" backward_works = full_work_array[backward_indices, :]\n",
" \n",
" max_work = np.max(-full_work_array)\n",
" \n",
" #compute free energy\n",
" forward_max = np.max(-forward_works)\n",
" backward_max = np.max(-backward_works) \n",
" dG = -max_work -np.log(\n",
" ( np.exp(-forward_works[:,0] - max_work) / ((N/2) + (N/2) * np.exp(-forward_works[:,1])) ).sum()\n",
" + ( np.exp(-backward_works[:,0] - max_work) / ((N/2) + (N/2) * np.exp(-backward_works[:,1])) ).sum()\n",
" )\n",
" return dG"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"let's make the input to the `free_energy` function..."
]
},
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [],
"source": [
"input_work_array = lig0_olds.cumsum(axis=1)"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"100%|██████████| 10000/10000 [00:06<00:00, 1443.15it/s]\n"
]
}
],
"source": [
"import tqdm\n",
"N_bootstraps=10000\n",
"free_energies = []\n",
"num_base_samples = len(input_work_array)\n",
"for i in tqdm.trange(N_bootstraps):\n",
" subsample_indices = np.random.choice(range(num_base_samples), num_base_samples)\n",
" free_energies.append(free_energy(input_work_array[subsample_indices]))"
]
},
{
"cell_type": "code",
"execution_count": 52,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.axes._subplots.AxesSubplot at 0x7fb8dc332cf8>"
]
},
"execution_count": 52,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.distplot(free_energies)"
]
},
{
"cell_type": "code",
"execution_count": 53,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.legend.Legend at 0x7fb8dc1dd828>"
]
},
"execution_count": 53,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEGCAYAAAB1iW6ZAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOzdeXzU1bn48c+ZPZnJvpCQAAEEZAuLbFZBqYq71KrVqrV6axGtrdfb9t6299p6be3y62K1LtS1tOpVwSouqCBCEVAk7PsWQhJCyL5PMtv5/TFJDMkkmSQzWZ/365VXMvM98/2eBPLkzPM95zlKa40QQoiBz9DXHRBCCBEaEtCFEGKQkIAuhBCDhAR0IYQYJCSgCyHEIGHqqwsnJibqjIyMvrq8EEIMSNu3by/RWicFOtZnAT0jI4OsrKy+urwQQgxISqmT7R0LKuWilLpCKXVYKXVMKfWTAMdjlFLvKqV2K6X2K6Xu6kmHhRBCdF2nAV0pZQSeAq4EJgHfVEpNatXse8ABrfU04GLgj0opS4j7KoQQogPBjNDnAMe01tlaaxfwGrC4VRsNRCmlFOAAygBPSHsqhBCiQ8Hk0NOAvBaP84G5rdo8CbwDFABRwM1aa1/rEymllgBLAEaOHNmd/gohQsjtdpOfn099fX1fd0W0YrPZSE9Px2w2B/2aYAK6CvBc6wIwlwO7gK8CY4G1SqlPtdZVZ71I62eBZwFmzZolRWSE6GP5+flERUWRkZGB/w226A+01pSWlpKfn8/o0aODfl0wKZd8YESLx+n4R+It3QX8U/sdA04A5wbdCyFEn6ivrychIUGCeT+jlCIhIaHL75yCCejbgHFKqdGNNzpvwZ9eaSkXuKSxI8OACUB2l3oihOgTEsz7p+78u3SactFae5RS9wMfAUbgRa31fqXU0sbjy4BfAn9TSu3Fn6L5L611SZd7I4QQotuCWliktV4NrG713LIWXxcAi0LbNSFEb3t1a25Iz3fr3M4nPzzxxBM888wzzJw5k1deeSWk1++Kv/3tb2RlZfHkk0/2WR96qs9WioqhqcRZwqpjq7Cb7RgNRm4af1Nfd0n0saeffpoPPvggqJt/Ho8Hk6nnYUtrjdYag2FwlbMaXN+N6NdcXhcPrH+AP+/4M8cqjvV1d0Q/sHTpUrKzs7nuuuv44x//yNe+9jUyMzOZN28ee/bsAeDhhx9myZIlLFq0iDvuuIOrrrqq+diMGTN45JFHAHjooYd4/vnnqamp4ZJLLmHmzJlMnTqVVatWAZCTk8PEiRO57777mDlzJnl5ebz00kuMHz+eiy66iM2bN/fNDyGEJKCLXvPO8XfYU7wHk8HEkfIjfd0d0Q8sW7aM4cOHs379enJycpgxYwZ79uzh17/+NXfccUdzu+3bt7Nq1SpeffVVFixYwKeffkpVVRUmk6k5EG/atIn58+djs9l466232LFjB+vXr+eHP/whTVttHj58mDvuuIOdO3disVj4xS9+webNm1m7di0HDhzok59BKElAF71md/Fu4m3xXDryUo6UH8HXdu2ZGMI2bdrEt771LQC++tWvUlpaSmVlJQDXXXcdERERAMyfP5+NGzeyadMmrr76ampqaqirqyMnJ4cJEyagteZnP/sZmZmZXHrppZw6dYozZ84AMGrUKObNmwfA1q1bufjii0lKSsJisXDzzTf3wXcdWpJDF71mX8k+JiVM4uIRF/NhzocU1hb2dZdEPxJow/qmqXt2u735udmzZ5OVlcWYMWO47LLLKCkp4bnnnuO8884D4JVXXqG4uJjt27djNpvJyMhons/d8jwtzz9YyAhd9Io6dx3ZldlMTpjMuLhxAJTXl/dxr0R/smDBguZZLhs2bCAxMZHo6Og27SwWCyNGjOCNN95g3rx5zJ8/nz/84Q/Mnz8fgMrKSpKTkzGbzaxfv56TJwNXm507dy4bNmygtLQUt9vNihUrwvfN9RIZoYtecbj8MD7tY0riFFLtqQBUuir7uFeitWCmGYbLww8/zF133UVmZiaRkZEsX7683bbz589n3bp1REZGMn/+fPLz85sD+m233ca1117LrFmzmD59OueeG3jRempqKg8//DDnn38+qampzJw5E6/XG5bvrbeoQG9zesOsWbO0bHAxdLxy8BV++8VvWXfTOpIjk5n18iymJU3jhctf6OuuDWkHDx5k4sSJfd0N0Y5A/z5Kqe1a61mB2ssIXfSK0zWnMRlMbMjbgFKKGGsMlQ0yQhcilCSHLnpFsbOYKHNU802oGIsEdCFCTQK66BXFzmIcFkfz4xhrjOTQhQgxCeiiVxTXFRNliWp+HG2NxulxUueu68NeCTG4SEAXvaKoruisgB5jiQGQuehChJAEdBF2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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"sns.distplot(forwards, rug=True, label = 'forward')\n",
"sns.distplot(backwards, rug=True, label='backward')\n",
"sns.distplot(free_energies, rug=True, label='free_energies')\n",
"plt.xlabel(f\"work (kT)\")\n",
"plt.legend()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"comment in passing: shouldnt the distribution of free energies be around the left tail for the forward work distribution?"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.7"
}
},
"nbformat": 4,
"nbformat_minor": 4
}
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment