{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. Big functions from small circuits\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Design principles**\n", "\n", "- Negative autoregulation accelerates turn-on times.\n", "- Positive feedback and ultrasensitivity enable bistability.\n", "\n", "**Key concepts**\n", "\n", "- Demand theory and error load concepts provide distinct explanations for preferential use of activation and repression.\n", "- Protein half-lives control response times of simple gene expression units.\n", "- Rapid protein production can accelerate response times.\n", "- Simple feedback circuits of one or two genes can provide critical functions including accelerated responses and bistability.\n", "\n", "**Techniques**\n", "\n", "- Normalization to steady-state expression levels allows analysis of response times.\n", "- All of the time derivatives of a system of ordinary differential equations vanish at fixed points.\n", "- Nullclines enable identification of fixed points in multidimensional dynamical systems.\n", "- Synthetic biology approaches enable testing of dynamics in minimal, well-controlled circuits.\n", "\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": { "ExecuteTime": { "end_time": "2019-04-05T17:20:07.050555Z", "start_time": "2019-04-05T17:20:07.025621Z" }, "tags": [ "hide_input", "remove_output" ] }, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " Loading BokehJS ...\n", "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "\n", "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " var force = true;\n", "\n", " if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n", " root._bokeh_onload_callbacks = [];\n", " root._bokeh_is_loading = undefined;\n", " }\n", "\n", " var JS_MIME_TYPE = 'application/javascript';\n", " var HTML_MIME_TYPE = 'text/html';\n", " var EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " var CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " var script = document.createElement(\"script\");\n", " node.appendChild(script);\n", " }\n", "\n", " /**\n", " * Handle when an output is cleared or removed\n", " */\n", " function handleClearOutput(event, handle) {\n", " var cell = handle.cell;\n", "\n", " var id = cell.output_area._bokeh_element_id;\n", " var server_id = cell.output_area._bokeh_server_id;\n", " // Clean up Bokeh references\n", " if (id != null && id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", "\n", " if (server_id !== undefined) {\n", " // Clean up Bokeh references\n", " var cmd = \"from bokeh.io.state import curstate; print(curstate().uuid_to_server['\" + server_id + \"'].get_sessions()[0].document.roots[0]._id)\";\n", " cell.notebook.kernel.execute(cmd, {\n", " iopub: {\n", " output: function(msg) {\n", " var id = msg.content.text.trim();\n", " if (id in Bokeh.index) {\n", " Bokeh.index[id].model.document.clear();\n", " delete Bokeh.index[id];\n", " }\n", " }\n", " }\n", " });\n", " // Destroy server and session\n", " var cmd = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " var output_area = handle.output_area;\n", " var output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!output.data.hasOwnProperty(EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " var toinsert = output_area.element.find(\".\" + CLASS_NAME.split(' ')[0]);\n", "\n", " if (output.metadata[EXEC_MIME_TYPE][\"id\"] !== undefined) {\n", " toinsert[toinsert.length - 1].firstChild.textContent = output.data[JS_MIME_TYPE];\n", " // store reference to embed id on output_area\n", " output_area._bokeh_element_id = output.metadata[EXEC_MIME_TYPE][\"id\"];\n", " }\n", " if (output.metadata[EXEC_MIME_TYPE][\"server_id\"] !== undefined) {\n", " var bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " var script_attrs = bk_div.children[0].attributes;\n", " for (var i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " var toinsert = this.create_output_subarea(\n", " metadata,\n", " CLASS_NAME,\n", " EXEC_MIME_TYPE\n", " );\n", " this.keyboard_manager.register_events(toinsert);\n", " // Render to node\n", " var props = {data: data, metadata: metadata[EXEC_MIME_TYPE]};\n", " render(props, toinsert[toinsert.length - 1]);\n", " element.append(toinsert);\n", " return toinsert\n", " }\n", "\n", " /* Handle when an output is cleared or removed */\n", " events.on('clear_output.CodeCell', handleClearOutput);\n", " events.on('delete.Cell', handleClearOutput);\n", "\n", " /* Handle when a new output is added */\n", " events.on('output_added.OutputArea', handleAddOutput);\n", "\n", " /**\n", " * Register the mime type and append_mime function with output_area\n", " */\n", " OutputArea.prototype.register_mime_type(EXEC_MIME_TYPE, append_mime, {\n", " /* Is output safe? */\n", " safe: true,\n", " /* Index of renderer in `output_area.display_order` */\n", " index: 0\n", " });\n", " }\n", "\n", " // register the mime type if in Jupyter Notebook environment and previously unregistered\n", " if (root.Jupyter !== undefined) {\n", " var events = require('base/js/events');\n", " var OutputArea = require('notebook/js/outputarea').OutputArea;\n", "\n", " if (OutputArea.prototype.mime_types().indexOf(EXEC_MIME_TYPE) == -1) {\n", " register_renderer(events, OutputArea);\n", " }\n", " }\n", "\n", " \n", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " var NB_LOAD_WARNING = {'data': {'text/html':\n", " \"
\\n\"+\n", " \"

\\n\"+\n", " \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n", " \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n", " \"

\\n\"+\n", " \"\\n\"+\n", " \"\\n\"+\n", " \"from bokeh.resources import INLINE\\n\"+\n", " \"output_notebook(resources=INLINE)\\n\"+\n", " \"\\n\"+\n", " \"
\"}};\n", "\n", " function display_loaded() {\n", " var el = document.getElementById(\"1001\");\n", " if (el != null) {\n", " el.textContent = \"BokehJS is loading...\";\n", " }\n", " if (root.Bokeh !== undefined) {\n", " if (el != null) {\n", " el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n", " }\n", " } else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(display_loaded, 100)\n", " }\n", " }\n", "\n", "\n", " function run_callbacks() {\n", " try {\n", " root._bokeh_onload_callbacks.forEach(function(callback) {\n", " if (callback != null)\n", " callback();\n", " });\n", " } finally {\n", " delete root._bokeh_onload_callbacks\n", " }\n", " console.debug(\"Bokeh: all callbacks have finished\");\n", " }\n", "\n", " function load_libs(css_urls, js_urls, callback) {\n", " if (css_urls == null) css_urls = [];\n", " if (js_urls == null) js_urls = [];\n", "\n", " root._bokeh_onload_callbacks.push(callback);\n", " if (root._bokeh_is_loading > 0) {\n", " console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n", " return null;\n", " }\n", " if (js_urls == null || js_urls.length === 0) {\n", " run_callbacks();\n", " return null;\n", " }\n", " console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n", " root._bokeh_is_loading = css_urls.length + js_urls.length;\n", "\n", " function on_load() {\n", " root._bokeh_is_loading--;\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n", " run_callbacks()\n", " }\n", " }\n", "\n", " function on_error() {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (var i = 0; i < css_urls.length; i++) {\n", " var url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error;\n", " element.rel = \"stylesheet\";\n", " element.type = \"text/css\";\n", " element.href = url;\n", " console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n", " document.body.appendChild(element);\n", " }\n", "\n", " const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.0.1.min.js\": \"JpP8FXbgAZLkfur7LiK3j9AGBhHNIvF742meBJrjO2ShJDhCG2I1uVvW+0DUtrmc\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.0.1.min.js\": \"xZlADit0Q04ISQEdKg2k3L4W9AwQBAuDs9nJL9fM/WwzL1tEU9VPNezOFX0nLEAz\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.0.1.min.js\": \"4BuPRZkdMKSnj3zoxiNrQ86XgNw0rYmBOxe7nshquXwwcauupgBF2DHLVG1WuZlV\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.0.1.min.js\": \"Dv1SQ87hmDqK6S5OhBf0bCuwAEvL5QYL0PuR/F1SPVhCS/r/abjkbpKDYL2zeM19\"};\n", "\n", " for (var i = 0; i < js_urls.length; i++) {\n", " var url = js_urls[i];\n", " var element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error;\n", " element.async = false;\n", " element.src = url;\n", " if (url in hashes) {\n", " element.crossOrigin = \"anonymous\";\n", " element.integrity = \"sha384-\" + hashes[url];\n", " }\n", " console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n", " document.head.appendChild(element);\n", " }\n", " };var element = document.getElementById(\"1001\");\n", " if (element == null) {\n", " console.error(\"Bokeh: ERROR: autoload.js configured with elementid '1001' but no matching script tag was found. \")\n", " return false;\n", " }\n", "\n", " function inject_raw_css(css) {\n", " const element = document.createElement(\"style\");\n", " element.appendChild(document.createTextNode(css));\n", " document.body.appendChild(element);\n", " }\n", "\n", " \n", " var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.0.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.0.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.0.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.0.1.min.js\"];\n", " var css_urls = [];\n", " \n", "\n", " var inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " function(Bokeh) {\n", " \n", " \n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if (root.Bokeh !== undefined || force === true) {\n", " \n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", " if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " var cell = $(document.getElementById(\"1001\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\n", " }\n", "\n", " }\n", "\n", " if (root._bokeh_is_loading === 0) {\n", " console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n", " run_inline_js();\n", " } else {\n", " load_libs(css_urls, js_urls, function() {\n", " console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n", " run_inline_js();\n", " });\n", " }\n", "}(window));" ], "application/vnd.bokehjs_load.v0+json": "\n(function(root) {\n function now() {\n return new Date();\n }\n\n var force = true;\n\n if (typeof root._bokeh_onload_callbacks === \"undefined\" || force === true) {\n root._bokeh_onload_callbacks = [];\n root._bokeh_is_loading = undefined;\n }\n\n \n\n \n if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n var NB_LOAD_WARNING = {'data': {'text/html':\n \"
\\n\"+\n \"

\\n\"+\n \"BokehJS does not appear to have successfully loaded. If loading BokehJS from CDN, this \\n\"+\n \"may be due to a slow or bad network connection. Possible fixes:\\n\"+\n \"

\\n\"+\n \"\\n\"+\n \"\\n\"+\n \"from bokeh.resources import INLINE\\n\"+\n \"output_notebook(resources=INLINE)\\n\"+\n \"\\n\"+\n \"
\"}};\n\n function display_loaded() {\n var el = document.getElementById(\"1001\");\n if (el != null) {\n el.textContent = \"BokehJS is loading...\";\n }\n if (root.Bokeh !== undefined) {\n if (el != null) {\n el.textContent = \"BokehJS \" + root.Bokeh.version + \" successfully loaded.\";\n }\n } else if (Date.now() < root._bokeh_timeout) {\n setTimeout(display_loaded, 100)\n }\n }\n\n\n function run_callbacks() {\n try {\n root._bokeh_onload_callbacks.forEach(function(callback) {\n if (callback != null)\n callback();\n });\n } finally {\n delete root._bokeh_onload_callbacks\n }\n console.debug(\"Bokeh: all callbacks have finished\");\n }\n\n function load_libs(css_urls, js_urls, callback) {\n if (css_urls == null) css_urls = [];\n if (js_urls == null) js_urls = [];\n\n root._bokeh_onload_callbacks.push(callback);\n if (root._bokeh_is_loading > 0) {\n console.debug(\"Bokeh: BokehJS is being loaded, scheduling callback at\", now());\n return null;\n }\n if (js_urls == null || js_urls.length === 0) {\n run_callbacks();\n return null;\n }\n console.debug(\"Bokeh: BokehJS not loaded, scheduling load and callback at\", now());\n root._bokeh_is_loading = css_urls.length + js_urls.length;\n\n function on_load() {\n root._bokeh_is_loading--;\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: all BokehJS libraries/stylesheets loaded\");\n run_callbacks()\n }\n }\n\n function on_error() {\n console.error(\"failed to load \" + url);\n }\n\n for (var i = 0; i < css_urls.length; i++) {\n var url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error;\n element.rel = \"stylesheet\";\n element.type = \"text/css\";\n element.href = url;\n console.debug(\"Bokeh: injecting link tag for BokehJS stylesheet: \", url);\n document.body.appendChild(element);\n }\n\n const hashes = {\"https://cdn.bokeh.org/bokeh/release/bokeh-2.0.1.min.js\": \"JpP8FXbgAZLkfur7LiK3j9AGBhHNIvF742meBJrjO2ShJDhCG2I1uVvW+0DUtrmc\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.0.1.min.js\": \"xZlADit0Q04ISQEdKg2k3L4W9AwQBAuDs9nJL9fM/WwzL1tEU9VPNezOFX0nLEAz\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.0.1.min.js\": \"4BuPRZkdMKSnj3zoxiNrQ86XgNw0rYmBOxe7nshquXwwcauupgBF2DHLVG1WuZlV\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.0.1.min.js\": \"Dv1SQ87hmDqK6S5OhBf0bCuwAEvL5QYL0PuR/F1SPVhCS/r/abjkbpKDYL2zeM19\"};\n\n for (var i = 0; i < js_urls.length; i++) {\n var url = js_urls[i];\n var element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error;\n element.async = false;\n element.src = url;\n if (url in hashes) {\n element.crossOrigin = \"anonymous\";\n element.integrity = \"sha384-\" + hashes[url];\n }\n console.debug(\"Bokeh: injecting script tag for BokehJS library: \", url);\n document.head.appendChild(element);\n }\n };var element = document.getElementById(\"1001\");\n if (element == null) {\n console.error(\"Bokeh: ERROR: autoload.js configured with elementid '1001' but no matching script tag was found. \")\n return false;\n }\n\n function inject_raw_css(css) {\n const element = document.createElement(\"style\");\n element.appendChild(document.createTextNode(css));\n document.body.appendChild(element);\n }\n\n \n var js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-2.0.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-2.0.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-2.0.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-2.0.1.min.js\"];\n var css_urls = [];\n \n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n function(Bokeh) {\n \n \n }\n ];\n\n function run_inline_js() {\n \n if (root.Bokeh !== undefined || force === true) {\n \n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\n if (force === true) {\n display_loaded();\n }} else if (Date.now() < root._bokeh_timeout) {\n setTimeout(run_inline_js, 100);\n } else if (!root._bokeh_failed_load) {\n console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n root._bokeh_failed_load = true;\n } else if (force !== true) {\n var cell = $(document.getElementById(\"1001\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\n }\n\n }\n\n if (root._bokeh_is_loading === 0) {\n console.debug(\"Bokeh: BokehJS loaded, going straight to plotting\");\n run_inline_js();\n } else {\n load_libs(css_urls, js_urls, function() {\n console.debug(\"Bokeh: BokehJS plotting callback run at\", now());\n run_inline_js();\n });\n }\n}(window));" }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import numpy as np\n", "import scipy.integrate\n", "import scipy.optimize\n", "\n", "import bokeh.io\n", "import bokeh.plotting\n", "\n", "bokeh.io.output_notebook()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Demand theory: \"use it or lose it\"\n", "\n", "At the end of the first lecture, we asked a simple design question: Under what conditions would you prefer to use activation or repression to regulate a gene? We know that both schemes are used, and it appears that they can generate equivalent responses, since a signal that activates an activator should behave roughly similar to a signal that inhibits a repressor, as shown here: \n", "\n", "
\n", "\n", "![equivalent systems](figs/equivalent_systems.png)\n", "\n", "
\n", "\n", "Michael Savageau posed this question in the context of bacterial metabolic gene regulation in his paper, \"Design of molecular control mechanisms and the demand for gene expression\" ([_PNAS_, 1977](https://www.ncbi.nlm.nih.gov/pubmed/271992)). He focused on \"demand\" as a critical factor that influences the choice of activation or repression. *Demand* can be defined as the fraction of time that the gene is needed at the high end of its regulatory range in the cells natural environments. Savageau made the empirical observation that high demand genes are more frequently regulated by activators, while low demand genes are more often regulated by repressors. \n", "\n", "
\n", "\n", "![low demand, high demand](figs/low_demand-high_demand3.png)\n", "\n", "
\n", "\n", "He suggested that this relationship (somewhat counterintuitively) could be explained by a **\"use it or lose it\"** rule of evolutionary selection. A high demand gene controlled by an activator needs the activator to be on most of the time. Evolution would therefore tend to strongly select against mutations that eliminate the activator, in most conditions. By contrast, if the same high demand system were regulated by a repressor then, in most conditions, there would be no selection against mutations that removed the repressor, more readily permitting evolutionary loss of the system. This reasoning assumes no direct fitness advantage for either regulation mode, just a difference in their likelihood of evolutionary loss or, put another way, the average strength of selection pressure to maintain them.\n", "\n", "In a [2009 _PNAS_ paper](https://dx.doi.org/10.1073%2Fpnas.0808500106), Gerland and Hwa formulated and analyzed a model to explore these ideas mathematically. They showed that the \"use it or lose it\" principle indeed dominates when timescales of switching between low and high demand environments are long and populations are small. However, the same model could select for the opposite demand rule in other regimes. \n", "\n", "[Shinar, et al.](https://doi.org/10.1073/pnas.0506610103) introduced a completely different explanation for the demand rules, based on the concept of \"error load\". The authors assumed that \"naked\" DNA binding sites, which are not bound to proteins, are susceptible to non-specific binding of transcription factors, which is assumed to impose a low, but non-zero fitness cost by inappropriately perturbing gene expression. Keeping these sites occupied most of the time minimizes the chances of such errors. This explanation make the same predictions but for different reasons. Here, a high demand gene should preferentially use an activator since this arrangement minimizes unoccupied binding sites. Conversely, a low demand gene would preferentially use repression to maintain the binding site in an occupied state under most conditions. This argument can be generalized to other examples of seemingly equivalent regulatory systems and is described in [Uri Alon's book](https://www.amazon.com/gp/product/1439837171/ref=dbs_a_def_rwt_bibl_vppi_i0). \n", "\n", "
\n", "\n", "![Error load](figs/ErrorLoad.png)\n", "\n", "
\n", "\n", "*In this figure, a repressor, denoted R binds strongly and specifically to its target site. In the absence o the repressor, that site could also be bound non-specifically, and inappropriately by a range of other factors, denoted A-F.*\n", "\n", "Remarkably, we still lack definitive experimental evidence to fully resolve this fundamental design question. Challenge: **Can you devise an experimental way to discriminate among these models?** " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Dynamics: protein stability determines the response time to a change in gene expression\n", "\n", "We now return to simple gene regulation circuits. So far, we have focused on steady states. However, many of the most important and fascinating biological systems change dynamically, even in constant environmental conditions. \n", "\n", "The most basic dynamic question one can ask about a gene is how rapidly it can switch from one level of protein to a new level after a sudden increase or decrease in gene expression.\n", "\n", "Starting with our basic equation for gene expression, and neglecting the mRNA level for the moment, we write:\n", "\n", "\\begin{align}\n", "\\frac{\\mathrm{d}x}{\\mathrm{d}t} = \\beta - \\gamma x\n", "\\end{align}\n", "\n", "Consider a simple situation in which the gene has been off for a long time, so that $x(t=0)=0$ and then is suddenly turned on at $t=0$. The solution to this simple differential equation is:\n", "\n", "\\begin{align}\n", "x(t) = \\frac{\\beta }{\\gamma} (1-e^{-\\gamma t}) \n", "\\end{align}\n", "\n", "Thus, the parameter that determines the response time is $\\gamma$, the degradation+dilution rate of the protein. We define the response time to be $\\gamma^{-1}$, which is the time it takes for the concentration to rise to a factor of $1-\\mathrm{e}^{-1}$ of its steady state value. We show the response time as a dot on the plot below." ] }, { "cell_type": "code", "execution_count": 2, "metadata": { "ExecuteTime": { "end_time": "2019-04-05T17:20:07.356315Z", "start_time": "2019-04-05T17:20:07.055723Z" }, "tags": [ "hide_input" ] }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"b90e86c7-7c90-422d-9084-c97794ad7a5f\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1013\"}],\"center\":[{\"id\":\"1016\"},{\"id\":\"1020\"},{\"id\":\"1046\"},{\"id\":\"1048\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"1017\"}],\"renderers\":[{\"id\":\"1038\"},{\"id\":\"1044\"}],\"title\":{\"id\":\"1003\"},\"toolbar\":{\"id\":\"1028\"},\"x_range\":{\"id\":\"1005\"},\"x_scale\":{\"id\":\"1009\"},\"y_range\":{\"id\":\"1007\"},\"y_scale\":{\"id\":\"1011\"}},\"id\":\"1002\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"dimension\":\"height\",\"level\":\"underlay\",\"line_dash\":[6],\"location\":1.0},\"id\":\"1048\",\"type\":\"Span\"},{\"attributes\":{},\"id\":\"1018\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1055\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1057\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis\":{\"id\":\"1017\"},\"dimension\":1,\"ticker\":null},\"id\":\"1020\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1058\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1040\"},\"x\":{\"field\":\"t0\"},\"x_offset\":{\"value\":10},\"y\":{\"field\":\"x0\"},\"y_offset\":{\"value\":-10}},\"id\":\"1046\",\"type\":\"LabelSet\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1021\"},{\"id\":\"1022\"},{\"id\":\"1023\"},{\"id\":\"1024\"},{\"id\":\"1025\"},{\"id\":\"1026\"}]},\"id\":\"1028\",\"type\":\"Toolbar\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"t0\"},\"y\":{\"field\":\"x0\"}},\"id\":\"1043\",\"type\":\"Circle\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1027\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1054\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1058\"},\"selection_policy\":{\"id\":\"1057\"}},\"id\":\"1035\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1036\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"1035\"},\"glyph\":{\"id\":\"1036\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1037\"},\"selection_glyph\":null,\"view\":{\"id\":\"1039\"}},\"id\":\"1038\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text\":\"\\u03b2 = 100, \\u03b3 = 1\"},\"id\":\"1003\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1021\",\"type\":\"PanTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"t0\"},\"y\":{\"field\":\"x0\"}},\"id\":\"1042\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"1040\"},\"glyph\":{\"id\":\"1042\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1043\"},\"selection_glyph\":null,\"view\":{\"id\":\"1045\"}},\"id\":\"1044\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1037\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1022\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data\":{\"t0\":[1.0],\"text\":[\"response time\"],\"x0\":[63.212055882855765]},\"selected\":{\"id\":\"1055\"},\"selection_policy\":{\"id\":\"1054\"}},\"id\":\"1040\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"1035\"}},\"id\":\"1039\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1005\",\"type\":\"DataRange1d\"},{\"attributes\":{\"overlay\":{\"id\":\"1027\"}},\"id\":\"1023\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"SaveTool\"},{\"attributes\":{\"axis_label\":\"t\",\"formatter\":{\"id\":\"1051\"},\"ticker\":{\"id\":\"1014\"}},\"id\":\"1013\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1025\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1007\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1011\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1026\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1053\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1009\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1051\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"1040\"}},\"id\":\"1045\",\"type\":\"CDSView\"},{\"attributes\":{\"axis_label\":\"x(t)\",\"formatter\":{\"id\":\"1053\"},\"ticker\":{\"id\":\"1018\"}},\"id\":\"1017\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1014\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis\":{\"id\":\"1013\"},\"ticker\":null},\"id\":\"1016\",\"type\":\"Grid\"}],\"root_ids\":[\"1002\"]},\"title\":\"Bokeh Application\",\"version\":\"2.0.1\"}};\n", " var render_items = [{\"docid\":\"b90e86c7-7c90-422d-9084-c97794ad7a5f\",\"root_ids\":[\"1002\"],\"roots\":{\"1002\":\"671de50c-f9f0-4ad2-9fb3-206464a7d360\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1002" } }, "output_type": "display_data" } ], "source": [ "# Parameters\n", "beta = 100\n", "gamma = 1\n", "\n", "# Dynamics\n", "t = np.linspace(0, 6, 400)\n", "x = beta / gamma * (1 - np.exp(-gamma * t))\n", "\n", "# Plot response\n", "p = bokeh.plotting.figure(\n", " frame_height=275,\n", " frame_width=375,\n", " x_axis_label=\"t\",\n", " y_axis_label=\"x(t)\",\n", " title=f\"β = {beta}, γ = {gamma}\",\n", ")\n", "p.line(t, x, line_width=2)\n", "\n", "# Mark the response time (when we get to level 1-1/e)\n", "t0 = 1 / gamma\n", "x0 = beta / gamma * (1 - np.exp(-1))\n", "\n", "# Add the glyph with label\n", "source = bokeh.models.ColumnDataSource(\n", " data=dict(t0=[t0], x0=[x0], text=[\"response time\"])\n", ")\n", "p.circle(x=\"t0\", y=\"x0\", source=source, size=10)\n", "p.add_layout(\n", " bokeh.models.LabelSet(\n", " x=\"t0\", y=\"x0\", text=\"text\", source=source, x_offset=10, y_offset=-10\n", " )\n", ")\n", "p.add_layout(\n", " bokeh.models.Span(\n", " location=t0,\n", " level=\"underlay\",\n", " dimension=\"height\",\n", " line_color=\"black\",\n", " line_dash=\"dashed\",\n", " )\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## How can we speed up responses?\n", "\n", "So far, it seems as if the cell's ability to modulate the concentration of a stable protein is quite limited, apparently requiring multiple cell cycles for both increases and decreases. This seems rather pathetic for such a successful, billion year old creature. You might think you could up-regulate the protein level faster by cranking up the promoter strength (increasing $\\beta$). Indeed, this would allow the cell to hit a specific threshold earlier. However, it would also increase the final steady state level ($\\beta/\\gamma$), and therefore leave the timescale over which the system reaches its new steady-state unaffected.\n", "\n", "One simple and direct way to speed up the response time of the protein is to destabilize it, increasing $\\gamma$. This strategy pays the cost of a \"futile cycle\" of protein synthesis and degradation to provide a benefit in terms of the speed with which the regulatory system can reach a new steady state. It is useful to normalize these plots by their steady states in order to focus on response times independently of steady states, as shown in the second plot below. This is a reasonable comparison because there are many mutations that alter the expression level of a gene; this property can be optimized by evolution independently of the regulatory feedback architecture." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"d4740838-94dd-4e64-8218-6f30cde48ccb\":{\"roots\":{\"references\":[{\"attributes\":{\"children\":[{\"id\":\"1285\"},{\"id\":\"1283\"}]},\"id\":\"1286\",\"type\":\"Column\"},{\"attributes\":{\"data_source\":{\"id\":\"1230\"},\"glyph\":{\"id\":\"1231\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1232\"},\"selection_glyph\":null,\"view\":{\"id\":\"1234\"}},\"id\":\"1233\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1272\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1138\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1273\",\"type\":\"Selection\"},{\"attributes\":{\"axis\":{\"id\":\"1130\"},\"ticker\":null},\"id\":\"1133\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1235\"}},\"id\":\"1239\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1274\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"1230\"}},\"id\":\"1234\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"AAAAAAAAAADZX+oioZWmP1neTFkdFrY/mpeVIsMzwD9GOlffNSLFP1WrVbz42Mk/mOVijoBazj8cB7M2k1TRP2tgynaUY9M/ta1tpVZb1T+EJ4hD4DzXPwDMwz0sCdk/P3ZKbyrB2j8pc8IewGXcPy61x3XI990/Y+gf8xR43z/TdPLrtnPgP7tB70dJI+E/VeigCh3L4T+2HwWoiWviP8nxjrjiBOM/YUu2JHiX4z8UpptOliPkP51+1TmGqeQ/QFV8sY0p5T/MC4ls76PlP5SUmDDrGOY/GBAn872I5j8cqlP5ofPmP/HDPfbOWec/Dj4LKHq75z8zAadz1hjoP9w7Rn8Ucug/CSbCy2LH6D/tgNPM7RjpP0BzPADgZuk/FtTsA2Kx6T8EbiyrmvjpP91B1hKvPOo/AlSvtMJ96j/8F+N597vqP3Ycr8xt9+o/2CxHqUQw6z+ctfqtmWbrP4fVoyqJmus/UyZoLy7M6z8W7dKaovvrP2wLUCf/KOw/17cOeFtU7D8btFIlzn3sP8JsOshspew/eCQABkzL7D9vCLyaf+/sPxzJrGMaEu0//RIMaS4z7T+9BnTnzFLtP0CW2lgGce0/pnQnfeqN7T+xEmliiKntP1DurGzuw+0/1kt/XSrd7T8rQRZbSfXtP0nPK/dXDO4/8ZuKNWIi7j9utVCSczfuP32j6weXS+4/yuPQFNde7j8GzfXAPXHuPzqyCaPUgu4/YP905aST7j8V6h9Lt6PuP0szAzQUs+4/G1uFocPB7j/ljKY6zc/uPyxw/U843e4/J/KG3wvq7j98BEuYTvbuPzI32N0GAu8/fP6XyzoN7z9iYP038BfvP/Gyj7csIu8/lQDTn/Ur7z+ulg8KUDXvP/0w+tVAPu8/fCQ+rMxG7z9V3OoA+E7vP9bsxRXHVu8/CfKC/D1e7z+rYeKYYGXvP5VruKIybO8/zvbcp7dy7z/GvQUO83jvP+WAixTofu8/WDsb1pmE7z8aPFRKC4rvP+H6U0c/j+8/JncwgziU7z+f5mGV+ZjvP2pvHPiEne8/RaKaCd2h7z/rYFkNBKbvPyzVRS38qe8/PRbeeset7z+EEkXwZ7HvP7VNSnHftO8/wfxlzC+47z/FAqq7WrvvP9ZMqOVhvu8/YwRP3kbB7z8rC7snC8TvP1EuATOwxu8/c3nuYDfJ7z8GDsACosvvP5/e0lrxze8/7qlLnSbQ7z/EjLfwQtLvP/h+pW5H1O8/BQs5JDXW7z/qjLYSDdjvP1hBCTDQ2e8/D2tDZ3/b7z8h0RiZG93vPxXWU5yl3u8/tmRFPh7g7z8K7S9DhuHvPzmprWbe4u8/e18SXCfk7z831MjOYeXvP9wcrGKO5u8/HwJdtK3n7z8DnpNZwOjvPzhgbeHG6e8/j6G31MHq7z8x7Ta2sevvP/ck6wKX7O8/N6RQMnLt7z8Xg562Q+7vP7IaAv0L7+8/Q+nXbcvv7z/d8+FsgvDvP/fBe1kx8e8/GA7Mjtjx7z9PRfRjePLvP1HuPSwR8+8/8Q9GN6Pz7z97rSbRLvTvP41unkK09O8/MYc20TP17z/q82a/rfXvP4ocuUwi9u8/7e/otZH27z/miQQ1/PbvP7BzigFi9+8/3I6GUMP37z+eua1UIPjvPwk7eD55+O8/4wQ7PM747z8+2D96H/nvP35Z3CJt+e8/sR+IXrf57z/myvFT/vnvP0osEyhC+u8/uYpE/oL67z+tDU/4wPrvP0pYfjb8+u8/hF2x1zT77z9Bdmr5avvvP+DB3ree++8/EtkELtD77z+22qJ1//vvPxnaW6cs/O8/drW82lf87z+XW0gmgfzvP9iGg5+o/O8/pPP/Ws787z91GGds8vzvP6ZkhOYU/e8/rQtP2zX97z+1YfNbVf3vP3fO23hz/e8/G1u5QZD97z9v34vFq/3vP8nSqRLG/e8/usTHNt/97z9Egf8+9/3vP4fk1jcO/u8/S2FGLST+7z/RPb8qOf7vP02KMTtN/u8/6tMRaWD+7z+Vl16+cv7vPyF3pUSE/u8/uzMIBZX+7z8McEEIpf7vP688qVa0/u8/THE5+ML+7z+L1JH00P7vPykV/FLe/u8/IZZvGuv+7z/+D5VR9/7vPy4Jyv4C/+8/HyckKA7/7z/mWXTTGP/vPzDkSQYj/+8/00D1xSz/7z/H54oXNv/vP9Xz5f8+/+8/TKqqg0f/7z9B5kinT//vP2xo/m5X/+8/7gzZ3l7/7z8n6Lj6Zf/vP6JLUsZs/+8/TLQvRXP/7z/DorN6ef/vP+heGmp//+8/cqd7FoX/7z+LTsyCiv/vPx3E37GP/+8/3Y5pppT/7z+htP5imf/vP80SF+qd/+8/mKcOPqL/7z/LzCZhpv/vP5lkh1Wq/+8/Mvk/Ha7/7z+sz0i6sf/vP8nugy61/+8/Ghq+e7j/7z8owq+ju//vP+7p/ae+/+8/OQI7isH/7z9ju+dLxP/vP8TNc+7G/+8/Vbk+c8n/7z/UfJjby//vP9dEwijO/+8/NRPvW9D/7z/1XkR20v/vPzit2njU/+8/dSO+ZNb/7z8jE+862P/vP1B/YvzZ/+8/UZwCqtv/7z/MSa9E3f/vP1WHPs3e/+8/A+R8ROD/7z/76C2r4f/vP1p/DALj/+8/mFHLSeT/7z+iKBWD5f/vP9xEja7m/+8/LrPPzOf/7z9bnnHe6P/vP7OcAeTp/+8/ZfoH3ur/7z+LAAfN6//vPwA5e7Hs/+8/U6/bi+3/7z/HLppc7v/vP599IyTv/+8/1pXf4u//7z8+2zGZ8P/vP1xPeUfx/+8/28IQ7vH/7z/kBE+N8v/vP1oQhyXz/+8/HjcIt/P/7z9YSx5C9P/vPwPHEcf0/+8/rPEnRvX/7z+OBKO/9f/vPxZNwjP2/+8/2U3Covb/7z8m3twM9//vPyNISXL3/+8/m2U80/f/7z+Lu+gv+P/vP3qUfoj4/+8/mxks3fj/7z/gah0u+f/vP/O1fHv5/+8/OExyxfn/7z/KtyQM+v/vP5PPuE/6/+8/eMpRkPr/7z+8URHO+v/vP4WSFwn7/+8/o06DQfv/7z+O7HF3+//vP8eG/6r7/+8/cfpG3Pv/7z9W9WEL/P/vP0UDaTj8/+8/5JpzY/z/7z/eKZiM/P/vP50g7LP8/+8/c/2D2fz/7z9FV3P9/P/vP8XnzB/9/+8/L5WiQP3/7z+jewVg/f/vPwb2BX79/+8/lKazmv3/7z/3fh22/f/vPyLIUdD9/+8/sSle6f3/7z8TsU8B/v/vP1PYMhj+/+8/k4wTLv7/7z9MNP1C/v/vPz21+lb+/+8/FHoWav7/7z/dd1p8/v/vPzYz0I3+/+8/QcWAnv7/7z9j4HSu/v/vP8jUtL3+/+8/yJRIzP7/7z/wuDfa/v/vPw+Eief+/+8/9uZE9P7/7z8ThHAA///vP+uyEgz//+8/Y4MxF///7z/wwNIh///vP5P1+yv//+8/wWyyNf//7z8nNvs+///vP04o20f//+8/FeNWUP//7z8o0nJY///vP0gvM2D//+8/egScZ///7z8uLrFu///vPzNddnX//+8/rxjve///7z/xvx6C///vPzOMCIj//+8/R5Kvjf//7z84xBaT///vP8XyQJj//+8/7s4wnf//7z9E6+ih///vP1O9a6b//+8/3Z67qv//7z8dz9qu///vP+pzy7L//+8/3ZqPtv//7z9eOim6///vP64ymr3//+8/3U7kwP//7z+8RQnE///vP8C6Csf//+8/4D7qyf//7z9cUanM///vP5dgSc///+8/wcrL0f//7z+e3jHU///vPyrcfNb//+8/R/Wt2P//7z9UTsba///vP8/+xtz//+8/3xGx3v//7z/lhoXg///vP/5RReL//+8/f1zx4///7z9yhYrl///vPxKiEef//+8/Kn6H6P//7z+K3Ozp///vP213Quv//+8/0ACJ7P//7z/hIsHt///vP0OA6+7//+8/bbQI8P//7z8DVBnx///vPw7tHfL//+8/XwcX8///7z/BJAX0///vP0vB6PT//+8/llPC9f//7z8BTZL2///vP/AZWff//+8/9CEX+P//7z8XyMz4///vPwJrevn//+8/LmUg+v//7z8YDb/6///vP261Vvv//+8/Na3n+///7z/5P3L8///vP/G19vz//+8/HlR1/f//7z+AXO79///vPykOYv7//+8/XKXQ/v//7z/BWzr////vP2lon////+8/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1279\"},\"selection_policy\":{\"id\":\"1278\"}},\"id\":\"1235\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1275\",\"type\":\"Selection\"},{\"attributes\":{\"line_color\":\"#fd8d3c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1236\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1276\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1277\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1278\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1235\"},\"glyph\":{\"id\":\"1236\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1237\"},\"selection_glyph\":null,\"view\":{\"id\":\"1239\"}},\"id\":\"1238\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1279\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#fd8d3c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1237\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"1240\"},\"glyph\":{\"id\":\"1241\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1242\"},\"selection_glyph\":null,\"view\":{\"id\":\"1244\"}},\"id\":\"1243\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1280\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"1281\"},\"selection_policy\":{\"id\":\"1280\"}},\"id\":\"1240\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_color\":{\"value\":\"#fd8d3c\"},\"line_color\":{\"value\":\"#fd8d3c\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.3333333333333333},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1241\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1281\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1240\"}},\"id\":\"1244\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1157\",\"type\":\"DataRange1d\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#fd8d3c\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#fd8d3c\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.3333333333333333},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1242\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1131\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1247\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1249\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1251\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1135\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1252\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1253\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1254\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1255\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1256\",\"type\":\"Selection\"},{\"attributes\":{\"text\":\"same plot, normalized by steady states\"},\"id\":\"1153\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1257\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1258\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1259\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1260\",\"type\":\"Selection\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"1273\"},\"selection_policy\":{\"id\":\"1272\"}},\"id\":\"1200\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1261\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"x(t)\",\"formatter\":{\"id\":\"1249\"},\"ticker\":{\"id\":\"1135\"}},\"id\":\"1134\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1262\",\"type\":\"Selection\"},{\"attributes\":{\"toolbars\":[{\"id\":\"1145\"},{\"id\":\"1178\"}],\"tools\":[{\"id\":\"1138\"},{\"id\":\"1139\"},{\"id\":\"1140\"},{\"id\":\"1141\"},{\"id\":\"1142\"},{\"id\":\"1143\"},{\"id\":\"1171\"},{\"id\":\"1172\"},{\"id\":\"1173\"},{\"id\":\"1174\"},{\"id\":\"1175\"},{\"id\":\"1176\"}]},\"id\":\"1284\",\"type\":\"ProxyToolbar\"},{\"attributes\":{},\"id\":\"1266\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1126\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1268\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1270\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1271\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1205\"}},\"id\":\"1209\",\"type\":\"CDSView\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1177\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data_source\":{\"id\":\"1205\"},\"glyph\":{\"id\":\"1206\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1207\"},\"selection_glyph\":null,\"view\":{\"id\":\"1209\"}},\"id\":\"1208\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#e6550d\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1207\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"#e6550d\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1216\",\"type\":\"Line\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1144\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"1254\"},\"selection_policy\":{\"id\":\"1253\"}},\"id\":\"1190\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1159\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"1190\"}},\"id\":\"1194\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"value\":\"#a63603\"},\"line_color\":{\"value\":\"#a63603\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":1.0},\"y\":{\"value\":63.212055882855765}},\"id\":\"1191\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1161\",\"type\":\"LinearScale\"},{\"attributes\":{\"fill_color\":{\"value\":\"#fd8d3c\"},\"line_color\":{\"value\":\"#fd8d3c\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.3333333333333333},\"y\":{\"value\":21.07068529428526}},\"id\":\"1231\",\"type\":\"Circle\"},{\"attributes\":{\"axis_label\":\"t\",\"formatter\":{\"id\":\"1266\"},\"ticker\":{\"id\":\"1164\"}},\"id\":\"1163\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data_source\":{\"id\":\"1190\"},\"glyph\":{\"id\":\"1191\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1192\"},\"selection_glyph\":null,\"view\":{\"id\":\"1194\"}},\"id\":\"1193\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"1167\"},\"dimension\":1,\"ticker\":null},\"id\":\"1170\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1164\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_color\":\"#a63603\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1196\",\"type\":\"Line\"},{\"attributes\":{\"axis\":{\"id\":\"1163\"},\"ticker\":null},\"id\":\"1166\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"t\",\"formatter\":{\"id\":\"1247\"},\"ticker\":{\"id\":\"1131\"}},\"id\":\"1130\",\"type\":\"LinearAxis\"},{\"attributes\":{\"below\":[{\"id\":\"1130\"}],\"center\":[{\"id\":\"1133\"},{\"id\":\"1137\"}],\"frame_height\":175,\"left\":[{\"id\":\"1134\"}],\"plot_width\":300,\"renderers\":[{\"id\":\"1188\"},{\"id\":\"1193\"},{\"id\":\"1208\"},{\"id\":\"1213\"},{\"id\":\"1228\"},{\"id\":\"1233\"}],\"title\":{\"id\":\"1120\"},\"toolbar\":{\"id\":\"1145\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1122\"},\"x_scale\":{\"id\":\"1126\"},\"y_range\":{\"id\":\"1124\"},\"y_scale\":{\"id\":\"1128\"}},\"id\":\"1119\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#a63603\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#a63603\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":1.0},\"y\":{\"value\":63.212055882855765}},\"id\":\"1192\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1168\",\"type\":\"BasicTicker\"},{\"attributes\":{\"overlay\":{\"id\":\"1144\"}},\"id\":\"1140\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"axis_label\":\"x(t)\",\"formatter\":{\"id\":\"1268\"},\"ticker\":{\"id\":\"1168\"}},\"id\":\"1167\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1271\"},\"selection_policy\":{\"id\":\"1270\"}},\"id\":\"1195\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#fd8d3c\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#fd8d3c\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.3333333333333333},\"y\":{\"value\":21.07068529428526}},\"id\":\"1232\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"1195\"}},\"id\":\"1199\",\"type\":\"CDSView\"},{\"attributes\":{\"toolbar\":{\"id\":\"1284\"},\"toolbar_location\":\"above\"},\"id\":\"1285\",\"type\":\"ToolbarBox\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAADA7AGzB8yOP8DsAbMHzJ4/kHFBxgUZpz/A7AGzB8yuP/gz4c+EP7M/kHFBxgUZtz8or6G8hvK6P8DsAbMHzL4/LBWxVMRSwT/4M+HPhD/DP8RSEUtFLMU/kHFBxgUZxz9ckHFBxgXJPyivobyG8so/9M3RN0ffzD/A7AGzB8zOP8YFGRdkXNA/LBWxVMRS0T+SJEmSJEnSP/gz4c+EP9M/XkN5DeU11D/EUhFLRSzVPypiqYilItY/kHFBxgUZ1z/2gNkDZg/YP1yQcUHGBdk/wp8Jfyb82T8or6G8hvLaP46+Ofrm6Ns/9M3RN0ff3D9a3Wl1p9XdP8DsAbMHzN4/JvyZ8GfC3z/GBRkXZFzgP3kN5TWU1+A/LBWxVMRS4T/fHH1z9M3hP5IkSZIkSeI/RSwVsVTE4j/4M+HPhD/jP6s7re60uuM/XkN5DeU15D8RS0UsFbHkP8RSEUtFLOU/d1rdaXWn5T8qYqmIpSLmP91pdafVneY/kHFBxgUZ5z9DeQ3lNZTnP/aA2QNmD+g/qYilIpaK6D9ckHFBxgXpPw+YPWD2gOk/wp8Jfyb86T91p9WdVnfqPyivobyG8uo/27Zt27Zt6z+Ovjn65ujrP0HGBRkXZOw/9M3RN0ff7D+n1Z1Wd1rtP1rdaXWn1e0/DeU1lNdQ7j/A7AGzB8zuP3P0zdE3R+8/JvyZ8GfC7z/sAbMHzB7wP8YFGRdkXPA/oAl/JvyZ8D95DeU1lNfwP1IRS0UsFfE/LBWxVMRS8T8GGRdkXJDxP98cfXP0zfE/uCDjgowL8j+SJEmSJEnyP2wor6G8hvI/RSwVsVTE8j8eMHvA7AHzP/gz4c+EP/M/0jdH3xx98z+rO63utLrzP4Q/E/5M+PM/XkN5DeU19D84R98cfXP0PxFLRSwVsfQ/6k6rO63u9D/EUhFLRSz1P55Wd1rdafU/d1rdaXWn9T9QXkN5DeX1PypiqYilIvY/BGYPmD1g9j/daXWn1Z32P7Zt27Zt2/Y/kHFBxgUZ9z9qdafVnVb3P0N5DeU1lPc/HH1z9M3R9z/2gNkDZg/4P9CEPxP+TPg/qYilIpaK+D+CjAsyLsj4P1yQcUHGBfk/NpTXUF5D+T8PmD1g9oD5P+ibo2+Ovvk/wp8Jfyb8+T+co2+Ovjn6P3Wn1Z1Wd/o/Tqs7re60+j8or6G8hvL6PwKzB8weMPs/27Zt27Zt+z+0utPqTqv7P46+Ofrm6Ps/aMKfCX8m/D9BxgUZF2T8PxrKayivofw/9M3RN0ff/D/O0TdH3xz9P6fVnVZ3Wv0/gNkDZg+Y/T9a3Wl1p9X9PzThz4Q/E/4/DeU1lNdQ/j/m6Jujb47+P8DsAbMHzP4/mvBnwp8J/z9z9M3RN0f/P0z4M+HPhP8/JvyZ8GfC/z8AAAAAAAAAQOwBswfMHgBA2QNmD5g9AEDGBRkXZFwAQLMHzB4wewBAoAl/JvyZAECMCzIuyLgAQHkN5TWU1wBAZg+YPWD2AEBSEUtFLBUBQD8T/kz4MwFALBWxVMRSAUAZF2RckHEBQAYZF2RckAFA8hrKayivAUDfHH1z9M0BQMweMHvA7AFAuCDjgowLAkClIpaKWCoCQJIkSZIkSQJAfyb8mfBnAkBsKK+hvIYCQFgqYqmIpQJARSwVsVTEAkAyLsi4IOMCQB4we8DsAQNACzIuyLggA0D4M+HPhD8DQOU1lNdQXgNA0jdH3xx9A0C+Ofrm6JsDQKs7re60ugNAmD1g9oDZA0CEPxP+TPgDQHFBxgUZFwRAXkN5DeU1BEBLRSwVsVQEQDhH3xx9cwRAJEmSJEmSBEARS0UsFbEEQP5M+DPhzwRA6k6rO63uBEDXUF5DeQ0FQMRSEUtFLAVAsVTEUhFLBUCeVnda3WkFQIpYKmKpiAVAd1rdaXWnBUBkXJBxQcYFQFBeQ3kN5QVAPWD2gNkDBkAqYqmIpSIGQBdkXJBxQQZABGYPmD1gBkDwZ8KfCX8GQN1pdafVnQZAymsor6G8BkC2bdu2bdsGQKNvjr45+gZAkHFBxgUZB0B9c/TN0TcHQGp1p9WdVgdAVnda3Wl1B0BDeQ3lNZQHQDB7wOwBswdAHH1z9M3RB0AJfyb8mfAHQPaA2QNmDwhA44KMCzIuCEDQhD8T/kwIQLyG8hrKawhAqYilIpaKCECWilgqYqkIQIKMCzIuyAhAb46+OfrmCEBckHFBxgUJQEmSJEmSJAlANpTXUF5DCUAilopYKmIJQA+YPWD2gAlA/JnwZ8KfCUDom6Nvjr4JQNWdVnda3QlAwp8Jfyb8CUCvobyG8hoKQJyjb46+OQpAiKUilopYCkB1p9WdVncKQGKpiKUilgpATqs7re60CkA7re60utMKQCivobyG8gpAFbFUxFIRC0ACswfMHjALQO60utPqTgtA27Zt27ZtC0DIuCDjgowLQLS60+pOqwtAobyG8hrKC0COvjn65ugLQHvA7AGzBwxAaMKfCX8mDEBUxFIRS0UMQEHGBRkXZAxALsi4IOOCDEAaymsor6EMQAfMHjB7wAxA9M3RN0ffDEDhz4Q/E/4MQM7RN0ffHA1AutPqTqs7DUCn1Z1Wd1oNQJTXUF5DeQ1AgNkDZg+YDUBt27Zt27YNQFrdaXWn1Q1AR98cfXP0DUA04c+EPxMOQCDjgowLMg5ADeU1lNdQDkD65uibo28OQObom6Nvjg5A0+pOqzutDkDA7AGzB8wOQK3utLrT6g5AmvBnwp8JD0CG8hrKaygPQHP0zdE3Rw9AYPaA2QNmD0BM+DPhz4QPQDn65uibow9AJvyZ8GfCD0AT/kz4M+EPQAAAAAAAABBA9oDZA2YPEEDsAbMHzB4QQOOCjAsyLhBA2QNmD5g9EEDQhD8T/kwQQMYFGRdkXBBAvIbyGsprEECzB8weMHsQQKmIpSKWihBAoAl/JvyZEECWilgqYqkQQIwLMi7IuBBAg4wLMi7IEEB5DeU1lNcQQG+Ovjn65hBAZg+YPWD2EEBckHFBxgURQFIRS0UsFRFASZIkSZIkEUA/E/5M+DMRQDaU11BeQxFALBWxVMRSEUAilopYKmIRQBkXZFyQcRFAD5g9YPaAEUAGGRdkXJARQPyZ8GfCnxFA8hrKayivEUDpm6Nvjr4RQN8cfXP0zRFA1Z1Wd1rdEUDMHjB7wOwRQMKfCX8m/BFAuCDjgowLEkCvobyG8hoSQKUilopYKhJAnKNvjr45EkCSJEmSJEkSQIilIpaKWBJAfyb8mfBnEkB1p9WdVncSQGwor6G8hhJAYqmIpSKWEkBYKmKpiKUSQE+rO63utBJARSwVsVTEEkA7re60utMSQDIuyLgg4xJAKK+hvIbyEkAeMHvA7AETQBWxVMRSERNACzIuyLggE0ACswfMHjATQPgz4c+EPxNA7rS60+pOE0DlNZTXUF4TQNu2bdu2bRNA0jdH3xx9E0DIuCDjgowTQL45+ubomxNAtbrT6k6rE0CrO63utLoTQKG8hvIayhNAmD1g9oDZE0COvjn65ugTQIQ/E/5M+BNAe8DsAbMHFEBxQcYFGRcUQGjCnwl/JhRAXkN5DeU1FEBUxFIRS0UUQEtFLBWxVBRAQcYFGRdkFEA4R98cfXMUQC7IuCDjghRAJEmSJEmSFEAbymsor6EUQBFLRSwVsRRAB8weMHvAFED+TPgz4c8UQPTN0TdH3xRA6k6rO63uFEDhz4Q/E/4UQNdQXkN5DRVAztE3R98cFUDEUhFLRSwVQLrT6k6rOxVAsVTEUhFLFUCn1Z1Wd1oVQJ5Wd1rdaRVAlNdQXkN5FUCKWCpiqYgVQIHZA2YPmBVAd1rdaXWnFUBt27Zt27YVQGRckHFBxhVAWt1pdafVFUBQXkN5DeUVQEffHH1z9BVAPWD2gNkDFkA04c+EPxMWQCpiqYilIhZAIOOCjAsyFkAXZFyQcUEWQA3lNZTXUBZABGYPmD1gFkD65uibo28WQPBnwp8JfxZA5+ibo2+OFkDdaXWn1Z0WQNPqTqs7rRZAymsor6G8FkDA7AGzB8wWQLZt27Zt2xZAre60utPqFkCjb46+OfoWQJrwZ8KfCRdAkHFBxgUZF0CG8hrKaygXQH1z9M3RNxdAc/TN0TdHF0BqdafVnVYXQGD2gNkDZhdAVnda3Wl1F0BN+DPhz4QXQEN5DeU1lBdAOfrm6JujF0Awe8DsAbMXQCb8mfBnwhdAHH1z9M3RF0AT/kz4M+EXQAl/JvyZ8BdAAAAAAAAAGEA=\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1252\"},\"selection_policy\":{\"id\":\"1251\"}},\"id\":\"1185\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"1195\"},\"glyph\":{\"id\":\"1196\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1197\"},\"selection_glyph\":null,\"view\":{\"id\":\"1199\"}},\"id\":\"1198\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#a63603\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1187\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1185\"}},\"id\":\"1189\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1139\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1128\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#a63603\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1197\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1275\"},\"selection_policy\":{\"id\":\"1274\"}},\"id\":\"1215\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1171\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1172\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1122\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"1215\"}},\"id\":\"1219\",\"type\":\"CDSView\"},{\"attributes\":{\"overlay\":{\"id\":\"1177\"}},\"id\":\"1173\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1174\",\"type\":\"SaveTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1215\"},\"glyph\":{\"id\":\"1216\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1217\"},\"selection_glyph\":null,\"view\":{\"id\":\"1219\"}},\"id\":\"1218\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text\":\"\\u03b2\\u2081 = 100, \\u03b3 = [1 2 3]\"},\"id\":\"1120\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1175\",\"type\":\"ResetTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#e6550d\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1217\",\"type\":\"Line\"},{\"attributes\":{\"fill_color\":{\"value\":\"#e6550d\"},\"line_color\":{\"value\":\"#e6550d\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.5},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1221\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"1185\"},\"glyph\":{\"id\":\"1186\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1187\"},\"selection_glyph\":null,\"view\":{\"id\":\"1189\"}},\"id\":\"1188\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"1277\"},\"selection_policy\":{\"id\":\"1276\"}},\"id\":\"1220\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1176\",\"type\":\"HelpTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1220\"},\"glyph\":{\"id\":\"1221\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1222\"},\"selection_glyph\":null,\"view\":{\"id\":\"1224\"}},\"id\":\"1223\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"below\":[{\"id\":\"1163\"}],\"center\":[{\"id\":\"1166\"},{\"id\":\"1170\"}],\"frame_height\":175,\"left\":[{\"id\":\"1167\"}],\"plot_width\":300,\"renderers\":[{\"id\":\"1198\"},{\"id\":\"1203\"},{\"id\":\"1218\"},{\"id\":\"1223\"},{\"id\":\"1238\"},{\"id\":\"1243\"}],\"title\":{\"id\":\"1153\"},\"toolbar\":{\"id\":\"1178\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1122\"},\"x_scale\":{\"id\":\"1159\"},\"y_range\":{\"id\":\"1157\"},\"y_scale\":{\"id\":\"1161\"}},\"id\":\"1152\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1124\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_color\":\"#fd8d3c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1226\",\"type\":\"Line\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1171\"},{\"id\":\"1172\"},{\"id\":\"1173\"},{\"id\":\"1174\"},{\"id\":\"1175\"},{\"id\":\"1176\"}]},\"id\":\"1178\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1142\",\"type\":\"ResetTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"#a63603\"},\"line_color\":{\"value\":\"#a63603\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":1.0},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1201\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1141\",\"type\":\"SaveTool\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1256\"},\"selection_policy\":{\"id\":\"1255\"}},\"id\":\"1205\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"1200\"},\"glyph\":{\"id\":\"1201\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1202\"},\"selection_glyph\":null,\"view\":{\"id\":\"1204\"}},\"id\":\"1203\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"#a63603\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1186\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1220\"}},\"id\":\"1224\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1143\",\"type\":\"HelpTool\"},{\"attributes\":{\"axis\":{\"id\":\"1134\"},\"dimension\":1,\"ticker\":null},\"id\":\"1137\",\"type\":\"Grid\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#e6550d\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#e6550d\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.5},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1222\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"1262\"},\"selection_policy\":{\"id\":\"1261\"}},\"id\":\"1230\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"children\":[[{\"id\":\"1119\"},0,0],[{\"id\":\"1152\"},0,1]]},\"id\":\"1283\",\"type\":\"GridBox\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1138\"},{\"id\":\"1139\"},{\"id\":\"1140\"},{\"id\":\"1141\"},{\"id\":\"1142\"},{\"id\":\"1143\"}]},\"id\":\"1145\",\"type\":\"Toolbar\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1260\"},\"selection_policy\":{\"id\":\"1259\"}},\"id\":\"1225\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"1200\"}},\"id\":\"1204\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"1225\"}},\"id\":\"1229\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#a63603\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#a63603\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":1.0},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1202\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{},\"selected\":{\"id\":\"1258\"},\"selection_policy\":{\"id\":\"1257\"}},\"id\":\"1210\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"1225\"},\"glyph\":{\"id\":\"1226\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1227\"},\"selection_glyph\":null,\"view\":{\"id\":\"1229\"}},\"id\":\"1228\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"#e6550d\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1206\",\"type\":\"Line\"},{\"attributes\":{\"fill_color\":{\"value\":\"#e6550d\"},\"line_color\":{\"value\":\"#e6550d\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.5},\"y\":{\"value\":31.606027941427882}},\"id\":\"1211\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"1210\"},\"glyph\":{\"id\":\"1211\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1212\"},\"selection_glyph\":null,\"view\":{\"id\":\"1214\"}},\"id\":\"1213\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#fd8d3c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1227\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#e6550d\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#e6550d\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.5},\"y\":{\"value\":31.606027941427882}},\"id\":\"1212\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"1210\"}},\"id\":\"1214\",\"type\":\"CDSView\"}],\"root_ids\":[\"1286\"]},\"title\":\"Bokeh Application\",\"version\":\"2.0.1\"}};\n", " var render_items = [{\"docid\":\"d4740838-94dd-4e64-8218-6f30cde48ccb\",\"root_ids\":[\"1286\"],\"roots\":{\"1286\":\"41baaa3c-d68e-4097-baf2-d58891afc8db\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1286" } }, "output_type": "display_data" } ], "source": [ "# Parameters\n", "beta_1 = 100\n", "gamma = np.array([1, 2, 3])\n", "\n", "# Compute dynamics\n", "t = np.linspace(0, 6, 400)\n", "x = [beta_1 / g * (1 - np.exp(-g * t)) for g in gamma]\n", "\n", "# Set up plots\n", "colors = bokeh.palettes.Oranges5\n", "p1 = bokeh.plotting.figure(\n", " frame_height=175,\n", " width=300,\n", " x_axis_label=\"t\",\n", " y_axis_label=\"x(t)\",\n", " title=f\"β₁ = {beta_1}, γ = {gamma}\",\n", ")\n", "p2 = bokeh.plotting.figure(\n", " frame_height=175,\n", " width=300,\n", " x_axis_label=\"t\",\n", " y_axis_label=\"x(t)\",\n", " title=\"same plot, normalized by steady states\",\n", ")\n", "p2.x_range = p1.x_range\n", "\n", "# Populate graphs\n", "for x_vals, g, color in zip(x, gamma, colors):\n", " p1.line(t, x_vals, color=color, line_width=2)\n", " p1.circle(1 / g, beta_1 / g * (1 - np.exp(-1)), color=color, size=10)\n", " p2.line(t, x_vals / x_vals.max(), color=color, line_width=2)\n", " p2.circle(1 / g, 1 - np.exp(-1), color=color, size=10)\n", "\n", "bokeh.io.show(bokeh.layouts.gridplot([p1, p2], ncols=2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Design principle:** _Increased turnover speeds up the response time of a gene expression system, at the cost of additional protein synthesis and degradation._" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Negative autoregulation is prevalent in natural circuits\n", "\n", "So destabilizing a protein can speed its resposne time. However, most bacterial proteins, transcription factors in particular, are stable. Do they use other mechanisms to accelerate response times? \n", "\n", "Empirically, we find that a large fraction of repressors repress their own expression.\n", "\n", "
\n", "\n", "![negative autorepression](figs/negative_auto_regulation_diagram.png)\n", "\n", "
\n", "\n", "In fact, we can consider autoregulation to be a **network motif**, defined as a regulatory pattern that is statistically over-represented in natural networks (circuits) compared to random networks. To see this, it is useful to imagine the transcriptional regulatory network of an organism as a graph consisting of **nodes** and **directed edges** (arrows). In bacteria, each node represents an operon, while each arrow represents regulation of the target operon (tip of the arrow) by a transcription factor in the originating operon (base of the arrow), as shown schematically here.\n", "\n", "
\n", "\n", "![simple graph](figs/simple_graph.png)\n", "\n", "
\n", "\n", "The transcriptional regulatory network of _E. coli_ has been mapped (see [RegulonDB](http://regulondb.ccg.unam.mx)). It contains ≈424 operons (nodes), ≈519 transcriptional regulatory interactions (arrows), involving ≈116 transcription factors. If the target of each arrow was chosen randomly, the probability of any given arrow being autoregulatory is low (≈1/424). One might expect only about one such event in the entire network. However, ≈40 such autoregulatory arrows are observed. Autoregulation thus appears to be over-represented. \n", "\n", "(If we further consider the \"sign\" of the arrow, with \"+\" representing activation and \"-\" representing repression, it turns out that there are 32 negative autoregulatory operons and 8 positive autoregulatory ones. We will discuss both types.)\n", "\n", "This is a simple example of the **motif principle,** which states that statistically over-represented patterns in networks have been selected for key cellular functions. In fact, the motif concept is more general. For example, sequence motifs are statistically over-represented sequences within the genome that are enriched for functionally important features, such as protein binding sites. This is a core concept in bioinformatics. **We will discuss network motifs further in the next lecture.**" ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2019-04-03T17:45:04.997303Z", "start_time": "2019-04-03T17:45:04.994341Z" } }, "source": [ "## Negative autoregulation accelerates response times\n", "\n", "Now that we know negative autoregulation is prevalent, we ask what function or functions it provides for the cell. to start, we will write down a simple differential equation representing production and degradation of the repressor, $x$. To incorporate repression, we will use the expression we derived in the first lecture for repression. Here, the repressor is $x$ itself. \n", "\n", "\\begin{align}\n", "\\frac{\\mathrm{d}x}{\\mathrm{d}t}=\\frac{\\beta}{1+x/K_d} - \\gamma x\n", "\\end{align}\n", "\n", "We will consider the limit in which the autoregulation is \"strong\", i.e. where $\\beta/\\gamma \\gg K_d$, so the gene can, at maximal expression level, produce enough protein to fully repress itself. \n", "\n", "What happens when the operon is suddenly turned \"on\" an initial \"off\" state ($x(0)=0$)? Initially, $x$ builds up linearly, at rate $\\beta$, until its concentration is high enough to shut its own production off, $x \\sim K_d$, going something like this:\n", "\n", "
\n", "\n", "![simple_NAR_approx](figs/simple_NAR_approx.png)\n", "\n", "
\n", "\n", "In this sketch, we can see that the half-time, $t_{1/2}$ for turning on should occur when $\\beta t \\approx K_d / 2$, i.e. at $t \\approx K_d/2 \\beta$. But this is only an approximation. A more complete treatment, in Rosenfeld et al, JMB 2002 shows that in the limit of strong negative autoregulation the dynamics approach the following expression: $x(t) = x_\\mathrm{st} \\sqrt{1-\\mathrm{e}^{-2 \\gamma t}}$, where $x_\\mathrm{st}$ denotes the steady-state expression level. In the following section, we will explore these dynamics using numerical integration and compare them to this analytical approximation." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"627ace04-fa86-44f5-b817-c22a0327c220\":{\"roots\":{\"references\":[{\"attributes\":{\"children\":[{\"id\":\"1704\"},{\"id\":\"1702\"}]},\"id\":\"1705\",\"type\":\"Column\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1666\",\"type\":\"Line\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1597\"},{\"id\":\"1598\"},{\"id\":\"1599\"},{\"id\":\"1600\"},{\"id\":\"1601\"},{\"id\":\"1602\"}]},\"id\":\"1604\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis\":{\"id\":\"1562\"},\"dimension\":1,\"ticker\":null},\"id\":\"1565\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1597\",\"type\":\"PanTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1664\"},\"glyph\":{\"id\":\"1665\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1666\"},\"selection_glyph\":null,\"view\":{\"id\":\"1668\"}},\"id\":\"1667\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"children\":[[{\"id\":\"1549\"},0,0],[{\"id\":\"1580\"},1,0]]},\"id\":\"1702\",\"type\":\"GridBox\"},{\"attributes\":{},\"id\":\"1598\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1563\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"x(t)\",\"formatter\":{\"id\":\"1622\"},\"ticker\":{\"id\":\"1563\"}},\"id\":\"1562\",\"type\":\"LinearAxis\"},{\"attributes\":{\"overlay\":{\"id\":\"1603\"}},\"id\":\"1599\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"1664\"}},\"id\":\"1668\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1600\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1583\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1587\",\"type\":\"LinearScale\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAAAuGo0DJGOP2DouCOnVp4/YBIlHaGVpj+Q2ZWTmeOtPxAj95rUirI/6CWoUx0Wtj+wV7Z525O5P2DlS8pCBL0/FMVxHsMzwD/g8B0D7N7BPzC6n820g8M/KNTw2TUixT9MYfgmh7rGP7CQ7lfATMg/POy6tfjYyT+8bE0wR1/LPyxn8l/C38w/dGehhoBazj+IC0eRl8/PPzT5hIyOn9A/sGhFMpNU0T9G4Y805AbSPzZvBeaLttI/ahnWcZRj0z9slFfcBw7UP4i1mQPwtdQ/uK74n1Zb1T/kG61ERf7VP67pWWDFntY/EB6YPeA81z/uioADn9jXP4JyM7YKctg/fiVeNywJ2T+8or5GDJ7ZP+Q/pYKzMNo/zmJ0aCrB2j/GUh5VeU/bPyQpoYWo29s/UuiAF8Bl3D9UwD8JyO3cP9aH1DrIc90/enAfbsj33T9a/VxH0HnePy5Cl03n+d4/1HEV6xR43z+SwsltYPTfPznX3oNoN+A/Cku+57Zz4D8AZj7gHq/gP02Hw92j6eA/ZzuOQ0kj4T+XcO1nElzhP7rrb5QClOE/DAAVBh3L4T/OjHztZAHiP4dDFm/dNuI/tjlQo4lr4j+EyMSWbJ/iPzS9Z0qJ0uI/9Nyys+IE4z+IvtG8ezbjP3j8zERXZ+M/LMK0H3iX4z9ytsoW4cbjP+BFq+iU9eM/c092SZYj5D/CNffi51DkPx5XzFSMfeQ/2u6NNIap5D8UYvQN2NTkPyL6/WKE/+Q/zw4UrI0p5T+koi9Y9lLlP0dz/czAe+U/FoABZ++j5T/+CLp5hMvlP58Hwk+C8uU/uCTzKusY5j/YK4dEwT7mPzT/OM0GZOY/ng1l7b2I5j9yTCnF6KzmP1i3hGyJ0OY/rFd286Hz5j9M1RtiNBbnP7OSz7hCOOc/9FVG8M5Z5z9ugKz52nrnP9jWwr5om+c/Vtv6IXq75z86u5L+ENvnPxDSsCgv+uc/jsN+bdYY6D/uLUSTCDfoP1L2gFnHVOg/rDAHeRRy6D+fpBSk8Y7oP+zwa4Zgq+g/zE5txWLH6D+y9i4A+uLoP80nlc8n/ug/x9Npxu0Y6T8Q8HNxTTPpPwpujldITek/eNu++d9m6T98rEvTFYDpP2Iw0lnrmOk/lDJc/WGx6T/ZSHUoe8npPz7QP0A44ek/w5mJpJr46T8NSOCvow/qP0hfpbdUJuo/XQgiDK886j+xiJr4s1LqP3RvYcNkaOo/sXnqrcJ96j81Lt30zpLqP1IyJ9CKp+o/n1gOc/e76j+4akIMFtDqPwSv7sXn4+o/jCvLxW336j/api0tqQrrP+JnGhmbHes/8LVUokQw6z+EGW/dpkLrPxhf29rCVOs/uFz6pplm6z9ceytKLHjrP9oE3Mh7ies/azeWI4ma6z+NHxBXVavrPyo5Olzhu+s/2thNKC7M6z8RXtusPNzrPxQv2NcN7Os/fX+sk6L76z8g4kDH+wrsPxKnC1YaGuw/oAYeIP8o7D/1GTECqzfsPzWistUeRuw/up7RcFtU7D9Ls4qmYWLsP+BetEYycOw/yQMLHs597D/YwTz2NYvsPz8j9ZVqmOw/1JzowGyl7D9p4t83PbLsP88Pw7jcvuw/Pqek/kvL7D+7ZczBi9fsPxbuwbec4+w/MEtXk3/v7D8OSrMENfvsP2ysW7m9Bu0/TDQ/XBoS7T8sib+VSx3tP2z3ugtSKO0/dAqWYS4z7T8nAkU44T3tPzwkVS5rSO0/7en138xS7T+oCgLnBl3tPx9kCNsZZ+0/ZcBUUQZx7T9yevjczHrtP64B0w5uhO0/9DyadeqN7T+AzeKdQpftP1QyKBJ3oO0/hczUWoip7T/mxEn+drLtP4DT5oBDu+0/WukRZe7D7T/1vD4reMztP+459lHh1O0/QNTdVSrd7T96v76xU+XtP3IKjd5d7e0/xZ9uU0n17T+cK8KFFv3tPxPnJenFBO4/rEl+71cM7j8tofwIzRPuP1GQJaQlG+4/pHTXLWIi7j/us1ARgynuP4vxNbiIMO4/CSyYinM37j9pw/ruQz7uP1poWUr6RO4/yvQtAJdL7j8bLnZyGlLuP19xuQGFWO4/40kODdde7j9e8h/yEGXuPx/BMw0za+4/eX8uuT1x7j/QrJlPMXfuP4etqCgOfe4/HOY9m9SC7j/Jwu/8hIjuP+qrDaIfju4/cuek3aST7j/CZ4UBFZnuPxSIRl5wnu4/3LZLQ7ej7j9MDsn+6ajuP0zbx90Iru4/JRMrLBSz7j8kuLM0DLjuP3EtBUHxvO4/XHqpmcPB7j9pfRWGg8buP0MPrUwxy+4/7RXHMs3P7j9aiLF8V9TuP7NitW3Q2O4/fIsaSDjd7j/cqStNj+HuPz7tOb3V5e4/dcag1wvq7j+2ksnaMe7uP4M4LwRI8u4/y7ZhkE727j9zpgm7RfruP3qu674t/u4/4+rr1QYC7z+tRhE50QXvP+/IiCCNCe8/YNWowzoN7z9uYPRY2hDvPx0XHhZsFO8/zHoLMPAX7z8l8dfaZhvvP1jI10nQHu8/xS+brywi7z9aJfE9fCXvP7pX6iW/KO8/Xf3bl/Ur7z/goGLDHy/vP5jiZNc9Mu8/pi8WAlA17z+mbvlwVjjvPyqi41BRO+8/IoH+zUA+7z9XBcsTJUHvPybwI03+Q+8/mkVApMxG7z8GvrVCkEnvP1Mue1FJTO8/E+fq+PdO7z+HCsVgnFHvP7nZMbA2VO8/yfjDDcdW7z+TqnqfTVnvP8wDxIrKW+8/txV/9D1e7z+SEP4AqGDvP99dCNQIY+8/nrLckGBl7z+iGTNar2fvPxj2PlL1ae8/ZP6wmjJs7z9kL7lUZ27vP064CKGTcO8/Jd/Tn7dy7z8D3tNw03TvPzy5SDPndu8/eA77BfN47z/w3D0H93rvP9BG8FTzfO8/60t/DOh+7z/OfedK1YDvP1ittiy7gu8/45ENzpmE7z8baqFKcYbvP6SWvb1BiO8/mS5FQguK7z/9jbTyzYvvP0feIumJje8/BplDPz+P7z/FBGgO7pDvPz+sgG+Wku8/988eeziU7z9T0nVJ1JXvPz2eXPJpl+8/dAhPjfmY7z+QK28xg5rvP9i+hvUGnO8/+2cI8ISd7z+2BxE3/Z7vP5IBaeBvoO8/sH6FAd2h7z/Kq4mvRKPvP3byR/+mpO8/ty1DBQSm7z/42a/VW6fvP3xAdYSuqO8/VZ4uJfyp7z/zRizLRKvvP2HCdImIrO8/N+fFcset7z9e8JWZAa/vP6KOFBA3sO8/QfYr6Gex7z9i6IEzlLLvP6C4eAO8s+8/rU4wad+07z8bJId1/rXvP1c+GzkZt+8/8yRLxC+47z831DYnQrnvPyCswHFQuu8/w1uOs1q77z8vyQn8YLzvP+H1YVpjve8/w9+L3WG+7z/XXkOUXL/vP5X/C41TwO8/+9kx1kbB7z95Zcp9NsLvP6JJtZEiw+8/ySudHwvE7z+Mefg08MTvP1cwCt/Rxe8/76HiKrDG7z8HNmAli8fvP/0oMNtiyO8/tUfPWDfJ7z+pqIqqCMrvPzdigNzWyu8/Nj6g+qHL7z/aaqwQaszvP/ooOiovze8/tneyUvHN7z+RvVKVsM7vPwVvLf1sz+8/lbIqlSbQ7z91Aglo3dDvP8LLXYCR0e8/WwuW6ELS7z9j6Paq8dLvP3ZMntGd0+8/lnmDZkfU7z/dnXdz7tTvP/hkJgKT1e8/fYcWHDXW7z8SWKrK1NbvP4dOIBdy1+8/y5CTCg3Y7z/qefytpdjvP/QeMQo82e8/9dHlJ9DZ7z/1oq0PYtrvPwff+snx2u8/fI0fX3/b7z8p603XCtzvP+rjmDqU3O8/PYr0kBvd7z8rjTbioN3vP16sFjYk3u8/hCovlKXe7z/4Pf0DJd/vP8J/4Yyi3+8/51ggNh7g7z8jbuIGmODvP/sJNQYQ4e8/P4UKO4bh7z8Crjqs+uHvP/8sg2Bt4u8/f+mHXt7i7z/Ga9OsTePvP/w911G74+8/s0vsUyfk7z/zP1O5keTvP+PhNIj65O8/FXCixmHl7z9u+pV6x+XvP7q68qkr5u8/7GuFWo7m7z8ToASS7+bvPwUVEVZP5+8/xQc2rK3n7z+uhumZCujvP2DCjCRm6O8/fF1sUcDo7z8ru8AlGenvP35MrqZw6e8/ntxF2cbp7z/n24TCG+rvP9KpVWdv6u8/1d2PzMHq7z8ij/j2EuvvP1qbQuti6+8/K+wOrrHr7z8=\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1700\"},\"selection_policy\":{\"id\":\"1699\"}},\"id\":\"1669\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1601\",\"type\":\"ResetTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1566\"},{\"id\":\"1567\"},{\"id\":\"1568\"},{\"id\":\"1569\"},{\"id\":\"1570\"},{\"id\":\"1571\"}]},\"id\":\"1573\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1628\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1669\"}},\"id\":\"1673\",\"type\":\"CDSView\"},{\"attributes\":{\"toolbar\":{\"id\":\"1703\"},\"toolbar_location\":\"above\"},\"id\":\"1704\",\"type\":\"ToolbarBox\"},{\"attributes\":{},\"id\":\"1602\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1585\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"t\",\"formatter\":{\"id\":\"1691\"},\"ticker\":{\"id\":\"1590\"}},\"id\":\"1589\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1566\",\"type\":\"PanTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1659\"},\"glyph\":{\"id\":\"1660\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1661\"},\"selection_glyph\":null,\"view\":{\"id\":\"1663\"}},\"id\":\"1662\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"1669\"},\"glyph\":{\"id\":\"1670\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1671\"},\"selection_glyph\":null,\"view\":{\"id\":\"1673\"}},\"id\":\"1672\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1567\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"AAAAAAAAAAC44twjscW6P3Ym1yBO38U/btl1GkmIzD+7iMHAlRHRP8M0Dzxug9M/gC3RmoGx1T/Gfr1Wm6rXP1sJJzGyeNk/xjzS1OEi2z9zMN98da7cP2pVtM6AH94/9or1UD153z+Q+Nc6I1/gP1zDFeZg+OA/0JuScD2J4T9GQneMexLiPwG+gxnClOI/vUAyj6EQ4z/fHGEYmIbjP6LWrsMU9+M/pGKAAXpi5D/xYvueH8nkP6ihmV1UK+U/k2NFPl+J5T/HJsqRgOPlP6lVWdbyOeY/5RwYd+uM5j9HR2Znm9zmP77SWqgvKec/mLZwutFy5z/4IfH+p7nnP+ZBXgvW/ec/0REC8nw/6D9ww4KBu37oP7vuznquu+g/O002wnD26D8iNnSKGy/pP2YyYnrGZek/biY/zYea6T+fblZydM3pP+ppxCWg/uk/5gf2iR0u6j9eEPc7/lvqPxp9bOdSiOo/QI7sVyuz6j/hj8GIltzqP+1I9bOiBOs/uxpbXV0r6z93N+Vg01DrP28XFv0Qdes/cnJ72yGY6z9lIFYcEbrrP900ZVzp2us/A03UvrT66z+6+jLzfBnsP7X8SDxLN+w/T7zddihU7D9Tw0weHXDsP1IkA1Mxi+w/5aNp3myl7D+XeRA4177sP4tF0Il31+w/rvees1Tv7D9NPtNPdQbtP+LLc7XfHO0/zmTM+5ky7T85MV//qUftP2BxiWIVXO0/1oVykOFv7T/n+vXAE4PtP6Ez7fmwle0/vYclEb6n7T+v13uvP7ntP8KMilI6yu0/7GvzTbLa7T9RgL3Nq+rtP/x5R9gq+u0/JSUhTzMJ7j/JMeXwyBfuP9pIG1vvJe4/FevtCqoz7j+HYp1e/EDuPx4TK5fpTe4/zeAS2XRa7j+uaGstoWbuP+JMbYNxcu4/PZMFseh97j9Jy6VzCYnuP5rjKXHWk+4/C458OVKe7j+yGFlHf6juP+FnOABgsu4/0h5ntfa77j/8mPakRcXuP1OU8vpOzu4/L5Ie0RTX7j/yEdkvmd/uP5V7ww7e5+4/Pn/uVeXv7j+Pq7zdsPfuP5sxem9C/+4/CD7qxZsG7z+PuCuOvg3vP1P08GesFO8/bF/I5WYb7z99maGN7yHvP+8sZNlHKO8/kaRtN3Eu7z+rU6EKbTTvP1xN5Ko8Ou8/xxOGZeE/7z8KUNJ9XEXvPx/9Ei2vSu8/wXT1otpP7z9f/94F4FTvPwFefnPAWe8/DdnAAH1e7z8v5hi6FmPvP12zyKOOZ+8/w7UbuuVr7z8CSOPxHHDvPzoDETk1dO8/+Bwcdi947z/7PIiIDHzvP0KxG0nNf+8/NbQQinKD7z+3o6oX/YbvP+o5H7htiu8/emyaK8WN7z/mNYssBJHvP1j2y28rlO8/qRXcpDuX7z8ZlFp2NZrvPzNltYkZne8/2gVtf+if7z+esT/zoqLvPztkSnxJpe8/PUxXrdyn7z+m1wIVXarvP3Ammj3LrO8/tHVZrSev7z9c7IjmcrHvP9rzm2ets+8/W9d+q9e17z/ELH0p8rfvP0XFXFX9ue8/iwmAn/m77z/leP10573vP255xj/Hv+8/yy7ZZpnB7z+JuyBOXsPvP73fnlYWxe8/ZLGB3sHG7z9LsTdBYcjvP4MGq9f0ye8/Jmg0+HzL7z8JApv2+czvP/F2NSRszu8/5975z9PP7z9x2YxGMdHvP7+zT9KE0u8/Ipqru87T7z/yPiVJD9XvP5+QBL9G1u8//7qXX3XX7z+lmkBrm9jvPxdAgSC52e8/wb4HvM7a7z/DPtB43NvvP2JEWpDi3O8/CU1ZOuHd7z8Y9eKs2N7vPxmRfBzJ3+8/QEolvLLg7z9Mq1+9leHvP1GMQ1By4u8/wpu6o0jj7z9eSD7lGOTvP71C8kDj5O8/npy04afl7z+aDybxZubvP9jSsZcg5+8/xi+X/NTn7z+1WBxGhOjvP/9OaJku6e8/B2WGGtTp7z9/RXnsdOrvP8XOQTER6+8/RJblCanr7z8eJXWWPOzvPwemKfbL7O8/EzNfR1ft7z8KT4en3u3vPy+VOzNi7u8/r0VDBuLu7z98ipg7Xu/vP7B0be3W7+8/t949NUzw7z/kad0rvvDvP2alW+ks8e8/1ccXhZjx7z9IocUVAfLvP1f0cbFm8u8/hJaGbcny7z8WDNVeKfPvPx6PrZmG8+8/VSm9MeHz7z9knh46OfTvP3gKYMWO9O8/aj6G5eH07z836g+sMvXvP92V+CmB9e8/nGi7b8317z92VHKNF/bvP/5n15Jf9u8/ZbcYj6X27z8xSPWQ6fbvP3b0v6Yr9+8/Qg5i3mv37z8O3l1FqvfvPyX80Ojm9+8/gKx31SH47z+aQ8oXW/jvPwpn4buS+O8/zSJ1zcj47z9usudX/fjvPySZR2Yw+e8/xZxRA2L57z9po3I5kvnvP9lzyRLB+e8/f5ctme757z9vXEXWGvrvP3Z5Y9NF+u8/cv2TmW/67z+2m6AxmPrvPyNGEqS/+u8/yLAy+eX67z/svg05C/vvP53Zcmsv++8/wh8BmFL77z9d5CvGdPvvP7GQJP2V++8/ZPjnQ7b77z/u1z+h1fvvP28WxBv0++8/i/bbuRH87z8zNr+BLvzvP9lod3lK/O8/omDspmX87z8XHdoPgPzvP5SyzrmZ/O8/VJYvqrL87z/GmzrmyvzvPzDkBnPi/O8/vcCFVfn87z/ZhoOSD/3vP0Reqi4l/e8/2puNLjr97z/VbpmWTv3vP7k+GGti/e8//RQ1sHX97z+sYfxpiP3vP5m1XJya/e8/MXInS6z97z/pbhF6vf3vP1+VtyzO/e8//keiZt797z9wHDsr7v3vPw2m0n39/e8/Wz2hYQz+7z9ml8fZGv7vP/FUT+ko/u8/nYkrkzb+7z+fTTnaQ/7vP9mlRcFQ/u8/+3cJS13+7z8FfSd6af7vP1MtL1F1/u8/JTmd0oD+7z/M+tsAjP7vP2LiQ96W/u8/NtsbbaH+7z/5oaKvq/7vPwf37qe1/u8/hC8pWL/+7z/+llnCyP7vPwz8eejR/u8/T/J1zNr+7z9nFCtw4/7vP/dFadXr/u8/nvXy/fP+7z8cn3/r+/7vPxcsvp8D/+8/g2BNHAv/7z/h0L9iEv/vP3JanHQZ/+8/f2teUyD/7z+MS3YAJ//vP6ZjSX0t/+8/qIYyyzP/7z9wOYLrOf/vPzRlf98//+8/jlhuqEX/7z+Y+YdHS//vP+F/+r1Q/+8/887rDFb/7z+Uxnk1W//vPxmTujhg/+8/rf28F2X/7z+evIjTaf/vP6fDHm1u/+8/P5R55XL/7z/PEIg9d//vPzxyK3Z7/+8/cWRGkH//7z8HtLWMg//vP1xdUGyH/+8/CtDnL4v/7z8yMkjYjv/vP++jOGaS/+8/rIJ72pX/7z+JrM41mf/vPx5n6nic/+8/3uxypJ//7z++iA65ov/vP3CiYrel/+8/KDMQoKj/7z8597Nzq//vP8uf5jKu/+8/eQQ93rD/7z8AVUh2s//vP+RKlvu1/+8/Fluxbrj/7z94HxvQuv/vPwp8TCC9/+8/G5TBX7//7z+TUvOOwf/vP8Z9V67D/+8/ft1gvsX/7z8FYX+/x//vPyFFILLJ/+8/LTqulsv/7z8OipFtzf/vP+wfLzfP/+8/LU3g89D/7z+RjwCk0v/vP+at6kfU/+8/4gn339X/7z/Lu3ts1//vPweuzO3Y/+8/yLg7ZNr/7z+evRjQ2//vPxfDsTHd/+8/XhBTid7/7z+dOULX3//vPwBRwBvh/+8/92URV+L/7z8yx3eJ4//vP4oWNLPk/+8/AV+F1OX/7z/DKqnt5v/vPyGZ2/7n/+8/mHRXCOn/7z/HSFYK6v/vP3t4EAXr/+8/pFO9+Ov/7z/Uc4/l7P/vP1nXsMvt/+8/vENRq+7/7z93np+E7//vP1+TyVfw/+8/lqP7JPH/7z9+NGHs8f/vP6SeJK7y/+8/rTxvavP/7z9Temkh9P/vP0bjOtP0/+8/JjIKgPX/7z++UPwn9v/vP+7XL8v2/+8/VB7Gaff/7z91XeAD+P/vP+7ynpn4/+8/UmshK/n/7z/3jIa4+f/vP9Ji7EH6/+8/Rkdwx/r/7z8G7y5J+//vP91zRMf7/+8/kF/MQfz/7z+uceG4/P/vP7CemSz9/+8/wOcLnf3/7z/s6k8K/v/vPwGsfHT+/+8/Opyo2/7/7z8Bouk////vP6EgVaH//+8/AAAAAAAA8D8=\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1698\"},\"selection_policy\":{\"id\":\"1697\"}},\"id\":\"1664\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"grey\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1671\",\"type\":\"Line\"},{\"attributes\":{\"overlay\":{\"id\":\"1572\"}},\"id\":\"1568\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"line_color\":\"grey\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1642\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1665\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1554\",\"type\":\"LinearScale\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"orange\",\"line_width\":4,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1661\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1569\",\"type\":\"SaveTool\"},{\"attributes\":{\"toolbars\":[{\"id\":\"1573\"},{\"id\":\"1604\"}],\"tools\":[{\"id\":\"1566\"},{\"id\":\"1567\"},{\"id\":\"1568\"},{\"id\":\"1569\"},{\"id\":\"1570\"},{\"id\":\"1571\"},{\"id\":\"1597\"},{\"id\":\"1598\"},{\"id\":\"1599\"},{\"id\":\"1600\"},{\"id\":\"1601\"},{\"id\":\"1602\"}]},\"id\":\"1703\",\"type\":\"ProxyToolbar\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1696\"},\"selection_policy\":{\"id\":\"1695\"}},\"id\":\"1659\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1685\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1570\",\"type\":\"ResetTool\"},{\"attributes\":{\"line_color\":\"grey\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1670\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1686\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1691\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"1659\"}},\"id\":\"1663\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1571\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"1693\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1699\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1655\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1581\",\"type\":\"DataRange1d\"},{\"attributes\":{\"text\":\"Same plot, normalized\"},\"id\":\"1658\",\"type\":\"Title\"},{\"attributes\":{\"text\":\"Turn-on dynamics \\u00b1 negative autoregulation\"},\"id\":\"1611\",\"type\":\"Title\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1603\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1696\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1698\",\"type\":\"Selection\"},{\"attributes\":{\"items\":[{\"id\":\"1625\"},{\"id\":\"1640\"},{\"id\":\"1657\"}],\"location\":\"center_right\"},\"id\":\"1624\",\"type\":\"Legend\"},{\"attributes\":{},\"id\":\"1697\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1641\"},\"glyph\":{\"id\":\"1642\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1643\"},\"selection_glyph\":null,\"view\":{\"id\":\"1645\"}},\"id\":\"1644\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1656\"},\"selection_policy\":{\"id\":\"1655\"}},\"id\":\"1626\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1700\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"grey\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1643\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1622\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1620\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"1641\"}},\"id\":\"1645\",\"type\":\"CDSView\"},{\"attributes\":{\"label\":{\"value\":\"limiting analytical solution\"},\"renderers\":[{\"id\":\"1615\"}]},\"id\":\"1625\",\"type\":\"LegendItem\"},{\"attributes\":{\"label\":{\"value\":\"unregulated\"},\"renderers\":[{\"id\":\"1644\"}]},\"id\":\"1657\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1627\",\"type\":\"Line\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1686\"},\"selection_policy\":{\"id\":\"1685\"}},\"id\":\"1641\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"below\":[{\"id\":\"1589\"}],\"center\":[{\"id\":\"1592\"},{\"id\":\"1596\"}],\"frame_height\":250,\"left\":[{\"id\":\"1593\"}],\"plot_width\":350,\"renderers\":[{\"id\":\"1662\"},{\"id\":\"1667\"},{\"id\":\"1672\"}],\"title\":{\"id\":\"1658\"},\"toolbar\":{\"id\":\"1604\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1581\"},\"x_scale\":{\"id\":\"1585\"},\"y_range\":{\"id\":\"1583\"},\"y_scale\":{\"id\":\"1587\"}},\"id\":\"1580\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1572\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"axis\":{\"id\":\"1593\"},\"dimension\":1,\"ticker\":null},\"id\":\"1596\",\"type\":\"Grid\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":4,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1660\",\"type\":\"Line\"},{\"attributes\":{\"below\":[{\"id\":\"1558\"}],\"center\":[{\"id\":\"1561\"},{\"id\":\"1565\"},{\"id\":\"1624\"}],\"frame_height\":250,\"left\":[{\"id\":\"1562\"}],\"plot_width\":350,\"renderers\":[{\"id\":\"1615\"},{\"id\":\"1629\"},{\"id\":\"1644\"}],\"title\":{\"id\":\"1611\"},\"toolbar\":{\"id\":\"1573\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1581\"},\"x_scale\":{\"id\":\"1554\"},\"y_range\":{\"id\":\"1552\"},\"y_scale\":{\"id\":\"1556\"}},\"id\":\"1549\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data_source\":{\"id\":\"1626\"},\"glyph\":{\"id\":\"1627\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1628\"},\"selection_glyph\":null,\"view\":{\"id\":\"1630\"}},\"id\":\"1629\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1590\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1638\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis\":{\"id\":\"1589\"},\"ticker\":null},\"id\":\"1592\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1626\"}},\"id\":\"1630\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1552\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1594\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"x(t)\",\"formatter\":{\"id\":\"1693\"},\"ticker\":{\"id\":\"1594\"}},\"id\":\"1593\",\"type\":\"LinearAxis\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1639\"},\"selection_policy\":{\"id\":\"1638\"}},\"id\":\"1612\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1559\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"t\",\"formatter\":{\"id\":\"1620\"},\"ticker\":{\"id\":\"1559\"}},\"id\":\"1558\",\"type\":\"LinearAxis\"},{\"attributes\":{\"label\":{\"value\":\"negative autoregulation\"},\"renderers\":[{\"id\":\"1629\"}]},\"id\":\"1640\",\"type\":\"LegendItem\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"orange\",\"line_width\":4,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1614\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1556\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1639\",\"type\":\"Selection\"},{\"attributes\":{\"data_source\":{\"id\":\"1612\"},\"glyph\":{\"id\":\"1613\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1614\"},\"selection_glyph\":null,\"view\":{\"id\":\"1616\"}},\"id\":\"1615\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1656\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1612\"}},\"id\":\"1616\",\"type\":\"CDSView\"},{\"attributes\":{\"axis\":{\"id\":\"1558\"},\"ticker\":null},\"id\":\"1561\",\"type\":\"Grid\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":4,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1613\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1695\",\"type\":\"UnionRenderers\"}],\"root_ids\":[\"1705\"]},\"title\":\"Bokeh Application\",\"version\":\"2.0.1\"}};\n", " var render_items = [{\"docid\":\"627ace04-fa86-44f5-b817-c22a0327c220\",\"root_ids\":[\"1705\"],\"roots\":{\"1705\":\"d50b2411-83ff-4131-b6e7-f73c3707fa0a\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1705" } }, "output_type": "display_data" } ], "source": [ "# Negative autoregulation right hand side\n", "def neg_auto_reg_rhs(x, t, beta, Kd, gamma):\n", " return beta / (1 + x / Kd) - gamma * x\n", "\n", "# Parameters\n", "t = np.linspace(0, 6, 400)\n", "Kd = 1\n", "gamma = 1\n", "beta = 100\n", "\n", "# Negative autoregulated solution\n", "y = scipy.integrate.odeint(neg_auto_reg_rhs, 0, t, args=(beta, Kd, gamma))\n", "nar = y[:, 0]\n", "\n", "# Unregulated solution\n", "unreg = 1 - np.exp(-gamma * t)\n", "\n", "# Limiting solution\n", "limiting = np.sqrt(1 - np.exp(-2 * gamma * t))\n", "\n", "# Create plots of unnormalized responses\n", "p = [\n", " bokeh.plotting.figure(\n", " frame_height=250, width=350, x_axis_label=\"t\", y_axis_label=\"x(t)\"\n", " )\n", " for _ in [0, 1]\n", "]\n", "p[0].x_range = p[1].x_range\n", "\n", "p[0].title.text = \"Turn-on dynamics ± negative autoregulation\"\n", "p[0].line(\n", " t,\n", " nar.max() * limiting,\n", " line_width=4,\n", " color=\"orange\",\n", " legend_label=\"limiting analytical solution\",\n", ")\n", "p[0].line(t, nar, line_width=2, legend_label=\"negative autoregulation\")\n", "p[0].line(\n", " t,\n", " beta / gamma * unreg,\n", " line_width=2,\n", " color=\"grey\",\n", " legend_label=\"unregulated\",\n", ")\n", "p[0].legend.location = \"center_right\"\n", "\n", "# Create plot of normalized responses\n", "p[1].title.text = \"Same plot, normalized\"\n", "p[1].line(t, limiting, line_width=4, color=\"orange\")\n", "p[1].line(t, nar / nar.max(), line_width=2)\n", "p[1].line(t, unreg, line_width=2, color=\"grey\")\n", "\n", "bokeh.io.show(bokeh.layouts.gridplot(p, ncols=1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "What do we see here: First, as you would expect, adding negative autoregulation reduces the steady-state expression level. However, it also has a second effect: accelerating the approach to steady state. In the right-hand plot we include the limiting analytical solution from Rosenfeld et al. for comparison.\n", "\n", "In fact, _negative autoregulation has accelerated the dynamics by about 5-fold compared to the unregulated system._ \n", "\n", "Note that this acceleration occurs when we turn the gene on, but not when we turn it off. If we suddenly stop expression by setting $\\beta$ to 0, then the dynamics are governed by $\\mathrm{d}x/\\mathrm{d}t = -\\gamma x$ irrespective of which architecture we use. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Can this acceleration be observed experimentally? To find out, Rosenfeld et al. engineered a simple synthetic system based on a bacterial repressor called TetR, fused to a fluorescent protein for readout, and studied its turn-on dynamics in bacterial populations. \n", "\n", "
\n", "\n", "
\n", "\n", "![negative autoregulation experiment](figs/negative_autoregulation_experiment.png)\n", "\n", "
\n", "\n", "\n", "
This image is taken from Rosenfeld et al., J. Mol. Biol., 2002.
\n", "\n", "
\n", "\n", "\n", "Interestingly, these dynamics showed the expected acceleration, as well as some oscillations around steady-state, which may be explained by time delays in the regulatory system (something we will discuss more in an upcoming lecture).\n", "\n", "To conclude this section: We now have identified another simple **design principle:** **_Negative autoregulation speeds the response time of a transcription factor_**.\n", "\n", "Negative autoregulation can have additional functions beyond acceleration. Using similar synthetic approaches, negative autoregulation was shown to reduce stochastic cell-cell variability (\"noise\") in gene expression ([Becskei and Serrano, _Nature_, 2000](https://doi.org/10.1038/35014651))." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Interlude: Hill functions and ultrasensitivity\n", "\n", "Before moving forward, I want to take a moment to introduce a very useful function called the Hill function, which we briefly visited in the previous lesson. The reason we need this function is that many responses in gene regulation and protein-protein interactions have a switch-like, or **ultrasensitive** shape. Ultrasensitivity can arise from **cooperativity** in molecular interactions. For example, consider a situation in which binding of a protein at one DNA binding site increases the affinity for binding of a second protein at an adjacent site. Or, imagine a protein with an alternative molecular conformation that is stabilized by binding of multiple agonist effector molecules and, in that conformation, has a higher affinity for the same effectors. In these and many other situations, an increasing concentration of one species can have little effect for a while, and then suddenly have a large effect. \n", "\n", "The Hill function provides a way to analyze systems that have ultrasensitive interactions. While it can be derived from models of some processes, it is often used in a more generic way to analyze how a circuit would behave with different levels of ultrasensitivity.\n", "\n", "An activating Hill function is defined by \n", "\n", "\\begin{align}\n", "f_\\mathrm{act}(x) &= \\frac{x^n}{k^n +x^n} = \\frac{(x/k)^n}{1 + (x/k)^n}.\n", "\\end{align}\n", "\n", "You can also make a mirror image repressive Hill function. \n", "\n", "\\begin{align}\n", "f_\\mathrm{rep}(x) &= \\frac{k^n}{k^n +x^n} = \\frac{1}{1 + (x/k)^n}.\n", "\\end{align}\n", "\n", "In these expressions, the $K$ represents the concentration at which the function attains half its maximal value, and the **Hill coefficient**, $n$, parameterizes how ultrasensitive the response is. When $n=1$, we recover the simple binding curves we have already introduced. When $n>$, however, we achieve ever sharper, more ultrasensitive, responses. Finally, in the limit of $n=\\infty$ we have a step function. Here we plot the Hill function for a few values of $n$:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"fc492448-2e99-427b-83e1-c86704e69893\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1943\"}],\"center\":[{\"id\":\"1946\"},{\"id\":\"1950\"},{\"id\":\"1977\"}],\"left\":[{\"id\":\"1947\"}],\"plot_height\":275,\"plot_width\":400,\"renderers\":[{\"id\":\"1968\"},{\"id\":\"1982\"},{\"id\":\"1997\"}],\"title\":{\"id\":\"1970\"},\"toolbar\":{\"id\":\"1958\"},\"x_range\":{\"id\":\"1935\"},\"x_scale\":{\"id\":\"1939\"},\"y_range\":{\"id\":\"1937\"},\"y_scale\":{\"id\":\"1941\"}},\"id\":\"1934\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[200]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[200]}},\"selected\":{\"id\":\"2009\"},\"selection_policy\":{\"id\":\"2008\"}},\"id\":\"1979\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2008\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"x/K\",\"formatter\":{\"id\":\"1973\"},\"ticker\":{\"id\":\"1944\"}},\"id\":\"1943\",\"type\":\"LogAxis\"},{\"attributes\":{\"data_source\":{\"id\":\"1979\"},\"glyph\":{\"id\":\"1980\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1981\"},\"selection_glyph\":null,\"view\":{\"id\":\"1983\"}},\"id\":\"1982\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"label\":{\"value\":\"n = 10\"},\"renderers\":[{\"id\":\"1997\"}]},\"id\":\"2010\",\"type\":\"LegendItem\"},{\"attributes\":{\"data_source\":{\"id\":\"1994\"},\"glyph\":{\"id\":\"1995\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1996\"},\"selection_glyph\":null,\"view\":{\"id\":\"1998\"}},\"id\":\"1997\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1952\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2095\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1975\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"1979\"}},\"id\":\"1983\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#3182bd\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1996\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#6baed6\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1981\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2009\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#bdd7e7\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1967\",\"type\":\"Line\"},{\"attributes\":{\"axis\":{\"id\":\"1943\"},\"ticker\":null},\"id\":\"1946\",\"type\":\"Grid\"},{\"attributes\":{\"axis\":{\"id\":\"1947\"},\"dimension\":1,\"ticker\":null},\"id\":\"1950\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1939\",\"type\":\"LogScale\"},{\"attributes\":{},\"id\":\"2094\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1951\",\"type\":\"PanTool\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1957\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1941\",\"type\":\"LinearScale\"},{\"attributes\":{\"num_minor_ticks\":10},\"id\":\"1944\",\"type\":\"LogTicker\"},{\"attributes\":{\"line_color\":\"#bdd7e7\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1966\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"#6baed6\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1980\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1994\"}},\"id\":\"1998\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1992\",\"type\":\"Selection\"},{\"attributes\":{\"data_source\":{\"id\":\"1965\"},\"glyph\":{\"id\":\"1966\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1967\"},\"selection_glyph\":null,\"view\":{\"id\":\"1969\"}},\"id\":\"1968\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1991\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[200]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[200]}},\"selected\":{\"id\":\"1992\"},\"selection_policy\":{\"id\":\"1991\"}},\"id\":\"1965\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"label\":{\"value\":\"n = 2\"},\"renderers\":[{\"id\":\"1982\"}]},\"id\":\"1993\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1956\",\"type\":\"HelpTool\"},{\"attributes\":{\"end\":100.0,\"start\":0.01},\"id\":\"1935\",\"type\":\"Range1d\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1951\"},{\"id\":\"1952\"},{\"id\":\"1953\"},{\"id\":\"1954\"},{\"id\":\"1955\"},{\"id\":\"1956\"}]},\"id\":\"1958\",\"type\":\"Toolbar\"},{\"attributes\":{\"axis_label\":\"activating Hill function\",\"formatter\":{\"id\":\"1975\"},\"ticker\":{\"id\":\"1948\"}},\"id\":\"1947\",\"type\":\"LinearAxis\"},{\"attributes\":{\"overlay\":{\"id\":\"1957\"}},\"id\":\"1953\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"1965\"}},\"id\":\"1969\",\"type\":\"CDSView\"},{\"attributes\":{\"text\":\"\"},\"id\":\"1970\",\"type\":\"Title\"},{\"attributes\":{\"ticker\":null},\"id\":\"1973\",\"type\":\"LogTickFormatter\"},{\"attributes\":{},\"id\":\"1937\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1955\",\"type\":\"ResetTool\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[200]},\"y\":{\"__ndarray__\":\"JUKSDKGcxzsr2Ji8JMHSOwgLxNztyt07kYkk1e+p5ztHQnivtsvyOz5uKnC42/07UGTLHUa3BzxgyG2XTtYSPCLEQ3qM7B08Cf3A6qPEJzxD9tR37OAyPMh+ZQBq/T08neBBQAnSRzw2PAtUkOtSPJIR6AdRDl481v6MInbfZzwa8G8vOvZyPLrzJpZBH348S6zjlershzwtTmQN6gCTPOGggLA7MJ48ZaOJnmb6pzzaekvxnwuzPH+bVlw/Qb48yAXFQOoHyDx6goreWxbTPHhuDZ9MUt48Tl7egHUV6DzmW4jYHSHzPG+uDH5jY/48yaAgYwgjCD1S6K3i5SsTPUD8vv6DdB493yzZ66IwKD139GUAtDYzPfQDkiauhT49KM1XH0U+SD2nOB01iEFTPVp99vrhll49cbTuAe9LaD03U0KEYkxzPcodYIEfqH49i23yl6BZiD2etEXxQleTPW1iRb9muZ49GJW55VlnqD27RZl/KWKzPQKvHrq3yr49sL2b7xp1yD1lAK8yFm3TPezAYncS3N49Y/PsueOC6D3pRvMNCXjzPUhnePx27f49o7XrSLSQCD6SJLYUAoMTPlYZfU7l/h4+vIZ4oIyeKD5M5s9JAY4zPhhNXnFdED8+hd/ywmysSD4B3jGuBplTPoy4OmTfIV8+pdenrFS6aD7A8CI7EqRzPrf61hJrM38+eSZ4QUTIiD4izBfLI6+TPqWXLhsARZ8+KVEdAzvWqD5IQqu8OrqzPiBlsOKcVr8+Bhny6DbkyD6b0tx8VMXTPk2kEOc6aN8+3F/juS/y6D7jSISpZtDzPvhvMvG/ef8+GAS9XwQACT+fFbGBR9sTP63QKqLCih8/zc1v6C8NKT+vCpJNT+UzP0UoJt6bmT8/TklDv5wXST9tq7pg3etTP63OvHqsn18/lSkhtPQWaT9FpfJRduRzP0hGsnGmgn8/scTU3VHqiD8qotOyK6aTP5ne+ySE3Z4/li5JNKMWqD8q4uCxE56yP1eAVhJ0XLw/yIVMDNglxT+ahEOqD57OP38IJ6NUUdU/vPxEUlRQ3D+Xgd3W1dfhP8J7bK5VV+U/1x5vFXxY6D+N3uz8ibbqP/kvtX1xdOw/t+PDiT2s7T8WbbvMlX7uPwsh2N4TCe8/72Jpos5i7z/urIi4VpzvP3SbHLP6wO8/tRpcEzfY7z/W3ksL6ebvP5mhwikw8O8/qqJPEQr27z8uL9AYuvnvPzs7hMwM/O8/v00WVoP97z8DeQEtb/7vP6nu6qkD/+8/d/LDJWH/7z8Mge7/m//vP5sdgAzB/+8/96wyX9j/7z8dRtAN5//vP3iM4kvw/+8/ksFVHfb/7z/DRfLG+f/vP6pjLBX8/+8/a6i4iP3/7z/OT5xy/v/vPyf/1wX//+8/p+GGYv//7z/67t6c///vP9opmcH//+8/itu32P//7z9Tq0Xn///vP04Qb/D//+8/qXwz9v//7z/P5NT5///vP1L0Hfz//+8/1z+O/f//7z82F3b+///vP9YICP///+8/7+dj////7z8vvZ3////vPxIlwv///+8/7g/Z////7z8cfef////vP/eR8P///+8/dUn2////7z+54vn////vP6km/P///+8/u5P9////7z+Kef7////vPzUK/////+8/RmX/////7z+Znv/////vP7DC/////+8/Z9n/////7z+05//////vP7Xw/////+8/X/b/////7z/w+f/////vPy/8/////+8/mf3/////7z99/v/////vPwz//////+8/Z///////7z+f///////vP8P//////+8/2v//////7z/o///////vP/H//////+8/9v//////7z/6///////vP/z//////+8//v//////7z/////////vP/7//////+8/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8AAAAAAADwPw==\",\"dtype\":\"float64\",\"shape\":[200]}},\"selected\":{\"id\":\"2095\"},\"selection_policy\":{\"id\":\"2094\"}},\"id\":\"1994\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"label\":{\"value\":\"n = 1\"},\"renderers\":[{\"id\":\"1968\"}]},\"id\":\"1978\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1948\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1954\",\"type\":\"SaveTool\"},{\"attributes\":{\"line_color\":\"#3182bd\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1995\",\"type\":\"Line\"},{\"attributes\":{\"items\":[{\"id\":\"1978\"},{\"id\":\"1993\"},{\"id\":\"2010\"}],\"location\":\"center_right\"},\"id\":\"1977\",\"type\":\"Legend\"}],\"root_ids\":[\"1934\"]},\"title\":\"Bokeh Application\",\"version\":\"2.0.1\"}};\n", " var render_items = [{\"docid\":\"fc492448-2e99-427b-83e1-c86704e69893\",\"root_ids\":[\"1934\"],\"roots\":{\"1934\":\"6a533fec-9e0e-4d29-8c07-87bdf9266375\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1934" } }, "output_type": "display_data" } ], "source": [ "x = np.logspace(-2, 2, 200)\n", "f = [x**n / (1 + x**n) for n in [1, 2, 10]]\n", "\n", "# Build plot\n", "p = bokeh.plotting.figure(\n", " height=275,\n", " width=400,\n", " x_axis_label=\"x/K\",\n", " y_axis_label=\"activating Hill function\",\n", " x_range=[x[0], x[-1]],\n", " x_axis_type=\"log\"\n", ")\n", "\n", "colors = bokeh.palettes.Blues5[1:-1][::-1]\n", "for f_act, n, color in zip(f, [1, 2, 10], colors):\n", " p.line(x, f_act, line_width=2, color=color, legend_label=f\"n = {n}\")\n", "p.legend.location = \"center_right\"\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can try altering the code above to analyze repressive Hill functions (or play with sliders in the previous lesson). Also, what happens when you try negative Hill coefficients?\n", "\n", "The name of the Hill function is suggestive–it looks like a hill. In fact, it was named for Archibald Hill, who used it to model binding of oxygen by Hemoglobin. " ] }, { "cell_type": "markdown", "metadata": { "ExecuteTime": { "end_time": "2019-04-03T18:59:51.945279Z", "start_time": "2019-04-03T18:59:51.939867Z" } }, "source": [ "## Positive autoregulation enables bistability\n", "\n", "Having examined negative autoregulation, we now turn to its opposite, **positive autoregulation,** a feature that is *also* prevalent in natural circuits. What functions could positive autoregulation provide?\n", "\n", "
\n", "\n", "![positive autoregulation](figs/positive_autoregulation.png)\n", "\n", "
\n", "\n", "We can represent a positive autoregulatory circuit with the following simple equation, where the production term comes from our analysis of an activation system in lecture 1:\n", "\n", "\\begin{align}\n", "\\frac{\\mathrm{d}x}{\\mathrm{d}t} = \\frac{\\beta x^n} {x^n + K^n} - \\gamma x \n", "\\end{align}\n", "\n", "Note that we've replaced the simple activation function with a more general Hill function. To see what positive autoregulation might do, let's plot the two terms on the right hand side (production rate and removal rate) versus $x$. We will start by considering a relatively high Hill coefficient of $n=4$.\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"48908b37-b41d-49de-9fd7-c4dbb6ec2c44\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2185\"}],\"center\":[{\"id\":\"2188\"},{\"id\":\"2192\"},{\"id\":\"2217\"},{\"id\":\"2223\"},{\"id\":\"2229\"},{\"id\":\"2236\"},{\"id\":\"2239\"},{\"id\":\"2242\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"2189\"}],\"renderers\":[{\"id\":\"2210\"},{\"id\":\"2215\"},{\"id\":\"2221\"},{\"id\":\"2227\"},{\"id\":\"2233\"},{\"id\":\"2247\"},{\"id\":\"2252\"}],\"title\":{\"id\":\"2175\"},\"toolbar\":{\"id\":\"2200\"},\"x_range\":{\"id\":\"2177\"},\"x_scale\":{\"id\":\"2181\"},\"y_range\":{\"id\":\"2179\"},\"y_scale\":{\"id\":\"2183\"}},\"id\":\"2174\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2181\",\"type\":\"LinearScale\"},{\"attributes\":{\"end\":{\"id\":\"2235\"},\"line_color\":{\"value\":\"gray\"},\"line_width\":{\"value\":4},\"source\":null,\"start\":null,\"x_end\":{\"value\":0.1},\"x_start\":{\"value\":3.25},\"y_end\":{\"value\":12},\"y_start\":{\"value\":12}},\"id\":\"2236\",\"type\":\"Arrow\"},{\"attributes\":{\"fill_color\":\"gray\",\"line_color\":\"gray\",\"size\":15},\"id\":\"2241\",\"type\":\"VeeHead\"},{\"attributes\":{\"data_source\":{\"id\":\"2249\"},\"glyph\":{\"id\":\"2250\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2251\"},\"selection_glyph\":null,\"view\":{\"id\":\"2253\"}},\"id\":\"2252\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"text_baseline\":\"top\",\"text_color\":{\"value\":\"#1f77b4\"},\"text_font_size\":{\"value\":\"10pt\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2245\",\"type\":\"Text\"},{\"attributes\":{\"source\":{\"id\":\"2249\"}},\"id\":\"2253\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":\"gray\",\"line_color\":\"gray\",\"size\":15},\"id\":\"2238\",\"type\":\"VeeHead\"},{\"attributes\":{\"end\":{\"id\":\"2238\"},\"line_color\":{\"value\":\"gray\"},\"line_width\":{\"value\":4},\"source\":null,\"start\":null,\"x_end\":{\"value\":6.75},\"x_start\":{\"value\":3.5},\"y_end\":{\"value\":12},\"y_start\":{\"value\":12}},\"id\":\"2239\",\"type\":\"Arrow\"},{\"attributes\":{\"data\":{\"x\":[0],\"y\":[0]},\"selected\":{\"id\":\"2350\"},\"selection_policy\":{\"id\":\"2349\"}},\"id\":\"2218\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"2244\"}},\"id\":\"2248\",\"type\":\"CDSView\"},{\"attributes\":{\"end\":{\"id\":\"2241\"},\"line_color\":{\"value\":\"gray\"},\"line_width\":{\"value\":4},\"source\":null,\"start\":null,\"x_end\":{\"value\":13},\"x_start\":{\"value\":20},\"y_end\":{\"value\":12},\"y_start\":{\"value\":12}},\"id\":\"2242\",\"type\":\"Arrow\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2199\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"text\":\"\\u03b2 = 10, \\u03b3 = 1 , K = 4, n = 4\"},\"id\":\"2175\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2341\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data\":{\"text\":[\"production rate\"],\"x\":[14],\"y\":[9.933]},\"selected\":{\"id\":\"2356\"},\"selection_policy\":{\"id\":\"2355\"}},\"id\":\"2244\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"dimension\":\"height\",\"level\":\"underlay\",\"line_dash\":[6],\"location\":0},\"id\":\"2217\",\"type\":\"Span\"},{\"attributes\":{\"source\":{\"id\":\"2212\"}},\"id\":\"2216\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2183\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"x\",\"formatter\":{\"id\":\"2341\"},\"ticker\":{\"id\":\"2186\"}},\"id\":\"2185\",\"type\":\"LinearAxis\"},{\"attributes\":{\"text_alpha\":{\"value\":0.1},\"text_baseline\":\"top\",\"text_color\":{\"value\":\"#1f77b4\"},\"text_font_size\":{\"value\":\"10pt\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2246\",\"type\":\"Text\"},{\"attributes\":{},\"id\":\"2179\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis\":{\"id\":\"2189\"},\"dimension\":1,\"ticker\":null},\"id\":\"2192\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"2244\"},\"glyph\":{\"id\":\"2245\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2246\"},\"selection_glyph\":null,\"view\":{\"id\":\"2248\"}},\"id\":\"2247\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"2212\"},\"glyph\":{\"id\":\"2213\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2214\"},\"selection_glyph\":null,\"view\":{\"id\":\"2216\"}},\"id\":\"2215\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"text\":[\"removal rate\"],\"x\":[14],\"y\":[14]},\"selected\":{\"id\":\"2358\"},\"selection_policy\":{\"id\":\"2357\"}},\"id\":\"2249\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2214\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2186\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_color\":\"gray\",\"line_color\":\"gray\",\"size\":15},\"id\":\"2235\",\"type\":\"VeeHead\"},{\"attributes\":{\"axis\":{\"id\":\"2185\"},\"ticker\":null},\"id\":\"2188\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"2218\"},\"glyph\":{\"id\":\"2219\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2220\"},\"selection_glyph\":null,\"view\":{\"id\":\"2222\"}},\"id\":\"2221\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2343\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2177\",\"type\":\"DataRange1d\"},{\"attributes\":{\"dimension\":\"height\",\"level\":\"underlay\",\"line_dash\":[6],\"location\":3.3819761988413224},\"id\":\"2223\",\"type\":\"Span\"},{\"attributes\":{},\"id\":\"2190\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"production or removal rate\",\"formatter\":{\"id\":\"2343\"},\"ticker\":{\"id\":\"2190\"}},\"id\":\"2189\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2347\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2346\"},\"selection_policy\":{\"id\":\"2345\"}},\"id\":\"2207\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"2218\"}},\"id\":\"2222\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2345\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"2224\"},\"glyph\":{\"id\":\"2225\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2226\"},\"selection_glyph\":null,\"view\":{\"id\":\"2228\"}},\"id\":\"2227\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2209\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2348\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"black\"},\"line_alpha\":{\"value\":0.1},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2220\",\"type\":\"Circle\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2348\"},\"selection_policy\":{\"id\":\"2347\"}},\"id\":\"2212\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2346\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"2207\"}},\"id\":\"2211\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2349\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2213\",\"type\":\"Line\"},{\"attributes\":{\"fill_color\":{\"value\":\"white\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2225\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"2207\"},\"glyph\":{\"id\":\"2208\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2209\"},\"selection_glyph\":null,\"view\":{\"id\":\"2211\"}},\"id\":\"2210\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"x\":[3.3819761988413224],\"y\":[3.3819761988413224]},\"selected\":{\"id\":\"2352\"},\"selection_policy\":{\"id\":\"2351\"}},\"id\":\"2224\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2193\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2350\",\"type\":\"Selection\"},{\"attributes\":{\"dimension\":\"height\",\"level\":\"underlay\",\"line_dash\":[6],\"location\":9.72134917189334},\"id\":\"2229\",\"type\":\"Span\"},{\"attributes\":{},\"id\":\"2194\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2351\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"overlay\":{\"id\":\"2199\"}},\"id\":\"2195\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"2224\"}},\"id\":\"2228\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2352\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2196\",\"type\":\"SaveTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2231\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2353\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"white\"},\"line_alpha\":{\"value\":0.1},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2226\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2197\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2354\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2355\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2198\",\"type\":\"HelpTool\"},{\"attributes\":{\"data\":{\"x\":[9.72134917189334],\"y\":[9.72134917189334]},\"selected\":{\"id\":\"2354\"},\"selection_policy\":{\"id\":\"2353\"}},\"id\":\"2230\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2356\",\"type\":\"Selection\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2193\"},{\"id\":\"2194\"},{\"id\":\"2195\"},{\"id\":\"2196\"},{\"id\":\"2197\"},{\"id\":\"2198\"}]},\"id\":\"2200\",\"type\":\"Toolbar\"},{\"attributes\":{\"data_source\":{\"id\":\"2230\"},\"glyph\":{\"id\":\"2231\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2232\"},\"selection_glyph\":null,\"view\":{\"id\":\"2234\"}},\"id\":\"2233\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"angle\":{\"units\":\"rad\",\"value\":0.575},\"text_color\":{\"value\":\"orange\"},\"text_font_size\":{\"value\":\"10pt\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2250\",\"type\":\"Text\"},{\"attributes\":{},\"id\":\"2357\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"2230\"}},\"id\":\"2234\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2208\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2358\",\"type\":\"Selection\"},{\"attributes\":{\"angle\":{\"units\":\"rad\",\"value\":0.575},\"text_alpha\":{\"value\":0.1},\"text_color\":{\"value\":\"orange\"},\"text_font_size\":{\"value\":\"10pt\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2251\",\"type\":\"Text\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"black\"},\"line_alpha\":{\"value\":0.1},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2232\",\"type\":\"Circle\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2219\",\"type\":\"Circle\"}],\"root_ids\":[\"2174\"]},\"title\":\"Bokeh Application\",\"version\":\"2.0.1\"}};\n", " var render_items = [{\"docid\":\"48908b37-b41d-49de-9fd7-c4dbb6ec2c44\",\"root_ids\":[\"2174\"],\"roots\":{\"2174\":\"6c9c46a0-fa2a-4ad3-bd2d-a522b400828b\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "2174" } }, "output_type": "display_data" } ], "source": [ "# Parameters\n", "beta = 10\n", "gamma = 1\n", "K = 4\n", "n = 4\n", "\n", "# Theroetical curves\n", "x = np.linspace(0, 20, 400)\n", "prod = beta * x ** n / (x ** n + K ** n)\n", "removal = gamma * x\n", "\n", "# Fixed points\n", "fp_rhs = lambda x: beta / gamma * x ** n / (x ** n + K ** n)\n", "fixed_points = [\n", " 0,\n", " float(scipy.optimize.fixed_point(fp_rhs, 3)),\n", " float(scipy.optimize.fixed_point(fp_rhs, 5)),\n", "]\n", "\n", "# Build plot\n", "p = bokeh.plotting.figure(\n", " frame_height=275,\n", " frame_width=375,\n", " x_axis_label=\"x\",\n", " y_axis_label=\"production or removal rate\",\n", " title=f\"β = {beta}, γ = {gamma} , K = {K}, n = {n}\",\n", ")\n", "\n", "# Plot production and removal rates\n", "p.line(x, prod, line_width=2, color=\"#1f77b4\")\n", "p.line(x, removal, line_width=2, color=\"orange\")\n", "\n", "# Plot fixed points\n", "for i, fp in enumerate(fixed_points):\n", " p.add_layout(\n", " bokeh.models.Span(\n", " location=fp,\n", " level=\"underlay\",\n", " dimension=\"height\",\n", " line_color=\"black\",\n", " line_dash=\"dashed\",\n", " )\n", " )\n", " fill_color = \"white\" if i % 2 else \"black\"\n", " p.circle(\n", " [fp],\n", " [gamma * fp],\n", " color=\"black\",\n", " size=10,\n", " line_width=2,\n", " fill_color=fill_color,\n", " )\n", "\n", "# Annotate\n", "p.add_layout(\n", " bokeh.models.Arrow(\n", " end=bokeh.models.VeeHead(\n", " size=15, fill_color=\"gray\", line_color=\"gray\"\n", " ),\n", " line_width=4,\n", " x_start=3.25,\n", " y_start=12,\n", " x_end=0.1,\n", " y_end=12,\n", " line_color=\"gray\",\n", " )\n", ")\n", "p.add_layout(\n", " bokeh.models.Arrow(\n", " end=bokeh.models.VeeHead(\n", " size=15, fill_color=\"gray\", line_color=\"gray\"\n", " ),\n", " line_width=4,\n", " x_start=3.5,\n", " y_start=12,\n", " x_end=6.75,\n", " y_end=12,\n", " line_color=\"gray\",\n", " )\n", ")\n", "p.add_layout(\n", " bokeh.models.Arrow(\n", " end=bokeh.models.VeeHead(\n", " size=15, fill_color=\"gray\", line_color=\"gray\"\n", " ),\n", " line_width=4,\n", " x_start=20,\n", " y_start=12,\n", " x_end=13,\n", " y_end=12,\n", " line_color=\"gray\",\n", " )\n", ")\n", "p.text(\n", " x=[14],\n", " y=[9.933],\n", " text=[\"production rate\"],\n", " text_color=\"#1f77b4\",\n", " text_font_size=\"10pt\",\n", " text_align=\"left\",\n", " text_baseline=\"top\",\n", ")\n", "p.text(\n", " x=[14],\n", " y=[14],\n", " text=[\"removal rate\"],\n", " text_color=\"orange\",\n", " text_font_size=\"10pt\",\n", " text_align=\"left\",\n", " angle=0.575,\n", ")\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Wherever production rate = degradation rate, we have a **fixed point**. For these parameters, there are three fixed points. These points differ in their stability. The one in the middle is unstable, while the two on the ends are stable. The easiest way to see this is to notice that between the first and second fixed points removal rate > production rate, and hence x will decrease, while between the second and third fixed points, production exceeds removal, and x will increase.\n", "\n", "Since this system has two stable fixed points, we can describe it as **bistable**. As long as noise or other perturbations are not too strong, the cell can happily remain at either a low or high value of x. \n", "\n", "Bistability is a special case of the more general phenomenon of **multistability**, which is one of the most important properties in biology, underlying the ability of a single genome to produce a vast array of distinct cell types in a multicellular organism. This simple analysis shows us immediately that a single gene positive feedback loop can be sufficient to generate bistability! \n", "\n", "However, positive feedback by itself _is not enough_. We also need an **ultrasensitive** response to $x$. (In the context of the Hill function, ultrasensitivity can be defined simply as $n>1$). If we reduce the Hill coefficient to 1, keeping other parameters the same, you can see that we now have only a single stable fixed point (and one unstable fixed point at $x=0$)." ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"080abcdd-cfe1-47e3-a2fa-97403a503666\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2490\"}],\"center\":[{\"id\":\"2493\"},{\"id\":\"2497\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"2494\"}],\"renderers\":[{\"id\":\"2515\"},{\"id\":\"2520\"},{\"id\":\"2525\"},{\"id\":\"2530\"}],\"title\":{\"id\":\"2480\"},\"toolbar\":{\"id\":\"2505\"},\"x_range\":{\"id\":\"2482\"},\"x_scale\":{\"id\":\"2486\"},\"y_range\":{\"id\":\"2484\"},\"y_scale\":{\"id\":\"2488\"}},\"id\":\"2479\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2498\"},{\"id\":\"2499\"},{\"id\":\"2500\"},{\"id\":\"2501\"},{\"id\":\"2502\"},{\"id\":\"2503\"}]},\"id\":\"2505\",\"type\":\"Toolbar\"},{\"attributes\":{\"data\":{\"x\":[0],\"y\":[0]},\"selected\":{\"id\":\"2648\"},\"selection_policy\":{\"id\":\"2647\"}},\"id\":\"2522\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2482\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2501\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2643\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2488\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2484\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"2502\",\"type\":\"ResetTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2528\",\"type\":\"Circle\"},{\"attributes\":{\"fill_color\":{\"value\":\"white\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2523\",\"type\":\"Circle\"},{\"attributes\":{\"axis\":{\"id\":\"2494\"},\"dimension\":1,\"ticker\":null},\"id\":\"2497\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2503\",\"type\":\"HelpTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2519\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2645\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"2512\"}},\"id\":\"2516\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2646\",\"type\":\"Selection\"},{\"attributes\":{\"data_source\":{\"id\":\"2517\"},\"glyph\":{\"id\":\"2518\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2519\"},\"selection_glyph\":null,\"view\":{\"id\":\"2521\"}},\"id\":\"2520\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2491\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"white\"},\"line_alpha\":{\"value\":0.1},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2524\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2644\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2647\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"2522\"},\"glyph\":{\"id\":\"2523\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2524\"},\"selection_glyph\":null,\"view\":{\"id\":\"2526\"}},\"id\":\"2525\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"2527\"},\"glyph\":{\"id\":\"2528\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2529\"},\"selection_glyph\":null,\"view\":{\"id\":\"2531\"}},\"id\":\"2530\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis\":{\"id\":\"2490\"},\"ticker\":null},\"id\":\"2493\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2648\",\"type\":\"Selection\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2513\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2486\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2495\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2649\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"production or removal rate\",\"formatter\":{\"id\":\"2641\"},\"ticker\":{\"id\":\"2495\"}},\"id\":\"2494\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"2517\"}},\"id\":\"2521\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"black\"},\"line_alpha\":{\"value\":0.1},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2529\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2650\",\"type\":\"Selection\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2644\"},\"selection_policy\":{\"id\":\"2643\"}},\"id\":\"2512\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis_label\":\"x\",\"formatter\":{\"id\":\"2639\"},\"ticker\":{\"id\":\"2491\"}},\"id\":\"2490\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2514\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2639\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2641\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"AAAAAAAAAACgmoFqBqqpP6CagWoGqrk/+DPhz4Q/wz+gmoFqBqrJP6QAkQJECtA/+DPhz4Q/0z9MZzGdxXTWP6CagWoGqtk/9M3RN0ff3D+kAJECRArgP04aOWnkpOE/+DPhz4Q/4z+iTYk2JdrkP0xnMZ3FdOY/9oDZA2YP6D+gmoFqBqrpP0q0KdGmROs/9M3RN0ff7D+e53me53nuP6QAkQJECvA/eQ3lNZTX8D9OGjlp5KTxPyMnjZw0cvI/+DPhz4Q/8z/NQDUD1Qz0P6JNiTYl2vQ/d1rdaXWn9T9MZzGdxXT2PyF0hdAVQvc/9oDZA2YP+D/LjS03ttz4P6CagWoGqvk/dafVnVZ3+j9KtCnRpkT7Px/BfQT3Efw/9M3RN0ff/D/J2iVrl6z9P57neZ7nef4/c/TN0TdH/z+kAJECRAoAQA4HOxzscABAeQ3lNZTXAEDkE49PPD4BQE4aOWnkpAFAuCDjgowLAkAjJ42cNHICQI4tN7bc2AJA+DPhz4Q/A0BiOovpLKYDQM1ANQPVDARAOEffHH1zBECiTYk2JdoEQAxUM1DNQAVAd1rdaXWnBUDiYIeDHQ4GQExnMZ3FdAZAtm3btm3bBkAhdIXQFUIHQIx6L+q9qAdA9oDZA2YPCEBgh4MdDnYIQMuNLTe23AhANpTXUF5DCUCgmoFqBqoJQAqhK4SuEApAdafVnVZ3CkDgrX+3/t0KQEq0KdGmRAtAtLrT6k6rC0AfwX0E9xEMQIrHJx6feAxA9M3RN0ffDEBe1HtR70UNQMnaJWuXrA1ANOHPhD8TDkCe53me53kOQAjuI7iP4A5Ac/TN0TdHD0De+nfr360PQKQAkQJEChBA2QNmD5g9EEAOBzsc7HAQQEQKEClApBBAeQ3lNZTXEECuELpC6AoRQOQTj088PhFAGRdkXJBxEUBOGjlp5KQRQIMdDnY42BFAuCDjgowLEkDuI7iP4D4SQCMnjZw0chJAWCpiqYilEkCOLTe23NgSQMMwDMMwDBNA+DPhz4Q/E0AtN7bc2HITQGI6i+ksphNAmD1g9oDZE0DNQDUD1QwUQAJEChApQBRAOEffHH1zFEBtSrQp0aYUQKJNiTYl2hRA11BeQ3kNFUAMVDNQzUAVQEJXCF0hdBVAd1rdaXWnFUCsXbJ2ydoVQOJgh4MdDhZAF2RckHFBFkBMZzGdxXQWQIFqBqoZqBZAtm3btm3bFkDscLDDwQ4XQCF0hdAVQhdAVnda3Wl1F0CMei/qvagXQMF9BPcR3BdA9oDZA2YPGEArhK4QukIYQGCHgx0OdhhAlopYKmKpGEDLjS03ttwYQACRAkQKEBlANpTXUF5DGUBrl6xdsnYZQKCagWoGqhlA1Z1Wd1rdGUAKoSuErhAaQECkAJECRBpAdafVnVZ3GkCqqqqqqqoaQOCtf7f+3RpAFbFUxFIRG0BKtCnRpkQbQH+3/t36dxtAtLrT6k6rG0Dqvaj3ot4bQB/BfQT3ERxAVMRSEUtFHECKxycen3gcQL/K/CrzqxxA9M3RN0ffHEAp0aZEmxIdQF7Ue1HvRR1AlNdQXkN5HUDJ2iVrl6wdQP7d+nfr3x1ANOHPhD8THkBp5KSRk0YeQJ7neZ7neR5A0+pOqzutHkAI7iO4j+AeQD7x+MTjEx9Ac/TN0TdHH0Co96Lei3ofQN76d+vfrR9AE/5M+DPhH0CkAJECRAogQD+C+wjuIyBA2QNmD5g9IEB0hdAVQlcgQA4HOxzscCBAqYilIpaKIEBEChApQKQgQN6Lei/qvSBAeQ3lNZTXIEAUj088PvEgQK4QukLoCiFASZIkSZIkIUDkE49PPD4hQH6V+VXmVyFAGRdkXJBxIUCzmM5iOoshQE4aOWnkpCFA6Zujb46+IUCDHQ52ONghQB6feHzi8SFAuCDjgowLIkBTok2JNiUiQO4juI/gPiJAiKUilopYIkAjJ42cNHIiQL6o96LeiyJAWCpiqYilIkDzq8yvMr8iQI4tN7bc2CJAKK+hvIbyIkDDMAzDMAwjQF2ydsnaJSNA+DPhz4Q/I0CTtUvWLlkjQC03ttzYciNAyLgg44KMI0BiOovpLKYjQP279e/WvyNAmD1g9oDZI0Ayv8r8KvMjQM1ANQPVDCRAaMKfCX8mJEACRAoQKUAkQJ3FdBbTWSRAOEffHH1zJEDSyEkjJ40kQG1KtCnRpiRAB8weMHvAJECiTYk2JdokQD3P8zzP8yRA11BeQ3kNJUBy0shJIyclQAxUM1DNQCVAp9WdVndaJUBCVwhdIXQlQNzYcmPLjSVAd1rdaXWnJUAS3EdwH8ElQKxdsnbJ2iVAR98cfXP0JUDiYIeDHQ4mQHzi8YnHJyZAF2RckHFBJkCx5caWG1smQExnMZ3FdCZA5+ibo2+OJkCBagaqGagmQBzscLDDwSZAtm3btm3bJkBR70W9F/UmQOxwsMPBDidAhvIaymsoJ0AhdIXQFUInQLz179a/WydAVnda3Wl1J0Dx+MTjE48nQIx6L+q9qCdAJvyZ8GfCJ0DBfQT3EdwnQFv/bv279SdA9oDZA2YPKECRAkQKECkoQCuErhC6QihAxgUZF2RcKEBgh4MdDnYoQPsI7iO4jyhAlopYKmKpKEAwDMMwDMMoQMuNLTe23ChAZg+YPWD2KEAAkQJEChApQJsSbUq0KSlANpTXUF5DKUDQFUJXCF0pQGuXrF2ydilABRkXZFyQKUCgmoFqBqopQDsc7HCwwylA1Z1Wd1rdKUBwH8F9BPcpQAqhK4SuECpApSKWilgqKkBApACRAkQqQNola5esXSpAdafVnVZ3KkAQKUCkAJEqQKqqqqqqqipARSwVsVTEKkDgrX+3/t0qQHov6r2o9ypAFbFUxFIRK0CvMr/K/CorQEq0KdGmRCtA5TWU11BeK0B/t/7d+ncrQBo5aeSkkStAtLrT6k6rK0BPPD7x+MQrQOq9qPei3itAhD8T/kz4K0AfwX0E9xEsQLpC6AqhKyxAVMRSEUtFLEDvRb0X9V4sQIrHJx6feCxAJEmSJEmSLEC/yvwq86ssQFlMZzGdxSxA9M3RN0ffLECPTzw+8fgsQCnRpkSbEi1AxFIRS0UsLUBe1HtR70UtQPlV5leZXy1AlNdQXkN5LUAuWbtk7ZItQMnaJWuXrC1AZFyQcUHGLUD+3fp3698tQJlfZX6V+S1ANOHPhD8TLkDOYjqL6SwuQGnkpJGTRi5AA2YPmD1gLkCe53me53kuQDlp5KSRky5A0+pOqzutLkBubLmx5cYuQAjuI7iP4C5Ao2+Ovjn6LkA+8fjE4xMvQNhyY8uNLS9Ac/TN0TdHL0AOdjjY4WAvQKj3ot6Lei9AQ3kN5TWUL0De+nfr360vQHh84vGJxy9AE/5M+DPhL0Ctf7f+3fovQKQAkQJECjBAcUHGBRkXMEA/gvsI7iMwQAzDMAzDMDBA2QNmD5g9MECnRJsSbUowQHSF0BVCVzBAQcYFGRdkMEAOBzsc7HAwQNxHcB/BfTBAqYilIpaKMEB2ydola5cwQEQKEClApDBAEUtFLBWxMEDei3ov6r0wQKzMrzK/yjBAeQ3lNZTXMEBGTho5aeQwQBSPTzw+8TBA4c+EPxP+MECuELpC6AoxQHxR70W9FzFASZIkSZIkMUAW01lMZzExQOQTj088PjFAsVTEUhFLMUB+lflV5lcxQEvWLlm7ZDFAGRdkXJBxMUDmV5lfZX4xQLOYzmI6izFAgdkDZg+YMUBOGjlp5KQxQBtbbmy5sTFA6Zujb46+MUC23NhyY8sxQIMdDnY42DFAUV5DeQ3lMUAen3h84vExQOvfrX+3/jFAuCDjgowLMkCGYRiGYRgyQFOiTYk2JTJAIOOCjAsyMkDuI7iP4D4yQLtk7ZK1SzJAiKUilopYMkBW5leZX2UyQCMnjZw0cjJA8GfCnwl/MkC+qPei3osyQIvpLKazmDJAWCpiqYilMkAma5esXbIyQPOrzK8yvzJAwOwBswfMMkCOLTe23NgyQFtubLmx5TJAKK+hvIbyMkD179a/W/8yQMMwDMMwDDNAkHFBxgUZM0BdsnbJ2iUzQCvzq8yvMjNA+DPhz4Q/M0DFdBbTWUwzQJO1S9YuWTNAYPaA2QNmM0AtN7bc2HIzQPt369+tfzNAyLgg44KMM0CV+VXmV5kzQGI6i+kspjNAMHvA7AGzM0D9u/Xv1r8zQMr8KvOrzDNAmD1g9oDZM0BlfpX5VeYzQDK/yvwq8zNAAAAAAAAANEA=\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2646\"},\"selection_policy\":{\"id\":\"2645\"}},\"id\":\"2517\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"x\":[5.999999999999999],\"y\":[5.999999999999999]},\"selected\":{\"id\":\"2650\"},\"selection_policy\":{\"id\":\"2649\"}},\"id\":\"2527\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"2512\"},\"glyph\":{\"id\":\"2513\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2514\"},\"selection_glyph\":null,\"view\":{\"id\":\"2516\"}},\"id\":\"2515\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2504\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2518\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"2527\"}},\"id\":\"2531\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2498\",\"type\":\"PanTool\"},{\"attributes\":{\"source\":{\"id\":\"2522\"}},\"id\":\"2526\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2499\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"2504\"}},\"id\":\"2500\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"text\":\"\\u03b2 = 10, \\u03b3 = 1 , K = 4, n = 1\"},\"id\":\"2480\",\"type\":\"Title\"}],\"root_ids\":[\"2479\"]},\"title\":\"Bokeh Application\",\"version\":\"2.0.1\"}};\n", " var render_items = [{\"docid\":\"080abcdd-cfe1-47e3-a2fa-97403a503666\",\"root_ids\":[\"2479\"],\"roots\":{\"2479\":\"2e164f74-55c9-4bee-a7e0-692c258505c7\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "2479" } }, "output_type": "display_data" } ], "source": [ "n = 1 # Reduced to 1\n", "\n", "# Re compute production curve\n", "prod = beta * x ** n / (x ** n + K ** n)\n", "\n", "# Fixed points\n", "fp_rhs = lambda x: beta / gamma * x ** n / (x ** n + K ** n)\n", "fixed_points = [0, float(scipy.optimize.fixed_point(fp_rhs, 3))]\n", "\n", "# Build plot\n", "p = bokeh.plotting.figure(\n", " frame_height=275,\n", " frame_width=375,\n", " x_axis_label=\"x\",\n", " y_axis_label=\"production or removal rate\",\n", " title=f\"β = {beta}, γ = {gamma} , K = {K}, n = {n}\",\n", ")\n", "\n", "# Plot production and removal rates\n", "p.line(x, prod, line_width=2, color=\"#1f77b4\")\n", "p.line(x, removal, line_width=2, color=\"orange\")\n", "\n", "# Plot fixed points\n", "for i, fp in enumerate(fixed_points):\n", " fill_color = \"black\" if i % 2 else \"white\"\n", " p.circle(\n", " [fp],\n", " [gamma * fp],\n", " color=\"black\",\n", " size=10,\n", " line_width=2,\n", " fill_color=fill_color,\n", " )\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Furthermore, ultrasensitivity is also not enough. Bistability in this system further requires tuning of different rate constants. For example, consider what happens for varying values of $\\gamma$. (Here, I've set a very high value of $n=10$ just to focus on the role of $\\gamma$.)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"a7fe8f84-7263-4916-b008-0f5eea0654b0\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2746\"}],\"center\":[{\"id\":\"2749\"},{\"id\":\"2753\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"2750\"}],\"renderers\":[{\"id\":\"2771\"},{\"id\":\"2776\"},{\"id\":\"2781\"},{\"id\":\"2786\"},{\"id\":\"2791\"},{\"id\":\"2796\"}],\"title\":{\"id\":\"2736\"},\"toolbar\":{\"id\":\"2761\"},\"x_range\":{\"id\":\"2738\"},\"x_scale\":{\"id\":\"2742\"},\"y_range\":{\"id\":\"2740\"},\"y_scale\":{\"id\":\"2744\"}},\"id\":\"2735\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2760\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2754\"},{\"id\":\"2755\"},{\"id\":\"2756\"},{\"id\":\"2757\"},{\"id\":\"2758\"},{\"id\":\"2759\"}]},\"id\":\"2761\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"2923\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2769\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2770\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2924\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2754\",\"type\":\"PanTool\"},{\"attributes\":{\"data\":{\"x\":[0],\"y\":[0]},\"selected\":{\"id\":\"2930\"},\"selection_policy\":{\"id\":\"2929\"}},\"id\":\"2783\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2921\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2925\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"text\":\"\\u03b2 = 10, \\u03b3 = [1, 2] , K = 4, n = 10\"},\"id\":\"2736\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2755\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"2926\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2738\",\"type\":\"DataRange1d\"},{\"attributes\":{\"overlay\":{\"id\":\"2760\"}},\"id\":\"2756\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"2778\"}},\"id\":\"2782\",\"type\":\"CDSView\"},{\"attributes\":{\"data\":{\"x\":[3.8106116105419954],\"y\":[3.8106116105419954]},\"selected\":{\"id\":\"2932\"},\"selection_policy\":{\"id\":\"2931\"}},\"id\":\"2788\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2927\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"2788\"},\"glyph\":{\"id\":\"2789\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2790\"},\"selection_glyph\":null,\"view\":{\"id\":\"2792\"}},\"id\":\"2791\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2757\",\"type\":\"SaveTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2793\"},\"glyph\":{\"id\":\"2794\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2795\"},\"selection_glyph\":null,\"view\":{\"id\":\"2797\"}},\"id\":\"2796\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2928\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2758\",\"type\":\"ResetTool\"},{\"attributes\":{\"end\":21,\"start\":-1},\"id\":\"2740\",\"type\":\"Range1d\"},{\"attributes\":{},\"id\":\"2929\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2784\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"2788\"}},\"id\":\"2792\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"2768\"},\"glyph\":{\"id\":\"2769\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2770\"},\"selection_glyph\":null,\"view\":{\"id\":\"2772\"}},\"id\":\"2771\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2759\",\"type\":\"HelpTool\"},{\"attributes\":{},\"id\":\"2930\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"2773\"}},\"id\":\"2777\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2779\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2744\",\"type\":\"LinearScale\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"white\"},\"line_alpha\":{\"value\":0.1},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2790\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2931\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"x\",\"formatter\":{\"id\":\"2919\"},\"ticker\":{\"id\":\"2747\"}},\"id\":\"2746\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2742\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis\":{\"id\":\"2750\"},\"dimension\":1,\"ticker\":null},\"id\":\"2753\",\"type\":\"Grid\"},{\"attributes\":{\"data\":{\"x\":[9.9989504329843],\"y\":[9.9989504329843]},\"selected\":{\"id\":\"2934\"},\"selection_policy\":{\"id\":\"2933\"}},\"id\":\"2793\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2932\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2747\",\"type\":\"BasicTicker\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"black\"},\"line_alpha\":{\"value\":0.1},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2785\",\"type\":\"Circle\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2794\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"2773\"},\"glyph\":{\"id\":\"2774\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2775\"},\"selection_glyph\":null,\"view\":{\"id\":\"2777\"}},\"id\":\"2776\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2933\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis\":{\"id\":\"2746\"},\"ticker\":null},\"id\":\"2749\",\"type\":\"Grid\"},{\"attributes\":{\"fill_color\":{\"value\":\"white\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2789\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2934\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2751\",\"type\":\"BasicTicker\"},{\"attributes\":{\"axis_label\":\"production or removal rate\",\"formatter\":{\"id\":\"2921\"},\"ticker\":{\"id\":\"2751\"}},\"id\":\"2750\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"2783\"}},\"id\":\"2787\",\"type\":\"CDSView\"},{\"attributes\":{\"source\":{\"id\":\"2793\"}},\"id\":\"2797\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"2783\"},\"glyph\":{\"id\":\"2784\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2785\"},\"selection_glyph\":null,\"view\":{\"id\":\"2787\"}},\"id\":\"2786\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2775\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2919\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2926\"},\"selection_policy\":{\"id\":\"2925\"}},\"id\":\"2773\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2928\"},\"selection_policy\":{\"id\":\"2927\"}},\"id\":\"2778\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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//8jQLGzcUv//yNAqjuzUP//I0DmzclV//8jQFfotlr//yNAm/p7X///I0CPZhpk//8jQN6Ak2j//yNAhZHobP//I0Bb1Bpx//8jQIR5K3X//yNA8qUbef//I0DOc+x8//8jQOjynoD//yNAISk0hP//I0DPEq2H//8jQBmjCov//yNAVMRNjv//I0BfWHeR//8jQPE4iJT//yNA8DeBl///I0C4H2Oa//8jQGmzLp3//yNAMq/kn///I0CKyIWi//8jQH2uEqX//yNA4wmMp///I0CiffKp//8jQOOmRqz//yNATB2Jrv//I0A1c7qw//8jQNo127L//yNAje3rtP//I0DlHe22//8jQOpF37j//yNAQuDCuv//I0BZY5i8//8jQIpBYL7//yNAR+kawP//I0A5xcjB//8jQGk8asP//yNAYLL/xP//I0BFh4nG//8jQP8XCMj//yNAVb57yf//I0AJ0eTK//8jQPGjQ8z//yNAGYiYzf//I0DWy+PO//8jQN+6JdD//yNAbp5e0f//I0BLvY7S//8jQOpbttP//yNAe7zV1P//I0ACH+3V//8jQGzB/Nb//yNAnt8E2P//I0CHswXZ//8jQDZ1/9n//yNA51ry2v//I0AWmd7b//8jQIpixNz//yNAa+ij3f//I0A=\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2924\"},\"selection_policy\":{\"id\":\"2923\"}},\"id\":\"2768\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2774\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"black\"},\"line_alpha\":{\"value\":0.1},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2795\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"2778\"},\"glyph\":{\"id\":\"2779\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2780\"},\"selection_glyph\":null,\"view\":{\"id\":\"2782\"}},\"id\":\"2781\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2780\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"2768\"}},\"id\":\"2772\",\"type\":\"CDSView\"}],\"root_ids\":[\"2735\"]},\"title\":\"Bokeh Application\",\"version\":\"2.0.1\"}};\n", " var render_items = [{\"docid\":\"a7fe8f84-7263-4916-b008-0f5eea0654b0\",\"root_ids\":[\"2735\"],\"roots\":{\"2735\":\"05a1f743-5bc8-4fdd-94ea-7cbba662afc0\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "2735" } }, "output_type": "display_data" } ], "source": [ "n = 10 # highly cooperative\n", "gamma = [1, 2]\n", "\n", "# Recompute production rate\n", "prod = beta * x ** n / (x ** n + K ** n)\n", "\n", "# Fixed points\n", "fp_rhs = lambda x: beta / gamma[0] * x ** n / (x ** n + K ** n)\n", "fixed_points = [\n", " 0,\n", " float(scipy.optimize.fixed_point(fp_rhs, 4)),\n", " float(scipy.optimize.fixed_point(fp_rhs, 10)),\n", "]\n", "\n", "# Build plot\n", "p = bokeh.plotting.figure(\n", " frame_height=275,\n", " frame_width=375,\n", " x_axis_label=\"x\",\n", " y_axis_label=\"production or removal rate\",\n", " title=f\"β = {beta}, γ = {gamma} , K = {K}, n = {n}\",\n", " y_range=[-1, 21],\n", ")\n", "\n", "# Plot production and removal rates\n", "p.line(x, prod, line_width=2, color=\"#1f77b4\")\n", "p.line(x, gamma[0] * x, line_width=2, color=\"orange\")\n", "p.line(x, gamma[1] * x, line_width=2, color=\"orange\")\n", "\n", "# Plot fixed points\n", "for i, fp in enumerate(fixed_points):\n", " fill_color = \"white\" if i % 2 else \"black\"\n", " p.circle(\n", " [fp],\n", " [gamma[0] * fp],\n", " color=\"black\",\n", " size=10,\n", " line_width=2,\n", " fill_color=fill_color,\n", " )\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Note that with just a two-fold higher value of $\\gamma=2$ (upper orange line), we lose the last two fixed points, giving us a monostable system that just remains, sadly, at 0, totally unable to activate itself. Based on considerations like this, we can see that positive autoregulatory feedback and ultrasensitivity do _not_, in general, guarantee bistability, though they can provide it. \n", "\n", "We have now identified another **circuit design principle: _Positive, ultrasensitive autoregulation enables bistability._**" ] }, { "cell_type": "markdown", "metadata": { "tags": [ "hide_input" ] }, "source": [ "## The toggle switch: a two-gene positive feedback system\n", "\n", "In natural circuits positive feedback loops are often observed among multiple regulators rather than just a single autoregulatory transcription factor. For example, the \"genetic switch\" in phage lambda involves reciprocal repression of the *cro* repressor by the $\\lambda$ repressor, and vice versa (see [Mark Ptashne's classic book, _A genetic switch_](https://www.amazon.com/Genetic-Switch-Third-Lambda-Revisited/dp/0879697164)). This arrangement allows the phage to remain in the dormant \"lysogenic\" state or switch to a \"lytic\" state in which it replicates and eventually lyses the host cell to infect other cells. \n", "\n", "In 2000, [Gardner and Collins](https://doi.org/10.1038/35002131) designed, constructed, and analyzed a synthetic version of this feedback loop, termed the toggle switch, and showed that it could similarly exhibit bistability. Here is a simple diagram of the general design.\n", "\n", "
\n", "\n", "![toggle](figs/toggle.png)\n", "\n", "
\n", "\n", "They further showed experimentally that they could put the system into one of two states, by externally activating either of the two proteins. Then they could remove the perturbation and the system stably remained in that state. \n", "\n", "To analyze this two-repressor feedback loop, we can write down a simplified model for the levels of both the $x$ and $y$ proteins, both having the same Hill coefficient, $n$.\n", "\n", "\\begin{align}\n", "&\\frac{dx}{dt} = \\frac{\\beta_x}{1 + (y/k_y)^n} - \\gamma_x x,\\\\[1em]\n", "&\\frac{dy}{dt} = \\frac{\\beta_y}{1 + (x/k_x)^n} - \\gamma_y y.\n", "\\end{align}\n", "\n", "We nondimensionalize by taking $\\beta_x \\leftarrow \\beta_x/\\gamma_x k_x$, $\\beta_y \\leftarrow \\beta_y/\\gamma_y k_y$, $x \\leftarrow x/k_x$, $y \\leftarrow y/k_y$, $t \\leftarrow \\gamma_x t$, and $\\gamma = \\gamma_y/\\gamma_x$. We can now see that the behavior of the system really depends only on (a) the strengths of the two promoters, (b) the _relative_ timescales of the two proteins, and (c) the sensitivity of the response (Hill coefficient):\n", "\n", "\\begin{align}\n", "\\frac{dx}{dt} &= \\frac{\\beta_x}{1 + y^n} - x,\\\\[1em]\n", "\\gamma^{-1}\\,\\frac{dy}{dt} &= \\frac{\\beta_y}{1 + x^n} - y.\n", "\\end{align}\n", "\n", "A great way to analyze a two-dimensional system like this is by computing the **nullclines**, which are defined by setting each of the time derivatives equal to zero.\n", "\n", "\\begin{align}\n", "x\\text{ nullcline: }& x = \\frac{\\beta_x}{1 + y^n}, \\\\[1em]\n", "y\\text{ nullcline: }& y= \\frac{\\beta_y}{1 + x^n}.\n", "\\end{align}\n", "\n", "Wherever these two lines cross, one has a fixed point. The stability of that fixed point can be determined by linear stability analysis, which we will introduce in a later lesson. For now, we will plot the two nullclines and investigate their behavior by varying the dimensionless parameters $\\beta_x$ and $\\beta_y$, as well as the Hill coefficient $n$. The plot we show below is interactive, including in the HTML rendering of this lesson.\n", "\n", "[If we want to have interactivity with a Bokeh plot when we convert the notebook to HTML, we need to use **JavaScript callbacks**. We do not need to have a Python interpreter running to perform the calculations to update the plot in that case, and the updates are all down by the client's browser. In the code cell below, we use a `CustomJS` callback. You can read the code, and the syntax for doing this should be clear.]" ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "data": { "text/html": [ "\n", "\n", "\n", "\n", "\n", "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " \n", " var docs_json = {\"32e46273-f65f-4ff5-b3de-85c6be6bc59c\":{\"roots\":{\"references\":[{\"attributes\":{\"children\":[{\"id\":\"3108\"},{\"id\":\"3047\"}]},\"id\":\"3109\",\"type\":\"Column\"},{\"attributes\":{},\"id\":\"3069\",\"type\":\"HelpTool\"},{\"attributes\":{\"end\":20,\"format\":\"0[.]00\",\"js_property_callbacks\":{\"change:value\":[{\"id\":\"3107\"}]},\"start\":0.1,\"step\":0.1,\"title\":\"\\u03b2x\",\"value\":10},\"id\":\"3043\",\"type\":\"Slider\"},{\"attributes\":{\"end\":20,\"format\":\"0[.]00\",\"js_property_callbacks\":{\"change:value\":[{\"id\":\"3107\"}]},\"start\":0.1,\"step\":0.1,\"title\":\"\\u03b2y\",\"value\":10},\"id\":\"3044\",\"type\":\"Slider\"},{\"attributes\":{\"axis_label\":\"y\",\"formatter\":{\"id\":\"3088\"},\"ticker\":{\"id\":\"3061\"}},\"id\":\"3060\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x_y\"},\"y\":{\"field\":\"y_y\"}},\"id\":\"3093\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"3046\"}},\"id\":\"3096\",\"type\":\"CDSView\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"3064\"},{\"id\":\"3065\"},{\"id\":\"3066\"},{\"id\":\"3067\"},{\"id\":\"3068\"},{\"id\":\"3069\"}]},\"id\":\"3071\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"3057\",\"type\":\"BasicTicker\"},{\"attributes\":{\"end\":10,\"format\":\"0[.]00\",\"js_property_callbacks\":{\"change:value\":[{\"id\":\"3107\"}]},\"start\":1,\"step\":0.1,\"title\":\"n\",\"value\":4},\"id\":\"3045\",\"type\":\"Slider\"},{\"attributes\":{\"data_source\":{\"id\":\"3046\"},\"glyph\":{\"id\":\"3093\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3094\"},\"selection_glyph\":null,\"view\":{\"id\":\"3096\"}},\"id\":\"3095\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data\":{\"x_x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"x_y\":{\"__ndarray__\":\"AAAAAAAAAACgmoFqBqqpP6CagWoGqrk/+DPhz4Q/wz+gmoFqBqrJP6QAkQJECtA/+DPhz4Q/0z9MZzGdxXTWP6CagWoGqtk/9M3RN0ff3D+kAJECRArgP04aOWnkpOE/+DPhz4Q/4z+iTYk2JdrkP0xnMZ3FdOY/9oDZA2YP6D+gmoFqBqrpP0q0KdGmROs/9M3RN0ff7D+e53me53nuP6QAkQJECvA/eQ3lNZTX8D9OGjlp5KTxPyMnjZw0cvI/+DPhz4Q/8z/NQDUD1Qz0P6JNiTYl2vQ/d1rdaXWn9T9MZzGdxXT2PyF0hdAVQvc/9oDZA2YP+D/LjS03ttz4P6CagWoGqvk/dafVnVZ3+j9KtCnRpkT7Px/BfQT3Efw/9M3RN0ff/D/J2iVrl6z9P57neZ7nef4/c/TN0TdH/z+kAJECRAoAQA4HOxzscABAeQ3lNZTXAEDkE49PPD4BQE4aOWnkpAFAuCDjgowLAkAjJ42cNHICQI4tN7bc2AJA+DPhz4Q/A0BiOovpLKYDQM1ANQPVDARAOEffHH1zBECiTYk2JdoEQAxUM1DNQAVAd1rdaXWnBUDiYIeDHQ4GQExnMZ3FdAZAtm3btm3bBkAhdIXQFUIHQIx6L+q9qAdA9oDZA2YPCEBgh4MdDnYIQMuNLTe23AhANpTXUF5DCUCgmoFqBqoJQAqhK4SuEApAdafVnVZ3CkDgrX+3/t0KQEq0KdGmRAtAtLrT6k6rC0AfwX0E9xEMQIrHJx6feAxA9M3RN0ffDEBe1HtR70UNQMnaJWuXrA1ANOHPhD8TDkCe53me53kOQAjuI7iP4A5Ac/TN0TdHD0De+nfr360PQKQAkQJEChBA2QNmD5g9EEAOBzsc7HAQQEQKEClApBBAeQ3lNZTXEECuELpC6AoRQOQTj088PhFAGRdkXJBxEUBOGjlp5KQRQIMdDnY42BFAuCDjgowLEkDuI7iP4D4SQCMnjZw0chJAWCpiqYilEkCOLTe23NgSQMMwDMMwDBNA+DPhz4Q/E0AtN7bc2HITQGI6i+ksphNAmD1g9oDZE0DNQDUD1QwUQAJEChApQBRAOEffHH1zFEBtSrQp0aYUQKJNiTYl2hRA11BeQ3kNFUAMVDNQzUAVQEJXCF0hdBVAd1rdaXWnFUCsXbJ2ydoVQOJgh4MdDhZAF2RckHFBFkBMZzGdxXQWQIFqBqoZqBZAtm3btm3bFkDscLDDwQ4XQCF0hdAVQhdAVnda3Wl1F0CMei/qvagXQMF9BPcR3BdA9oDZA2YPGEArhK4QukIYQGCHgx0OdhhAlopYKmKpGEDLjS03ttwYQACRAkQKEBlANpTXUF5DGUBrl6xdsnYZQKCagWoGqhlA1Z1Wd1rdGUAKoSuErhAaQECkAJECRBpAdafVnVZ3GkCqqqqqqqoaQOCtf7f+3RpAFbFUxFIRG0BKtCnRpkQbQH+3/t36dxtAtLrT6k6rG0Dqvaj3ot4bQB/BfQT3ERxAVMRSEUtFHECKxycen3gcQL/K/CrzqxxA9M3RN0ffHEAp0aZEmxIdQF7Ue1HvRR1AlNdQXkN5HUDJ2iVrl6wdQP7d+nfr3x1ANOHPhD8THkBp5KSRk0YeQJ7neZ7neR5A0+pOqzutHkAI7iO4j+AeQD7x+MTjEx9Ac/TN0TdHH0Co96Lei3ofQN76d+vfrR9AE/5M+DPhH0CkAJECRAogQD+C+wjuIyBA2QNmD5g9IEB0hdAVQlcgQA4HOxzscCBAqYilIpaKIEBEChApQKQgQN6Lei/qvSBAeQ3lNZTXIEAUj088PvEgQK4QukLoCiFASZIkSZIkIUDkE49PPD4hQH6V+VXmVyFAGRdkXJBxIUCzmM5iOoshQE4aOWnkpCFA6Zujb46+IUCDHQ52ONghQB6feHzi8SFAuCDjgowLIkBTok2JNiUiQO4juI/gPiJAiKUilopYIkAjJ42cNHIiQL6o96LeiyJAWCpiqYilIkDzq8yvMr8iQI4tN7bc2CJAKK+hvIbyIkDDMAzDMAwjQF2ydsnaJSNA+DPhz4Q/I0CTtUvWLlkjQC03ttzYciNAyLgg44KMI0BiOovpLKYjQP279e/WvyNAmD1g9oDZI0Ayv8r8KvMjQM1ANQPVDCRAaMKfCX8mJEACRAoQKUAkQJ3FdBbTWSRAOEffHH1zJEDSyEkjJ40kQG1KtCnRpiRAB8weMHvAJECiTYk2JdokQD3P8zzP8yRA11BeQ3kNJUBy0shJIyclQAxUM1DNQCVAp9WdVndaJUBCVwhdIXQlQNzYcmPLjSVAd1rdaXWnJUAS3EdwH8ElQKxdsnbJ2iVAR98cfXP0JUDiYIeDHQ4mQHzi8YnHJyZAF2RckHFBJkCx5caWG1smQExnMZ3FdCZA5+ibo2+OJkCBagaqGagmQBzscLDDwSZAtm3btm3bJkBR70W9F/UmQOxwsMPBDidAhvIaymsoJ0AhdIXQFUInQLz179a/WydAVnda3Wl1J0Dx+MTjE48nQIx6L+q9qCdAJvyZ8GfCJ0DBfQT3EdwnQFv/bv279SdA9oDZA2YPKECRAkQKECkoQCuErhC6QihAxgUZF2RcKEBgh4MdDnYoQPsI7iO4jyhAlopYKmKpKEAwDMMwDMMoQMuNLTe23ChAZg+YPWD2KEAAkQJEChApQJsSbUq0KSlANpTXUF5DKUDQFUJXCF0pQGuXrF2ydilABRkXZFyQKUCgmoFqBqopQDsc7HCwwylA1Z1Wd1rdKUBwH8F9BPcpQAqhK4SuECpApSKWilgqKkBApACRAkQqQNola5esXSpAdafVnVZ3KkAQKUCkAJEqQKqqqqqqqipARSwVsVTEKkDgrX+3/t0qQHov6r2o9ypAFbFUxFIRK0CvMr/K/CorQEq0KdGmRCtA5TWU11BeK0B/t/7d+ncrQBo5aeSkkStAtLrT6k6rK0BPPD7x+MQrQOq9qPei3itAhD8T/kz4K0AfwX0E9xEsQLpC6AqhKyxAVMRSEUtFLEDvRb0X9V4sQIrHJx6feCxAJEmSJEmSLEC/yvwq86ssQFlMZzGdxSxA9M3RN0ffLECPTzw+8fgsQCnRpkSbEi1AxFIRS0UsLUBe1HtR70UtQPlV5leZXy1AlNdQXkN5LUAuWbtk7ZItQMnaJWuXrC1AZFyQcUHGLUD+3fp3698tQJlfZX6V+S1ANOHPhD8TLkDOYjqL6SwuQGnkpJGTRi5AA2YPmD1gLkCe53me53kuQDlp5KSRky5A0+pOqzutLkBubLmx5cYuQAjuI7iP4C5Ao2+Ovjn6LkA+8fjE4xMvQNhyY8uNLS9Ac/TN0TdHL0AOdjjY4WAvQKj3ot6Lei9AQ3kN5TWUL0De+nfr360vQHh84vGJxy9AE/5M+DPhL0Ctf7f+3fovQKQAkQJECjBAcUHGBRkXMEA/gvsI7iMwQAzDMAzDMDBA2QNmD5g9MECnRJsSbUowQHSF0BVCVzBAQcYFGRdkMEAOBzsc7HAwQNxHcB/BfTBAqYilIpaKMEB2ydola5cwQEQKEClApDBAEUtFLBWxMEDei3ov6r0wQKzMrzK/yjBAeQ3lNZTXMEBGTho5aeQwQBSPTzw+8TBA4c+EPxP+MECuELpC6AoxQHxR70W9FzFASZIkSZIkMUAW01lMZzExQOQTj088PjFAsVTEUhFLMUB+lflV5lcxQEvWLlm7ZDFAGRdkXJBxMUDmV5lfZX4xQLOYzmI6izFAgdkDZg+YMUBOGjlp5KQxQBtbbmy5sTFA6Zujb46+MUC23NhyY8sxQIMdDnY42DFAUV5DeQ3lMUAen3h84vExQOvfrX+3/jFAuCDjgowLMkCGYRiGYRgyQFOiTYk2JTJAIOOCjAsyMkDuI7iP4D4yQLtk7ZK1SzJAiKUilopYMkBW5leZX2UyQCMnjZw0cjJA8GfCnwl/MkC+qPei3osyQIvpLKazmDJAWCpiqYilMkAma5esXbIyQPOrzK8yvzJAwOwBswfMMkCOLTe23NgyQFtubLmx5TJAKK+hvIbyMkD179a/W/8yQMMwDMMwDDNAkHFBxgUZM0BdsnbJ2iUzQCvzq8yvMjNA+DPhz4Q/M0DFdBbTWUwzQJO1S9YuWTNAYPaA2QNmM0AtN7bc2HIzQPt369+tfzNAyLgg44KMM0CV+VXmV5kzQGI6i+kspjNAMHvA7AGzM0D9u/Xv1r8zQMr8KvOrzDNAmD1g9oDZM0BlfpX5VeYzQDK/yvwq8zNAAAAAAAAANEA=\",\"dtype\":\"float64\",\"shape\":[400]},\"y_x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y_y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"3105\"},\"selection_policy\":{\"id\":\"3104\"}},\"id\":\"3046\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"3104\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis\":{\"id\":\"3056\"},\"ticker\":null},\"id\":\"3059\",\"type\":\"Grid\"},{\"attributes\":{\"label\":{\"value\":\"y nullcline\"},\"renderers\":[{\"id\":\"3095\"}]},\"id\":\"3106\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"3048\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":0.5,\"fill_color\":\"lightgrey\",\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":1.0,\"line_color\":\"black\",\"line_dash\":[4,4],\"line_width\":2,\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"3070\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"3105\",\"type\":\"Selection\"},{\"attributes\":{\"data_source\":{\"id\":\"3046\"},\"glyph\":{\"id\":\"3079\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"3080\"},\"selection_glyph\":null,\"view\":{\"id\":\"3082\"}},\"id\":\"3081\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"3061\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"3065\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"text\":\"\"},\"id\":\"3083\",\"type\":\"Title\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x_x\"},\"y\":{\"field\":\"y_x\"}},\"id\":\"3079\",\"type\":\"Line\"},{\"attributes\":{\"items\":[{\"id\":\"3091\"},{\"id\":\"3106\"}]},\"id\":\"3090\",\"type\":\"Legend\"},{\"attributes\":{\"args\":{\"beta_x_slider\":{\"id\":\"3043\"},\"beta_y_slider\":{\"id\":\"3044\"},\"n_slider\":{\"id\":\"3045\"},\"source\":{\"id\":\"3046\"}},\"code\":\"\\n// Extract data from source and sliders\\nvar x_x = source.data['x_x'];\\nvar x_y = source.data['x_y'];\\nvar y_x = source.data['y_x'];\\nvar y_y = source.data['y_y'];\\nvar beta_x = beta_x_slider.value;\\nvar beta_y = beta_y_slider.value;\\nvar n = n_slider.value\\n\\n// Update nullclines\\nfor (var i = 0; i < x_y.length; i++) {\\n x_x[i] = beta_x / (1 + Math.pow(y_x[i], n));\\n y_y[i] = beta_y / (1 + Math.pow(x_y[i], n));\\n}\\n\\n// Emit changes\\nsource.change.emit();\\n\"},\"id\":\"3107\",\"type\":\"CustomJS\"},{\"attributes\":{},\"id\":\"3064\",\"type\":\"PanTool\"},{\"attributes\":{\"axis_label\":\"x\",\"formatter\":{\"id\":\"3086\"},\"ticker\":{\"id\":\"3057\"}},\"id\":\"3056\",\"type\":\"LinearAxis\"},{\"attributes\":{\"axis\":{\"id\":\"3060\"},\"dimension\":1,\"ticker\":null},\"id\":\"3063\",\"type\":\"Grid\"},{\"attributes\":{\"overlay\":{\"id\":\"3070\"}},\"id\":\"3066\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"3046\"}},\"id\":\"3082\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x_x\"},\"y\":{\"field\":\"y_x\"}},\"id\":\"3080\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x_y\"},\"y\":{\"field\":\"y_y\"}},\"id\":\"3094\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"3088\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3067\",\"type\":\"SaveTool\"},{\"attributes\":{\"children\":[{\"id\":\"3043\"},{\"id\":\"3044\"},{\"id\":\"3045\"}]},\"id\":\"3108\",\"type\":\"Column\"},{\"attributes\":{},\"id\":\"3052\",\"type\":\"LinearScale\"},{\"attributes\":{\"label\":{\"value\":\"x nullcline\"},\"renderers\":[{\"id\":\"3081\"}]},\"id\":\"3091\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"3068\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"3054\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"3086\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"3050\",\"type\":\"DataRange1d\"},{\"attributes\":{\"below\":[{\"id\":\"3056\"}],\"center\":[{\"id\":\"3059\"},{\"id\":\"3063\"},{\"id\":\"3090\"}],\"frame_height\":275,\"frame_width\":375,\"left\":[{\"id\":\"3060\"}],\"renderers\":[{\"id\":\"3081\"},{\"id\":\"3095\"}],\"title\":{\"id\":\"3083\"},\"toolbar\":{\"id\":\"3071\"},\"x_range\":{\"id\":\"3048\"},\"x_scale\":{\"id\":\"3052\"},\"y_range\":{\"id\":\"3050\"},\"y_scale\":{\"id\":\"3054\"}},\"id\":\"3047\",\"subtype\":\"Figure\",\"type\":\"Plot\"}],\"root_ids\":[\"3109\"]},\"title\":\"Bokeh Application\",\"version\":\"2.0.1\"}};\n", " var render_items = [{\"docid\":\"32e46273-f65f-4ff5-b3de-85c6be6bc59c\",\"root_ids\":[\"3109\"],\"roots\":{\"3109\":\"b6a5d6c5-a3b4-4e71-910b-4dc815fe4d07\"}}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", "\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " var attempts = 0;\n", " var timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "3109" } }, "output_type": "display_data" } ], "source": [ "# Set up sliders\n", "params = [\n", " dict(\n", " name=\"βx\",\n", " start=0.1,\n", " end=20,\n", " step=0.1,\n", " value=10,\n", " long_name=\"beta_x_slider\",\n", " ),\n", " dict(\n", " name=\"βy\",\n", " start=0.1,\n", " end=20,\n", " step=0.1,\n", " value=10,\n", " long_name=\"beta_y_slider\",\n", " ),\n", " dict(name=\"n\", start=1, end=10, step=0.1, value=4, long_name=\"n_slider\"),\n", "]\n", "sliders = [\n", " bokeh.models.Slider(\n", " start=param[\"start\"],\n", " end=param[\"end\"],\n", " value=param[\"value\"],\n", " step=param[\"step\"],\n", " title=param[\"name\"],\n", " )\n", " for param in params\n", "]\n", "\n", "# Build base plot with starting parameters\n", "beta = 10\n", "n = 4\n", "\n", "# Compute nullclines\n", "x_y = np.linspace(0, 20, 400)\n", "y_x = np.linspace(0, 20, 400)\n", "x_x = beta / (1 + y_x ** n)\n", "y_y = beta / (1 + x_y ** n)\n", "\n", "source = bokeh.models.ColumnDataSource(\n", " data=dict(x_x=x_x, x_y=x_y, y_x=y_x, y_y=y_y)\n", ")\n", "\n", "# Make the plot\n", "p = bokeh.plotting.figure(\n", " frame_height=275, frame_width=375, x_axis_label=\"x\", y_axis_label=\"y\"\n", ")\n", "p.line(\n", " x=\"x_x\", y=\"y_x\", source=source, line_width=2, legend_label=\"x nullcline\"\n", ")\n", "p.line(\n", " x=\"x_y\",\n", " y=\"y_y\",\n", " source=source,\n", " line_width=2,\n", " color=\"orange\",\n", " legend_label=\"y nullcline\",\n", ")\n", "\n", "# Callback (uses JavaScript)\n", "js_code = \"\"\"\n", "// Extract data from source and sliders\n", "var x_x = source.data['x_x'];\n", "var x_y = source.data['x_y'];\n", "var y_x = source.data['y_x'];\n", "var y_y = source.data['y_y'];\n", "var beta_x = beta_x_slider.value;\n", "var beta_y = beta_y_slider.value;\n", "var n = n_slider.value\n", "\n", "// Update nullclines\n", "for (var i = 0; i < x_y.length; i++) {\n", " x_x[i] = beta_x / (1 + Math.pow(y_x[i], n));\n", " y_y[i] = beta_y / (1 + Math.pow(x_y[i], n));\n", "}\n", "\n", "// Emit changes\n", "source.change.emit();\n", "\"\"\"\n", "callback = bokeh.models.CustomJS(args=dict(source=source), code=js_code)\n", "\n", "# We use the `js_on_change()` method to call the custom JavaScript code.\n", "for param, slider in zip(params, sliders):\n", " callback.args[param[\"long_name\"]] = slider\n", " slider.js_on_change(\"value\", callback)\n", "\n", "bokeh.io.show(bokeh.layouts.column(bokeh.layouts.column(sliders), p))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can investigate the nullclines by playing with the sliders (even in the HTML rendering of this notebook). For $\\beta_x = \\beta_y = 10$ and $n = 4$, we clearly have three crossings of the nullclines, giving one unstable (the one in the middle) and two stable (the ones on the ends) fixed points. \n", "\n", "Try sliding the $n$ slider. As you move $n$ down, you can see that one can still obtain bistability at lower Hill coefficients, but one can see it becomes a more delicate balancing act where the values of $\\beta_x$ and $\\beta_y$ need to be large and close in magnitude. Bistablity is lost completely at $n=1$, where the system becomes monostable. \n", "\n", "Even at higher Hill coefficients, the strengths of the promoters must still be balanced. If we have widely varying values of $\\beta_x$ and $\\beta_y$, we again have monostability. You can see this by setting $\\beta_x = 10$, $\\beta_y = 1.5$, and $n = 5$ with the sliders.\n", "\n", "Thus, as with the single gene autoregulatory positive feedback loop, ultrasensitivity is necessary but not sufficient for bistability. Later in the course, we will further analyze this system and its stability, learning how to further characterize dynamical systems beyond their nullclines.\n", "\n", "**Discussion question:** What are the advantages of the two-gene toggle switch compared to the single gene positive autoregulation circuit?\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Summary\n", "\n", "* Protein degradation and dilution rates determine (and limit) the switching speed of a simple transcriptinally regulated gene.\n", "* **Design principle:** _Negative autoregulation accelerates turn-on of a transcription factor._\n", "* **Design principle:** _Positive, ultrasensitive autoregulation generates bistability._\n", "* Even simple circuits of 1 or 2 genes can generate interesting functional capabilities.\n", "* Synthetic circuits can be used to test the functions of simple circuits in living cells.\n", "\n", "This is our first foray into the analysis of dynamical systems. As we continue to work with dynamical systems, [Strogatz's book](https://www.amazon.com/gp/product/0813349109/) is a great introduction, and includes discussion on using nullclines in the analysis." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing environment" ] }, { "cell_type": "code", "execution_count": 10, "metadata": { "tags": [ "hide_input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPython 3.7.7\n", "IPython 7.13.0\n", "\n", "numpy 1.18.1\n", "scipy 1.4.1\n", "bokeh 2.0.1\n", "jupyterlab 1.2.6\n" ] } ], "source": [ "%load_ext watermark\n", "%watermark -v -p numpy,scipy,bokeh,jupyterlab" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.6" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": true, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": false }, "varInspector": { "cols": { "lenName": 16, "lenType": 16, "lenVar": 40 }, "kernels_config": { "python": { "delete_cmd_postfix": "", "delete_cmd_prefix": "del ", "library": "var_list.py", "varRefreshCmd": "print(var_dic_list())" }, "r": { "delete_cmd_postfix": ") ", "delete_cmd_prefix": "rm(", "library": "var_list.r", "varRefreshCmd": "cat(var_dic_list()) " } }, "position": { "height": "730.4000244140625px", "left": "486.6000061035156px", "right": "20px", "top": "120px", "width": "517.4000244140625px" }, "types_to_exclude": [ "module", "function", "builtin_function_or_method", "instance", "_Feature" ], "window_display": false } }, "nbformat": 4, "nbformat_minor": 4 }