{ "cells": [ { "cell_type": "markdown", "id": "49bcb5b0-f19d-4b96-a5f1-e0ae30f66d8f", "metadata": {}, "source": [ "## Macromolecules : Binding Affinity and Fractional Occupancy\n", "\n", "LAST REVISED: Nov. 4, 2023" ] }, { "cell_type": "code", "execution_count": 1, "id": "98adb66e-e336-4a4e-9a47-d48e9f0c8c68", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Added 'D:\\Docs\\- MY CODE\\BioSimulations\\life123-Win7' to sys.path\n" ] } ], "source": [ "import set_path # Importing this module will add the project's home directory to sys.path" ] }, { "cell_type": "code", "execution_count": 2, "id": "c1ac7763", "metadata": { "tags": [] }, "outputs": [], "source": [ "from src.modules.chemicals.chem_data import ChemData\n", "from src.modules.reactions.reaction_dynamics import ReactionDynamics\n", "from src.modules.movies.movies import MovieTabular\n", "\n", "import numpy as np\n", "\n", "import plotly.express as px" ] }, { "cell_type": "code", "execution_count": 3, "id": "23c15e66-52e4-495b-aa3d-ecddd8d16942", "metadata": { "lines_to_next_cell": 2 }, "outputs": [], "source": [ "# Initialize the system\n", "chem = ChemData(names=[\"A\", \"B\", \"C\"])" ] }, { "cell_type": "markdown", "id": "83fd43d2-6a90-4b24-ae2c-5a65718e416d", "metadata": {}, "source": [ "## Explore methods to manage the data structure for macromolecules" ] }, { "cell_type": "code", "execution_count": 4, "id": "e3aa4733-dd9d-485d-a899-a9a03ff40d87", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['M1']" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chem.add_macromolecules(\"M1\")\n", "chem.get_macromolecules()" ] }, { "cell_type": "code", "execution_count": 5, "id": "acbd2b50-8bc1-4e23-8816-0da0ee85b461", "metadata": {}, "outputs": [], "source": [ "chem.set_binding_site_affinity(\"M1\", site_number=3, ligand=\"A\", Kd=1.0)\n", "chem.set_binding_site_affinity(\"M1\", site_number=8, ligand=\"B\", Kd=3.2)\n", "chem.set_binding_site_affinity(\"M1\", site_number=15, ligand=\"A\", Kd=10.0)\n", "\n", "chem.set_binding_site_affinity(\"M2\", site_number=1, ligand=\"C\", Kd=5.6) # \"M2\" will get automatically added\n", "chem.set_binding_site_affinity(\"M2\", site_number=2, ligand=\"A\", Kd=0.01)" ] }, { "cell_type": "code", "execution_count": 6, "id": "86e39939-7e26-4cfd-af63-a4a536966927", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "M1 :\n", " Site 3 - Kd (dissociation const) for A : 1.0\n", " Site 8 - Kd (dissociation const) for B : 3.2\n", " Site 15 - Kd (dissociation const) for A : 10.0\n", "M2 :\n", " Site 1 - Kd (dissociation const) for C : 5.6\n", " Site 2 - Kd (dissociation const) for A : 0.01\n" ] } ], "source": [ "chem.show_binding_affinities() # Review the values we have given for the dissociation constants" ] }, { "cell_type": "code", "execution_count": 7, "id": "fecbf8df-1e28-4b0b-99ec-d3d76923dfe4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[3, 8, 15]" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chem.get_binding_sites(\"M1\")" ] }, { "cell_type": "code", "execution_count": 8, "id": "0c805eec-10a2-44e1-b543-eeb8b39510a7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{3: 'A', 8: 'B', 15: 'A'}" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chem.get_binding_sites_and_ligands(\"M1\")" ] }, { "cell_type": "code", "execution_count": 9, "id": "db43fb3f-0f1f-4d46-8371-b23b1deab647", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "[1, 2]" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chem.get_binding_sites(\"M2\")" ] }, { "cell_type": "code", "execution_count": 10, "id": "36a5710b-f3db-4478-a91d-2a3ad4a576da", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{1: 'C', 2: 'A'}" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "chem.get_binding_sites_and_ligands(\"M2\")" ] }, { "cell_type": "code", "execution_count": 11, "id": "afae6257-830f-4636-898f-c5af9529ab78", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "ChemicalAffinity(chemical='C', Kd=5.6)" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "aff = chem.get_binding_site_affinity(macromolecule=\"M2\", site_number=1) # A \"NamedTuple\" gets returned\n", "aff" ] }, { "cell_type": "code", "execution_count": 12, "id": "4124f99a-e474-43cd-8854-ce71ad870987", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "'C'" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "aff.chemical" ] }, { "cell_type": "code", "execution_count": 13, "id": "647ee66c-f7c7-4677-9c05-2b309d06fd89", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "5.6" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "aff.Kd" ] }, { "cell_type": "code", "execution_count": null, "id": "cf6ed2ea-04b8-48d6-a20b-120f22b4732d", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "7899d8b1-3b0f-4243-895d-6ba51f0174d7", "metadata": {}, "source": [ "## Start setting up the dynamical system" ] }, { "cell_type": "code", "execution_count": 14, "id": "73fb80ce-a07c-464d-81e4-814955b613ee", "metadata": {}, "outputs": [], "source": [ "dynamics = ReactionDynamics(chem_data=chem)" ] }, { "cell_type": "code", "execution_count": 15, "id": "85d19965-4a82-4868-9a1f-cbf6fc29b6cd", "metadata": {}, "outputs": [], "source": [ "dynamics.set_macromolecules() # By default, set counts to 1 for all the registered macromolecules" ] }, { "cell_type": "code", "execution_count": 16, "id": "ccd16fb4-f5de-474c-b85d-28a3f64e815b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "3 species:\n", " Species 0 (A). No concentrations set yet\n", " Species 1 (B). No concentrations set yet\n", " Species 2 (C). No concentrations set yet\n", "Macro-molecules, with their counts: {'M1': 1, 'M2': 1}\n", "Fractional Occupancy at the various binding sites for each macro-molecule:\n", " M1 || 3: 0.0 (A) | 8: 0.0 (B) | 15: 0.0 (A)\n", " M2 || 1: 0.0 (C) | 2: 0.0 (A)\n", "Set of chemicals involved in reactions: set()\n" ] } ], "source": [ "dynamics.describe_state()" ] }, { "cell_type": "markdown", "id": "9c712242-7dca-4a90-b743-df1e4e3fbc6e", "metadata": {}, "source": [ "### Inspect some class attributes (not to be directly modified by the end user!)" ] }, { "cell_type": "code", "execution_count": 17, "id": "71326536-e56b-4499-a78a-7149ccc9b727", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'M1': 1, 'M2': 1}" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.macro_system" ] }, { "cell_type": "code", "execution_count": 18, "id": "5ffd0c72-67cd-4150-ad8e-89382622c591", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'M1': {3: ('A', 0.0), 8: ('B', 0.0), 15: ('A', 0.0)},\n", " 'M2': {1: ('C', 0.0), 2: ('A', 0.0)}}" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dynamics.macro_system_state" ] }, { "cell_type": "markdown", "id": "0e771dda-1c0f-4fc0-ab21-049740643897", "metadata": {}, "source": [ "### Set the initial concentrations of all the ligands" ] }, { "cell_type": "code", "execution_count": 19, "id": "5563e467-a637-44fa-9ba1-d35ddd82c887", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "3 species:\n", " Species 0 (A). Conc: 10.0\n", " Species 1 (B). Conc: 0.0\n", " Species 2 (C). Conc: 0.56\n", "Macro-molecules, with their counts: {'M1': 1, 'M2': 1}\n", "Fractional Occupancy at the various binding sites for each macro-molecule:\n", " M1 || 3: 0.0 (A) | 8: 0.0 (B) | 15: 0.0 (A)\n", " M2 || 1: 0.0 (C) | 2: 0.0 (A)\n", "Set of chemicals involved in reactions: set()\n" ] } ], "source": [ "dynamics.set_conc(conc={\"A\": 10., \"B\": 0., \"C\": 0.56})\n", "dynamics.describe_state()" ] }, { "cell_type": "markdown", "id": "ad018b3c-e331-4fa9-92d6-b49c63aff226", "metadata": {}, "source": [ "### Determine and adjust the fractional occupancy of the various sites on the macromolecules, based on the current ligand concentrations" ] }, { "cell_type": "code", "execution_count": 20, "id": "6c1dc8cb", "metadata": {}, "outputs": [], "source": [ "dynamics.update_occupancy()" ] }, { "cell_type": "code", "execution_count": 21, "id": "42c2f8f4-bea5-4d21-a1ad-4ab76d34cb3e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "3 species:\n", " Species 0 (A). Conc: 10.0\n", " Species 1 (B). Conc: 0.0\n", " Species 2 (C). Conc: 0.56\n", "Macro-molecules, with their counts: {'M1': 1, 'M2': 1}\n", "Fractional Occupancy at the various binding sites for each macro-molecule:\n", " M1 || 3: 0.8999999930397401 (A) | 8: 1.6007639537264433e-15 (B) | 15: 0.5 (A)\n", " M2 || 1: 0.10000000696026 (C) | 2: 0.9986301366689166 (A)\n", "Set of chemicals involved in reactions: set()\n" ] } ], "source": [ "dynamics.describe_state()" ] }, { "cell_type": "code", "execution_count": 22, "id": "660d99ff-ddd0-419b-b40a-25ac27aa1d1f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "M1 :\n", " Site 3 - Kd (dissociation const) for A : 1.0\n", " Site 8 - Kd (dissociation const) for B : 3.2\n", " Site 15 - Kd (dissociation const) for A : 10.0\n", "M2 :\n", " Site 1 - Kd (dissociation const) for C : 5.6\n", " Site 2 - Kd (dissociation const) for A : 0.01\n" ] } ], "source": [ "dynamics.chem_data.show_binding_affinities() # Review the values we had given for the dissociation constants" ] }, { "cell_type": "markdown", "id": "202f78e9-9c87-43b6-b2e0-9addce298262", "metadata": {}, "source": [ "#### Notes:\n", "**[B] = 0** => Occupancy of binding site 8 of M1 is also zero\n", "\n", "**[A] = 10.0** : \n", " * 10x the dissociation constant of A to site 3 of M1 (resulting in occupancy 0.9) \n", " * same as the dissociation constant of A to site 15 of M1 (occupancy 0.5) \n", " * 1,000x the dissociation constant of A to site 2 of M2 (occupancy almost 1, i.e. nearly saturated)\n", " \n", " \n", "**[C] = 0.56** => 1/10 of the dissociation constant of C to site 1 of M2 (occupancy 0.1)" ] }, { "cell_type": "code", "execution_count": null, "id": "1caef55c-558b-462a-8b5e-a1474fd78092", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "22d48dc6-5876-4982-b37d-c9209a2bd811", "metadata": {}, "source": [ "### Adjust the concentration of one ligand, [A], and update all the fractional occupancies accordingly" ] }, { "cell_type": "code", "execution_count": 23, "id": "222dc35e-0804-455a-8019-2372272a5899", "metadata": {}, "outputs": [], "source": [ "dynamics.set_single_conc(conc=1000., species_name=\"A\", snapshot=False)" ] }, { "cell_type": "code", "execution_count": 24, "id": "f4b30f28-1f55-46e7-a51d-60d0f580828f", "metadata": {}, "outputs": [], "source": [ "dynamics.update_occupancy()" ] }, { "cell_type": "code", "execution_count": 25, "id": "a3c63fb6-fb88-4c08-9617-3405032ffab2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "3 species:\n", " Species 0 (A). Conc: 1000.0\n", " Species 1 (B). Conc: 0.0\n", " Species 2 (C). Conc: 0.56\n", "Macro-molecules, with their counts: {'M1': 1, 'M2': 1}\n", "Fractional Occupancy at the various binding sites for each macro-molecule:\n", " M1 || 3: 0.9986301366689166 (A) | 8: 1.6007639537264433e-15 (B) | 15: 0.9878048761855343 (A)\n", " M2 || 1: 0.10000000696026 (C) | 2: 0.9999830651924357 (A)\n", "Set of chemicals involved in reactions: set()\n" ] } ], "source": [ "dynamics.describe_state()" ] }, { "cell_type": "markdown", "id": "85671b32-485d-46f9-a21d-e6f711e7ed73", "metadata": {}, "source": [ "#### Note how all the various binding sites for ligand A, across all macromolecules, now have a different value for the fractional occupancy (very close to 1 because of the large value of [A] relative to each of the dissociation constants for A.)\n", "The fractional occupancies for the other ligands (B and C) did not change" ] }, { "cell_type": "code", "execution_count": null, "id": "0468fcfe-8511-4c81-9f47-4b2f4a24d76a", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "08d7c9fd-1bfd-459a-bd45-e8c4bfb8130b", "metadata": {}, "source": [ "### Sweep the values of [A] across a wide range, and compute/store how the fractional occupancies of A change" ] }, { "cell_type": "code", "execution_count": 26, "id": "a4ef4ca6-0233-47d3-8209-d3e337a8392c", "metadata": {}, "outputs": [], "source": [ "history = MovieTabular(parameter_name=\"[A]\") # A convenient way to store a sequence of \"state snapshots\" as a Pandas dataframe" ] }, { "cell_type": "code", "execution_count": 27, "id": "60a76c7e-6eb4-423f-8103-683205aaf817", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "`MovieTabular` object with 0 snapshot(s) parametrized by `[A]`\n" ] } ], "source": [ "print(history)" ] }, { "cell_type": "code", "execution_count": 28, "id": "4cfdbf3f-cec9-4f6c-83bc-05fd408411a4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[1.00000000e-03 1.13121657e-03 1.27965093e-03 1.44756233e-03\n", " 1.63750649e-03 1.85237447e-03 2.09543670e-03 2.37039271e-03\n", " 2.68142751e-03 3.03327522e-03 3.43129119e-03 3.88153345e-03\n", " 4.39085495e-03 4.96700787e-03 5.61876160e-03 6.35603621e-03\n", " 7.19005348e-03 8.13350762e-03 9.20075859e-03 1.04080506e-02\n", " 1.17737592e-02 1.33186715e-02 1.50663019e-02 1.70432503e-02\n", " 1.92796072e-02 2.18094111e-02 2.46711672e-02 2.79084331e-02\n", " 3.15704819e-02 3.57130522e-02 4.03991964e-02 4.57002403e-02\n", " 5.16968690e-02 5.84803548e-02 6.61539463e-02 7.48344401e-02\n", " 8.46539585e-02 9.57619605e-02 1.08327516e-01 1.22541881e-01\n", " 1.38621407e-01 1.56810832e-01 1.77387011e-01 2.00663126e-01\n", " 2.26993453e-01 2.56778755e-01 2.90472382e-01 3.28587172e-01\n", " 3.71703253e-01 4.20476878e-01 4.75650411e-01 5.38063626e-01\n", " 6.08666489e-01 6.88533617e-01 7.78880636e-01 8.81082680e-01\n", " 9.96695326e-01 1.12747827e+00 1.27542210e+00 1.44277861e+00\n", " 1.63209507e+00 1.84625298e+00 2.08851196e+00 2.36255934e+00\n", " 2.67256626e+00 3.02325124e+00 3.41995189e+00 3.86870625e+00\n", " 4.37634461e+00 4.95059353e+00 5.60019342e+00 6.33503159e+00\n", " 7.16629270e+00 8.10662903e+00 9.17035308e+00 1.03736553e+01\n", " 1.17348508e+01 1.32746577e+01 1.50165127e+01 1.69869280e+01\n", " 1.92158944e+01 2.17373381e+01 2.45896370e+01 2.78162048e+01\n", " 3.14661517e+01 3.55950322e+01 4.02656902e+01 4.55492159e+01\n", " 5.15260277e+01 5.82870963e+01 6.59353291e+01 7.45871367e+01\n", " 8.43742048e+01 9.54454985e+01 1.07969529e+02 1.22136920e+02\n", " 1.38163308e+02 1.56292623e+02 1.76800805e+02 2.00000000e+02]\n" ] } ], "source": [ "# Generate a sweep of [A] values along a log scale, from very low to very high (relative to the dissociation constants)\n", "start = 0.001\n", "stop = 200.\n", "num_points = 100\n", "\n", "log_values = np.logspace(np.log10(start), np.log10(stop), num=num_points)\n", "\n", "print(log_values)" ] }, { "cell_type": "code", "execution_count": 29, "id": "5d4be3d3-6eba-4aa2-a265-a869622a5221", "metadata": {}, "outputs": [], "source": [ "# Set [A] to each of the above values in turn, and determine/store the applicable fractional occupancies (for the sites where A binds)\n", "for A_conc in log_values:\n", " dynamics.set_single_conc(conc=A_conc, species_name=\"A\", snapshot=False)\n", " dynamics.update_occupancy()\n", " history.store(A_conc, {\"M1 site 3\": dynamics.get_occupancy(macromolecule=\"M1\", site_number=3), \n", " \"M1 site 15\": dynamics.get_occupancy(macromolecule=\"M1\", site_number=15), \n", " \"M2 site 2\": dynamics.get_occupancy(macromolecule=\"M2\", site_number=2)})" ] }, { "cell_type": "code", "execution_count": 30, "id": "6976557b-0e17-4dba-8d6b-29b47e48fd0e", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
[A]M1 site 3M1 site 15M2 site 2caption
00.0010000.0013700.0001520.100000
10.0011310.0015410.0001710.111098
20.0012800.0017330.0001930.123259
30.0014480.0019490.0002170.136547
40.0016380.0021910.0002440.151021
..................
95122.1369200.9899020.9159110.999874
96138.1633080.9910130.9245400.999888
97156.2926230.9920020.9323490.999900
98176.8008050.9928840.9394030.999912
99200.0000000.9936690.9457640.999921
\n", "

100 rows × 5 columns

\n", "
" ], "text/plain": [ " [A] M1 site 3 M1 site 15 M2 site 2 caption\n", "0 0.001000 0.001370 0.000152 0.100000 \n", "1 0.001131 0.001541 0.000171 0.111098 \n", "2 0.001280 0.001733 0.000193 0.123259 \n", "3 0.001448 0.001949 0.000217 0.136547 \n", "4 0.001638 0.002191 0.000244 0.151021 \n", ".. ... ... ... ... ...\n", "95 122.136920 0.989902 0.915911 0.999874 \n", "96 138.163308 0.991013 0.924540 0.999888 \n", "97 156.292623 0.992002 0.932349 0.999900 \n", "98 176.800805 0.992884 0.939403 0.999912 \n", "99 200.000000 0.993669 0.945764 0.999921 \n", "\n", "[100 rows x 5 columns]" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = history.get_dataframe()\n", "df" ] }, { "cell_type": "code", "execution_count": 31, "id": "afaa504e-dfb7-41bd-812e-082e82e3bdaa", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Binding site=M2 site 2
[A]=%{x}
Fractional Occupancy=%{y}", "legendgroup": "M2 site 2", "line": { "color": "seagreen", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "M2 site 2", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0.001, 0.0011312165687240227, 0.0012796509253557506, 0.0014475623289454528, 0.0016375064907638303, 0.001852374473745174, 0.002095436696181983, 0.0023703927094333855, 0.0026814275072936716, 0.003033275224082957, 0.00343129119098271, 0.003881533447356427, 0.004390854947706065, 0.004967007867708953, 0.0056187615969349415, 0.006356036214163056, 0.007190053476871153, 0.008133507623048415, 0.009200758585035511, 0.010408050556221961, 0.011773759237315558, 0.013318671525418874, 0.015066301902946676, 0.017043250342011547, 0.01927960717179483, 0.021809411071224798, 0.024671167157882617, 0.027908433058756763, 0.031570481883190914, 0.03571305218886713, 0.04039919635575221, 0.04570024028076206, 0.051696869000267, 0.058480354764257315, 0.06615394625418672, 0.07483444008921449, 0.08465395854010462, 0.09576196050864284, 0.10832751638087228, 0.1225418813787657, 0.13862140657827343, 0.15681083190117215, 0.1773870112020035, 0.20066312614814, 0.22699345303073468, 0.2567787550602453, 0.2904723822204767, 0.32858717152454053, 0.3717032526987227, 0.420476878101407, 0.4756504112736628, 0.5380636261531626, 0.608666488932186, 0.6885336171071658, 0.7788806357951075, 0.8810826802697267, 0.9966953263368856, 1.1274782671220807, 1.2754220966447474, 1.44277860784127, 1.6320950661906224, 1.846252980607563, 2.0885119617193872, 2.3625593350752805, 2.6725662644307677, 3.023251239336952, 3.4199518933533932, 3.8687062460004507, 4.376344605001825, 4.950593527624048, 5.600193423466232, 6.335031588684309, 7.166292696509752, 8.106629034617788, 9.17035308045887, 10.373655345664446, 11.73485080524815, 13.27465766240115, 15.016512691847486, 16.986927961472418, 19.21589436173899, 21.737338084849675, 24.58963700153767, 27.816204795048712, 31.466151743179715, 35.59503220586912, 40.265690195544344, 45.5492159003082, 51.526027718816344, 58.287096276058314, 65.93532905028945, 74.58713668595766, 84.37420483283871, 95.44549847982168, 107.9695292904978, 122.13692045074481, 138.1633080668105, 156.29262327489712, 176.80080501790547, 200.00000000000003 ], "xaxis": "x", "y": [ 0.10000000696025997, 0.11109818258413001, 0.12325936654542095, 0.1365472640669584, 0.1510209041361284, 0.1667324637256011, 0.18372485535381863, 0.20202913811565212, 0.22166184137127126, 0.24262232057031044, 0.2648902931775448, 0.2884237254423991, 0.31315725335046635, 0.33900131907250874, 0.3658421839828837, 0.39354293901069093, 0.42194557347294537, 0.4508740885138144, 0.4801385578490205, 0.5095399561168301, 0.5388755042470056, 0.5679442316144001, 0.5965524334984128, 0.6245187126608063, 0.6516783341571556, 0.677886686938909, 0.7030217253552498, 0.7269853478907097, 0.7497037493947369, 0.7711268486968389, 0.7912269408309549, 0.8099967502913824, 0.8274470698250876, 0.8436041613222326, 0.858507075643926, 0.8722050212599631, 0.8847548815176722, 0.8962189505890295, 0.9066629310404485, 0.916154212977426, 0.9247604364575598, 0.9325483253431438, 0.9395827715660179, 0.9459261432564229, 0.951637787607493, 0.9567736989808334, 0.9613863239518131, 0.9655244771948063, 0.9692333448807688, 0.9725545552724012, 0.9755262992208058, 0.9781834861356175, 0.980557923623209, 0.9826785113160195, 0.9845714414343325, 0.9862604003361446, 0.9877667667410386, 0.989109803487966, 0.9903068406355315, 0.9913734484682767, 0.9923235995636049, 0.9931698195288735, 0.9939233263613017, 0.9945941586359167, 0.9951912929069594, 0.9957227508311791, 0.9961956965999087, 0.9966165253110241, 0.9969909429302506, 0.9973240384904453, 0.9976203491628132, 0.9978839188096542, 0.9981183505974335, 0.998326854214218, 0.9985122881986882, 0.9986771978504337, 0.9988238491540847, 0.9989542591137495, 0.9990702228597123, 0.9991733378567135, 0.999265025512572, 0.9993465504575162, 0.9994190377383476, 0.9994834881474645, 0.9995407918847292, 0.9995917407300643, 0.9996370388864136, 0.9996773126361672, 0.9997131189392007, 0.9997449530871965, 0.9997732555167718, 0.9997984178730286, 0.9998207884053307, 0.9998406767683299, 0.999858358293387, 0.9998740777884819, 0.9998880529184062, 0.9999004772113942, 0.9999115227333154, 0.9999213424660605 ], "yaxis": "y" }, { "hovertemplate": "Binding site=M1 site 3
[A]=%{x}
Fractional Occupancy=%{y}", "legendgroup": "M1 site 3", "line": { "color": "purple", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "M1 site 3", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0.001, 0.0011312165687240227, 0.0012796509253557506, 0.0014475623289454528, 0.0016375064907638303, 0.001852374473745174, 0.002095436696181983, 0.0023703927094333855, 0.0026814275072936716, 0.003033275224082957, 0.00343129119098271, 0.003881533447356427, 0.004390854947706065, 0.004967007867708953, 0.0056187615969349415, 0.006356036214163056, 0.007190053476871153, 0.008133507623048415, 0.009200758585035511, 0.010408050556221961, 0.011773759237315558, 0.013318671525418874, 0.015066301902946676, 0.017043250342011547, 0.01927960717179483, 0.021809411071224798, 0.024671167157882617, 0.027908433058756763, 0.031570481883190914, 0.03571305218886713, 0.04039919635575221, 0.04570024028076206, 0.051696869000267, 0.058480354764257315, 0.06615394625418672, 0.07483444008921449, 0.08465395854010462, 0.09576196050864284, 0.10832751638087228, 0.1225418813787657, 0.13862140657827343, 0.15681083190117215, 0.1773870112020035, 0.20066312614814, 0.22699345303073468, 0.2567787550602453, 0.2904723822204767, 0.32858717152454053, 0.3717032526987227, 0.420476878101407, 0.4756504112736628, 0.5380636261531626, 0.608666488932186, 0.6885336171071658, 0.7788806357951075, 0.8810826802697267, 0.9966953263368856, 1.1274782671220807, 1.2754220966447474, 1.44277860784127, 1.6320950661906224, 1.846252980607563, 2.0885119617193872, 2.3625593350752805, 2.6725662644307677, 3.023251239336952, 3.4199518933533932, 3.8687062460004507, 4.376344605001825, 4.950593527624048, 5.600193423466232, 6.335031588684309, 7.166292696509752, 8.106629034617788, 9.17035308045887, 10.373655345664446, 11.73485080524815, 13.27465766240115, 15.016512691847486, 16.986927961472418, 19.21589436173899, 21.737338084849675, 24.58963700153767, 27.816204795048712, 31.466151743179715, 35.59503220586912, 40.265690195544344, 45.5492159003082, 51.526027718816344, 58.287096276058314, 65.93532905028945, 74.58713668595766, 84.37420483283871, 95.44549847982168, 107.9695292904978, 122.13692045074481, 138.1633080668105, 156.29262327489712, 176.80080501790547, 200.00000000000003 ], "xaxis": "x", "y": [ 0.0013698633310833769, 0.001540630903928887, 0.001732649478386556, 0.0019485538366470505, 0.0021913028442709244, 0.0024642186283453556, 0.0027710303101977506, 0.0031159227735360535, 0.0035035909863100323, 0.003939300430965852, 0.004428954231566427, 0.004979167595425274, 0.005597350208757569, 0.006291797236891423, 0.007071789575314306, 0.007947703972553125, 0.008931133592436448, 0.01003501949275013, 0.011273793358700355, 0.012663531629585743, 0.014222120879592178, 0.015969433939620522, 0.01792751575432607, 0.020120777331687243, 0.022576195333087107, 0.02532351383947927, 0.028395443582133296, 0.03182785241430302, 0.035659938997012336, 0.039934379561406656, 0.044697435191227756, 0.049999004366410575, 0.055892602583550804, 0.06243524783249347, 0.06968722773851518, 0.07771172153802115, 0.08657424810324857, 0.09634191043965422, 0.10708240803205105, 0.11886279179276364, 0.13174794290500533, 0.14579876727959867, 0.16107011224657616, 0.1776084317945754, 0.1954492509847144, 0.21461450825487108, 0.2351098844819489, 0.25692225719606987, 0.28001744361364245, 0.3043384128500549, 0.329804151256893, 0.35630935130477265, 0.38372506123428063, 0.4119003795873079, 0.4406652084721122, 0.4698339979678229, 0.4992103301404929, 0.5285921150228711, 0.5577771128193382, 0.5865684647909066, 0.614779914421184, 0.6422404306894448, 0.6687980021402522, 0.6943224458410866, 0.7187071591024066, 0.741869823657168, 0.7637521430357117, 0.7843187480018272, 0.8035554392020646, 0.8214669507124701, 0.838074415408512, 0.8534126969801403, 0.8675277284872496, 0.8804739679529585, 0.8923120512968946, 0.9031066946587551, 0.9129248736173883, 0.9218342868616711, 0.9299020967134638, 0.9371939282508106, 0.9437731020487928, 0.9497000720273988, 0.9550320388312199, 0.9598227098797235, 0.9641221791299732, 0.9679769022083226, 0.9714297455272393, 0.9745200910415125, 0.9772839812326872, 0.9797542916270079, 0.9819609205871735, 0.9839309882456682, 0.9856890382667771, 0.9872572376515859, 0.9886555710608091, 0.9899020271545159, 0.9910127752672564, 0.9920023313824731, 0.9928837128698816, 0.99366858182929 ], "yaxis": "y" }, { "hovertemplate": "Binding site=M1 site 15
[A]=%{x}
Fractional Occupancy=%{y}", "legendgroup": "M1 site 15", "line": { "color": "darkorange", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "M1 site 15", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0.001, 0.0011312165687240227, 0.0012796509253557506, 0.0014475623289454528, 0.0016375064907638303, 0.001852374473745174, 0.002095436696181983, 0.0023703927094333855, 0.0026814275072936716, 0.003033275224082957, 0.00343129119098271, 0.003881533447356427, 0.004390854947706065, 0.004967007867708953, 0.0056187615969349415, 0.006356036214163056, 0.007190053476871153, 0.008133507623048415, 0.009200758585035511, 0.010408050556221961, 0.011773759237315558, 0.013318671525418874, 0.015066301902946676, 0.017043250342011547, 0.01927960717179483, 0.021809411071224798, 0.024671167157882617, 0.027908433058756763, 0.031570481883190914, 0.03571305218886713, 0.04039919635575221, 0.04570024028076206, 0.051696869000267, 0.058480354764257315, 0.06615394625418672, 0.07483444008921449, 0.08465395854010462, 0.09576196050864284, 0.10832751638087228, 0.1225418813787657, 0.13862140657827343, 0.15681083190117215, 0.1773870112020035, 0.20066312614814, 0.22699345303073468, 0.2567787550602453, 0.2904723822204767, 0.32858717152454053, 0.3717032526987227, 0.420476878101407, 0.4756504112736628, 0.5380636261531626, 0.608666488932186, 0.6885336171071658, 0.7788806357951075, 0.8810826802697267, 0.9966953263368856, 1.1274782671220807, 1.2754220966447474, 1.44277860784127, 1.6320950661906224, 1.846252980607563, 2.0885119617193872, 2.3625593350752805, 2.6725662644307677, 3.023251239336952, 3.4199518933533932, 3.8687062460004507, 4.376344605001825, 4.950593527624048, 5.600193423466232, 6.335031588684309, 7.166292696509752, 8.106629034617788, 9.17035308045887, 10.373655345664446, 11.73485080524815, 13.27465766240115, 15.016512691847486, 16.986927961472418, 19.21589436173899, 21.737338084849675, 24.58963700153767, 27.816204795048712, 31.466151743179715, 35.59503220586912, 40.265690195544344, 45.5492159003082, 51.526027718816344, 58.287096276058314, 65.93532905028945, 74.58713668595766, 84.37420483283871, 95.44549847982168, 107.9695292904978, 122.13692045074481, 138.1633080668105, 156.29262327489712, 176.80080501790547, 200.00000000000003 ], "xaxis": "x", "y": [ 0.00015239261037759583, 0.00017141597033173308, 0.0001928135821308139, 0.0002168816479829296, 0.00024395329089091716, 0.00027440314818465394, 0.00030865253429504747, 0.0003471752427097141, 0.0003905040654833639, 0.0004392381180828372, 0.0004940510678283937, 0.0005557003758572417, 0.000625037675496924, 0.000703020424315407, 0.0007907249830359042, 0.0008893612920939519, 0.0010002893359969678, 0.0011250376069414888, 0.0012653238024573036, 0.0014230780172673364, 0.0016004687171321586, 0.0017999318121976631, 0.002024203179227831, 0.0022763550159375996, 0.0025598364461792192, 0.0028785188315568733, 0.0032367462825179, 0.0036393918991948666, 0.004091920308005038, 0.004600457092566318, 0.00517186574462045, 0.005813832779428672, 0.006534961666724649, 0.007344876217916874, 0.008254334036680928, 0.009275350575671176, 0.01042133423726567, 0.011707232799326384, 0.013149691223711861, 0.01476722059872055, 0.016580377556715886, 0.01861195297163398, 0.020887168051499178, 0.023433875069298685, 0.026282758890490556, 0.02946753412555248, 0.03302513113193612, 0.03699586218806145, 0.041423556950336, 0.046355653789085426, 0.0518432308156676, 0.057940957436614975, 0.06470694423259914, 0.07220246606353393, 0.0804915308383885, 0.0896402647551526, 0.09971608452123105, 0.11078662872506646, 0.12291842485099787, 0.13617527615391053, 0.1506163644330781, 0.16629408118608843, 0.1832516208614834, 0.20152039559863882, 0.2211173598353803, 0.24204236345505956, 0.26427568072995156, 0.2877758853042482, 0.31247825438882704, 0.338293883762531, 0.3651096754543498, 0.3927893202142195, 0.42117533774816457, 0.4500921630034214, 0.47935018347493535, 0.508750549943448, 0.538090511721633, 0.5671689771609367, 0.5957919781026576, 0.6237777264002945, 0.6509609901964549, 0.6771965815386156, 0.7023618261988154, 0.7263579707998937, 0.7491105615294824, 0.7705688947969904, 0.7907046880481761, 0.8095101466890436, 0.8269956116334569, 0.8431869644237551, 0.8581229474074651, 0.8718525296242503, 0.8844324190403654, 0.8959247919507582, 0.906395283171652, 0.9159112575324663, 0.9245403647878447, 0.9323493664250453, 0.9394032135350875, 0.9457643493058738 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Binding site" }, "tracegroupgap": 0 }, "shapes": [ { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0, "x1": 1, "xref": "x domain", "y0": 0.5, "y1": 0.5, "yref": "y" } ], "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Fractional Occupancy as a function of Ligand Concentration" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0.001, 200.00000000000003 ], "title": { "text": "[A]" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.05539032682604923, 1.0554640619024873 ], "title": { "text": "Fractional Occupancy" }, "type": "linear" } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot each of the fractional occupancies as a function of [A]\n", "\n", "fig = px.line(data_frame=df, \n", " x=\"[A]\", y=[\"M2 site 2\", \"M1 site 3\", \"M1 site 15\"],\n", " color_discrete_sequence = [\"seagreen\", \"purple\", \"darkorange\"],\n", " title=\"Fractional Occupancy as a function of Ligand Concentration\",\n", " labels={\"value\":\"Fractional Occupancy\", \"variable\":\"Binding site\"})\n", "\n", "fig.add_hline(y=0.5, line_width=1, line_dash=\"dot\", line_color=\"gray\") # Horizontal line at 50% occupancy\n", "\n", "fig.show()" ] }, { "cell_type": "code", "execution_count": 32, "id": "b40df5f3-43d2-48ff-9c20-db11e85dcc1f", "metadata": {}, "outputs": [], "source": [ "import plotly.graph_objects as go " ] }, { "cell_type": "code", "execution_count": 33, "id": "7527a0da", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Binding site=M2 site 2
[A]=%{x}
Fractional Occupancy=%{y}", "legendgroup": "M2 site 2", "line": { "color": "seagreen", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "M2 site 2", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0.001, 0.0011312165687240227, 0.0012796509253557506, 0.0014475623289454528, 0.0016375064907638303, 0.001852374473745174, 0.002095436696181983, 0.0023703927094333855, 0.0026814275072936716, 0.003033275224082957, 0.00343129119098271, 0.003881533447356427, 0.004390854947706065, 0.004967007867708953, 0.0056187615969349415, 0.006356036214163056, 0.007190053476871153, 0.008133507623048415, 0.009200758585035511, 0.010408050556221961, 0.011773759237315558, 0.013318671525418874, 0.015066301902946676, 0.017043250342011547, 0.01927960717179483, 0.021809411071224798, 0.024671167157882617, 0.027908433058756763, 0.031570481883190914, 0.03571305218886713, 0.04039919635575221, 0.04570024028076206, 0.051696869000267, 0.058480354764257315, 0.06615394625418672, 0.07483444008921449, 0.08465395854010462, 0.09576196050864284, 0.10832751638087228, 0.1225418813787657, 0.13862140657827343, 0.15681083190117215, 0.1773870112020035, 0.20066312614814, 0.22699345303073468, 0.2567787550602453, 0.2904723822204767, 0.32858717152454053, 0.3717032526987227, 0.420476878101407, 0.4756504112736628, 0.5380636261531626, 0.608666488932186, 0.6885336171071658, 0.7788806357951075, 0.8810826802697267, 0.9966953263368856, 1.1274782671220807, 1.2754220966447474, 1.44277860784127, 1.6320950661906224, 1.846252980607563, 2.0885119617193872, 2.3625593350752805, 2.6725662644307677, 3.023251239336952, 3.4199518933533932, 3.8687062460004507, 4.376344605001825, 4.950593527624048, 5.600193423466232, 6.335031588684309, 7.166292696509752, 8.106629034617788, 9.17035308045887, 10.373655345664446, 11.73485080524815, 13.27465766240115, 15.016512691847486, 16.986927961472418, 19.21589436173899, 21.737338084849675, 24.58963700153767, 27.816204795048712, 31.466151743179715, 35.59503220586912, 40.265690195544344, 45.5492159003082, 51.526027718816344, 58.287096276058314, 65.93532905028945, 74.58713668595766, 84.37420483283871, 95.44549847982168, 107.9695292904978, 122.13692045074481, 138.1633080668105, 156.29262327489712, 176.80080501790547, 200.00000000000003 ], "xaxis": "x", "y": [ 0.10000000696025997, 0.11109818258413001, 0.12325936654542095, 0.1365472640669584, 0.1510209041361284, 0.1667324637256011, 0.18372485535381863, 0.20202913811565212, 0.22166184137127126, 0.24262232057031044, 0.2648902931775448, 0.2884237254423991, 0.31315725335046635, 0.33900131907250874, 0.3658421839828837, 0.39354293901069093, 0.42194557347294537, 0.4508740885138144, 0.4801385578490205, 0.5095399561168301, 0.5388755042470056, 0.5679442316144001, 0.5965524334984128, 0.6245187126608063, 0.6516783341571556, 0.677886686938909, 0.7030217253552498, 0.7269853478907097, 0.7497037493947369, 0.7711268486968389, 0.7912269408309549, 0.8099967502913824, 0.8274470698250876, 0.8436041613222326, 0.858507075643926, 0.8722050212599631, 0.8847548815176722, 0.8962189505890295, 0.9066629310404485, 0.916154212977426, 0.9247604364575598, 0.9325483253431438, 0.9395827715660179, 0.9459261432564229, 0.951637787607493, 0.9567736989808334, 0.9613863239518131, 0.9655244771948063, 0.9692333448807688, 0.9725545552724012, 0.9755262992208058, 0.9781834861356175, 0.980557923623209, 0.9826785113160195, 0.9845714414343325, 0.9862604003361446, 0.9877667667410386, 0.989109803487966, 0.9903068406355315, 0.9913734484682767, 0.9923235995636049, 0.9931698195288735, 0.9939233263613017, 0.9945941586359167, 0.9951912929069594, 0.9957227508311791, 0.9961956965999087, 0.9966165253110241, 0.9969909429302506, 0.9973240384904453, 0.9976203491628132, 0.9978839188096542, 0.9981183505974335, 0.998326854214218, 0.9985122881986882, 0.9986771978504337, 0.9988238491540847, 0.9989542591137495, 0.9990702228597123, 0.9991733378567135, 0.999265025512572, 0.9993465504575162, 0.9994190377383476, 0.9994834881474645, 0.9995407918847292, 0.9995917407300643, 0.9996370388864136, 0.9996773126361672, 0.9997131189392007, 0.9997449530871965, 0.9997732555167718, 0.9997984178730286, 0.9998207884053307, 0.9998406767683299, 0.999858358293387, 0.9998740777884819, 0.9998880529184062, 0.9999004772113942, 0.9999115227333154, 0.9999213424660605 ], "yaxis": "y" }, { "hovertemplate": "Binding site=M1 site 3
[A]=%{x}
Fractional Occupancy=%{y}", "legendgroup": "M1 site 3", "line": { "color": "purple", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "M1 site 3", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0.001, 0.0011312165687240227, 0.0012796509253557506, 0.0014475623289454528, 0.0016375064907638303, 0.001852374473745174, 0.002095436696181983, 0.0023703927094333855, 0.0026814275072936716, 0.003033275224082957, 0.00343129119098271, 0.003881533447356427, 0.004390854947706065, 0.004967007867708953, 0.0056187615969349415, 0.006356036214163056, 0.007190053476871153, 0.008133507623048415, 0.009200758585035511, 0.010408050556221961, 0.011773759237315558, 0.013318671525418874, 0.015066301902946676, 0.017043250342011547, 0.01927960717179483, 0.021809411071224798, 0.024671167157882617, 0.027908433058756763, 0.031570481883190914, 0.03571305218886713, 0.04039919635575221, 0.04570024028076206, 0.051696869000267, 0.058480354764257315, 0.06615394625418672, 0.07483444008921449, 0.08465395854010462, 0.09576196050864284, 0.10832751638087228, 0.1225418813787657, 0.13862140657827343, 0.15681083190117215, 0.1773870112020035, 0.20066312614814, 0.22699345303073468, 0.2567787550602453, 0.2904723822204767, 0.32858717152454053, 0.3717032526987227, 0.420476878101407, 0.4756504112736628, 0.5380636261531626, 0.608666488932186, 0.6885336171071658, 0.7788806357951075, 0.8810826802697267, 0.9966953263368856, 1.1274782671220807, 1.2754220966447474, 1.44277860784127, 1.6320950661906224, 1.846252980607563, 2.0885119617193872, 2.3625593350752805, 2.6725662644307677, 3.023251239336952, 3.4199518933533932, 3.8687062460004507, 4.376344605001825, 4.950593527624048, 5.600193423466232, 6.335031588684309, 7.166292696509752, 8.106629034617788, 9.17035308045887, 10.373655345664446, 11.73485080524815, 13.27465766240115, 15.016512691847486, 16.986927961472418, 19.21589436173899, 21.737338084849675, 24.58963700153767, 27.816204795048712, 31.466151743179715, 35.59503220586912, 40.265690195544344, 45.5492159003082, 51.526027718816344, 58.287096276058314, 65.93532905028945, 74.58713668595766, 84.37420483283871, 95.44549847982168, 107.9695292904978, 122.13692045074481, 138.1633080668105, 156.29262327489712, 176.80080501790547, 200.00000000000003 ], "xaxis": "x", "y": [ 0.0013698633310833769, 0.001540630903928887, 0.001732649478386556, 0.0019485538366470505, 0.0021913028442709244, 0.0024642186283453556, 0.0027710303101977506, 0.0031159227735360535, 0.0035035909863100323, 0.003939300430965852, 0.004428954231566427, 0.004979167595425274, 0.005597350208757569, 0.006291797236891423, 0.007071789575314306, 0.007947703972553125, 0.008931133592436448, 0.01003501949275013, 0.011273793358700355, 0.012663531629585743, 0.014222120879592178, 0.015969433939620522, 0.01792751575432607, 0.020120777331687243, 0.022576195333087107, 0.02532351383947927, 0.028395443582133296, 0.03182785241430302, 0.035659938997012336, 0.039934379561406656, 0.044697435191227756, 0.049999004366410575, 0.055892602583550804, 0.06243524783249347, 0.06968722773851518, 0.07771172153802115, 0.08657424810324857, 0.09634191043965422, 0.10708240803205105, 0.11886279179276364, 0.13174794290500533, 0.14579876727959867, 0.16107011224657616, 0.1776084317945754, 0.1954492509847144, 0.21461450825487108, 0.2351098844819489, 0.25692225719606987, 0.28001744361364245, 0.3043384128500549, 0.329804151256893, 0.35630935130477265, 0.38372506123428063, 0.4119003795873079, 0.4406652084721122, 0.4698339979678229, 0.4992103301404929, 0.5285921150228711, 0.5577771128193382, 0.5865684647909066, 0.614779914421184, 0.6422404306894448, 0.6687980021402522, 0.6943224458410866, 0.7187071591024066, 0.741869823657168, 0.7637521430357117, 0.7843187480018272, 0.8035554392020646, 0.8214669507124701, 0.838074415408512, 0.8534126969801403, 0.8675277284872496, 0.8804739679529585, 0.8923120512968946, 0.9031066946587551, 0.9129248736173883, 0.9218342868616711, 0.9299020967134638, 0.9371939282508106, 0.9437731020487928, 0.9497000720273988, 0.9550320388312199, 0.9598227098797235, 0.9641221791299732, 0.9679769022083226, 0.9714297455272393, 0.9745200910415125, 0.9772839812326872, 0.9797542916270079, 0.9819609205871735, 0.9839309882456682, 0.9856890382667771, 0.9872572376515859, 0.9886555710608091, 0.9899020271545159, 0.9910127752672564, 0.9920023313824731, 0.9928837128698816, 0.99366858182929 ], "yaxis": "y" }, { "hovertemplate": "Binding site=M1 site 15
[A]=%{x}
Fractional Occupancy=%{y}", "legendgroup": "M1 site 15", "line": { "color": "darkorange", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "M1 site 15", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0.001, 0.0011312165687240227, 0.0012796509253557506, 0.0014475623289454528, 0.0016375064907638303, 0.001852374473745174, 0.002095436696181983, 0.0023703927094333855, 0.0026814275072936716, 0.003033275224082957, 0.00343129119098271, 0.003881533447356427, 0.004390854947706065, 0.004967007867708953, 0.0056187615969349415, 0.006356036214163056, 0.007190053476871153, 0.008133507623048415, 0.009200758585035511, 0.010408050556221961, 0.011773759237315558, 0.013318671525418874, 0.015066301902946676, 0.017043250342011547, 0.01927960717179483, 0.021809411071224798, 0.024671167157882617, 0.027908433058756763, 0.031570481883190914, 0.03571305218886713, 0.04039919635575221, 0.04570024028076206, 0.051696869000267, 0.058480354764257315, 0.06615394625418672, 0.07483444008921449, 0.08465395854010462, 0.09576196050864284, 0.10832751638087228, 0.1225418813787657, 0.13862140657827343, 0.15681083190117215, 0.1773870112020035, 0.20066312614814, 0.22699345303073468, 0.2567787550602453, 0.2904723822204767, 0.32858717152454053, 0.3717032526987227, 0.420476878101407, 0.4756504112736628, 0.5380636261531626, 0.608666488932186, 0.6885336171071658, 0.7788806357951075, 0.8810826802697267, 0.9966953263368856, 1.1274782671220807, 1.2754220966447474, 1.44277860784127, 1.6320950661906224, 1.846252980607563, 2.0885119617193872, 2.3625593350752805, 2.6725662644307677, 3.023251239336952, 3.4199518933533932, 3.8687062460004507, 4.376344605001825, 4.950593527624048, 5.600193423466232, 6.335031588684309, 7.166292696509752, 8.106629034617788, 9.17035308045887, 10.373655345664446, 11.73485080524815, 13.27465766240115, 15.016512691847486, 16.986927961472418, 19.21589436173899, 21.737338084849675, 24.58963700153767, 27.816204795048712, 31.466151743179715, 35.59503220586912, 40.265690195544344, 45.5492159003082, 51.526027718816344, 58.287096276058314, 65.93532905028945, 74.58713668595766, 84.37420483283871, 95.44549847982168, 107.9695292904978, 122.13692045074481, 138.1633080668105, 156.29262327489712, 176.80080501790547, 200.00000000000003 ], "xaxis": "x", "y": [ 0.00015239261037759583, 0.00017141597033173308, 0.0001928135821308139, 0.0002168816479829296, 0.00024395329089091716, 0.00027440314818465394, 0.00030865253429504747, 0.0003471752427097141, 0.0003905040654833639, 0.0004392381180828372, 0.0004940510678283937, 0.0005557003758572417, 0.000625037675496924, 0.000703020424315407, 0.0007907249830359042, 0.0008893612920939519, 0.0010002893359969678, 0.0011250376069414888, 0.0012653238024573036, 0.0014230780172673364, 0.0016004687171321586, 0.0017999318121976631, 0.002024203179227831, 0.0022763550159375996, 0.0025598364461792192, 0.0028785188315568733, 0.0032367462825179, 0.0036393918991948666, 0.004091920308005038, 0.004600457092566318, 0.00517186574462045, 0.005813832779428672, 0.006534961666724649, 0.007344876217916874, 0.008254334036680928, 0.009275350575671176, 0.01042133423726567, 0.011707232799326384, 0.013149691223711861, 0.01476722059872055, 0.016580377556715886, 0.01861195297163398, 0.020887168051499178, 0.023433875069298685, 0.026282758890490556, 0.02946753412555248, 0.03302513113193612, 0.03699586218806145, 0.041423556950336, 0.046355653789085426, 0.0518432308156676, 0.057940957436614975, 0.06470694423259914, 0.07220246606353393, 0.0804915308383885, 0.0896402647551526, 0.09971608452123105, 0.11078662872506646, 0.12291842485099787, 0.13617527615391053, 0.1506163644330781, 0.16629408118608843, 0.1832516208614834, 0.20152039559863882, 0.2211173598353803, 0.24204236345505956, 0.26427568072995156, 0.2877758853042482, 0.31247825438882704, 0.338293883762531, 0.3651096754543498, 0.3927893202142195, 0.42117533774816457, 0.4500921630034214, 0.47935018347493535, 0.508750549943448, 0.538090511721633, 0.5671689771609367, 0.5957919781026576, 0.6237777264002945, 0.6509609901964549, 0.6771965815386156, 0.7023618261988154, 0.7263579707998937, 0.7491105615294824, 0.7705688947969904, 0.7907046880481761, 0.8095101466890436, 0.8269956116334569, 0.8431869644237551, 0.8581229474074651, 0.8718525296242503, 0.8844324190403654, 0.8959247919507582, 0.906395283171652, 0.9159112575324663, 0.9245403647878447, 0.9323493664250453, 0.9394032135350875, 0.9457643493058738 ], "yaxis": "y" }, { "marker": { "color": "red" }, "mode": "markers", "name": "key points", "type": "scatter", "x": [ 0.01, 1, 10, 0.001, 0.1, 1, 0.1, 10, 100 ], "y": [ 0.5, 0.5, 0.5, 0.1, 0.1, 0.1, 0.9, 0.9, 0.9 ] } ], "layout": { "annotations": [ { "ax": -100, "ay": -20, "font": { "color": "seagreen", "size": 12 }, "showarrow": true, "text": "Dissociation constant: 0.01
(HIGHER Binding Affinity)", "x": -1.715, "y": 0.65 }, { "ax": -100, "ay": -20, "font": { "color": "purple", "size": 12 }, "showarrow": true, "text": "Dissociation constant: 1", "x": 0.3, "y": 0.65 }, { "ax": 100, "ay": 10, "font": { "color": "darkorange", "size": 12 }, "showarrow": true, "text": "Dissociation constant: 10
(LOWER Binding Affinity)", "x": 0.6, "y": 0.3 }, { "bgcolor": "white", "font": { "color": "gray", "size": 14 }, "opacity": 0.8, "showarrow": false, "text": "50% OCCUPANCY", "x": 1.8, "y": 0.51 } ], "autosize": true, "legend": { "title": { "text": "Binding site" }, "tracegroupgap": 0 }, "shapes": [ { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0, "x1": 1, "xref": "x domain", "y0": 0.1, "y1": 0.1, "yref": "y" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0, "x1": 1, "xref": "x domain", "y0": 0.5, "y1": 0.5, "yref": "y" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0, "x1": 1, "xref": "x domain", "y0": 0.9, "y1": 0.9, "yref": "y" } ], "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Fractional Occupancy as a function of Ligand Concentration
(log plot on x-axis. Highlighting 0.1/0.5/0.9 occupancies)" }, "xaxis": { "anchor": "y", "domain": [ 0, 1 ], "range": [ -2.9999999999999996, 2.301029995663981 ], "title": { "text": "[A]" }, "type": "log" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.05539032682604923, 1.0554640619024873 ], "tickvals": [ 0, 1, 0.1, 0.5, 0.9 ], "title": { "text": "Fractional Occupancy" }, "type": "linear" } } }, "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Same plot, but use a log scale for [A]\n", "\n", "fig = px.line(data_frame=df, \n", " x=\"[A]\", y=[\"M2 site 2\", \"M1 site 3\", \"M1 site 15\"],\n", " color_discrete_sequence = [\"seagreen\", \"purple\", \"darkorange\"], \n", " log_x=True, range_x=[start,200], \n", " title=\"Fractional Occupancy as a function of Ligand Concentration
(log plot on x-axis. Highlighting 0.1/0.5/0.9 occupancies)\",\n", " labels={\"value\":\"Fractional Occupancy\", \"variable\":\"Binding site\"})\n", "\n", "# Horizontal lines\n", "fig.add_hline(y=0.1, line_width=1, line_dash=\"dot\", line_color=\"gray\")\n", "fig.add_hline(y=0.5, line_width=1, line_dash=\"dot\", line_color=\"gray\")\n", "fig.add_hline(y=0.9, line_width=1, line_dash=\"dot\", line_color=\"gray\")\n", "\n", "# Annotations (x values adjusted for the log scale)\n", "fig.add_annotation(x=-1.715, y=0.65, \n", " text=\"Dissociation constant: 0.01
(HIGHER Binding Affinity)\", font=dict(size=12, color=\"seagreen\"), showarrow=True, ax=-100, ay=-20)\n", "fig.add_annotation(x=0.3, y=0.65, \n", " text=\"Dissociation constant: 1\", font=dict(size=12, color=\"purple\"), showarrow=True, ax=-100, ay=-20)\n", "fig.add_annotation(x=0.6, y=0.3, \n", " text=\"Dissociation constant: 10
(LOWER Binding Affinity)\", font=dict(size=12, color=\"darkorange\"), showarrow=True, ax=100, ay=10)\n", "\n", "fig.add_annotation(x=1.8, y=0.51, \n", " text=\"50% OCCUPANCY\", font=dict(size=14, color=\"gray\"), bgcolor=\"white\", opacity=0.8, showarrow=False)\n", "\n", "# Customize y-axis tick values\n", "additional_y_values = [0.1, 0.5, 0.9] # Additional values to show on y-axis\n", "fig.update_layout(yaxis={\"tickvals\": list(fig.layout.yaxis.domain) + additional_y_values})\n", " \n", "# Add scatter points (dots) to the plot, to highlight the 0.1/0.5/0.9 occupancies\n", "fig.add_scatter(x=[0.01, 1, 10, 0.001, 0.1, 1., 0.1, 10, 100 ], \n", " y=[0.5, 0.5, 0.5, 0.1, 0.1, 0.1, 0.9, 0.9, 0.9], \n", " mode=\"markers\", marker={\"color\": \"red\"}, name=\"key points\")\n", " \n", "fig.show()" ] }, { "cell_type": "markdown", "id": "0de876a0-fc82-4c6e-9057-48d67621c970", "metadata": {}, "source": [ "#### When the binding affinity is lower (i.e. higher Dissociation Constant, Kd, orange curve), it takes higher ligand concentrations to attain the same fractional occupancies" ] }, { "cell_type": "markdown", "id": "9536f94c-2f92-46eb-a38d-067d37540ea5", "metadata": {}, "source": [ "Note that fractional occupancy 0.1 occurs at ligand concentrations of 1/10 the dissociation constant (Kd); \n", "occupancy 0.5 occurs at ligand concentrations equals to the dissociation constant; \n", "occupancy 0.9 occurs at ligand concentrations of 10x the dissociation constant. " ] }, { "cell_type": "markdown", "id": "84f5d4c3-2c13-4cb2-8cb6-8cec172358e2", "metadata": {}, "source": [ "## The above simulation captures what's shown on Fig. 3A of \n", "#### https://doi.org/10.1146/annurev-cellbio-100617-062719 \n", "(\"Low-Affinity Binding Sites and the Transcription Factor Specificity Paradox in Eukaryotes\"), a paper that guided this simulation" ] }, { "cell_type": "markdown", "id": "493d9272-f113-4d72-92be-08e289488775", "metadata": {}, "source": [ "#### In upcoming versions of Life123, the fractional occupancy values will regulate the rates of reactions catalyzed by the macromolecules..." ] }, { "cell_type": "code", "execution_count": null, "id": "25baaff8-1a2c-488f-bd6a-c351ec75bd5a", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "jupytext": { "formats": "ipynb,py:percent" }, "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.10" } }, "nbformat": 4, "nbformat_minor": 5 }