{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Explore HDX/MS data for LacI\n", "![LacI peptides and structure.](lacI_files/lacI_diagram_table.png)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### First choose the state(s)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a98456fa066f4cc785958102c50d7e43", "version_major": 2, "version_minor": 0 }, "text/plain": [] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Choose from the following functional states: \n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b6639e4ba6174d10b74c711853c1962f", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Checkbox(value=True, description='IPTG, an inducer molecule')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "cff328de5e234a7bad0d871da91213a7", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Checkbox(value=True, description='ONPF, an anti-inducer molecule')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4ffc7cf9f1d041119a0a733df906ca36", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Checkbox(value=False, description='APO protein')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ffe09a4412144a8da2c5ae56eadd50ba", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Checkbox(value=True, description='operator DNA')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c2e43336cb9648da96f84e077fc10bb8", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Checkbox(value=False, description='TMG, an inducer molecule')" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0a3782ecaadb4d31ae7317662b3c9de2", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Checkbox(value=False, description='ONPF and operator DNA')" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import pandas as pd\n", "import numpy as np\n", "import math\n", "import matplotlib.pyplot as plt\n", "import pytraj as pt\n", "import nglview as nv\n", "import seaborn as sns\n", "import ipywidgets as widgets\n", "from scipy.optimize import curve_fit\n", "from matplotlib.ticker import FormatStrFormatter\n", "\n", "\n", "print('Choose from the following functional states: ')\n", "CBwidget_IPTG = widgets.Checkbox(description = 'IPTG, an inducer molecule', value=True, disabled=False)\n", "CBwidget_ONPF = widgets.Checkbox(description = 'ONPF, an anti-inducer molecule', value=True, disabled=False)\n", "CBwidget_APO = widgets.Checkbox(description = 'APO protein', value=False, disabled=False)\n", "CBwidget_DNA = widgets.Checkbox(description = 'operator DNA', value=True, disabled=False)\n", "CBwidget_TMG = widgets.Checkbox(description = 'TMG, an inducer molecule', value=False, disabled=False)\n", "CBwidget_ONPFDNA = widgets.Checkbox(description = 'ONPF and operator DNA', value=False, disabled=False)\n", "\n", "display(CBwidget_IPTG, CBwidget_ONPF, CBwidget_APO, CBwidget_DNA, CBwidget_TMG, CBwidget_ONPFDNA)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run to confirm your choices." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Chosen states:\n", "IPTG ONPF DNA\n" ] } ], "source": [ "states_list = []\n", "\n", "if CBwidget_IPTG.value == True:\n", " states_list.append('IPTG')\n", "if CBwidget_ONPF.value == True:\n", " states_list.append('ONPF')\n", "if CBwidget_APO.value == True:\n", " states_list.append('APO')\n", "if CBwidget_DNA.value == True:\n", " states_list.append('DNA')\n", "if CBwidget_TMG.value == True:\n", " states_list.append('TMG')\n", "if CBwidget_ONPFDNA.value == True:\n", " states_list.append('ONPFDNA')\n", "\n", "print('Chosen states:'); print(*states_list)\n", "\n", "res_peptides_file = pd.ExcelFile('lacI_files/peptide_list.xlsx')\n", "\n", "states_dict = {}\n", "peptide_states_list = ['peptide']\n", "for state in states_list:\n", " states_dict[state] = pd.read_excel(res_peptides_file)\n", " peptide_states_list.append(state)\n", " \n", "single_state_dict = states_dict.get(states_list[0])\n", "all_peptides = single_state_dict[['peptide']].values.tolist()\n", "all_peptides_2 = []\n", "first_res = single_state_dict[['first_res']].values.tolist()\n", "index = 0\n", "\n", "while index < len(all_peptides):\n", " current_first_res = str(int(first_res[index][0]))\n", " all_peptides_2.append(current_first_res + ' - ' + all_peptides[index][0])\n", " index = index + 1" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Compile exchange information for each peptide for chosen states." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "done!\n" ] } ], "source": [ "############\n", "\n", "def getIndexes(dfObj, value):\n", " listOfPos = []\n", " result = dfObj.isin([value])\n", " seriesObj = result.any()\n", " columnNames = list(seriesObj[seriesObj == True].index)\n", " for col in columnNames:\n", " rows = list(result[col][result[col] == True].index)\n", " for row in rows:\n", " listOfPos.append((row, col))\n", " return listOfPos\n", "\n", "############\n", "\n", "# create dictionary keys from peptides\n", "# in subsequent code: add state and each TP avg exchange measurements as values for peptide keys\n", "peptide_exchange_dict = {}\n", " \n", "stdev_dict_IPTG = {}\n", "stdev_dict_ONPF = {}\n", "stdev_dict_APO = {}\n", "stdev_dict_DNA = {}\n", "stdev_dict_ONPFDNA = {}\n", "stdev_dict_TMG = {}\n", "stdev_dict_dict = {'IPTG':stdev_dict_IPTG,\n", " 'ONPF':stdev_dict_ONPF,\n", " 'APO':stdev_dict_APO,\n", " 'DNA':stdev_dict_DNA,\n", " 'ONPFDNA':stdev_dict_ONPFDNA,\n", " 'TMG':stdev_dict_TMG}\n", "\n", "\n", "for peptide in all_peptides:\n", " peptide_exchange_dict[peptide[0]] = []\n", " \n", "for state in states_dict:\n", " i = 0 # peptide counter\n", " for peptide in states_dict[state]['peptide']:\n", " peptide_first_res = states_dict[state]['first_res'][i]\n", " peptide_last_res = states_dict[state]['last_res'][i]\n", "\n", " peptide_file = pd.ExcelFile('lacI_files/compiled_data/' + str(peptide_first_res)\n", " + '_' + str(peptide_last_res) + '_' + peptide + '_fitting.xlsx')\n", " raw_df = pd.read_excel(peptide_file, 'Peptide SD', nrows = 15)\n", " \n", " column_vals = []\n", " listOfPositions = getIndexes(raw_df, state)\n", " for j in range(len(listOfPositions)):\n", " temp_string = (listOfPositions[j][1])\n", " position = int(temp_string[-2:])\n", " column_vals.append(position) # columns in spreadsheet corresponding to data label\n", "\n", " peptide_exchange = {}\n", " for element in column_vals:\n", " if state.lower() == (raw_df.iloc[2][element]).lower():\n", " peptide_exchange[state] = list(raw_df.iloc[4:13,element+2])\n", " \n", " peptide_exchange_dict[peptide].append(peptide_exchange)\n", "\n", "\n", " stdev_df = pd.read_excel(peptide_file, 'Peptide SD', usecols = \"H,P,Y,AH,AP,AX\", \n", " skiprows = 26, nrows = 35, header = None)\n", " stdev_df = stdev_df[0:9]\n", "\n", " stdev_dict_IPTG[peptide] = list(stdev_df.iloc[:, 0])\n", " stdev_dict_ONPF[peptide] = list(stdev_df.iloc[:, 1]) \n", " stdev_dict_APO[peptide] = list(stdev_df.iloc[:, 2])\n", " stdev_dict_DNA[peptide] = list(stdev_df.iloc[:, 3])\n", " stdev_dict_ONPFDNA[peptide] = list(stdev_df.iloc[:, 4])\n", " stdev_dict_TMG[peptide] = list(stdev_df.iloc[:, 5])\n", "\n", " i = i + 1\n", " \n", "print('done!')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Choose two peptides to visualize." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": false }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d9d04bbd4f884fc48a56806bafeb504a", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Dropdown(description='Peptide 1:', index=3, options=('63 - LIGVA', '72 - ALHAP', '72 - ALHAPSQIVA', '72 - ALHA…" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "543432b043da4f9293a08a65a0611009", "version_major": 2, "version_minor": 0 }, "text/plain": [ "Dropdown(description='Peptide 2:', index=12, options=('63 - LIGVA', '72 - ALHAP', '72 - ALHAPSQIVA', '72 - ALH…" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "single_state_dict = states_dict.get(states_list[0])\n", "all_peptides = single_state_dict[['peptide']].values.tolist()\n", "all_peptides_2 = []\n", "first_res = single_state_dict[['first_res']].values.tolist()\n", "index = 0\n", "\n", "while index < len(all_peptides):\n", " current_first_res = str(int(first_res[index][0]))\n", " all_peptides_2.append(current_first_res + ' - ' + all_peptides[index][0])\n", " index = index + 1\n", "\n", "DDwidget = widgets.Dropdown(\n", " options = all_peptides_2,\n", " value = '72 - ALHAPSQIVAA',\n", " description = 'Peptide 1:',\n", " disabled = False,\n", ")\n", "\n", "DDwidget2 = widgets.Dropdown(\n", " options = all_peptides_2,\n", " value = '109 - AAVHNL',\n", " description = 'Peptide 2:',\n", " disabled = False,\n", ")\n", "\n", "display(DDwidget)\n", "display(DDwidget2)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Run to confirm your choices and fit regression functions to the raw data." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Peptide 1: ALHAPSQIVAA\n", "Peptide 2: AAVHNL\n" ] } ], "source": [ "peptide_input1 = str(DDwidget.value)\n", "peptide_input1 = peptide_input1.split()[-1]\n", "peptide1_firstres = str(DDwidget.value).split()[0]\n", "\n", "peptide_input2 = str(DDwidget2.value)\n", "peptide_input2 = peptide_input2.split()[-1]\n", "peptide2_firstres = str(DDwidget2.value).split()[0]\n", "\n", "selected_peptides = [peptide_input1, peptide_input2]\n", "print('Peptide 1: ' + selected_peptides[0])\n", "print('Peptide 2: ' + selected_peptides[1])\n", "\n", "peptide1_list = peptide_exchange_dict.get(peptide_input1)\n", "peptide2_list = peptide_exchange_dict.get(peptide_input2)\n", "\n", "# fitting\n", "\n", "def exchange_fit(x, a, b, c, d, e, f, g):\n", " max_protons == a + b + c + g - 2 - num_prolines\n", " d > e\n", " e > f\n", " d > f\n", " max_protons == a + b + c + g - 2 - num_prolines\n", "\n", " return max_protons - a * np.exp(-d * x) - b * np.exp(-e * x) - c * np.exp(-f * x) - g\n", "\n", "def exchange_fit_low(x, b, c, e, f, g):\n", " max_protons == b + c + g - 2 - num_prolines\n", " e > f\n", " max_protons == b + c + g - 2 - num_prolines\n", " return max_protons - b * np.exp(-e * x) - c * np.exp(-f * x) - g\n", "\n", "timepoints = [0, 30, 45, 60, 300, 1500, 3600, 7200, 14400]\n", "trialT = np.logspace(1.5, 4.5, 10000)\n", "\n", "peptide1_fit_dict = {}\n", "peptide2_fit_dict = {}\n", "\n", "for element in peptide1_list:\n", " for key, value in element.items():\n", "\n", " peptide1_fit_dict[key] = []\n", "\n", " num_prolines = peptide_input1.count('P')\n", " max_protons = len(peptide_input1) - 2 - num_prolines\n", "\n", " p1_index = 0\n", " peptide1_tps = []\n", " peptide1_ex = []\n", " for tp in value:\n", " if not math.isnan(float(tp)):\n", " peptide1_tps.append(timepoints[p1_index])\n", " peptide1_ex.append(float(tp))\n", " p1_index = p1_index + 1\n", "\n", " if peptide1_ex[-1] > .5:\n", "\n", " popt, pcov = curve_fit(f = exchange_fit, xdata = peptide1_tps, ydata = peptide1_ex,\n", " bounds = (0, [max_protons, max_protons, max_protons, 1, .1, .01, max_protons]),\n", " maxfev = 100000)\n", " exchange_peptide1 = exchange_fit(trialT, *popt)\n", "\n", " else:\n", "\n", " popt, pcov = curve_fit(f = exchange_fit_low, xdata = peptide1_tps, ydata = peptide1_ex,\n", " bounds = (0, [max_protons, max_protons, .1, .01, max_protons]),\n", " maxfev = 100000)\n", " exchange_peptide1 = exchange_fit_low(trialT, *popt)\n", "\n", " peptide1_fit_dict[key] = exchange_peptide1\n", " \n", "for element in peptide2_list:\n", " for key, value in element.items():\n", "\n", " peptide2_fit_dict[key] = []\n", "\n", " num_prolines = peptide_input2.count('P')\n", " max_protons = len(peptide_input2) - 2 - num_prolines\n", "\n", " p2_index = 0\n", " peptide2_tps = []\n", " peptide2_ex = []\n", " for tp in value:\n", " if not math.isnan(float(tp)):\n", " peptide2_tps.append(timepoints[p2_index])\n", " peptide2_ex.append(float(tp))\n", " p2_index = p2_index + 1\n", "\n", " if peptide2_ex[-1] > .5:\n", "\n", " popt, pcov = curve_fit(f = exchange_fit, xdata = peptide2_tps, ydata = peptide2_ex,\n", " bounds = (0, [max_protons, max_protons, max_protons, 1, .1, .01, max_protons]),\n", " maxfev = 100000)\n", " exchange_peptide2 = exchange_fit(trialT, *popt)\n", "\n", " else:\n", "\n", " popt, pcov = curve_fit(f = exchange_fit_low, xdata = peptide2_tps, ydata = peptide2_ex,\n", " bounds = (0, [max_protons, max_protons, .1, .01, max_protons]),\n", " maxfev = 100000)\n", " exchange_peptide2 = exchange_fit_low(trialT, *popt)\n", "\n", " peptide2_fit_dict[key] = exchange_peptide2\n", "\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Plot H/D exchange data and functions for each peptide for each state." ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "PDB ID: 2P9H (wild-type LacI core domain + IPTG). \n", "Oriented with the C-terminal subdomain at the top.\n", "\n", "Use the mouse to move the structure. \n", "Double-click for full-screen. Type \"R\" to zoom out, \"I\" to rotate, and \"K\" to rock.\n", "NGLViewer, an amazing tool: H Nguyen, DA Case and AS Rose, Bioinformatics, 2017. doi:10.1093/bioinformatics/btx789\n", "\n", "Peptide ALHAPSQIVAA, residues 74-82, shown as orange surface and sticks.\n", "Peptide AAVHNL, residues 111-114, shown as blue surface and sticks.\n" ] }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b5dd9080582b4f7aa54ea35ed05ccdf9", "version_major": 2, "version_minor": 0 }, "text/plain": [ "NGLWidget()" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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QkoKjBlTv+1qSE488UQAXnnllQS3pHYUlIuIiIg0cBkZMGkS5OfDihW2Li0t+3zSpMZZDjFWRo8ezT777MPs2bN55plnKj22tLS00v2JoKBcREREpBEYONDqkJ9yChQWwqpVtj7lFNs+cGCiW5h4zzzzDK1bt+aSSy7hoYceqhB8B1NXrr32WgCSkhpOKKyBniIiIiKNREaGlTxsbGUP68see+zBhx9+yBlnnMHll1/On//8Zw4//HC6du1KdnY27733HitWrCA5OZlrr72WSZMmJbrJuygoFxEREZEmY9SoUcydO5cXXniBKVOmMH36dNatW0e7du0YNGgQ559/Ppdccgk9e/ZMdFPLUFAuIiIiIjHTt29fvPdltpV/XhvLly+v9rFt2rThwgsv5MILL6zz+9aXhpNIIyIiIiLSTCkoFxERERFJMAXlIiIiIiIJpqBcRERERCTBFJSLiIiIiCSYgnIRERERkQRTUC4iIiIikmAKykVEREREEkxBuYiIiIhIgikoFxERERFJMAXlIiIiIiIJpqBcRERERCTBFJSLiIiIiCSYgnIRERERibkff/yRyy+/nIEDB9K6dWsyMzM54IADuOuuu8jNzY14Tt++fXHO8cQTT0R93XvuuafCMVlZWTjnKizJycl06tSJcePG8cwzz1R4rUjnlF9OOumkOn4S1dOyXt5FRERERJqNv//97/zud78D4IgjjuDkk09m27ZtfPLJJ0yaNIm///3vvPLKKxxwwAERz580aRLHHnssu+22W43e98QTT2TEiBG7nhcXF7NhwwZefPFFzj33XObPn8+f//znMue0b9+eiRMnRn3NIUOG1KgNtaWgXERERKSxKMiB7JmwfjoU5UFyOnQZD5ljITUj0a0D4IEHHuC6665j6NChvPTSSwwdOrTM/ueff54LL7yQQw89lFmzZrHnnntWeI2cnBwmTpzIc889V6P3Pumkkzj//PMrbL/uuusYOXIkf/3rX7nkkkvo06fPrn0dOnQgKyurRu8TD0pfEREREWkM8hbBt3+AVVPBpUJaL1uvmmrb8xYluoWsXbuWSZMm0alTJ957770KATnAmWeeySOPPMLOnTu54IILKuxv06YNAwcO5Pnnn+ftt9+OSbsGDhzISSedRElJCe+++25MXjPWFJSLiIiINHQFOTB/MiSlQete0DINnLN16162ff5kOy6BHnroIQoKCrjyyivp3r171OPOOecchg8fzldffcXs2bPL7GvZsiUPP/wwAFdccQXbt2+PSdt69OgBwKZNm2LyerGmoFxERESkocueCaVFkNI+8v6U9lBaCNmf1m+7ynn//fcBOOaYY6o89uSTTwbgtddeq7Bv3LhxXHTRRfz000/ceOONMWnb4sWLgVBw3tAop1xERESkoVs/HVI6V35MSias/wB6TqifNkWwYMECAAYPHlzlsXvssQcAS5cujbj/b3/7G2+++Sb33XcfZ511Fvvtt1+t2zVr1ixef/110tLSKvzBsGXLlqg55SNGjFD1FREREREJKMqzHPLKtEiF/Oz6aU8UwVKH6enpVR6bkWEDUzdu3Bhxf8eOHbnvvvs444wzuPjii5k9ezYtW1Yeur722mssX7581/OioiIWLlzIm2++SXFxMffeey+ZmZkV2nzzzTdHfL3zzjtPQbmIiIiIBCSnQ8lOyyGPpqQAkqOkt9STjh07smHDBvLz82nXrl2lxwZzxcsHyeFOP/10nn76ad58880yZRajmTp1KlOnTt31PDk5mc6dO3PkkUdy1VVXceSRR1Y4p0+fPmUC+URRTrmIiIhIQ9dlPBRG7lHepTAbuhxWP+2JYsCAAQAsXLiwymN/+OEHgDLlCSN58MEHadu2LTfffPOuvPBoHn/8cbz3u5bCwkLWrFnD1KlTIwbkDYmCchEREZGGLnMsJCVDYeSZMCnMhaQUyBxTv+0qJ5jqEWnwZnmvv/56mXOi6dWrF7fffjs7d+7ksssuq2MLGy4F5SIiIiINXWoGDJkEpfmwYwUU54MvtfWOFbZ9yKSETyD0f//3f7Rv355//OMf/PTTT1GPe+WVV/jiiy8YOXJktQZwXnXVVYwePZrp06fz1FNPxbLJDYaCchEREZHGIH0g7H079DwFfCHkr7J1z1Nse/rARLeQrl27cvfdd5Obm8vhhx/OvHnzKhzz6quv8n//93+kpqby5JNPVut1k5KSePTRR0lOTmbOnDmxbnaDoIGeIiIiIo1FaoaVPExg2cOqXHDBBZSUlHDllVcyYsQIjjjiCIYPH05BQQEff/wxs2fPpmvXrjz//PPstdde1X7dYcOGcf3113PbbbfFsfWJo55yEREREYmpiy++mPnz53P11VezcuVKHnjgAZ566ilatGjB3/72N+bNm8e4ceNq/Lo33ngjgwYNin2DGwDnvU90GxJu1KhRftasWYluhohIjTnnZnvvRyW6HfVJ12wRacyiXbfVUy4iIiIikmAKykVEREREEkxBuYiIiIhIgikoFxERERFJMAXlIiIiIiIJpqBcRERERCTBFJSLiIiIiCSYgnIRERERkQRTUC4iIiIikmAKykVEREREEkxBuYiIiIhIgikoFxERERFJMAXlIiIiIiIJpqBcRERERGImKysL51yZJSkpiTZt2jBw4EAuvfRS5s+fX+G84LH/+9//or72xIkTcc4xY8aMqMfsscceOOe46qqrYvHj1JuWiW6AiIiIiDQ9J554IiNGjACgtLSUvLw8vv32Wx555BGeeeYZXnrpJY477rgK51166aV89913tGrVqsbv+dVXXzF//nxat27Nc889x9///nfS0tLq+qPUCwXlIiIiIo1FTg7MnAnTp0NeHqSnw/jxMHYsZGQkunVlnHTSSZx//vkVtk+bNo2TTz6ZM844g2+++Ybdd9+9zP7Fixdzyy23cPvtt9f4PZ966imcc1x33XXcfPPNvPzyy5x77rm1/RHqldJXRERERBqDRYvgD3+AqVMhNRV69bL11Km2fdGiRLewWo499lhuvfVWtm/fzq233lpmX+/evenUqRN/+9vfmDt3bo1et6ioiClTprDXXntx2WWXkZSUxKOPPhrLpseVgnIRERGRhi4nByZPhrQ0C8bT0sC5ss8nT7bjGoGrr76aVq1a8Z///Ifi4uJd2zt27MjkyZMpLi7mkksuobS0tNqvOW3aNDZu3MhRRx1Ft27dOOigg/joo49YuHBhPH6EmFNQLiIiItLQzZwJRUXQvn3k/e3bQ2EhfPpp/barllq3bs0+++zD9u3b+eabb8rsO++88zj88MP58ssv+cc//lHt13zqqacAOOOMMwD4xS9+AcC///3v2DQ6zhpMUO6cO9s596Vzbodzbq1z7mXn3KBqnpvhnLvfObc8cP5s59wZ8W6ziIiISL2YPh06d678mMxM+OCD+mlPDPTo0QOAtWvXVtj3r3/9i7S0NG688UZWrFhR5Wtt3ryZt956i4EDB7LvvvsCcNppp5GcnMyTTz5Zpje+oWoQQblz7s/AM0AH4EFgBnAS8Llzrm8V57YB3gOuBD4H7g+8zhTn3NVxarKIiIhI/cnLg6qqkaSmQm5u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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "font = {'family' : 'Arial',\n", " 'weight' : 'normal',\n", " 'size' : 20\n", " }\n", "axes = {'titlesize' : 20,\n", " 'titleweight' : 'bold',\n", " 'labelsize' : 20\n", " }\n", "\n", "plt.rc('font', **font)\n", "plt.rc('axes', **axes)\n", "plt.rc('lines', lw = 2)\n", "color_dict = {\n", " 'IPTG' : 'blue',\n", " 'ONPF' : 'orange',\n", " 'APO' : 'green',\n", " 'DNA' : 'red',\n", " 'TMG' : 'gray',\n", " 'ONPFDNA' : 'purple'\n", " }\n", "\n", "figure, (ax1, ax2) = plt.subplots(1, 2, figsize=(12,6))\n", "\n", "for ex_data in peptide_exchange_dict.get(peptide_input1):\n", " for state in ex_data:\n", "\n", " for key in stdev_dict_dict:\n", " if state == key:\n", " current_stdev_dict = stdev_dict_dict.get(state)\n", " current_stdev = current_stdev_dict.get(peptide_input1)\n", "\n", " ax1.plot(timepoints, ex_data.get(state), 'o', label = state, markersize = 10, alpha = 0.5,\n", " color = color_dict.get(state))\n", " ax1.errorbar(timepoints, ex_data.get(state), yerr = current_stdev, linestyle = 'None',\n", " ecolor = color_dict.get(state), capsize = 3, linewidth = 1)\n", " ax1.plot(trialT, peptide1_fit_dict.get(state), '-', color = color_dict.get(state))\n", " y_lim = len(peptide_input1) - 2 - peptide_input1[2:].count('P') + 0.25\n", " \n", " ax1.set_ylabel('# Deuterons')\n", " ax1.set_xlabel('Time (seconds)')\n", " ax1.set_title(peptide1_firstres + ' - ' + peptide_input1)\n", " ax1.set_xscale('log')\n", " ax1.set_ylim(0, y_lim)\n", " ax1.yaxis.set_major_formatter(FormatStrFormatter('%.1f'))\n", "\n", " \n", "for ex_data in peptide_exchange_dict.get(peptide_input2):\n", " for state in ex_data:\n", "\n", " for key in stdev_dict_dict:\n", " if state == key:\n", " current_stdev_dict = stdev_dict_dict.get(state)\n", " current_stdev = current_stdev_dict.get(peptide)\n", "\n", " ax2.plot(timepoints, ex_data.get(state), 'o', label = state, markersize = 10, alpha = 0.5,\n", " color = color_dict.get(state))\n", " ax2.errorbar(timepoints, ex_data.get(state), yerr = current_stdev, linestyle = 'None',\n", " ecolor = color_dict.get(state), capsize = 3, linewidth = 1)\n", " ax2.plot(trialT, peptide2_fit_dict.get(state), '-', color = color_dict.get(state))\n", " y_lim = len(peptide_input2) - 2 - peptide_input2[2:].count('P') + 0.25\n", "\n", " ax2.set_xlabel('Time (seconds)')\n", " ax2.set_title(peptide2_firstres + ' - ' + peptide_input2)\n", " ax2.set_xscale('log')\n", " ax2.set_ylim(0, y_lim)\n", " ax2.yaxis.set_major_formatter(FormatStrFormatter('%.1f'))\n", "\n", " plt.legend(frameon = False, bbox_to_anchor=(1, 1))\n", " \n", "# This section controls the structure widget.\n", "\n", "peptide1_lastres = int(peptide1_firstres) + len(peptide_input1) - 1\n", "peptide2_lastres = int(peptide2_firstres) + len(peptide_input2) - 1\n", "\n", "# view = nv.NGLWidget()\n", "traj = pt.load('lacI_files/2p9h_REDO.pdb')\n", "view = nv.show_pytraj(traj)\n", "view.add_surface(str(int(peptide1_firstres)+2) + \"-\" + str(peptide1_lastres), color = 'orange', opacity='0.5', wireframe=True)\n", "view.add_ball_and_stick(str(int(peptide1_firstres)+2) + \"-\" + str(peptide1_lastres))\n", "view.add_surface(str(int(peptide2_firstres)+2) + \"-\" + str(peptide2_lastres), color = 'lightblue', opacity='0.5', wireframe=True)\n", "view.add_ball_and_stick(str(int(peptide2_firstres)+2) + \"-\" + str(peptide2_lastres))\n", "view.background = \"white\"\n", "# view.add_surface('74-81', color = 'orange', opacity='0.9', wireframe=True)\n", "# view.add_ball_and_stick('246-255')\n", "\n", "\n", "# view.add_representation('line', selection='water') # uncomment this line to see solvent\n", "view._set_size('800px', '600px')\n", "mat = [59.476009917035874 ,66.10295214971443, -76.02228809508843, 0,\n", " -55.56959630110223, 95.16365469618486, 39.27191257844691, 0,\n", " 84.029807431962, 16.14505706800799, 79.77915091670029, 0, \n", " -22.46560287475586, 17.614827632904053, -10.28352165222168, 1]\n", "view._set_camera_orientation(mat)\n", "print('''\n", "PDB ID: 2P9H (wild-type LacI core domain + IPTG). \n", "Oriented with the C-terminal subdomain at the top.\n", "\n", "Use the mouse to move the structure. \n", "Double-click for full-screen. Type \"R\" to zoom out, \"I\" to rotate, and \"K\" to rock.\n", "NGLViewer, an amazing tool: H Nguyen, DA Case and AS Rose, Bioinformatics, 2017. doi:10.1093/bioinformatics/btx789\n", "''')\n", "print('Peptide ' + peptide_input1 + ', residues ' + str(int(peptide1_firstres)+2) + \"-\" + str(peptide1_lastres) + \n", " ', shown as orange surface and sticks.')\n", "print('Peptide ' + peptide_input2 + ', residues ' + str(int(peptide2_firstres)+2) + \"-\" + str(peptide2_lastres) + \n", " ', shown as blue surface and sticks.')\n", "view" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Compile mutational phenotype information for peptide 1." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "-------- Mutational phenotype data from Markiewicz et al., J. Mol Biol., 1994 --------\n", "\n", "Peptide 1: ALHAPSQIVAA\n", "\n", "A72: group 12\n", "N-terminal part of the dimerization interface - substitutions result in Is phenotype\n", "\n", "Mutations that do not affect the phenotype: H C E G K Q R S\n", "Mutations causing small effects on phenotype: Y L P\n", "Mutations causing dramatic effects on phenotype: F\n", "\n", "L73: group 11\n", "IPTG contacts, substitutions result in Is phenotype\n", "\n", "Mutations that do not affect the phenotype: Y H C F\n", "Mutations causing small effects on phenotype: P\n", "Mutations causing dramatic effects on phenotype: A E G K Q R S\n", "\n", "H74: group 12\n", "N-terminal part of the dimerization interface - substitutions result in Is phenotype\n", "\n", "Mutations that do not affect the phenotype: L A C E G K Q S\n", "Mutations causing small effects on phenotype: R\n", "Mutations causing dramatic effects on phenotype: Y F P\n", "\n", "A75: group 11\n", "IPTG contacts, substitutions result in Is phenotype\n", "\n", "Mutations that do not affect the phenotype: \n", "Mutations causing small effects on phenotype: \n", "Mutations causing dramatic effects on phenotype: Y L H C E F G K P Q R S\n", "\n", "P76: group 11\n", "IPTG contacts, substitutions result in Is phenotype\n", "\n", "Mutations that do not affect the phenotype: A C\n", "Mutations causing small effects on phenotype: L H E F G Q R S\n", "Mutations causing dramatic effects on phenotype: Y K\n", "\n", "S77: group 14\n", "N-terminal domain of the core, near the center of the domain (weak Is)\n", "\n", "Mutations that do not affect the phenotype: A G\n", "Mutations causing small effects on phenotype: L H C E F P Q R\n", "Mutations causing dramatic effects on phenotype: Y K\n", "\n", "Q78: group 12\n", "N-terminal part of the dimerization interface - substitutions result in Is phenotype\n", "\n", "Mutations that do not affect the phenotype: F S\n", "Mutations causing small effects on phenotype: Y L H A E G\n", "Mutations causing dramatic effects on phenotype: C K P R\n", "\n", "I79: group 11\n", "IPTG contacts, substitutions result in Is phenotype\n", "\n", "Mutations that do not affect the phenotype: A C S\n", "Mutations causing small effects on phenotype: Y L E F G K P Q R\n", "Mutations causing dramatic effects on phenotype: H\n", "\n", "V80: group 12\n", "N-terminal part of the dimerization interface - substitutions result in Is phenotype\n", "\n", "Mutations that do not affect the phenotype: A C G Q S\n", "Mutations causing small effects on phenotype: L K P R\n", "Mutations causing dramatic effects on phenotype: Y H E F\n", "\n", "A81: group 12\n", "N-terminal part of the dimerization interface - substitutions result in Is phenotype\n", "\n", "Mutations that do not affect the phenotype: H F P S\n", "Mutations causing small effects on phenotype: Y L C G K Q R\n", "Mutations causing dramatic effects on phenotype: E\n", "\n", "A82: group 1\n", "Solvent exposed and mostly tolerant to substitutions\n", "\n", "Mutations that do not affect the phenotype: Y H F R\n", "Mutations causing small effects on phenotype: L C E G K P S\n", "Mutations causing dramatic effects on phenotype: Q\n", "\n", "Heatmap\n", "Darker colors indicate increased disruption to phenotype by mutation.\n", "White boxes - WT residue.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Make dictionaries to organize mutation information\n", "MH_dict = {}\n", "with open(\"lacI_files/MH_groups.txt\") as file:\n", " for line in file:\n", " (key, val) = line.split()\n", " MH_dict[int(key)] = val\n", "\n", "mutation_dict = {}\n", "with open(\"lacI_files/single_mutants.txt\") as file:\n", " for line in file:\n", " (key, val) = line.split()\n", " mutation_dict[key] = val\n", " \n", "MHdescriptions_dict = {}\n", "with open(\"lacI_files/MHgroups_descriptions.txt\") as file:\n", " for line in file:\n", " (key, val) = line.split(':')\n", " MHdescriptions_dict[key] = val\n", "\n", "# This section controls the mutation information.\n", "\n", "peptide1_range = range(int(peptide1_firstres), int(peptide1_lastres) + 1, 1)\n", "\n", "print('''\n", "-------- Mutational phenotype data from Markiewicz et al., J. Mol Biol., 1994 --------\n", "''')\n", "print('Peptide 1: ' + peptide_input1)\n", "\n", "peptide_index = 0\n", "res_label_value = []\n", "AA_value = []\n", "heatmap_value = []\n", "\n", "aa = list(\"YLHACDEFGIKMNPQRSTVW\")\n", "\n", "for residue in peptide1_range:\n", " no_effect = []\n", " small_effect = []\n", " dramatic_effect = []\n", " \n", " # print MH group\n", " for key, value in MH_dict.items(): \n", " if residue == key:\n", " peptide_index = peptide_index + 1\n", " res_label = str(peptide_input1[peptide_index-1]) + str(residue)\n", " print('\\n' + res_label + ': group ' + value)\n", " # print MH group description\n", " for second_key, second_value in MHdescriptions_dict.items():\n", " if value == second_key:\n", " print(second_value)\n", " \n", " # group and print phenotype effects of specific point mutations\n", " for AA in aa:\n", " for key, value in mutation_dict.items():\n", " if key[-1] == AA:\n", " if res_label in key:\n", " if value == '+':\n", " no_effect.append(key[-1])\n", " heatmap_value.append(1)\n", " AA_value.append(AA)\n", " res_label_value.append(residue)\n", " elif value == ('+-'):\n", " small_effect.append(key[-1])\n", " heatmap_value.append(0.25)\n", " AA_value.append(AA)\n", " res_label_value.append(residue)\n", " elif value == ('-+'):\n", " small_effect.append(key[-1])\n", " heatmap_value.append(0.75)\n", " AA_value.append(AA)\n", " res_label_value.append(residue)\n", " elif value == '-':\n", " dramatic_effect.append(key[-1])\n", " heatmap_value.append(0)\n", " AA_value.append(AA)\n", " res_label_value.append(residue)\n", "\n", " print('Mutations that do not affect the phenotype: ' + \" \".join(x for x in no_effect))\n", " print('Mutations causing small effects on phenotype: ' + \" \".join(x for x in small_effect))\n", " print('Mutations causing dramatic effects on phenotype: ' + \" \".join(x for x in dramatic_effect))\n", "\n", "heatmap_df = pd.DataFrame({'Phenotype': AA_value, 'Residue': res_label_value, 'Sensitivity': heatmap_value })\n", "# plot it\n", "print('\\nHeatmap'\n", " '\\nDarker colors indicate increased disruption to phenotype by mutation.'\n", " '\\nWhite boxes - WT residue.')\n", "plt.rcParams['figure.figsize'] = (10.0, 8.0)\n", "plt.rcParams['font.size'] = 18\n", "plt.rcParams['font.family'] = 'Arial'\n", "df_wide=heatmap_df.pivot_table( index='Residue', columns='Phenotype', values='Sensitivity' )\n", "p2=sns.heatmap( df_wide, cmap=\"YlGn_r\" )\n", "p2.set_title(peptide1_firstres + ' - ' + peptide_input1)\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Compile mutational phenotype information for peptide 2." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "scrolled": false }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "-------- Mutational phenotype data from Markiewicz et al., J. Mol Biol., 1994 --------\n", "\n", "Peptide 2: AAVHNL\n", "\n", "A109: group 1\n", "Solvent exposed and mostly tolerant to substitutions\n", "\n", "Mutations that do not affect the phenotype: Y L H C E F G K P Q R S\n", "Mutations causing small effects on phenotype: \n", "Mutations causing dramatic effects on phenotype: \n", "\n", "A110: group 12\n", "N-terminal part of the dimerization interface - substitutions result in Is phenotype\n", "\n", "Mutations that do not affect the phenotype: L C F G Q S\n", "Mutations causing small effects on phenotype: H E P R\n", "Mutations causing dramatic effects on phenotype: Y K\n", "\n", "V111: group 3\n", "Buried, but tolerant to substitutions\n", "\n", "Mutations that do not affect the phenotype: Y L H A C E F G K P Q R S\n", "Mutations causing small effects on phenotype: \n", "Mutations causing dramatic effects on phenotype: \n", "\n", "H112: group 15\n", "Interface between headpiece of protomer A and core of protomer B, or interface between headpieces A and B - intolerant to substitutions\n", "Mutations that do not affect the phenotype: Y L A C E F G K P Q R S\n", "Mutations causing small effects on phenotype: \n", "Mutations causing dramatic effects on phenotype: \n", "\n", "N113: group 15\n", "Interface between headpiece of protomer A and core of protomer B, or interface between headpieces A and B - intolerant to substitutions\n", "Mutations that do not affect the phenotype: H A C E F G Q R S\n", "Mutations causing small effects on phenotype: \n", "Mutations causing dramatic effects on phenotype: Y L K P\n", "\n", "L114: group 7\n", "Buried, intolerant to substitutions (I-)\n", "\n", "Mutations that do not affect the phenotype: H A C G Q S\n", "Mutations causing small effects on phenotype: Y F\n", "Mutations causing dramatic effects on phenotype: E K P R\n", "\n", "Heatmap\n", "Darker colors indicate increased disruption to phenotype by mutation.\n", "White boxes - WT residue.\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "peptide2_range = range(int(peptide2_firstres), int(peptide2_lastres) + 1, 1)\n", "\n", "print('''\n", "-------- Mutational phenotype data from Markiewicz et al., J. Mol Biol., 1994 --------\n", "''')\n", "print('Peptide 2: ' + peptide_input2)\n", "\n", "peptide_index = 0\n", "res_label_value = []\n", "AA_value = []\n", "heatmap_value = []\n", "\n", "aa = list(\"YLHACDEFGIKMNPQRSTVW\")\n", "\n", "for residue in peptide2_range:\n", " no_effect = []\n", " small_effect = []\n", " dramatic_effect = []\n", " \n", " # print MH group\n", " for key, value in MH_dict.items(): \n", " if residue == key:\n", " peptide_index = peptide_index + 1\n", " res_label = str(peptide_input2[peptide_index-1]) + str(residue)\n", " print('\\n' + res_label + ': group ' + value)\n", " # print MH group description\n", " for second_key, second_value in MHdescriptions_dict.items():\n", " if value == second_key:\n", " print(second_value)\n", " \n", " # group and print phenotype effects of specific point mutations\n", " for AA in aa:\n", " for key, value in mutation_dict.items():\n", " if key[-1] == AA:\n", " if res_label in key:\n", " if value == '+':\n", " no_effect.append(key[-1])\n", " heatmap_value.append(1)\n", " AA_value.append(AA)\n", " res_label_value.append(residue)\n", " elif value == ('+-'):\n", " small_effect.append(key[-1])\n", " heatmap_value.append(0.25)\n", " AA_value.append(AA)\n", " res_label_value.append(residue)\n", " elif value == ('-+'):\n", " small_effect.append(key[-1])\n", " heatmap_value.append(0.75)\n", " AA_value.append(AA)\n", " res_label_value.append(residue)\n", " elif value == '-':\n", " dramatic_effect.append(key[-1])\n", " heatmap_value.append(0)\n", " AA_value.append(AA)\n", " res_label_value.append(residue)\n", "\n", " print('Mutations that do not affect the phenotype: ' + \" \".join(x for x in no_effect))\n", " print('Mutations causing small effects on phenotype: ' + \" \".join(x for x in small_effect))\n", " print('Mutations causing dramatic effects on phenotype: ' + \" \".join(x for x in dramatic_effect))\n", "\n", "heatmap_df = pd.DataFrame({'Phenotype': AA_value, 'Residue': res_label_value, 'Sensitivity': heatmap_value })\n", "# plot it\n", "print('\\nHeatmap'\n", " '\\nDarker colors indicate increased disruption to phenotype by mutation.'\n", " '\\nWhite boxes - WT residue.')\n", "plt.rcParams['figure.figsize'] = (10.0, 8.0)\n", "plt.rcParams['font.size'] = 18\n", "plt.rcParams['font.family'] = 'Arial'\n", "df_wide=heatmap_df.pivot_table( index='Residue', columns='Phenotype', values='Sensitivity' )\n", "p2=sns.heatmap( df_wide, cmap=\"YlGn_r\" )\n", "p2.set_title(peptide2_firstres + ' - ' + peptide_input2)\n", "plt.show()" ] } ], "metadata": { "celltoolbar": "Tags", "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.8.3" } }, "nbformat": 4, "nbformat_minor": 4 }