{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# 3. Big functions from small circuits\n", "\n", "(c) 2019 Justin Bois and Michael Elowitz, except for images taken from sources where cited. This work is licensed under a [Creative Commons Attribution License CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/). All code contained herein is licensed under an [MIT license](https://opensource.org/licenses/MIT).\n", "\n", "This document was prepared at [Caltech](http://www.caltech.edu) with financial support from the [Donna and Benjamin M. Rosen Bioengineering Center](http://rosen.caltech.edu).\n", "\n", "\n", "\n", "
\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Design principles\n", "- Negative autoregulation accelerates turn-on times.\n", "- Positive feedback and ultrasensitivity enable bistability.\n", "\n", "#### Key concepts\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", "- 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", "\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": [ "remove_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", " }\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", " 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", " 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", " var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-1.1.0.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.1.0.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.1.0.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-1.1.0.min.js\"];\n", " var css_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-1.1.0.min.css\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.1.0.min.css\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.1.0.min.css\"];\n", "\n", " var inline_js = [\n", " function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", " \n", " function(Bokeh) {\n", " \n", " },\n", " function(Bokeh) {} // ensure no trailing comma for IE\n", " ];\n", "\n", " function run_inline_js() {\n", " \n", " if ((root.Bokeh !== undefined) || (force === true)) {\n", " for (var i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\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 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 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 var js_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-1.1.0.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.1.0.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.1.0.min.js\", \"https://cdn.pydata.org/bokeh/release/bokeh-gl-1.1.0.min.js\"];\n var css_urls = [\"https://cdn.pydata.org/bokeh/release/bokeh-1.1.0.min.css\", \"https://cdn.pydata.org/bokeh/release/bokeh-widgets-1.1.0.min.css\", \"https://cdn.pydata.org/bokeh/release/bokeh-tables-1.1.0.min.css\"];\n\n var inline_js = [\n function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\n \n function(Bokeh) {\n \n },\n function(Bokeh) {} // ensure no trailing comma for IE\n ];\n\n function run_inline_js() {\n \n if ((root.Bokeh !== undefined) || (force === true)) {\n for (var i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\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: When or why would you prefer to use activation or repression to regulate a gene? We know that both schemes are used, and can be used in equivalent ways: \n", "\n", "
\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", "
\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. Mutations that eliminate the activator would therefore be selected against in most conditions. By contrast, if the same high demand system were regulated by a repressor, 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.\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 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 also predicts that 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/Introduction-Systems-Biology-Mathematical-Computational/dp/1439837171/ref=dp_ob_title_bk). \n", "\n", "
\n", "
\n", "
\n", "\n", "Remarkably, we still lack definitive experimental evidence to fully resolve this fundamental design question. **Can you think of an experimental way to test one of 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": [ "remove_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 = {\"40b70c0c-e1b4-4cfb-a43c-48dda6d1d6ae\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1013\",\"type\":\"LinearAxis\"}],\"center\":[{\"id\":\"1017\",\"type\":\"Grid\"},{\"id\":\"1022\",\"type\":\"Grid\"},{\"id\":\"1047\",\"type\":\"LabelSet\"},{\"id\":\"1049\",\"type\":\"Span\"}],\"left\":[{\"id\":\"1018\",\"type\":\"LinearAxis\"}],\"plot_height\":275,\"plot_width\":400,\"renderers\":[{\"id\":\"1039\",\"type\":\"GlyphRenderer\"},{\"id\":\"1045\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1003\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1029\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1005\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"1009\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1007\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"1011\",\"type\":\"LinearScale\"}},\"id\":\"1002\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1055\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1041\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1043\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1044\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1046\",\"type\":\"CDSView\"}},\"id\":\"1045\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"1019\",\"type\":\"BasicTicker\"}},\"id\":\"1022\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1041\",\"type\":\"ColumnDataSource\"}},\"id\":\"1046\",\"type\":\"CDSView\"},{\"attributes\":{\"dimension\":\"height\",\"level\":\"underlay\",\"line_dash\":[6],\"location\":1.0},\"id\":\"1049\",\"type\":\"Span\"},{\"attributes\":{},\"id\":\"1023\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"1024\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1052\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"overlay\":{\"id\":\"1059\",\"type\":\"BoxAnnotation\"}},\"id\":\"1025\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1054\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1026\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1056\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1055\",\"type\":\"UnionRenderers\"}},\"id\":\"1036\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"data\":{\"t0\":[1.0],\"text\":[\"response time\"],\"x0\":[63.212055882855765]},\"selected\":{\"id\":\"1058\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1057\",\"type\":\"UnionRenderers\"}},\"id\":\"1041\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1027\",\"type\":\"ResetTool\"},{\"attributes\":{\"text\":\"\\u03b2 = 100, \\u03b3 = 1\"},\"id\":\"1003\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1028\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null},\"id\":\"1005\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1056\",\"type\":\"Selection\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1023\",\"type\":\"PanTool\"},{\"id\":\"1024\",\"type\":\"WheelZoomTool\"},{\"id\":\"1025\",\"type\":\"BoxZoomTool\"},{\"id\":\"1026\",\"type\":\"SaveTool\"},{\"id\":\"1027\",\"type\":\"ResetTool\"},{\"id\":\"1028\",\"type\":\"HelpTool\"}]},\"id\":\"1029\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null},\"id\":\"1007\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1057\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1037\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1009\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1058\",\"type\":\"Selection\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1038\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1011\",\"type\":\"LinearScale\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1059\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data_source\":{\"id\":\"1036\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1037\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1038\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1040\",\"type\":\"CDSView\"}},\"id\":\"1039\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"t\",\"formatter\":{\"id\":\"1054\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1014\",\"type\":\"BasicTicker\"}},\"id\":\"1013\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"1036\",\"type\":\"ColumnDataSource\"}},\"id\":\"1040\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1014\",\"type\":\"BasicTicker\"},{\"attributes\":{\"ticker\":{\"id\":\"1014\",\"type\":\"BasicTicker\"}},\"id\":\"1017\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1041\",\"type\":\"ColumnDataSource\"},\"x\":{\"field\":\"t0\"},\"x_offset\":{\"value\":10},\"y\":{\"field\":\"x0\"},\"y_offset\":{\"value\":-10}},\"id\":\"1047\",\"type\":\"LabelSet\"},{\"attributes\":{\"axis_label\":\"x(t)\",\"formatter\":{\"id\":\"1052\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1019\",\"type\":\"BasicTicker\"}},\"id\":\"1018\",\"type\":\"LinearAxis\"},{\"attributes\":{\"fill_color\":{\"value\":\"#1f77b4\"},\"line_color\":{\"value\":\"#1f77b4\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"t0\"},\"y\":{\"field\":\"x0\"}},\"id\":\"1043\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1019\",\"type\":\"BasicTicker\"},{\"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\":\"1044\",\"type\":\"Circle\"}],\"root_ids\":[\"1002\"]},\"title\":\"Bokeh Application\",\"version\":\"1.1.0\"}};\n", " var render_items = [{\"docid\":\"40b70c0c-e1b4-4cfb-a43c-48dda6d1d6ae\",\"roots\":{\"1002\":\"c2f4466d-1835-46ce-b790-1a62b470c104\"}}];\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", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " clearInterval(timer);\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(height=275, width=400, \n", " x_axis_label='t', y_axis_label='x(t)',\n", " title=f'β = {beta}, γ = {gamma}')\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(data=dict(t0=[t0], x0=[x0], text=['response time']))\n", "p.circle(x='t0', y='x0', source=source, size=10) \n", "p.add_layout(bokeh.models.LabelSet(x='t0', y='x0', text='text', source=source, \n", " x_offset=10, y_offset=-10))\n", "p.add_layout(bokeh.models.Span(location=t0, \n", " level='underlay',\n", " dimension='height',\n", " line_color='black',\n", " line_dash='dashed'))\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## How can we speed up responses?\n", "\n", "So far, it seems like 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 a 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 could allow the cell to hit a specific threshold faster. 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": { "ExecuteTime": { "end_time": "2019-04-05T17:20:08.051352Z", "start_time": "2019-04-05T17:20:07.363387Z" }, "tags": [ "remove_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 = {\"bcc27355-45f1-44a4-a858-4ccfb09dfea9\":{\"roots\":{\"references\":[{\"attributes\":{\"children\":[{\"id\":\"1288\",\"type\":\"ToolbarBox\"},{\"id\":\"1286\",\"type\":\"GridBox\"}]},\"id\":\"1289\",\"type\":\"Column\"},{\"attributes\":{\"data_source\":{\"id\":\"1208\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1209\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1210\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1212\",\"type\":\"CDSView\"}},\"id\":\"1211\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1252\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1166\",\"type\":\"BasicTicker\"},{\"attributes\":{\"source\":{\"id\":\"1208\",\"type\":\"ColumnDataSource\"}},\"id\":\"1212\",\"type\":\"CDSView\"},{\"attributes\":{\"ticker\":{\"id\":\"1166\",\"type\":\"BasicTicker\"}},\"id\":\"1169\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1253\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"callback\":null,\"data\":{},\"selected\":{\"id\":\"1260\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1259\",\"type\":\"UnionRenderers\"}},\"id\":\"1213\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"axis_label\":\"x(t)\",\"formatter\":{\"id\":\"1269\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1171\",\"type\":\"BasicTicker\"}},\"id\":\"1170\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1254\",\"type\":\"Selection\"},{\"attributes\":{\"fill_color\":{\"value\":\"#e6550d\"},\"line_color\":{\"value\":\"#e6550d\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.5},\"y\":{\"value\":31.606027941427882}},\"id\":\"1214\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1171\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1255\",\"type\":\"UnionRenderers\"},{\"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\":{\"value\":0.5},\"y\":{\"value\":31.606027941427882}},\"id\":\"1215\",\"type\":\"Circle\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"1171\",\"type\":\"BasicTicker\"}},\"id\":\"1174\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1256\",\"type\":\"Selection\"},{\"attributes\":{\"data_source\":{\"id\":\"1213\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1214\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1215\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1217\",\"type\":\"CDSView\"}},\"id\":\"1216\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1257\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_color\":\"#a63603\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1189\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1213\",\"type\":\"ColumnDataSource\"}},\"id\":\"1217\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1258\",\"type\":\"Selection\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1254\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1253\",\"type\":\"UnionRenderers\"}},\"id\":\"1188\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1277\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1276\",\"type\":\"UnionRenderers\"}},\"id\":\"1218\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1190\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1259\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1175\",\"type\":\"PanTool\"},{\"attributes\":{\"line_color\":\"#e6550d\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1219\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1260\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1176\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1220\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1261\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"overlay\":{\"id\":\"1284\",\"type\":\"BoxAnnotation\"}},\"id\":\"1177\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1218\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1219\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1220\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1222\",\"type\":\"CDSView\"}},\"id\":\"1221\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1262\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1178\",\"type\":\"SaveTool\"},{\"attributes\":{\"source\":{\"id\":\"1218\",\"type\":\"ColumnDataSource\"}},\"id\":\"1222\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1179\",\"type\":\"ResetTool\"},{\"attributes\":{\"callback\":null,\"data\":{},\"selected\":{\"id\":\"1279\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1278\",\"type\":\"UnionRenderers\"}},\"id\":\"1223\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1264\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1180\",\"type\":\"HelpTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"#e6550d\"},\"line_color\":{\"value\":\"#e6550d\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.5},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1224\",\"type\":\"Circle\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1265\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1175\",\"type\":\"PanTool\"},{\"id\":\"1176\",\"type\":\"WheelZoomTool\"},{\"id\":\"1177\",\"type\":\"BoxZoomTool\"},{\"id\":\"1178\",\"type\":\"SaveTool\"},{\"id\":\"1179\",\"type\":\"ResetTool\"},{\"id\":\"1180\",\"type\":\"HelpTool\"}]},\"id\":\"1181\",\"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\":{\"value\":0.5},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1225\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1269\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"data_source\":{\"id\":\"1223\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1224\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1225\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1227\",\"type\":\"CDSView\"}},\"id\":\"1226\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"1188\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1189\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1190\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1192\",\"type\":\"CDSView\"}},\"id\":\"1191\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1271\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"1137\",\"type\":\"BasicTicker\"}},\"id\":\"1140\",\"type\":\"Grid\"},{\"attributes\":{\"source\":{\"id\":\"1223\",\"type\":\"ColumnDataSource\"}},\"id\":\"1227\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1272\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"1188\",\"type\":\"ColumnDataSource\"}},\"id\":\"1192\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1262\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1261\",\"type\":\"UnionRenderers\"}},\"id\":\"1228\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1273\",\"type\":\"Selection\"},{\"attributes\":{\"callback\":null,\"data\":{},\"selected\":{\"id\":\"1256\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1255\",\"type\":\"UnionRenderers\"}},\"id\":\"1193\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":\"#fd8d3c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1229\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1274\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_color\":{\"value\":\"#a63603\"},\"line_color\":{\"value\":\"#a63603\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":1.0},\"y\":{\"value\":63.212055882855765}},\"id\":\"1194\",\"type\":\"Circle\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1230\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1275\",\"type\":\"Selection\"},{\"attributes\":{\"data_source\":{\"id\":\"1228\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1229\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1230\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1232\",\"type\":\"CDSView\"}},\"id\":\"1231\",\"type\":\"GlyphRenderer\"},{\"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\":{\"value\":1.0},\"y\":{\"value\":63.212055882855765}},\"id\":\"1195\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1276\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1193\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1194\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1195\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1197\",\"type\":\"CDSView\"}},\"id\":\"1196\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1228\",\"type\":\"ColumnDataSource\"}},\"id\":\"1232\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1277\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1193\",\"type\":\"ColumnDataSource\"}},\"id\":\"1197\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"value\":\"#fd8d3c\"},\"line_color\":{\"value\":\"#fd8d3c\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.3333333333333333},\"y\":{\"value\":21.07068529428526}},\"id\":\"1234\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"1278\",\"type\":\"UnionRenderers\"},{\"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\":{\"value\":0.3333333333333333},\"y\":{\"value\":21.07068529428526}},\"id\":\"1235\",\"type\":\"Circle\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1273\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1272\",\"type\":\"UnionRenderers\"}},\"id\":\"1198\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1279\",\"type\":\"Selection\"},{\"attributes\":{\"data_source\":{\"id\":\"1233\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1234\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1235\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1237\",\"type\":\"CDSView\"}},\"id\":\"1236\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"#a63603\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1199\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1280\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"1233\",\"type\":\"ColumnDataSource\"}},\"id\":\"1237\",\"type\":\"CDSView\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1200\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1281\",\"type\":\"Selection\"},{\"attributes\":{\"data_source\":{\"id\":\"1198\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1199\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1200\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1202\",\"type\":\"CDSView\"}},\"id\":\"1201\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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///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\":\"1281\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1280\",\"type\":\"UnionRenderers\"}},\"id\":\"1238\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1282\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"1198\",\"type\":\"ColumnDataSource\"}},\"id\":\"1202\",\"type\":\"CDSView\"},{\"attributes\":{\"line_color\":\"#fd8d3c\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1239\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1283\",\"type\":\"Selection\"},{\"attributes\":{\"callback\":null,\"data\":{},\"selected\":{\"id\":\"1275\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1274\",\"type\":\"UnionRenderers\"}},\"id\":\"1203\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1240\",\"type\":\"Line\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1284\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data_source\":{\"id\":\"1238\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1239\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1240\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1242\",\"type\":\"CDSView\"}},\"id\":\"1241\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_color\":{\"value\":\"#a63603\"},\"line_color\":{\"value\":\"#a63603\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":1.0},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1204\",\"type\":\"Circle\"},{\"attributes\":{\"tools\":[{\"id\":\"1141\",\"type\":\"PanTool\"},{\"id\":\"1142\",\"type\":\"WheelZoomTool\"},{\"id\":\"1143\",\"type\":\"BoxZoomTool\"},{\"id\":\"1144\",\"type\":\"SaveTool\"},{\"id\":\"1145\",\"type\":\"ResetTool\"},{\"id\":\"1146\",\"type\":\"HelpTool\"},{\"id\":\"1175\",\"type\":\"PanTool\"},{\"id\":\"1176\",\"type\":\"WheelZoomTool\"},{\"id\":\"1177\",\"type\":\"BoxZoomTool\"},{\"id\":\"1178\",\"type\":\"SaveTool\"},{\"id\":\"1179\",\"type\":\"ResetTool\"},{\"id\":\"1180\",\"type\":\"HelpTool\"}]},\"id\":\"1287\",\"type\":\"ProxyToolbar\"},{\"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\":{\"value\":1.0},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1205\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"1238\",\"type\":\"ColumnDataSource\"}},\"id\":\"1242\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"1203\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1204\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1205\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1207\",\"type\":\"CDSView\"}},\"id\":\"1206\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"data\":{},\"selected\":{\"id\":\"1283\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1282\",\"type\":\"UnionRenderers\"}},\"id\":\"1243\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"source\":{\"id\":\"1203\",\"type\":\"ColumnDataSource\"}},\"id\":\"1207\",\"type\":\"CDSView\"},{\"attributes\":{\"fill_color\":{\"value\":\"#fd8d3c\"},\"line_color\":{\"value\":\"#fd8d3c\"},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"value\":0.3333333333333333},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1244\",\"type\":\"Circle\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1258\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1257\",\"type\":\"UnionRenderers\"}},\"id\":\"1208\",\"type\":\"ColumnDataSource\"},{\"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\":{\"value\":0.3333333333333333},\"y\":{\"value\":0.6321205588285577}},\"id\":\"1245\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"1243\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1244\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1245\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1247\",\"type\":\"CDSView\"}},\"id\":\"1246\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"#e6550d\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1209\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"data\":{},\"selected\":{\"id\":\"1264\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1263\",\"type\":\"UnionRenderers\"}},\"id\":\"1233\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1210\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1243\",\"type\":\"ColumnDataSource\"}},\"id\":\"1247\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1263\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"below\":[{\"id\":\"1165\",\"type\":\"LinearAxis\"}],\"center\":[{\"id\":\"1169\",\"type\":\"Grid\"},{\"id\":\"1174\",\"type\":\"Grid\"}],\"left\":[{\"id\":\"1170\",\"type\":\"LinearAxis\"}],\"plot_height\":275,\"plot_width\":375,\"renderers\":[{\"id\":\"1201\",\"type\":\"GlyphRenderer\"},{\"id\":\"1206\",\"type\":\"GlyphRenderer\"},{\"id\":\"1221\",\"type\":\"GlyphRenderer\"},{\"id\":\"1226\",\"type\":\"GlyphRenderer\"},{\"id\":\"1241\",\"type\":\"GlyphRenderer\"},{\"id\":\"1246\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1155\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1181\",\"type\":\"Toolbar\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1123\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"1161\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1159\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"1163\",\"type\":\"LinearScale\"}},\"id\":\"1154\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"text\":\"\\u03b2\\u2081 = 100, \\u03b3 = [1 2 3]\"},\"id\":\"1121\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1141\",\"type\":\"PanTool\"},{\"attributes\":{\"text\":\"same plot, normalized by steady states\"},\"id\":\"1155\",\"type\":\"Title\"},{\"attributes\":{\"toolbar\":{\"id\":\"1287\",\"type\":\"ProxyToolbar\"},\"toolbar_location\":\"above\"},\"id\":\"1288\",\"type\":\"ToolbarBox\"},{\"attributes\":{\"below\":[{\"id\":\"1131\",\"type\":\"LinearAxis\"}],\"center\":[{\"id\":\"1135\",\"type\":\"Grid\"},{\"id\":\"1140\",\"type\":\"Grid\"}],\"left\":[{\"id\":\"1136\",\"type\":\"LinearAxis\"}],\"plot_height\":275,\"plot_width\":375,\"renderers\":[{\"id\":\"1191\",\"type\":\"GlyphRenderer\"},{\"id\":\"1196\",\"type\":\"GlyphRenderer\"},{\"id\":\"1211\",\"type\":\"GlyphRenderer\"},{\"id\":\"1216\",\"type\":\"GlyphRenderer\"},{\"id\":\"1231\",\"type\":\"GlyphRenderer\"},{\"id\":\"1236\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1121\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1147\",\"type\":\"Toolbar\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1123\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"1127\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1125\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"1129\",\"type\":\"LinearScale\"}},\"id\":\"1120\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"children\":[[{\"id\":\"1120\",\"subtype\":\"Figure\",\"type\":\"Plot\"},0,0],[{\"id\":\"1154\",\"subtype\":\"Figure\",\"type\":\"Plot\"},0,1]]},\"id\":\"1286\",\"type\":\"GridBox\"},{\"attributes\":{\"callback\":null},\"id\":\"1125\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null},\"id\":\"1123\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1127\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1129\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"t\",\"formatter\":{\"id\":\"1252\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1132\",\"type\":\"BasicTicker\"}},\"id\":\"1131\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1132\",\"type\":\"BasicTicker\"},{\"attributes\":{\"ticker\":{\"id\":\"1132\",\"type\":\"BasicTicker\"}},\"id\":\"1135\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"x(t)\",\"formatter\":{\"id\":\"1250\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1137\",\"type\":\"BasicTicker\"}},\"id\":\"1136\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1137\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1142\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"overlay\":{\"id\":\"1265\",\"type\":\"BoxAnnotation\"}},\"id\":\"1143\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1144\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"1145\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"1146\",\"type\":\"HelpTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1141\",\"type\":\"PanTool\"},{\"id\":\"1142\",\"type\":\"WheelZoomTool\"},{\"id\":\"1143\",\"type\":\"BoxZoomTool\"},{\"id\":\"1144\",\"type\":\"SaveTool\"},{\"id\":\"1145\",\"type\":\"ResetTool\"},{\"id\":\"1146\",\"type\":\"HelpTool\"}]},\"id\":\"1147\",\"type\":\"Toolbar\"},{\"attributes\":{},\"id\":\"1250\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null},\"id\":\"1159\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1161\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1163\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"t\",\"formatter\":{\"id\":\"1271\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1166\",\"type\":\"BasicTicker\"}},\"id\":\"1165\",\"type\":\"LinearAxis\"}],\"root_ids\":[\"1289\"]},\"title\":\"Bokeh Application\",\"version\":\"1.1.0\"}};\n", " var render_items = [{\"docid\":\"bcc27355-45f1-44a4-a858-4ccfb09dfea9\",\"roots\":{\"1289\":\"0bb3fe73-85d9-4169-ad8d-4d4da44a63a5\"}}];\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", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1289" } }, "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(height=275, width=375, \n", " x_axis_label='t', y_axis_label='x(t)',\n", " title=f'β₁ = {beta_1}, γ = {gamma}')\n", "p2 = bokeh.plotting.figure(height=275, width=375, \n", " x_axis_label='t', y_axis_label='x(t)',\n", " title='same plot, normalized by steady states')\n", "p2.x_range = p1.x_range\n", "\n", "# Populate glyphs\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", "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", "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 think of 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 node (base of the arrow), as shown schematically here.\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", "**Motif principle:** Given that autoregulation is so heavily over-represented, one can ask what function might it provide. This is analogous to identifying statistically over-represented sequence motifs within the genome and analyzing their functional behaviors. _We will discuss 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", "Given its prevalence, it is natural to ask what function or functions negative autoregulation provides for the cell. We start by writing down a simple differential equation for the concentration of the repressor, $x$:\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", "What happens when the operon is suddenly turned \"on?\" 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", "After the gene turns on, starting from an \"off\" initial condition, it initially 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", "In this sketch, we can see that we might expect 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 treatement, 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-e^{-2 \\gamma t}}$, where $x_\\mathrm{st}$ denotes the steady-state expression level. \n", "\n", "We can also explore the system using numerical integration." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "ExecuteTime": { "end_time": "2019-04-05T17:20:08.667417Z", "start_time": "2019-04-05T17:20:08.073023Z" }, "tags": [ "remove_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 = {\"ce455116-1964-4c90-b3ff-5d069e32d93e\":{\"roots\":{\"references\":[{\"attributes\":{\"children\":[{\"id\":\"1709\",\"type\":\"ToolbarBox\"},{\"id\":\"1707\",\"type\":\"GridBox\"}]},\"id\":\"1710\",\"type\":\"Column\"},{\"attributes\":{},\"id\":\"1576\",\"type\":\"HelpTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1571\",\"type\":\"PanTool\"},{\"id\":\"1572\",\"type\":\"WheelZoomTool\"},{\"id\":\"1573\",\"type\":\"BoxZoomTool\"},{\"id\":\"1574\",\"type\":\"SaveTool\"},{\"id\":\"1575\",\"type\":\"ResetTool\"},{\"id\":\"1576\",\"type\":\"HelpTool\"}]},\"id\":\"1577\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1648\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"1646\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1647\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1648\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1650\",\"type\":\"CDSView\"}},\"id\":\"1649\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1589\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"1646\",\"type\":\"ColumnDataSource\"}},\"id\":\"1650\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1591\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1659\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"t\",\"formatter\":{\"id\":\"1698\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1594\",\"type\":\"BasicTicker\"}},\"id\":\"1593\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1660\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1594\",\"type\":\"BasicTicker\"},{\"attributes\":{\"label\":{\"value\":\"unregulated\"},\"renderers\":[{\"id\":\"1649\",\"type\":\"GlyphRenderer\"}]},\"id\":\"1662\",\"type\":\"LegendItem\"},{\"attributes\":{\"ticker\":{\"id\":\"1594\",\"type\":\"BasicTicker\"}},\"id\":\"1597\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"x(t)\",\"formatter\":{\"id\":\"1696\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1599\",\"type\":\"BasicTicker\"}},\"id\":\"1598\",\"type\":\"LinearAxis\"},{\"attributes\":{\"text\":\"Same plot, normalized\"},\"id\":\"1663\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"1599\",\"type\":\"BasicTicker\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1702\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1701\",\"type\":\"UnionRenderers\"}},\"id\":\"1669\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1665\",\"type\":\"Line\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"1599\",\"type\":\"BasicTicker\"}},\"id\":\"1602\",\"type\":\"Grid\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1666\",\"type\":\"Line\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1619\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"1664\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1665\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1666\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1668\",\"type\":\"CDSView\"}},\"id\":\"1667\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1664\",\"type\":\"ColumnDataSource\"}},\"id\":\"1668\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1642\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1617\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1618\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1619\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1621\",\"type\":\"CDSView\"}},\"id\":\"1620\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1603\",\"type\":\"PanTool\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1704\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1703\",\"type\":\"UnionRenderers\"}},\"id\":\"1674\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1604\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1670\",\"type\":\"Line\"},{\"attributes\":{\"overlay\":{\"id\":\"1705\",\"type\":\"BoxAnnotation\"}},\"id\":\"1605\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1671\",\"type\":\"Line\"},{\"attributes\":{\"below\":[{\"id\":\"1561\",\"type\":\"LinearAxis\"}],\"center\":[{\"id\":\"1565\",\"type\":\"Grid\"},{\"id\":\"1570\",\"type\":\"Grid\"},{\"id\":\"1629\",\"type\":\"Legend\"}],\"left\":[{\"id\":\"1566\",\"type\":\"LinearAxis\"}],\"plot_height\":275,\"plot_width\":350,\"renderers\":[{\"id\":\"1620\",\"type\":\"GlyphRenderer\"},{\"id\":\"1634\",\"type\":\"GlyphRenderer\"},{\"id\":\"1649\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1616\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1577\",\"type\":\"Toolbar\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1585\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"1557\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1555\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"1559\",\"type\":\"LinearScale\"}},\"id\":\"1552\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"1606\",\"type\":\"SaveTool\"},{\"attributes\":{\"data_source\":{\"id\":\"1669\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1670\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1671\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1673\",\"type\":\"CDSView\"}},\"id\":\"1672\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1618\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"1669\",\"type\":\"ColumnDataSource\"}},\"id\":\"1673\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1607\",\"type\":\"ResetTool\"},{\"attributes\":{\"children\":[[{\"id\":\"1552\",\"subtype\":\"Figure\",\"type\":\"Plot\"},0,0],[{\"id\":\"1584\",\"subtype\":\"Figure\",\"type\":\"Plot\"},0,1]]},\"id\":\"1707\",\"type\":\"GridBox\"},{\"attributes\":{},\"id\":\"1608\",\"type\":\"HelpTool\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1643\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1642\",\"type\":\"UnionRenderers\"}},\"id\":\"1617\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1603\",\"type\":\"PanTool\"},{\"id\":\"1604\",\"type\":\"WheelZoomTool\"},{\"id\":\"1605\",\"type\":\"BoxZoomTool\"},{\"id\":\"1606\",\"type\":\"SaveTool\"},{\"id\":\"1607\",\"type\":\"ResetTool\"},{\"id\":\"1608\",\"type\":\"HelpTool\"}]},\"id\":\"1609\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null,\"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\":\"1660\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1659\",\"type\":\"UnionRenderers\"}},\"id\":\"1631\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":\"grey\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1675\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"1555\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1676\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1557\",\"type\":\"LinearScale\"},{\"attributes\":{\"source\":{\"id\":\"1617\",\"type\":\"ColumnDataSource\"}},\"id\":\"1621\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"1674\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1675\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1676\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1678\",\"type\":\"CDSView\"}},\"id\":\"1677\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"1559\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"1625\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"source\":{\"id\":\"1674\",\"type\":\"ColumnDataSource\"}},\"id\":\"1678\",\"type\":\"CDSView\"},{\"attributes\":{\"axis_label\":\"t\",\"formatter\":{\"id\":\"1627\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1562\",\"type\":\"BasicTicker\"}},\"id\":\"1561\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1627\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"1562\",\"type\":\"BasicTicker\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1628\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"ticker\":{\"id\":\"1562\",\"type\":\"BasicTicker\"}},\"id\":\"1565\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1690\",\"type\":\"Selection\"},{\"attributes\":{\"items\":[{\"id\":\"1630\",\"type\":\"LegendItem\"},{\"id\":\"1645\",\"type\":\"LegendItem\"},{\"id\":\"1662\",\"type\":\"LegendItem\"}],\"location\":\"center_right\"},\"id\":\"1629\",\"type\":\"Legend\"},{\"attributes\":{\"axis_label\":\"x(t)\",\"formatter\":{\"id\":\"1625\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1567\",\"type\":\"BasicTicker\"}},\"id\":\"1566\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1696\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"label\":{\"value\":\"limiting analytical solution\"},\"renderers\":[{\"id\":\"1620\",\"type\":\"GlyphRenderer\"}]},\"id\":\"1630\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"1567\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"1698\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"1690\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1689\",\"type\":\"UnionRenderers\"}},\"id\":\"1646\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"1567\",\"type\":\"BasicTicker\"}},\"id\":\"1570\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"1699\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1632\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null},\"id\":\"1585\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1700\",\"type\":\"Selection\"},{\"attributes\":{\"text\":\"Turn-on dynamics \\u00b1 negative autoregulation\"},\"id\":\"1616\",\"type\":\"Title\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1633\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"1701\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"below\":[{\"id\":\"1593\",\"type\":\"LinearAxis\"}],\"center\":[{\"id\":\"1597\",\"type\":\"Grid\"},{\"id\":\"1602\",\"type\":\"Grid\"}],\"left\":[{\"id\":\"1598\",\"type\":\"LinearAxis\"}],\"plot_height\":275,\"plot_width\":350,\"renderers\":[{\"id\":\"1667\",\"type\":\"GlyphRenderer\"},{\"id\":\"1672\",\"type\":\"GlyphRenderer\"},{\"id\":\"1677\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1663\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1609\",\"type\":\"Toolbar\"},\"toolbar_location\":null,\"x_range\":{\"id\":\"1585\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"1589\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1587\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"1591\",\"type\":\"LinearScale\"}},\"id\":\"1584\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"data_source\":{\"id\":\"1631\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1632\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1633\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1635\",\"type\":\"CDSView\"}},\"id\":\"1634\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null},\"id\":\"1587\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1702\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1571\",\"type\":\"PanTool\"},{\"attributes\":{\"source\":{\"id\":\"1631\",\"type\":\"ColumnDataSource\"}},\"id\":\"1635\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"1703\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1572\",\"type\":\"WheelZoomTool\"},{\"attributes\":{},\"id\":\"1689\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"1704\",\"type\":\"Selection\"},{\"attributes\":{\"overlay\":{\"id\":\"1628\",\"type\":\"BoxAnnotation\"}},\"id\":\"1573\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"1643\",\"type\":\"Selection\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"1705\",\"type\":\"BoxAnnotation\"},{\"attributes\":{},\"id\":\"1574\",\"type\":\"SaveTool\"},{\"attributes\":{\"label\":{\"value\":\"negative autoregulation\"},\"renderers\":[{\"id\":\"1634\",\"type\":\"GlyphRenderer\"}]},\"id\":\"1645\",\"type\":\"LegendItem\"},{\"attributes\":{\"tools\":[{\"id\":\"1571\",\"type\":\"PanTool\"},{\"id\":\"1572\",\"type\":\"WheelZoomTool\"},{\"id\":\"1573\",\"type\":\"BoxZoomTool\"},{\"id\":\"1574\",\"type\":\"SaveTool\"},{\"id\":\"1575\",\"type\":\"ResetTool\"},{\"id\":\"1576\",\"type\":\"HelpTool\"},{\"id\":\"1603\",\"type\":\"PanTool\"},{\"id\":\"1604\",\"type\":\"WheelZoomTool\"},{\"id\":\"1605\",\"type\":\"BoxZoomTool\"},{\"id\":\"1606\",\"type\":\"SaveTool\"},{\"id\":\"1607\",\"type\":\"ResetTool\"},{\"id\":\"1608\",\"type\":\"HelpTool\"}]},\"id\":\"1708\",\"type\":\"ProxyToolbar\"},{\"attributes\":{},\"id\":\"1575\",\"type\":\"ResetTool\"},{\"attributes\":{\"callback\":null,\"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\":\"1700\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"1699\",\"type\":\"UnionRenderers\"}},\"id\":\"1664\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"toolbar\":{\"id\":\"1708\",\"type\":\"ProxyToolbar\"},\"toolbar_location\":\"above\"},\"id\":\"1709\",\"type\":\"ToolbarBox\"},{\"attributes\":{\"line_color\":\"grey\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1647\",\"type\":\"Line\"}],\"root_ids\":[\"1710\"]},\"title\":\"Bokeh Application\",\"version\":\"1.1.0\"}};\n", " var render_items = [{\"docid\":\"ce455116-1964-4c90-b3ff-5d069e32d93e\",\"roots\":{\"1710\":\"4f2fa294-f3ac-4c92-ad38-9762112db75d\"}}];\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", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1710" } }, "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", "\n", "# Parameters\n", "t = np.linspace(0, 6, 400)\n", "Kd = 1\n", "gamma = 1\n", "beta = 100\n", "\n", "# Negative autoregulated solution\n", "nar = scipy.integrate.odeint(neg_auto_reg_rhs, 0, t, args=(beta, Kd, gamma))[:,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 = [bokeh.plotting.figure(height=275, width=350, \n", " x_axis_label='t', y_axis_label='x(t)') \n", " for _ in [0, 1]]\n", "p[0].x_range = p[1].x_range\n", "\n", "p[0].title.text = 'Turn-on dynamics ± negative autoregulation'\n", "p[0].line(t, nar.max() * limiting, line_width=2, color='orange',\n", " legend='limiting analytical solution')\n", "p[0].line(t, nar, line_width=2, legend='negative autoregulation')\n", "p[0].line(t, beta/gamma * unreg, line_width=2, color='grey', \n", " legend='unregulated')\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=2, 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=2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Not surprisingly, adding negative autoregulation reduced the steady-state expression level. However, it also had 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", "_Negative autoregulation has accelerated the dynamics by about 5-fold compared to the unregulted system._ \n", "\n", "Note that this acceleration occurs when we turn the gene on, but not when we turn it off. If we suddenly change $\\beta$ to 0, then the dynamics are governed by $\\mathrm{d}x/\\mathrm{d}t = -\\gamma x$ irrespective of which architecture we use. \n", "\n", "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", "
This image is taken from Rosenfeld et al., J. Mol. Biol., 2002.
\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.\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": { "ExecuteTime": { "end_time": "2019-04-03T18:59:51.945279Z", "start_time": "2019-04-03T18:59:51.939867Z" } }, "source": [ "## Positive autoregulation enables bistability\n", "\n", "\n", "Having examined negative autoregulation, we can also ask what functions positive autoregulation, which is also prevalent in natural circuits, might provide. \n", "\n", "
\n", "\n", "We can represent a positive autoregulatory circuit with the following simple equation:\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", "To think about what this circuit can 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": 5, "metadata": { "ExecuteTime": { "end_time": "2019-04-05T17:20:09.172315Z", "start_time": "2019-04-05T17:20:08.680116Z" }, "tags": [ "remove_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 = {\"c9f9064f-7a9a-418a-a8b4-3f23c59afdaa\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"1950\",\"type\":\"LinearAxis\"}],\"center\":[{\"id\":\"1954\",\"type\":\"Grid\"},{\"id\":\"1959\",\"type\":\"Grid\"},{\"id\":\"1983\",\"type\":\"Span\"},{\"id\":\"1989\",\"type\":\"Span\"},{\"id\":\"1995\",\"type\":\"Span\"},{\"id\":\"2002\",\"type\":\"Arrow\"},{\"id\":\"2005\",\"type\":\"Arrow\"},{\"id\":\"2008\",\"type\":\"Arrow\"}],\"left\":[{\"id\":\"1955\",\"type\":\"LinearAxis\"}],\"plot_height\":275,\"plot_width\":400,\"renderers\":[{\"id\":\"1976\",\"type\":\"GlyphRenderer\"},{\"id\":\"1981\",\"type\":\"GlyphRenderer\"},{\"id\":\"1987\",\"type\":\"GlyphRenderer\"},{\"id\":\"1993\",\"type\":\"GlyphRenderer\"},{\"id\":\"1999\",\"type\":\"GlyphRenderer\"},{\"id\":\"2013\",\"type\":\"GlyphRenderer\"},{\"id\":\"2018\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"1940\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"1966\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"1942\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"1946\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"1944\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"1948\",\"type\":\"LinearScale\"}},\"id\":\"1939\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2098\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"1946\",\"type\":\"LinearScale\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2098\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2097\",\"type\":\"UnionRenderers\"}},\"id\":\"1973\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2100\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2099\",\"type\":\"UnionRenderers\"}},\"id\":\"1978\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"text\":\"\\u03b2 = 10, \\u03b3 = 1 , K = 4, n = 4\"},\"id\":\"1940\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2099\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"callback\":null},\"id\":\"1942\",\"type\":\"DataRange1d\"},{\"attributes\":{\"callback\":null},\"id\":\"1944\",\"type\":\"DataRange1d\"},{\"attributes\":{},\"id\":\"1948\",\"type\":\"LinearScale\"},{\"attributes\":{\"axis_label\":\"x\",\"formatter\":{\"id\":\"2096\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1951\",\"type\":\"BasicTicker\"}},\"id\":\"1950\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1951\",\"type\":\"BasicTicker\"},{\"attributes\":{\"ticker\":{\"id\":\"1951\",\"type\":\"BasicTicker\"}},\"id\":\"1954\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"production or removal rate\",\"formatter\":{\"id\":\"2094\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"1956\",\"type\":\"BasicTicker\"}},\"id\":\"1955\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"1956\",\"type\":\"BasicTicker\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"1956\",\"type\":\"BasicTicker\"}},\"id\":\"1959\",\"type\":\"Grid\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1974\",\"type\":\"Line\"},{\"attributes\":{\"end\":{\"id\":\"2001\",\"type\":\"VeeHead\"},\"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\":\"2002\",\"type\":\"Arrow\"},{\"attributes\":{\"fill_color\":{\"value\":\"gray\"},\"line_color\":{\"value\":\"gray\"},\"size\":15},\"id\":\"2007\",\"type\":\"VeeHead\"},{\"attributes\":{\"end\":{\"id\":\"2004\",\"type\":\"VeeHead\"},\"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\":\"2005\",\"type\":\"Arrow\"},{\"attributes\":{},\"id\":\"1960\",\"type\":\"PanTool\"},{\"attributes\":{\"callback\":null,\"data\":{\"text\":[\"production rate\"],\"x\":[14],\"y\":[9.933]},\"selected\":{\"id\":\"2108\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2107\",\"type\":\"UnionRenderers\"}},\"id\":\"2010\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1961\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"end\":{\"id\":\"2007\",\"type\":\"VeeHead\"},\"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\":\"2008\",\"type\":\"Arrow\"},{\"attributes\":{\"overlay\":{\"id\":\"2111\",\"type\":\"BoxAnnotation\"}},\"id\":\"1962\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"callback\":null,\"data\":{\"text\":[\"removal rate\"],\"x\":[14],\"y\":[14]},\"selected\":{\"id\":\"2110\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2109\",\"type\":\"UnionRenderers\"}},\"id\":\"2015\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"1963\",\"type\":\"SaveTool\"},{\"attributes\":{\"text_baseline\":\"top\",\"text_color\":{\"value\":\"#1f77b4\"},\"text_font_size\":{\"value\":\"10pt\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2011\",\"type\":\"Text\"},{\"attributes\":{},\"id\":\"1964\",\"type\":\"ResetTool\"},{\"attributes\":{\"text_alpha\":{\"value\":0.1},\"text_baseline\":\"top\",\"text_color\":{\"value\":\"black\"},\"text_font_size\":{\"value\":\"10pt\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2012\",\"type\":\"Text\"},{\"attributes\":{},\"id\":\"1965\",\"type\":\"HelpTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"1960\",\"type\":\"PanTool\"},{\"id\":\"1961\",\"type\":\"WheelZoomTool\"},{\"id\":\"1962\",\"type\":\"BoxZoomTool\"},{\"id\":\"1963\",\"type\":\"SaveTool\"},{\"id\":\"1964\",\"type\":\"ResetTool\"},{\"id\":\"1965\",\"type\":\"HelpTool\"}]},\"id\":\"1966\",\"type\":\"Toolbar\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1975\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"2010\",\"type\":\"ColumnDataSource\"}},\"id\":\"2014\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"1973\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1974\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1975\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1977\",\"type\":\"CDSView\"}},\"id\":\"1976\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"data_source\":{\"id\":\"2010\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2011\",\"type\":\"Text\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2012\",\"type\":\"Text\"},\"selection_glyph\":null,\"view\":{\"id\":\"2014\",\"type\":\"CDSView\"}},\"id\":\"2013\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1973\",\"type\":\"ColumnDataSource\"}},\"id\":\"1977\",\"type\":\"CDSView\"},{\"attributes\":{\"angle\":{\"units\":\"rad\",\"value\":0.575},\"text_color\":{\"value\":\"orange\"},\"text_font_size\":{\"value\":\"10pt\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2016\",\"type\":\"Text\"},{\"attributes\":{\"angle\":{\"units\":\"rad\",\"value\":0.575},\"text_alpha\":{\"value\":0.1},\"text_color\":{\"value\":\"black\"},\"text_font_size\":{\"value\":\"10pt\"},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2017\",\"type\":\"Text\"},{\"attributes\":{\"fill_color\":{\"value\":\"gray\"},\"line_color\":{\"value\":\"gray\"},\"size\":15},\"id\":\"2001\",\"type\":\"VeeHead\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1979\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"2015\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2016\",\"type\":\"Text\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2017\",\"type\":\"Text\"},\"selection_glyph\":null,\"view\":{\"id\":\"2019\",\"type\":\"CDSView\"}},\"id\":\"2018\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"fill_color\":{\"value\":\"gray\"},\"line_color\":{\"value\":\"gray\"},\"size\":15},\"id\":\"2004\",\"type\":\"VeeHead\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1980\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"2015\",\"type\":\"ColumnDataSource\"}},\"id\":\"2019\",\"type\":\"CDSView\"},{\"attributes\":{\"data_source\":{\"id\":\"1978\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1979\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1980\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"1982\",\"type\":\"CDSView\"}},\"id\":\"1981\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1978\",\"type\":\"ColumnDataSource\"}},\"id\":\"1982\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2094\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2096\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"dimension\":\"height\",\"level\":\"underlay\",\"line_dash\":[6],\"location\":0},\"id\":\"1983\",\"type\":\"Span\"},{\"attributes\":{},\"id\":\"2100\",\"type\":\"Selection\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":[0],\"y\":[0]},\"selected\":{\"id\":\"2102\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2101\",\"type\":\"UnionRenderers\"}},\"id\":\"1984\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2101\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1985\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2102\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1986\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2103\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1984\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1985\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1986\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1988\",\"type\":\"CDSView\"}},\"id\":\"1987\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2104\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1984\",\"type\":\"ColumnDataSource\"}},\"id\":\"1988\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2097\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2105\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"dimension\":\"height\",\"level\":\"underlay\",\"line_dash\":[6],\"location\":3.3819761988413224},\"id\":\"1989\",\"type\":\"Span\"},{\"attributes\":{},\"id\":\"2106\",\"type\":\"Selection\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":[3.3819761988413224],\"y\":[3.3819761988413224]},\"selected\":{\"id\":\"2104\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2103\",\"type\":\"UnionRenderers\"}},\"id\":\"1990\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2107\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_color\":{\"value\":\"white\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1991\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2108\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1992\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2109\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"1990\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1991\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1992\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"1994\",\"type\":\"CDSView\"}},\"id\":\"1993\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2110\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"1990\",\"type\":\"ColumnDataSource\"}},\"id\":\"1994\",\"type\":\"CDSView\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2111\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"dimension\":\"height\",\"level\":\"underlay\",\"line_dash\":[6],\"location\":9.72134917189334},\"id\":\"1995\",\"type\":\"Span\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":[9.72134917189334],\"y\":[9.72134917189334]},\"selected\":{\"id\":\"2106\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2105\",\"type\":\"UnionRenderers\"}},\"id\":\"1996\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1997\",\"type\":\"Circle\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"1998\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"1996\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"1997\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"1998\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"2000\",\"type\":\"CDSView\"}},\"id\":\"1999\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"1996\",\"type\":\"ColumnDataSource\"}},\"id\":\"2000\",\"type\":\"CDSView\"}],\"root_ids\":[\"1939\"]},\"title\":\"Bokeh Application\",\"version\":\"1.1.0\"}};\n", " var render_items = [{\"docid\":\"c9f9064f-7a9a-418a-a8b4-3f23c59afdaa\",\"roots\":{\"1939\":\"1fd31079-f7aa-49b7-9ce9-c33613aeca73\"}}];\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", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "1939" } }, "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 = [0, \n", " float(scipy.optimize.fixed_point(fp_rhs, 3)), \n", " float(scipy.optimize.fixed_point(fp_rhs, 5))]\n", "\n", "# Build plot\n", "p = bokeh.plotting.figure(height=275, width=400, x_axis_label='x',\n", " y_axis_label='production or removal rate', \n", " title=f'β = {beta}, γ = {gamma} , K = {K}, 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(bokeh.models.Span(location=fp, \n", " level='underlay',\n", " dimension='height',\n", " line_color='black',\n", " line_dash='dashed'))\n", " fill_color = 'white' if i % 2 else 'black'\n", " p.circle([fp], [gamma*fp], color='black', size=10, \n", " line_width=2, fill_color=fill_color)\n", "\n", "# Annotate\n", "p.add_layout(bokeh.models.Arrow(\n", " end=bokeh.models.VeeHead(size=15, fill_color='gray', line_color='gray'), \n", " line_width=4, x_start=3.25, y_start=12, x_end=0.1, y_end=12, line_color='gray'))\n", "p.add_layout(bokeh.models.Arrow(\n", " end=bokeh.models.VeeHead(size=15, fill_color='gray', line_color='gray'), \n", " line_width=4, x_start=3.5, y_start=12, x_end=6.75, y_end=12, line_color='gray'))\n", "p.add_layout(bokeh.models.Arrow(\n", " end=bokeh.models.VeeHead(size=15, fill_color='gray', line_color='gray'), line_width=4,\n", " x_start=20, y_start=12, x_end=13, y_end=12, line_color='gray'))\n", "p.text(x=[14], y=[9.933], text=['production rate'], text_color='#1f77b4',\n", " text_font_size='10pt', text_align='left', text_baseline='top')\n", "p.text(x=[14], y=[14], text=['removal rate'], text_color='orange',\n", " text_font_size='10pt', text_align='left', angle=0.575)\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": 6, "metadata": { "ExecuteTime": { "end_time": "2019-04-05T17:20:09.660207Z", "start_time": "2019-04-05T17:20:09.175634Z" }, "tags": [ "remove_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 = {\"30399b42-3bbf-4120-a5fa-503c1c2ada42\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2243\",\"type\":\"LinearAxis\"}],\"center\":[{\"id\":\"2247\",\"type\":\"Grid\"},{\"id\":\"2252\",\"type\":\"Grid\"}],\"left\":[{\"id\":\"2248\",\"type\":\"LinearAxis\"}],\"plot_height\":275,\"plot_width\":400,\"renderers\":[{\"id\":\"2269\",\"type\":\"GlyphRenderer\"},{\"id\":\"2274\",\"type\":\"GlyphRenderer\"},{\"id\":\"2279\",\"type\":\"GlyphRenderer\"},{\"id\":\"2284\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"2233\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"2259\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"2235\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"2239\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"2237\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"2241\",\"type\":\"LinearScale\"}},\"id\":\"2232\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":[0],\"y\":[0]},\"selected\":{\"id\":\"2388\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2387\",\"type\":\"UnionRenderers\"}},\"id\":\"2276\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2278\",\"type\":\"Circle\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2391\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2267\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"2276\",\"type\":\"ColumnDataSource\"}},\"id\":\"2280\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2239\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2253\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2385\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"2276\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2277\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2278\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"2280\",\"type\":\"CDSView\"}},\"id\":\"2279\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2254\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":[5.999999999999999],\"y\":[5.999999999999999]},\"selected\":{\"id\":\"2390\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2389\",\"type\":\"UnionRenderers\"}},\"id\":\"2281\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2384\",\"type\":\"Selection\"},{\"attributes\":{\"callback\":null},\"id\":\"2235\",\"type\":\"DataRange1d\"},{\"attributes\":{\"source\":{\"id\":\"2281\",\"type\":\"ColumnDataSource\"}},\"id\":\"2285\",\"type\":\"CDSView\"},{\"attributes\":{\"overlay\":{\"id\":\"2391\",\"type\":\"BoxAnnotation\"}},\"id\":\"2255\",\"type\":\"BoxZoomTool\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2282\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2383\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2384\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2383\",\"type\":\"UnionRenderers\"}},\"id\":\"2266\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2256\",\"type\":\"SaveTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2281\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2282\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2283\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"2285\",\"type\":\"CDSView\"}},\"id\":\"2284\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2382\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2257\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2258\",\"type\":\"HelpTool\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2253\",\"type\":\"PanTool\"},{\"id\":\"2254\",\"type\":\"WheelZoomTool\"},{\"id\":\"2255\",\"type\":\"BoxZoomTool\"},{\"id\":\"2256\",\"type\":\"SaveTool\"},{\"id\":\"2257\",\"type\":\"ResetTool\"},{\"id\":\"2258\",\"type\":\"HelpTool\"}]},\"id\":\"2259\",\"type\":\"Toolbar\"},{\"attributes\":{\"fill_color\":{\"value\":\"white\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2277\",\"type\":\"Circle\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2268\",\"type\":\"Line\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2283\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"2266\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2267\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2268\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"2270\",\"type\":\"CDSView\"}},\"id\":\"2269\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"source\":{\"id\":\"2266\",\"type\":\"ColumnDataSource\"}},\"id\":\"2270\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2386\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2385\",\"type\":\"UnionRenderers\"}},\"id\":\"2271\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2272\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2380\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2388\",\"type\":\"Selection\"},{\"attributes\":{\"ticker\":{\"id\":\"2244\",\"type\":\"BasicTicker\"}},\"id\":\"2247\",\"type\":\"Grid\"},{\"attributes\":{\"text\":\"\\u03b2 = 10, \\u03b3 = 1 , K = 4, n = 1\"},\"id\":\"2233\",\"type\":\"Title\"},{\"attributes\":{\"callback\":null},\"id\":\"2237\",\"type\":\"DataRange1d\"},{\"attributes\":{\"axis_label\":\"production or removal rate\",\"formatter\":{\"id\":\"2380\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"2249\",\"type\":\"BasicTicker\"}},\"id\":\"2248\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2273\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2244\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2390\",\"type\":\"Selection\"},{\"attributes\":{\"data_source\":{\"id\":\"2271\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2272\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2273\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"2275\",\"type\":\"CDSView\"}},\"id\":\"2274\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"2249\",\"type\":\"BasicTicker\"}},\"id\":\"2252\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2389\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"axis_label\":\"x\",\"formatter\":{\"id\":\"2382\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"2244\",\"type\":\"BasicTicker\"}},\"id\":\"2243\",\"type\":\"LinearAxis\"},{\"attributes\":{},\"id\":\"2387\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"2271\",\"type\":\"ColumnDataSource\"}},\"id\":\"2275\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2249\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2241\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2386\",\"type\":\"Selection\"}],\"root_ids\":[\"2232\"]},\"title\":\"Bokeh Application\",\"version\":\"1.1.0\"}};\n", " var render_items = [{\"docid\":\"30399b42-3bbf-4120-a5fa-503c1c2ada42\",\"roots\":{\"2232\":\"1c563ac0-ddf9-4a30-9006-4ac8831cacd3\"}}];\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", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "2232" } }, "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(height=275, width=400, x_axis_label='x',\n", " y_axis_label='production or removal rate', \n", " title=f'β = {beta}, γ = {gamma} , K = {K}, 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([fp], [gamma*fp], color='black', size=10, \n", " line_width=2, fill_color=fill_color)\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 how the role of $\\gamma$)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": { "tags": [ "remove_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 = {\"2927e33d-9409-436a-8e4c-71858ab87907\":{\"roots\":{\"references\":[{\"attributes\":{\"below\":[{\"id\":\"2487\",\"type\":\"LinearAxis\"}],\"center\":[{\"id\":\"2491\",\"type\":\"Grid\"},{\"id\":\"2496\",\"type\":\"Grid\"}],\"left\":[{\"id\":\"2492\",\"type\":\"LinearAxis\"}],\"plot_height\":275,\"plot_width\":400,\"renderers\":[{\"id\":\"2513\",\"type\":\"GlyphRenderer\"},{\"id\":\"2518\",\"type\":\"GlyphRenderer\"},{\"id\":\"2523\",\"type\":\"GlyphRenderer\"},{\"id\":\"2528\",\"type\":\"GlyphRenderer\"},{\"id\":\"2533\",\"type\":\"GlyphRenderer\"},{\"id\":\"2538\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"2477\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"2503\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"2479\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"2483\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"2481\",\"type\":\"Range1d\"},\"y_scale\":{\"id\":\"2485\",\"type\":\"LinearScale\"}},\"id\":\"2476\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{},\"id\":\"2493\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2652\",\"type\":\"Selection\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2511\",\"type\":\"Line\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"2493\",\"type\":\"BasicTicker\"}},\"id\":\"2496\",\"type\":\"Grid\"},{\"attributes\":{},\"id\":\"2653\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":[0],\"y\":[0]},\"selected\":{\"id\":\"2658\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2657\",\"type\":\"UnionRenderers\"}},\"id\":\"2525\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2654\",\"type\":\"Selection\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2526\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2651\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"callback\":null,\"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\":\"2652\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2651\",\"type\":\"UnionRenderers\"}},\"id\":\"2510\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2516\",\"type\":\"Line\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2656\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2655\",\"type\":\"UnionRenderers\"}},\"id\":\"2520\",\"type\":\"ColumnDataSource\"},{\"attributes\":{},\"id\":\"2655\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2527\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"2515\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2516\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2517\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"2519\",\"type\":\"CDSView\"}},\"id\":\"2518\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]},\"y\":{\"__ndarray__\":\"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\",\"dtype\":\"float64\",\"shape\":[400]}},\"selected\":{\"id\":\"2654\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2653\",\"type\":\"UnionRenderers\"}},\"id\":\"2515\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"data_source\":{\"id\":\"2525\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2526\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2527\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"2529\",\"type\":\"CDSView\"}},\"id\":\"2528\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2656\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2497\",\"type\":\"PanTool\"},{\"attributes\":{},\"id\":\"2657\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"source\":{\"id\":\"2525\",\"type\":\"ColumnDataSource\"}},\"id\":\"2529\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2498\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"2510\",\"type\":\"ColumnDataSource\"}},\"id\":\"2514\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2658\",\"type\":\"Selection\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":[3.8106116105419954],\"y\":[3.8106116105419954]},\"selected\":{\"id\":\"2660\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2659\",\"type\":\"UnionRenderers\"}},\"id\":\"2530\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2512\",\"type\":\"Line\"},{\"attributes\":{\"overlay\":{\"id\":\"2663\",\"type\":\"BoxAnnotation\"}},\"id\":\"2499\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2650\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2659\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"fill_color\":{\"value\":\"white\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2531\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2500\",\"type\":\"SaveTool\"},{\"attributes\":{},\"id\":\"2660\",\"type\":\"Selection\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2532\",\"type\":\"Circle\"},{\"attributes\":{},\"id\":\"2501\",\"type\":\"ResetTool\"},{\"attributes\":{},\"id\":\"2661\",\"type\":\"UnionRenderers\"},{\"attributes\":{\"data_source\":{\"id\":\"2530\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2531\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2532\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"2534\",\"type\":\"CDSView\"}},\"id\":\"2533\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2517\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2502\",\"type\":\"HelpTool\"},{\"attributes\":{\"text\":\"\\u03b2 = 10, \\u03b3 = [1, 2] , K = 4, n = 10\"},\"id\":\"2477\",\"type\":\"Title\"},{\"attributes\":{},\"id\":\"2662\",\"type\":\"Selection\"},{\"attributes\":{\"source\":{\"id\":\"2530\",\"type\":\"ColumnDataSource\"}},\"id\":\"2534\",\"type\":\"CDSView\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2497\",\"type\":\"PanTool\"},{\"id\":\"2498\",\"type\":\"WheelZoomTool\"},{\"id\":\"2499\",\"type\":\"BoxZoomTool\"},{\"id\":\"2500\",\"type\":\"SaveTool\"},{\"id\":\"2501\",\"type\":\"ResetTool\"},{\"id\":\"2502\",\"type\":\"HelpTool\"}]},\"id\":\"2503\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null},\"id\":\"2479\",\"type\":\"DataRange1d\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2663\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"data_source\":{\"id\":\"2510\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2511\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2512\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"2514\",\"type\":\"CDSView\"}},\"id\":\"2513\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"callback\":null,\"end\":21,\"start\":-1},\"id\":\"2481\",\"type\":\"Range1d\"},{\"attributes\":{\"callback\":null,\"data\":{\"x\":[9.9989504329843],\"y\":[9.9989504329843]},\"selected\":{\"id\":\"2662\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2661\",\"type\":\"UnionRenderers\"}},\"id\":\"2535\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"fill_color\":{\"value\":\"black\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2536\",\"type\":\"Circle\"},{\"attributes\":{\"source\":{\"id\":\"2515\",\"type\":\"ColumnDataSource\"}},\"id\":\"2519\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2648\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2483\",\"type\":\"LinearScale\"},{\"attributes\":{},\"id\":\"2485\",\"type\":\"LinearScale\"},{\"attributes\":{\"fill_alpha\":{\"value\":0.1},\"fill_color\":{\"value\":\"#1f77b4\"},\"line_alpha\":{\"value\":0.1},\"line_color\":{\"value\":\"#1f77b4\"},\"line_width\":{\"value\":2},\"size\":{\"units\":\"screen\",\"value\":10},\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2537\",\"type\":\"Circle\"},{\"attributes\":{\"data_source\":{\"id\":\"2535\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2536\",\"type\":\"Circle\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2537\",\"type\":\"Circle\"},\"selection_glyph\":null,\"view\":{\"id\":\"2539\",\"type\":\"CDSView\"}},\"id\":\"2538\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"x\",\"formatter\":{\"id\":\"2650\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"2488\",\"type\":\"BasicTicker\"}},\"id\":\"2487\",\"type\":\"LinearAxis\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2521\",\"type\":\"Line\"},{\"attributes\":{\"source\":{\"id\":\"2535\",\"type\":\"ColumnDataSource\"}},\"id\":\"2539\",\"type\":\"CDSView\"},{\"attributes\":{},\"id\":\"2488\",\"type\":\"BasicTicker\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x\"},\"y\":{\"field\":\"y\"}},\"id\":\"2522\",\"type\":\"Line\"},{\"attributes\":{\"ticker\":{\"id\":\"2488\",\"type\":\"BasicTicker\"}},\"id\":\"2491\",\"type\":\"Grid\"},{\"attributes\":{\"data_source\":{\"id\":\"2520\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2521\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2522\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"2524\",\"type\":\"CDSView\"}},\"id\":\"2523\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"axis_label\":\"production or removal rate\",\"formatter\":{\"id\":\"2648\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"2493\",\"type\":\"BasicTicker\"}},\"id\":\"2492\",\"type\":\"LinearAxis\"},{\"attributes\":{\"source\":{\"id\":\"2520\",\"type\":\"ColumnDataSource\"}},\"id\":\"2524\",\"type\":\"CDSView\"}],\"root_ids\":[\"2476\"]},\"title\":\"Bokeh Application\",\"version\":\"1.1.0\"}};\n", " var render_items = [{\"docid\":\"2927e33d-9409-436a-8e4c-71858ab87907\",\"roots\":{\"2476\":\"f4f79394-41ad-4589-8bbf-e3f7ce7fdc22\"}}];\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", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "2476" } }, "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 = [0, \n", " float(scipy.optimize.fixed_point(fp_rhs, 4)), \n", " float(scipy.optimize.fixed_point(fp_rhs, 10))]\n", "\n", "# Build plot\n", "p = bokeh.plotting.figure(height=275, width=400, 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", "# 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([fp], [gamma[0]*fp], color='black', size=10, \n", " line_width=2, fill_color=fill_color)\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. That leads us to the **design principle:** _Positive, ultrasensitive autoregulation enables bistability._" ] }, { "cell_type": "markdown", "metadata": {}, "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", "\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." ] }, { "cell_type": "markdown", "metadata": { "tags": [ "remove_input" ] }, "source": [ "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 is for doing this should be clear." ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "tags": [ "remove_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 = {\"3f52c631-69ea-452b-9422-067af20b4201\":{\"roots\":{\"references\":[{\"attributes\":{\"children\":[{\"id\":\"2838\",\"type\":\"WidgetBox\"},{\"id\":\"2776\",\"subtype\":\"Figure\",\"type\":\"Plot\"}]},\"id\":\"2839\",\"type\":\"Column\"},{\"attributes\":{},\"id\":\"2816\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x_x\"},\"y\":{\"field\":\"y_x\"}},\"id\":\"2810\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2786\",\"type\":\"BasicTicker\"},{\"attributes\":{},\"id\":\"2818\",\"type\":\"BasicTickFormatter\"},{\"attributes\":{},\"id\":\"2781\",\"type\":\"LinearScale\"},{\"attributes\":{\"ticker\":{\"id\":\"2786\",\"type\":\"BasicTicker\"}},\"id\":\"2789\",\"type\":\"Grid\"},{\"attributes\":{\"bottom_units\":\"screen\",\"fill_alpha\":{\"value\":0.5},\"fill_color\":{\"value\":\"lightgrey\"},\"left_units\":\"screen\",\"level\":\"overlay\",\"line_alpha\":{\"value\":1.0},\"line_color\":{\"value\":\"black\"},\"line_dash\":[4,4],\"line_width\":{\"value\":2},\"render_mode\":\"css\",\"right_units\":\"screen\",\"top_units\":\"screen\"},\"id\":\"2819\",\"type\":\"BoxAnnotation\"},{\"attributes\":{\"axis_label\":\"y\",\"formatter\":{\"id\":\"2816\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"2791\",\"type\":\"BasicTicker\"}},\"id\":\"2790\",\"type\":\"LinearAxis\"},{\"attributes\":{\"items\":[{\"id\":\"2821\",\"type\":\"LegendItem\"},{\"id\":\"2836\",\"type\":\"LegendItem\"}]},\"id\":\"2820\",\"type\":\"Legend\"},{\"attributes\":{},\"id\":\"2791\",\"type\":\"BasicTicker\"},{\"attributes\":{\"label\":{\"value\":\"x nullcline\"},\"renderers\":[{\"id\":\"2811\",\"type\":\"GlyphRenderer\"}]},\"id\":\"2821\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"2783\",\"type\":\"LinearScale\"},{\"attributes\":{\"dimension\":1,\"ticker\":{\"id\":\"2791\",\"type\":\"BasicTicker\"}},\"id\":\"2794\",\"type\":\"Grid\"},{\"attributes\":{\"axis_label\":\"x\",\"formatter\":{\"id\":\"2818\",\"type\":\"BasicTickFormatter\"},\"ticker\":{\"id\":\"2786\",\"type\":\"BasicTicker\"}},\"id\":\"2785\",\"type\":\"LinearAxis\"},{\"attributes\":{\"callback\":null},\"id\":\"2779\",\"type\":\"DataRange1d\"},{\"attributes\":{\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x_x\"},\"y\":{\"field\":\"y_x\"}},\"id\":\"2809\",\"type\":\"Line\"},{\"attributes\":{\"line_color\":\"orange\",\"line_width\":2,\"x\":{\"field\":\"x_y\"},\"y\":{\"field\":\"y_y\"}},\"id\":\"2823\",\"type\":\"Line\"},{\"attributes\":{\"data_source\":{\"id\":\"2775\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2809\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2810\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"2812\",\"type\":\"CDSView\"}},\"id\":\"2811\",\"type\":\"GlyphRenderer\"},{\"attributes\":{\"line_alpha\":0.1,\"line_color\":\"#1f77b4\",\"line_width\":2,\"x\":{\"field\":\"x_y\"},\"y\":{\"field\":\"y_y\"}},\"id\":\"2824\",\"type\":\"Line\"},{\"attributes\":{},\"id\":\"2795\",\"type\":\"PanTool\"},{\"attributes\":{\"data_source\":{\"id\":\"2775\",\"type\":\"ColumnDataSource\"},\"glyph\":{\"id\":\"2823\",\"type\":\"Line\"},\"hover_glyph\":null,\"muted_glyph\":null,\"nonselection_glyph\":{\"id\":\"2824\",\"type\":\"Line\"},\"selection_glyph\":null,\"view\":{\"id\":\"2826\",\"type\":\"CDSView\"}},\"id\":\"2825\",\"type\":\"GlyphRenderer\"},{\"attributes\":{},\"id\":\"2796\",\"type\":\"WheelZoomTool\"},{\"attributes\":{\"source\":{\"id\":\"2775\",\"type\":\"ColumnDataSource\"}},\"id\":\"2826\",\"type\":\"CDSView\"},{\"attributes\":{\"overlay\":{\"id\":\"2819\",\"type\":\"BoxAnnotation\"}},\"id\":\"2797\",\"type\":\"BoxZoomTool\"},{\"attributes\":{},\"id\":\"2833\",\"type\":\"UnionRenderers\"},{\"attributes\":{},\"id\":\"2798\",\"type\":\"SaveTool\"},{\"attributes\":{\"callback\":null,\"end\":20,\"js_property_callbacks\":{\"change:value\":[{\"id\":\"2837\",\"type\":\"CustomJS\"}]},\"start\":0.1,\"step\":0.1,\"title\":\"\\u03b2x\",\"value\":10},\"id\":\"2772\",\"type\":\"Slider\"},{\"attributes\":{},\"id\":\"2834\",\"type\":\"Selection\"},{\"attributes\":{},\"id\":\"2799\",\"type\":\"ResetTool\"},{\"attributes\":{\"below\":[{\"id\":\"2785\",\"type\":\"LinearAxis\"}],\"center\":[{\"id\":\"2789\",\"type\":\"Grid\"},{\"id\":\"2794\",\"type\":\"Grid\"},{\"id\":\"2820\",\"type\":\"Legend\"}],\"left\":[{\"id\":\"2790\",\"type\":\"LinearAxis\"}],\"plot_height\":275,\"plot_width\":400,\"renderers\":[{\"id\":\"2811\",\"type\":\"GlyphRenderer\"},{\"id\":\"2825\",\"type\":\"GlyphRenderer\"}],\"title\":{\"id\":\"2813\",\"type\":\"Title\"},\"toolbar\":{\"id\":\"2801\",\"type\":\"Toolbar\"},\"x_range\":{\"id\":\"2777\",\"type\":\"DataRange1d\"},\"x_scale\":{\"id\":\"2781\",\"type\":\"LinearScale\"},\"y_range\":{\"id\":\"2779\",\"type\":\"DataRange1d\"},\"y_scale\":{\"id\":\"2783\",\"type\":\"LinearScale\"}},\"id\":\"2776\",\"subtype\":\"Figure\",\"type\":\"Plot\"},{\"attributes\":{\"callback\":null,\"data\":{\"x_x\":{\"__ndarray__\":\"AAAAAAAAJEBJFMK59/8jQFXGVp97/yNA0AIEHWL9I0C0MpwpvfcjQMRbgM3g6yNAo01JW3PWI0DeSOO2jbMjQLF90jHyfiNAJ0bXk140I0CGmgsK+c8iQJ2B5c/PTiJAa3+W21mvIUC7i5L03vEgQFrbeMerGCBAYb8JJvxPHkBt2JPhSkscQIPFWlzSMBpAL2zPP6YOGEChZVATCPIVQCWWxz9e5hNAveZYbJf0EUCyrqDo+SIQQNC4ZU2S6gxAmY4jCETaCUA3kaCe3xQHQF5GQBrGlwRARPySXrdeAkDequcCgGQAQN03vKv7Rv0/+9BPJv0r+j9jYpdj/mz3Py9uqa6l//Q/osK/1m/a8j/QCUdhwfTwP8/j61vOje4/LtMbjRmU6z/GEvONWfDoP6v4KMn8l+Y/cs+aI8SB5D/w70z6nKXiP14XN019/OA/UOUqtoUA3z8ADej8KlfcP6pEt6aZ89k/jpBuA7LN1z+3VMLhXN7VP8A+wztoH9Q/NLEVlmiL0j/p2RyDnh3RP/z3Pom/o88/6CrDJAdJzT/i7yQyoyTLP7TpbaPmMMk/efCTu85oxz8TX7k+7cfFP52N1JxVSsQ/Aiquqozswj8H/XmMeqvBP1LbmYJehMA/WrklqYjpvj/gES5A9vS8P4586rQaJ7s/hmvss3N8uT9QUqeF2/G3PyyJaHF+hLY/hwkcdNExtT9GZjwdivezP1Yzx2qX07I/CNCUghvEsT+MISgsZsewP+9RH+Tft68/+F/AqqsArj9RUYEBq2asP9fyA9aT56o/eQHJtlCBqT+nwQuH+zGoP4B3D8nY96Y/Zpm6bFPRpT/VJrUS+bykP01LRrZ2uaM/xF/tsZXFoj9apTUUOeChPytikztbCKE/yrs7sQs9oD8OD8p32vqeP8RScUhokZ0/6R79Skk8nD8ikGELI/qaP43obaG1yZk/wpIQZtmpmD+f0MPgfJmXP6dHQeeil5Y/M1xF6mCjlT81R8Fq3buUP/y2XpNO4JM/de2r8vgPkz8csK1SLkqSP6S57qpMjpE/XTZ0Kr3bkD/4d0VX8zGQPwA554LYII8/fLuKj1vtjT8R9rjYi8iMP/7gq2+UsYs/nzYaU66nij+YJplnH6qJP07QrIU5uIg/7QWSm1nRhz+jGv3g5vSGPwWKNRtSIoY/RbEd8BRZhT9ZI9lGsZiEP2/M47Sw4IM/+ISI9qMwgz8UPr9xIoiCP2fnkcLJ5oE/rdg7UD1MgT+kJ0rqJbiAP2QbFG0xKoA/rCbk2SREfz9azE3P/z5+P4kz+PZpRH0/Twg5R+FTfD8pDIby6mx7P2Z3uPISj3o/S6SEnOu5eT96eYM6De14P4m/OK8VKHg/6gOOHahqdz8PAEWXbLR2P7LM7tAPBXY/H47+2kJcdT9Y1pbfurl0P5XJuOQwHXQ/WTKDkmGGcz/ANDb9DPVyP3JEtnL2aHI/NnFOS+ThcT8oGXe9n19xP/OearT04XA/4O9VqbFocD8h9ez9TudvP1J19b5SBW8/Nm/7OBkrbj9Bl/EhUVhtP8WBEwqtjGw/DajbJuPHaz/Y8ighrQlrP4bCXebHUWo/eFZGfPOfaT/rDpjX8vNoPxBX3rSLTWg/Hxatc4asZz8ZWvPzrRBnPzCMS3XPeWY/EekoeLrnZT+4MsSgQFplP5Wiq5s10WQ/7wvcA29MZD+Z40pKxMtjPw6Gyp4OT2M/CZoz2ijWYj8+1r9p72BiP0TAgztA72E/dDD2q/qAYT8NiHV0/xVhPwaSu5owrmA/nwAyYXFJYD+owjRwTM9fP7pv+l5pEV8/yHOp0wZZXj82v9Ae9KVdPxBWnoQC+Fw/OFQeJgVPXD9/naLr0KpbP8SIQnA8C1s/ZN1i7h9wWj8ObjctVdlZPwqCMG+3Rlk/zBNHYSO4WD+9shsLdy1YPySS3L+Rplc/pfznD1QjVz/uByG7n6NWP//87KNXJ1Y/GXjQwl+uVT8HyqManThVP/ehVq31xVQ/MXw7cVBWVD/9wNNGlelTP1bmFe+sf1M/f0cnAoEYUz+pwYPm+7NSP1Z5jcgIUlI/9nx/kpPyUT/ERL7kiJVRPx9WgQ7WOlE/DZTRBmniUD9hBNhlMIxQP4wMeV4bOFA/b8BwcDPMTz/IH8SSNyxPP/6t6uIkkE4/fO6bJ973TT9VNBIlR2NNP4a2RZNE0kw/S4eTFLxETD/ESMsslLpLP/u+nji0M0s/M59uZQSwSj8rOnCpbS9KP//YJ7zZsUk/+9kzDzM3ST9Xz2THZL9IP40RH7ZaSkg/amUCUwHYRz+ZgdS1RWhHP+Bnq5AV+0Y/sa1UKl+QRj9i9PZYEShGP7Pz6nwbwkU/qZrJe21eRT/g6ay79/xEP3FHoR6rnUQ/XilF/nhARD/fDJUnU+VDP9zK4dYrjEM/OnHvs/U0Qz8K3zrOo99CP313ZJkpjEI/IlO+6Xo6Qj+2avzwi+pBP8xIBTtRnEE/yeDhqr9PQT9HOst3zARBP6GvVCptu0A/2YyxmZdzQD+A6hTpQS1APypbVQrF0D8/UkNRQ+BJPz+fXu1tw8U+P1532v9cRD4/y5JR75vFPT+c+uOub0k9P21mcinIzzw/LrFJvpVYPD9ul2M9yeM7PwsNyuNTcTs/PckbWCcBOz+HtjCnNZM6P7ED3UBxJzo/mKDR9My9OT/W/pjvO1Y5PzX7rrex8Dg/KOGyKiKNOD96hLJ6gSs4P1Z5jSvEyzc/ZHxvEN9tNz9fJ2FJxxE3PwYY7kBytzY//rffqdVeNj+y3Qt95wc2P9SFNvedsjU/j+0Fl+9eNT8DXQgb0ww1P6j4yn8/vDQ/U/cA/ittND9moboIkB80P4KDq0tj0zM/mEV/qZ2IMz/3nDw6Nz8zP/7UtUko9zI/LXAGVmmwMj+ZZx0O82oyPxqUU1C+JjI/FtENKcTjMT/8bGrR/aExPyKA+a1kYTE/ZMZ/TfIhMT8LnMNnoOMwPy3CY9xopjA/KZK3sUVqMD9bS7gTMS8wPzJT5qVK6i8/l+sHxzl4Lz+Cii+4JAgvP4I+7+kAmi4/jYU1DsQtLj/7koAWZMMtP0HOHzLXWi0/Kg6DzBP0LD/hGJeLEI8sPyz1Lk7EKyw/NJ55KibKKz+hroNsLWorPy6cxJTRCys/wSC3VgqvKj8vcXyXz1MqP8nliWwZ+ik/ObxgGuChKT/dnE8THEspP5SRPfbF9Sg/jx5+jdahKD9vMK7NRk8oP06WmdQP/ic/I8Ao6CquJz8sfVZ1kV8nP0B4LQ89Eic/7zHNbSfGJj87O3ZtSnsmP0N1nQ2gMSY/nBwGcCLpJT81aeLXy6ElPyaN+qiWWyU/At/ZZn0WJT8F/gG0etIkP+u/I1GJjyQ/IrpdHKRNJD+yOYAQxgwkP1h+VkTqzCM/XQ/16QuOIz96AQ1OJlAjPy4HRNc0EyM/cyWRBTPXIj+66J1xHJwiP/72K8zsYSI/nNx+3Z8oIj+H88mEMfAhP7pEoreduCE/akV0geCBIT8LUv0C9kshP6XKyHHaFiE/tbSwF4riID9qx2FSAa8gP67I4pI8fCA/oiEfXThKID8fknRH8RggP9LXh/TH0B8/gH0JXxpxHz82vrdk0xIfP9Bkab3stR4/Wli6QWBaHj+Rz0jqJwAeP6OX9849px0/QEg1JpxPHT+tQEhEPfkcPwNLn5obpBw/N8MmtzFQHD9CIaJDev0bPwzGCQXwqxs/nuzs2o1bGz9yode+TgwbP4WivMMtvho/jgxjFSZxGj+/udf3MiUaP3s34sZP2hk/xTl99XeQGT9Hc1INp0cZP8m5Oa7Y/xg/BGC7jQi5GD/lrZV2MnMYP4RhRUhSLhg/MCOR9mPqFz9G2BeJY6cXP5XA4RpNZRc/wUr02RwkFz8QjegGz+MWPy1QhPRfpBY//ZlVB8xlFj+Xp1C1DygWP3ZFcIUn6xU/lnVYDxCvFT/xU/v6xXMVPwUqQABGORU/SqKs5oz/FD+NDRCFl8YUPwWsMMFijhQ/Yux6j+tWFD8AlLLyLiAUPxjDpfsp6hM/v8jhyNm0Ez9NummGO4ATP83Cbm1MTBM/0B4KxAkZEz9+ufjccOYSP2RgWBd/tBI/VYNm3jGDEj8rdkCphlISP6wqpfp6IhI/9li4YAzzET/VDMd0OMQRP2iPDdv8lRE/zqN+QldoET+jDoxkRTsRP6Jf8ATFDhE/oPV58dPiED/UNNcBcLcQP67nYxeXjBA//ML3HEdiED8=\",\"dtype\":\"float64\",\"shape\":[400]},\"x_y\":{\"__ndarray__\":\"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\",\"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\":\"2834\",\"type\":\"Selection\"},\"selection_policy\":{\"id\":\"2833\",\"type\":\"UnionRenderers\"}},\"id\":\"2775\",\"type\":\"ColumnDataSource\"},{\"attributes\":{\"label\":{\"value\":\"y nullcline\"},\"renderers\":[{\"id\":\"2825\",\"type\":\"GlyphRenderer\"}]},\"id\":\"2836\",\"type\":\"LegendItem\"},{\"attributes\":{},\"id\":\"2800\",\"type\":\"HelpTool\"},{\"attributes\":{\"args\":{\"beta_x_slider\":{\"id\":\"2772\",\"type\":\"Slider\"},\"beta_y_slider\":{\"id\":\"2773\",\"type\":\"Slider\"},\"n_slider\":{\"id\":\"2774\",\"type\":\"Slider\"},\"source\":{\"id\":\"2775\",\"type\":\"ColumnDataSource\"}},\"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\":\"2837\",\"type\":\"CustomJS\"},{\"attributes\":{\"active_drag\":\"auto\",\"active_inspect\":\"auto\",\"active_multi\":null,\"active_scroll\":\"auto\",\"active_tap\":\"auto\",\"tools\":[{\"id\":\"2795\",\"type\":\"PanTool\"},{\"id\":\"2796\",\"type\":\"WheelZoomTool\"},{\"id\":\"2797\",\"type\":\"BoxZoomTool\"},{\"id\":\"2798\",\"type\":\"SaveTool\"},{\"id\":\"2799\",\"type\":\"ResetTool\"},{\"id\":\"2800\",\"type\":\"HelpTool\"}]},\"id\":\"2801\",\"type\":\"Toolbar\"},{\"attributes\":{\"callback\":null,\"end\":20,\"js_property_callbacks\":{\"change:value\":[{\"id\":\"2837\",\"type\":\"CustomJS\"}]},\"start\":0.1,\"step\":0.1,\"title\":\"\\u03b2y\",\"value\":10},\"id\":\"2773\",\"type\":\"Slider\"},{\"attributes\":{\"children\":[{\"id\":\"2772\",\"type\":\"Slider\"},{\"id\":\"2773\",\"type\":\"Slider\"},{\"id\":\"2774\",\"type\":\"Slider\"}]},\"id\":\"2838\",\"type\":\"WidgetBox\"},{\"attributes\":{\"callback\":null,\"end\":10,\"js_property_callbacks\":{\"change:value\":[{\"id\":\"2837\",\"type\":\"CustomJS\"}]},\"start\":1,\"step\":0.1,\"title\":\"n\",\"value\":4},\"id\":\"2774\",\"type\":\"Slider\"},{\"attributes\":{\"source\":{\"id\":\"2775\",\"type\":\"ColumnDataSource\"}},\"id\":\"2812\",\"type\":\"CDSView\"},{\"attributes\":{\"callback\":null},\"id\":\"2777\",\"type\":\"DataRange1d\"},{\"attributes\":{\"text\":\"\"},\"id\":\"2813\",\"type\":\"Title\"}],\"root_ids\":[\"2839\"]},\"title\":\"Bokeh Application\",\"version\":\"1.1.0\"}};\n", " var render_items = [{\"docid\":\"3f52c631-69ea-452b-9422-067af20b4201\",\"roots\":{\"2839\":\"0addc847-d2e5-4d01-9f80-49172ea2b54c\"}}];\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", " embed_document(root);\n", " clearInterval(timer);\n", " }\n", " attempts++;\n", " if (attempts > 100) {\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " clearInterval(timer);\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "2839" } }, "output_type": "display_data" } ], "source": [ "# Set up sliders\n", "params = [dict(name='βx', start=0.1, end=20, step=0.1, value=10, \n", " long_name='beta_x_slider'),\n", " dict(name='βy', start=0.1, end=20, step=0.1, value=10, \n", " long_name='beta_y_slider'),\n", " dict(name='n', start=1, end=10, step=0.1, value=4, \n", " long_name='n_slider')]\n", "sliders = [bokeh.models.Slider(start=param['start'],\n", " end=param['end'],\n", " value=param['value'],\n", " step=param['step'],\n", " title=param['name'])\n", " for param in params]\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", "# Make the plot\n", "p = bokeh.plotting.figure(height=275, width=400, \n", " x_axis_label='x', y_axis_label='y')\n", "p.line(x='x_x', y='y_x', source=source, line_width=2, legend='x nullcline')\n", "p.line(x='x_y', y='y_y', source=source, line_width=2, color='orange', legend='y nullcline')\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),\n", " code=js_code)\n", "\n", "# We use the `js_on_change()` method to call teh 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.widgetbox(sliders), p))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "You can investigate the nullclines by playing with the sliders. 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": 9, "metadata": { "ExecuteTime": { "end_time": "2019-04-05T17:20:12.126379Z", "start_time": "2019-04-05T17:20:12.102071Z" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPython 3.7.3\n", "IPython 7.4.0\n", "\n", "numpy 1.16.2\n", "scipy 1.2.1\n", "bokeh 1.1.0\n", "jupyterlab 0.35.4\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.3" }, "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": 2 }