{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Building a model\n", "\n", "[Dataset download](https://s3.amazonaws.com/bebi103.caltech.edu/data/good_invitro_droplet_data.csv)\n", "\n", "\n", "
" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n", " \n", " Loading BokehJS ...\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function now() {\n", " return new Date();\n", " }\n", "\n", " const 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", "const JS_MIME_TYPE = 'application/javascript';\n", " const HTML_MIME_TYPE = 'text/html';\n", " const EXEC_MIME_TYPE = 'application/vnd.bokehjs_exec.v0+json';\n", " const CLASS_NAME = 'output_bokeh rendered_html';\n", "\n", " /**\n", " * Render data to the DOM node\n", " */\n", " function render(props, node) {\n", " const 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", " const cell = handle.cell;\n", "\n", " const id = cell.output_area._bokeh_element_id;\n", " const 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", " const cmd_clean = \"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_clean, {\n", " iopub: {\n", " output: function(msg) {\n", " const 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", " const cmd_destroy = \"import bokeh.io.notebook as ion; ion.destroy_server('\" + server_id + \"')\";\n", " cell.notebook.kernel.execute(cmd_destroy);\n", " }\n", " }\n", "\n", " /**\n", " * Handle when a new output is added\n", " */\n", " function handleAddOutput(event, handle) {\n", " const output_area = handle.output_area;\n", " const output = handle.output;\n", "\n", " // limit handleAddOutput to display_data with EXEC_MIME_TYPE content only\n", " if ((output.output_type != \"display_data\") || (!Object.prototype.hasOwnProperty.call(output.data, EXEC_MIME_TYPE))) {\n", " return\n", " }\n", "\n", " const 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", " const bk_div = document.createElement(\"div\");\n", " bk_div.innerHTML = output.data[HTML_MIME_TYPE];\n", " const script_attrs = bk_div.children[0].attributes;\n", " for (let i = 0; i < script_attrs.length; i++) {\n", " toinsert[toinsert.length - 1].firstChild.setAttribute(script_attrs[i].name, script_attrs[i].value);\n", " toinsert[toinsert.length - 1].firstChild.textContent = bk_div.children[0].textContent\n", " }\n", " // store reference to server id on output_area\n", " output_area._bokeh_server_id = output.metadata[EXEC_MIME_TYPE][\"server_id\"];\n", " }\n", " }\n", "\n", " function register_renderer(events, OutputArea) {\n", "\n", " function append_mime(data, metadata, element) {\n", " // create a DOM node to render to\n", " const 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", " const 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", " const events = require('base/js/events');\n", " const 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", " if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n", " root._bokeh_timeout = Date.now() + 5000;\n", " root._bokeh_failed_load = false;\n", " }\n", "\n", " const 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", " const el = document.getElementById(\"fb65e1e8-ec08-4e11-988f-03678690d320\");\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", " 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(url) {\n", " console.error(\"failed to load \" + url);\n", " }\n", "\n", " for (let i = 0; i < css_urls.length; i++) {\n", " const url = css_urls[i];\n", " const element = document.createElement(\"link\");\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\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 (let i = 0; i < js_urls.length; i++) {\n", " const url = js_urls[i];\n", " const element = document.createElement('script');\n", " element.onload = on_load;\n", " element.onerror = on_error.bind(null, url);\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", " };\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", " const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.2.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.2.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.2.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.2.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.2.1.min.js\", \"https://unpkg.com/@holoviz/panel@1.2.1/dist/panel.min.js\"];\n", " const css_urls = [];\n", "\n", " const inline_js = [ function(Bokeh) {\n", " Bokeh.set_log_level(\"info\");\n", " },\n", "function(Bokeh) {\n", " }\n", " ];\n", "\n", " function run_inline_js() {\n", " if (root.Bokeh !== undefined || force === true) {\n", " for (let i = 0; i < inline_js.length; i++) {\n", " inline_js[i].call(root, root.Bokeh);\n", " }\n", "if (force === true) {\n", " display_loaded();\n", " }} else if (Date.now() < root._bokeh_timeout) {\n", " setTimeout(run_inline_js, 100);\n", " } else if (!root._bokeh_failed_load) {\n", " console.log(\"Bokeh: BokehJS failed to load within specified timeout.\");\n", " root._bokeh_failed_load = true;\n", " } else if (force !== true) {\n", " const cell = $(document.getElementById(\"fb65e1e8-ec08-4e11-988f-03678690d320\")).parents('.cell').data().cell;\n", " cell.output_area.append_execute_result(NB_LOAD_WARNING)\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": "(function(root) {\n function now() {\n return new Date();\n }\n\n const 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 if (typeof (root._bokeh_timeout) === \"undefined\" || force === true) {\n root._bokeh_timeout = Date.now() + 5000;\n root._bokeh_failed_load = false;\n }\n\n const 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 const el = document.getElementById(\"fb65e1e8-ec08-4e11-988f-03678690d320\");\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 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(url) {\n console.error(\"failed to load \" + url);\n }\n\n for (let i = 0; i < css_urls.length; i++) {\n const url = css_urls[i];\n const element = document.createElement(\"link\");\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\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 (let i = 0; i < js_urls.length; i++) {\n const url = js_urls[i];\n const element = document.createElement('script');\n element.onload = on_load;\n element.onerror = on_error.bind(null, url);\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 };\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 const js_urls = [\"https://cdn.bokeh.org/bokeh/release/bokeh-3.2.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.2.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.2.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.2.1.min.js\", \"https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.2.1.min.js\", \"https://unpkg.com/@holoviz/panel@1.2.1/dist/panel.min.js\"];\n const css_urls = [];\n\n const inline_js = [ function(Bokeh) {\n Bokeh.set_log_level(\"info\");\n },\nfunction(Bokeh) {\n }\n ];\n\n function run_inline_js() {\n if (root.Bokeh !== undefined || force === true) {\n for (let i = 0; i < inline_js.length; i++) {\n inline_js[i].call(root, root.Bokeh);\n }\nif (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 const cell = $(document.getElementById(\"fb65e1e8-ec08-4e11-988f-03678690d320\")).parents('.cell').data().cell;\n cell.output_area.append_execute_result(NB_LOAD_WARNING)\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 pandas as pd\n", "\n", "import iqplot\n", "import bebi103\n", "\n", "import bokeh.io\n", "bokeh.io.output_notebook()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "
\n", "\n", "As machine learning methods grow in power and prominence, and as data acquisition becomes more and more facile, we see more and more methods where a machine \"learns\" directly from data. Over a decade ago, [Chris Anderson](https://en.wikipedia.org/wiki/Chris_Anderson_(writer)) wrote an article entitled [The End of Theory: The Data Deluge Makes the Scientific Method Obsolete](https://www.wired.com/2008/06/pb-theory/) in Wired Magazine. Anderson claimed that because we have access to large data sets, we no longer need the scientific method of testable hypotheses. Specifically, he says we do not need models, we can just use lots and lots of data to make predictions. This is absurd because if we just try to learn from data, we do not really learn anything fundamental about how nature works. If you are working for Netflix and trying to figure out what movies people want to watch, learning from data is fine. But if you're a scientist and want to increase knowledge, you need models.\n", "\n", "In this lesson, we introduce two competing models for how the size of mitotic spindles are set. I take the time to set up these models because it's important; we should have a firm grasp on the theory behind our models." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## What sets the size of mitotic spindles?\n", "\n", "Matt Good and coworkers ([*Science*, 2013](https://dx.doi.org/10.1126%2Fscience.1243147)) developed a microfluidic device where they could create droplets of cytoplasm extracted from *Xenopus* eggs and embryos, as shown the figure below (scale bar 20 µm; image taken from the paper).\n", "\n", "
\n", "\n", "![](good_droplets.png)\n", " \n", "
\n", "\n", "A remarkable property about *Xenopus* extract is that mitotic spindles spontaneously form; the extracted cytoplasm has all the ingredients to form them. This makes it an excellent model system for studying spindles. With their device, Good and his colleagues were able to study how the size of the cell affects the dimensions of the mitotic spindle; a simple, yet beautiful, question. The experiment is conceptually simple; they made the droplets and then measured their dimensions and the dimensions of the spindles using microscope images.\n", "\n", "Let's take a quick look at the result." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"8ee1e139-4a48-4d22-a0df-303363aa0853\":{\"version\":\"3.2.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1002\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1003\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1004\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1011\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1012\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1009\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1036\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1030\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1031\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1032\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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MzMzMzPTUEAzMzMzM9NQQDMzMzMz01BAZmZmZmbmUEBmZmZmZuZQQGZmZmZm5lBAZmZmZmbmUEBmZmZmZuZQQGZmZmZm5lBAZmZmZmbmUEBmZmZmZuZQQGZmZmZm5lBAZmZmZmbmUEBmZmZmZuZQQDMzMzMz81BAMzMzMzPzUEAzMzMzM/NQQDMzMzMz81BAMzMzMzPzUEAzMzMzM/NQQGZmZmZmBlFAZmZmZmYGUUBmZmZmZgZRQGZmZmZmBlFAZmZmZmYGUUBmZmZmZgZRQGZmZmZmBlFAZmZmZmYGUUBmZmZmZgZRQGZmZmZmBlFAZmZmZmYGUUCamZmZmRlRQJqZmZmZGVFAmpmZmZkZUUCamZmZmRlRQJqZmZmZGVFAmpmZmZkZUUCamZmZmRlRQGZmZmZmJlFAZmZmZmYmUUBmZmZmZiZRQGZmZmZmJlFAZmZmZmYmUUBmZmZmZiZRQGZmZmZmJlFAZmZmZmYmUUBmZmZmZiZRQJqZmZmZOVFAmpmZmZk5UUCamZmZmTlRQGZmZmZmRlFAZmZmZmZGUUBmZmZmZkZRQGZmZmZmRlFAZmZmZmZGUUBmZmZmZkZRQGZmZmZmRlFAZmZmZmZGUUBmZmZmZkZRQGZmZmZmRlFAmpmZmZlZUUCamZmZmVlRQJqZmZmZWVFAmpmZmZlZUUCamZmZmVlRQJqZmZmZWVFAmpmZmZlZUUCamZmZmVlRQJqZmZmZWVFAZmZmZmZmUUBmZmZmZmZRQGZmZmZmZlFAZmZmZmZmUUBmZmZmZmZRQGZmZmZmZlFAZmZmZmZmUUBmZmZmZmZRQGZmZmZmZlFAZmZmZmZmUUCamZmZmXlRQJqZmZmZeVFAmpmZmZl5UUCamZmZmXlRQJqZmZmZeVFAmpmZmZl5UUCamZmZmXlRQJqZmZmZeVFAmpmZmZl5UUBmZmZmZoZRQGZmZmZmhlFAZmZmZmaGUUBmZmZmZoZRQGZmZmZmhlFAZmZmZmaGUUBmZmZmZoZRQGZmZmZmhlFAmpmZmZmZUUCamZmZmZlRQJqZmZmZmVFAmpmZmZmZUUCamZmZmZlRQJqZmZmZmVFAmpmZmZmZUUCamZmZmZlRQM3MzMzMrFFAzczMzMysUUDNzMzMzKxRQM3MzMzMrFFAzczMzMysUUDNzMzMzKxRQM3MzMzMrFFAzczMzMysUUCamZmZmblRQJqZmZmZuVFAmpmZmZm5UUDNzMzMzMxRQM3MzMzMzFFAzczMzMzMUUDNzMzMzMxRQM3MzMzMzFFAzczMzMzMUUDNzMzMzMxRQJqZmZmZ2VFAmpmZmZnZUUCamZmZmdlRQJqZmZmZ2VFAmpmZmZnZUUCamZmZmdlRQM3MzMzM7FFAzczMzMzsUUDNzMzMzOxRQM3MzMzM7FFAmpmZmZn5UUCamZmZmflRQJqZmZmZ+VFAzczMzMwMUkDNzMzMzAxSQM3MzMzMDFJAzczMzMwMUkDNzMzMzAxSQM3MzMzMDFJAmpmZmZkZUkCamZmZmRlSQJqZmZmZGVJAmpmZmZkZUkCamZmZmRlSQM3MzMzMLFJAzczMzMwsUkAAAAAAAEBSQAAAAAAAQFJAAAAAAABAUkDNzMzMzExSQM3MzMzMTFJAzczMzMxMUkDNzMzMzExSQM3MzMzMTFJAAAAAAABgUkAAAAAAAGBSQAAAAAAAYFJAAAAAAABgUkAAAAAAAGBSQM3MzMzMbFJAAAAAAACAUkAAAAAAAIBSQAAAAAAAgFJAzczMzMyMUkAAAAAAAKBSQAAAAAAAoFJAMzMzMzOzUkAAAAAAAMBSQDMzMzMz81JAAAAAAAAAU0AAAAAAACBTQDMzMzMzM1NAMzMzMzNTU0AzMzMzM1NTQGZmZmZmZlNAZmZmZmZmU0AzMzMzM7NTQGZmZmZmxlNAmpmZmZkZVEDNzMzMzExUQJqZmZmZeVRAzczMzMyMVECamZmZmZlUQJqZmZmZmVRAAAAAAAAgVUAAAAAAAIBVQGZmZmZmBlZAZmZmZmbmVkCamZmZmflWQAAAAAAAgFdAzczMzMysV0AAAAAAACBYQAAAAAAAIFhAMzMzMzNTWEAAAAAAAGBYQDMzMzMzk1hAmpmZmZkZWUDNzMzMzKxZQJqZmZmZ+VlAmpmZmZl5XEDNzMzMzAxdQM3MzMzMLF1AAAAAAABgXUAAAAAAAMBdQGZmZmZmJl5AZmZmZmZGXkCamZmZmZleQJqZmZmZuV5AZmZmZmbGXkAzMzMzM2NgQJqZmZmZeWFAmpmZmZmJYUCamZmZmalhQAAAAAAAAGRAMzMzMzPDZEDNzMzMzDxnQAAAAAAA0GdAzczMzMysa0A=\"},\"shape\":[670],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[670],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1037\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1038\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Circle\",\"id\":\"p1033\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.7},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.7},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.7}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Circle\",\"id\":\"p1034\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Circle\",\"id\":\"p1035\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b4\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1010\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1023\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1024\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1025\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1026\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1027\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1028\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1029\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1018\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1019\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1020\"},\"axis_label\":\"spindle length (\\u00b5m)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1021\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1013\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1014\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1015\"},\"axis_label\":\"droplet diameter (\\u00b5m)\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1016\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1017\",\"attributes\":{\"axis\":{\"id\":\"p1013\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1022\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1018\"}}}],\"frame_width\":350,\"frame_height\":250}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"mode\",\"kind\":\"Any\",\"default\":\"warn\"},{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationAreaBase1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"8ee1e139-4a48-4d22-a0df-303363aa0853\",\"roots\":{\"p1002\":\"dcab498d-631d-43b3-8e31-da6460e64885\"},\"root_ids\":[\"p1002\"]}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1002" } }, "output_type": "display_data" } ], "source": [ "df = pd.read_csv('../data/good_invitro_droplet_data.csv', comment='#')\n", "\n", "p = bokeh.plotting.figure(\n", " frame_width=350,\n", " frame_height=250,\n", " x_axis_label='droplet diameter (µm)',\n", " y_axis_label='spindle length (µm)', \n", ")\n", "\n", "p.circle(df['Droplet Diameter (um)'], df['Spindle Length (um)'], alpha=0.7)\n", "\n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We now propose two models for how the droplet diameter affects the spindle length.\n", "\n", "1. The spindles have an inherent length, independent of droplet diameter.\n", "2. The length of spindles is determined by the total amount of tubulin available to make them." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Model 1: Spindle size is independent of droplet size\n", "\n", "As a first model, we propose that the size of a mitotic spindle is inherent to the spindle itself. This means that the size of the spindle is independent of the size of the droplet or cell in which it resides. This would be the case, for example, if construction of the spindle involves length-sensing molecules, such as depolymerizing motor proteins. We define that set length as $\\phi$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### The statistical model\n", "\n", "Not all spindles will be measured to be exactly $\\phi$ µm in length. Rather, there may be some variation about $\\phi$ due to natural variation and measurement error. So, we would expect measured length of spindle _i_ to be\n", "\n", "\\begin{align}\n", "l_i = \\phi + e_i,\n", "\\end{align}\n", "\n", "where $e_i$ is the noise component of the $i$the datum.\n", "\n", "So, we have a theoretical model for spindle length, $l = \\phi$, and to get a fully generative model, we need to model the errors $e_i$. A reasonable model assumes\n", "\n", "1. Each measured spindle's length is independent of all others.\n", "2. The variability in measured spindle length is Normally distributed.\n", "\n", "With these assumptions, we can write the probability density function for $l_i$ as\n", "\n", "\\begin{align}\n", "f(l_i ; \\phi, \\sigma) = \\frac{1}{\\sqrt{2\\pi \\sigma^2}}\\,\\exp\\left[-\\frac{(l_i - \\phi)^2}{2\\sigma^2}\\right].\n", "\\end{align}\n", "\n", "Since each measurement is independent, we can write the joint probability density function of the entire data set, which we will define as $\\mathbf{l} = \\{l_1, l_2,\\ldots\\}$, consisting of $n$ total measurements.\n", "\n", "\\begin{align}\n", "f(\\mathbf{l} ; \\phi, \\sigma) = \\prod_{i} f(l_i ; \\phi, \\sigma) = \\frac{1}{(2\\pi \\sigma^2)^{n/2}}\\,\\exp\\left[-\\frac{1}{2\\sigma^2}\\sum_{i}(l_i - \\phi)^2\\right].\n", "\\end{align}\n", "\n", "We can write this more succinctly, and perhaps more intuitively, as\n", "\n", "\\begin{align}\n", "l_i \\sim \\text{Norm}(\\phi, \\sigma) \\;\\;\\forall i.\n", "\\end{align}\n", "\n", "We will generally write our models in this format, which is easier to parse and understand. Note that in writing this generative model, we have necessarily introduced another parameter, $\\sigma$, the standard deviation parametrizing the Normal distribution. So, we have two parameters in our model, $\\phi$ and $\\sigma$." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Model 2: Spindle length is set by total amount of tubulin\n", "\n", "#### The cartoon model\n", "\n", "The three key principles of this \"cartoon\" model are:\n", "\n", "1. The total amount of tubulin in the droplet or cell is conserved.\n", "2. The total length of polymerized microtubules is a function of the total tubulin concentration after assembly of the spindle. This results from the balance of microtubule polymerization rate with catastrophe frequencies.\n", "3. The density of tubulin in the spindle is independent of droplet or cell volume." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### The mathematical model\n", "From these principles, we need to derive a mathematical model that will provide us with testable predictions. The derivation follows below (following the derivation presented in the paper), and you may read it if you are interested. Since our main focus here is building a statistical model, you can skip ahead to to the final equation, where we define a mathematical expression relating the spindle length, $l$ to the droplet diameter, $d$, which depends on two parameters, $\\gamma$ and $\\phi$. Nonetheless, it is important to see how a models such as this one is derived.\n", "\n", "Principle 1 above (conservation of tubulin) implies\n", "\n", "\\begin{align}\n", "T_0 V_0 = T_1(V_0 - V_\\mathrm{s}) + T_\\mathrm{s}V_\\mathrm{s},\n", "\\end{align}\n", "\n", "where $V_0$ is the volume of the droplet or cell, $V_\\mathrm{s}$ is the volume of the spindle, $T_0$ is the total tubulin concentration (polymerized or not), $T_1$ is the tubulin concentration in the cytoplasm after the the spindle has formed, and $T_\\mathrm{s}$ is the concentration of tubulin in the spindle. If we assume the spindle does not take up much of the total volume of the droplet or cell ($V_0 \\gg V_\\mathrm{s}$, which is the case as we will see when we look at the data), we have\n", "\n", "\\begin{align}\n", "T_1 \\approx T_0 - \\frac{V_\\mathrm{s}}{V_0}\\,T_\\mathrm{s}.\n", "\\end{align}\n", "\n", "The amount of tubulin in the spindle can we written in terms of the total length of polymerized microtubules, $L_\\mathrm{MT}$ as\n", "\n", "\\begin{align}\n", "T_s V_\\mathrm{s} = \\alpha L_\\mathrm{MT},\n", "\\end{align}\n", "\n", "where $\\alpha$ is the tubulin concentration per unit microtubule length. (We will see that it is unimportant, but from the known geometry of microtubules, $\\alpha \\approx 2.7$ nmol/µm.)\n", "\n", "We now formalize assumption 2 into a mathematical expression. Microtubule length should grow with increasing $T_1$. There should also be a minimal threshold $T_\\mathrm{min}$ where polymerization stops. We therefore approximate the total microtubule length as a linear function,\n", "\n", "\\begin{align}\n", "L_\\mathrm{MT} \\approx \\left\\{\\begin{array}{ccl}\n", "0 & &T_1 \\le T_\\mathrm{min} \\\\\n", "\\beta(T_1 - T_\\mathrm{min}) & & T_1 > T_\\mathrm{min}.\n", "\\end{array}\\right.\n", "\\end{align}\n", "\n", "Because spindles form in *Xenopus* extract, $T_0 > T_\\mathrm{min}$, so there exists a $T_1$ with $T_\\mathrm{min} < T_1 < T_0$. Thus, going forward, we are assured that $T_1 > T_\\mathrm{min}$. So, we have\n", "\n", "\\begin{align}\n", "V_\\mathrm{s} \\approx \\alpha\\beta\\,\\frac{T_1 - T_\\mathrm{min}}{T_\\mathrm{s}}.\n", "\\end{align}\n", "\n", "With insertion of our expression for $T_1$, this becomes\n", "\n", "\\begin{align}\n", "V_{\\mathrm{s}} \\approx \\alpha \\beta\\left(\\frac{T_0 - T_\\mathrm{min}}{T_\\mathrm{s}} - \\frac{V_\\mathrm{s}}{V_0}\\right).\n", "\\end{align}\n", "\n", "Solving for $V_\\mathrm{s}$, we have\n", "\n", "\\begin{align}\n", "V_\\mathrm{s} \\approx \\frac{\\alpha\\beta}{1 + \\alpha\\beta/V_0}\\,\\frac{T_0 - T_\\mathrm{min}}{T_\\mathrm{s}}\n", "=\\frac{V_0}{1 + V_0/\\alpha\\beta}\\,\\frac{T_0 - T_\\mathrm{min}}{T_\\mathrm{s}}.\n", "\\end{align}\n", "\n", "We approximate the shape of the spindle as a prolate spheroid with major axis length $l$ and minor axis length $w$, giving\n", "\n", "\\begin{align}\n", "V_\\mathrm{s} = \\frac{\\pi}{6}\\,l w^2 = \\frac{\\pi}{6}\\,k^2 l^3,\n", "\\end{align}\n", "\n", "where $k \\equiv w/l$ is the aspect ratio of the spindle. We can now write an expression for the spindle length as\n", "\n", "\\begin{align}\n", "l \\approx \\left(\\frac{6}{\\pi k^2}\\,\n", "\\frac{T_0 - T_\\mathrm{min}}{T_\\mathrm{s}}\\,\n", "\\frac{V_0}{1+V_0/\\alpha\\beta}\\right)^{\\frac{1}{3}}.\n", "\\end{align}\n", "\n", "For small droplets, with $V_0\\ll \\alpha \\beta$, this becomes\n", "\n", "\\begin{align}\n", "l \\approx \\left(\\frac{6}{\\pi k^2}\\,\n", "\\frac{T_0 - T_\\mathrm{min}}{T_\\mathrm{s}}\\,\n", "V_0\\right)^{\\frac{1}{3}}\n", "= \\left(\\frac{T_0 - T_\\mathrm{min}}{k^2T_\\mathrm{s}}\\right)^{\\frac{1}{3}}\\,d,\n", "\\end{align}\n", "\n", "where $d$ is the diameter of the spherical droplet or cell. So, we expect the spindle size to increase linearly with the droplet diameter for small droplets. \n", "\n", "For large $V_0$, the spindle size becomes independent of droplet size;\n", "\n", "\\begin{align}\n", "l \\approx \\left(\\frac{6 \\alpha \\beta}{\\pi k^2}\\,\n", "\\frac{T_0 - T_\\mathrm{min}}{T_\\mathrm{s}}\\right)^{\\frac{1}{3}}.\n", "\\end{align}" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Indentifiability of parameters\n", "\n", "We measure the microtubule length $l$ and droplet diameter $d$ directly from the images. We can also measure the spindle aspect ratio $k$ directly from the images. Thus, we have four unknown parameters, since we already know α ≈ 2.7 nmol/µm. The unknown parameters are:\n", "\n", "| parameter | meaning |\n", "| :------: | :-----|\n", "|$\\beta$ | rate constant for MT growth |\n", "|$T_0$ | total tubulin concentration |\n", "|$T_\\mathrm{min}$ | critical tubulin concentration for polymerization |\n", "|$T_s$ | tubulin concentration in the spindle |\n", "\n", "We would like to determine all of these parameters. We could measure them all either in this experiment or in other experiments. We could measure the total tubulin concentration $T_0$ by doing spectroscopic or other quantitative methods on the *Xenopus* extract. We can $T_\\mathrm{min}$ and $T_s$ might be assessed by other in vitro assays, though these parameters may by strongly dependent on the conditions of the extract.\n", "\n", "Importantly, though, the parameters only appear in combinations with each other in our theoretical model. Specifically, we can define two parameters,\n", "\n", "\\begin{align}\n", "\\gamma &= \\left(\\frac{T_0-T_\\mathrm{min}}{k^2T_\\mathrm{s}}\\right)^\\frac{1}{3} \\\\\n", "\\phi &= \\gamma\\left(\\frac{6\\alpha\\beta}{\\pi}\\right)^{\\frac{1}{3}}.\n", "\\end{align}\n", "\n", "We can then rewrite the general model expression in terms of these parameters as\n", "\n", "\\begin{align}\n", "l(d) \\approx \\frac{\\gamma d}{\\left(1+(\\gamma d/\\phi)^3\\right)^{\\frac{1}{3}}}.\n", "\\end{align}\n", "\n", "If we tried to determine all four parameters from this experiment only, we would be in trouble. This experiment alone cannot distinguish all of the parameters. Rather, we can only distinguish two combinations of them, which we have defined as $\\gamma$ and $\\phi$. This is an issue of **identifiability**. We may not be able to distinguish all parameters in a given model, and it is important to think carefully before the analysis about which ones we can identify. Even with our work so far, we are not quite done with characterizing identifiability." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Visualizing the mathematical model\n", "\n", "Let's take a quick look at the mathematical model so we can see how the curve looks. It's best to nondimensionalize the diameter by $\\phi$, giving\n", "\n", "\\begin{align}\n", "\\frac{l(d)}{\\phi} \\approx \\frac{\\gamma d/\\phi}{\\left(1+(\\gamma d/\\phi)^3\\right)^{\\frac{1}{3}}}.\n", "\\end{align}\n", "\n", "So, we will plot $l(/\\phi$ versus $d/\\phi$, which means we choose units of length to be $\\phi$." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"f6a418b8-b12e-4eab-b250-9edefd8e2d88\":{\"version\":\"3.2.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1041\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"Range1d\",\"id\":\"p1050\",\"attributes\":{\"start\":-1,\"end\":20}},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1043\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1051\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1052\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1048\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1076\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1070\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1071\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1072\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1077\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1078\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1073\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#c6dbef\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1074\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#c6dbef\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1075\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#c6dbef\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1087\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1081\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1082\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1083\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1088\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1089\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1084\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#9ecae1\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1085\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#9ecae1\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1086\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#9ecae1\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1097\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1091\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1092\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1093\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1098\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1099\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1094\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#6baed6\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1095\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#6baed6\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1096\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#6baed6\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1107\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1101\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1102\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1103\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1108\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1109\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1104\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#4292c6\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1105\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#4292c6\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1106\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#4292c6\",\"line_alpha\":0.2,\"line_width\":2}}}},{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1117\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1111\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1112\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1113\"},\"data\":{\"type\":\"map\",\"entries\":[[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}],[\"y\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[200],\"dtype\":\"float64\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1118\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1119\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1114\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#2171b5\",\"line_width\":2}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1115\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#2171b5\",\"line_alpha\":0.1,\"line_width\":2}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Line\",\"id\":\"p1116\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"y\"},\"line_color\":\"#2171b5\",\"line_alpha\":0.2,\"line_width\":2}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1049\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1063\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1064\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1065\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1066\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1067\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1068\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1069\"}]}},\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1058\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1059\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1060\"},\"axis_label\":\"l/\\u03c6\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1061\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1053\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1054\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1055\"},\"axis_label\":\"d/\\u03c6\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1056\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1057\",\"attributes\":{\"axis\":{\"id\":\"p1053\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1062\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1058\"}}},{\"type\":\"object\",\"name\":\"Legend\",\"id\":\"p1079\",\"attributes\":{\"location\":\"bottom_right\",\"items\":[{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1080\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"0.03\"},\"renderers\":[{\"id\":\"p1076\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1090\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"0.1\"},\"renderers\":[{\"id\":\"p1087\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1100\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"0.3\"},\"renderers\":[{\"id\":\"p1097\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1110\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"0.7\"},\"renderers\":[{\"id\":\"p1107\"}]}},{\"type\":\"object\",\"name\":\"LegendItem\",\"id\":\"p1120\",\"attributes\":{\"label\":{\"type\":\"value\",\"value\":\"1.0\"},\"renderers\":[{\"id\":\"p1117\"}]}}]}}],\"frame_width\":350,\"frame_height\":250}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"mode\",\"kind\":\"Any\",\"default\":\"warn\"},{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationAreaBase1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"f6a418b8-b12e-4eab-b250-9edefd8e2d88\",\"roots\":{\"p1041\":\"bee75263-d26b-416b-a05b-b040f76ebcb3\"},\"root_ids\":[\"p1041\"]}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1041" } }, "output_type": "display_data" } ], "source": [ "def theor_spindle_length(gamma, d):\n", " \"\"\"Compute spindle length using mathematical model\"\"\"\n", " return gamma * d / np.cbrt(1 + (gamma * d)**3)\n", "\n", "d = np.linspace(0, 20, 200)\n", "\n", "p = bokeh.plotting.figure(\n", " frame_width=350,\n", " frame_height=250,\n", " x_axis_label='d/φ',\n", " y_axis_label='l/φ',\n", " x_range=[-1, 20]\n", ")\n", "\n", "for gamma, color in zip([0.03, 0.1, 0.3, 0.7, 1.0], bokeh.palettes.Blues7[1:-1][::-1]):\n", " p.line(d, theor_spindle_length(gamma, d), color=color, line_width=2, legend_label=str(gamma))\n", "\n", "p.legend.location = 'bottom_right'\n", " \n", "bokeh.io.show(p)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The curve grows from zero to a plateau at $l = \\phi$, more rapidly for larger $\\gamma$. We can more carefully characterize the limiting behavior." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Limiting behavior\n", "\n", "For large droplets, with $d \\gg \\phi/\\gamma$, the spindle size becomes independent of $d$, with\n", "\n", "\\begin{align}\n", "l \\approx \\phi.\n", "\\end{align}\n", "\n", "Conversely, for $d \\ll \\phi/\\gamma$, the spindle length varies approximately linearly with diameter.\n", "\n", "\\begin{align}\n", "l(d) \\approx \\gamma\\,d.\n", "\\end{align}\n", "\n", "Note that the expression for the linear regime gives bounds for $\\gamma$. Obviously, $\\gamma > 0$, lest we get negative spindle lengths. Because $l \\le d$, lest the spindle not fit in the droplet, we also have $\\gamma \\le 1$. \n", "\n", "Importantly, if the experiment is done in the regime where $d$ is large (and we do not really know a priori how large that is since we do not know the parameters $\\phi$ and $\\gamma$), we cannot tell the difference between the two models, since they are equivalent in that regime. Further, if the experiment is in this regime the model is unidentifiable because we cannot resolve $\\gamma$.\n", "\n", "This sounds kind of dire, but this is actually a convenient fact. The second model is more complex, but it has the simpler model, model 1, as a limit. Thus, the two models are in fact commensurate with each other. Knowledge of how these limits work also enhances the experimental design. We should strive for small droplets. And perhaps most importantly, if we didn't consider the second model, we might automatically assume that droplet size has nothing to do with spindle length if we simply did the experiment in larger droplets." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Generative model\n", "\n", "We have a theoretical model relating the droplet diameter to the spindle length. Let us now build a generative model. For spindle, droplet pair _i_, we assume\n", "\n", "\\begin{align}\n", "l_i = \\frac{\\gamma d_i}{\\left(1+(\\gamma d/\\phi)^3\\right)^{\\frac{1}{3}}} + e_i.\n", "\\end{align}\n", "\n", "We will assume that $e_i$ is Normally distributed with variance $\\sigma^2$. This leads us to our statistical model.\n", "\n", "\\begin{align}\n", "&\\mu_i = \\frac{\\gamma d_i}{\\left(1+(\\gamma d_i/\\phi)^3\\right)^{\\frac{1}{3}}}, \\\\[1em]\n", "&l_i \\sim \\text{Norm}(\\mu_i, \\sigma) \\;\\forall i,\n", "\\end{align}\n", "\n", "which is equivalently stated as\n", "\n", "\\begin{align}\n", "l_i \\sim \\text{Norm}\\left(\\frac{\\gamma d_i}{\\left(1+(\\gamma d_i/\\phi)^3\\right)^{\\frac{1}{3}}}, \\sigma\\right) \\;\\forall i.\n", "\\end{align}\n", "\n", "Importantly, note that this model builds upon our first model. Generally, when doing modeling, it is a good idea to build more complex models on your initial baseline model such that the models are related to each other by limiting behavior. This gives you a continuum of model and a sound basis for making comparisons among models.\n", "\n", "Note that we are assuming the droplet diameters are known. When we generate data sets for prior predictive checks, we will randomly generate them from about 20 µm to 200 µm, since this is the range achievable with the microfluidic device." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Checking model assumptions\n", "\n", "In deriving the mathematical model, we made a series of assumptions. It is generally a good idea to check to see if assumptions in the mathematical modeling are realized in the experiment. If they are not, you may need to relax the assumptions and have a potentially more complicated model (which may suffer from identifiability issues). This underscores the interconnection between modeling and experimental design. You can allow for modeling assumptions and identifiability if you design your experimental parameters to meet the assumptions (e.g., choosing the appropriate range of droplet sizes)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Is $V_\\mathrm{s} / V_0 \\ll 1$?\n", "\n", "Let's do a quick verification that the droplet volume is indeed much larger than the spindle volume. Remember, the spindle volume for a prolate spheroid of length $l$ and width $w$ is $V_\\mathrm{s} = \\pi l w^2 / 6$." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"ff6151f4-d5a2-4429-bedd-efe0ffc52fa1\":{\"version\":\"3.2.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1131\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1132\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1133\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1140\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1141\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1138\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1168\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1159\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1160\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1161\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[670],\"dtype\":\"int32\",\"order\":\"little\"}],[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[670],\"dtype\":\"float64\",\"order\":\"little\"}],[\"__dummy_cat\",{\"type\":\"ndarray\",\"array\":[\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"],\"shape\":[670],\"dtype\":\"object\",\"order\":\"little\"}],[\"__ECDF\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[670],\"dtype\":\"float64\",\"order\":\"little\"}],[\"__label\",{\"type\":\"ndarray\",\"array\":[\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"],\"shape\":[670],\"dtype\":\"object\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1169\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1170\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Circle\",\"id\":\"p1165\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"__ECDF\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Circle\",\"id\":\"p1166\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"__ECDF\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Circle\",\"id\":\"p1167\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"__ECDF\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1139\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1152\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1153\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1154\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1155\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1156\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1157\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1158\"}]}},\"toolbar_location\":\"above\",\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1147\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1148\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1149\"},\"axis_label\":\"ECDF\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1150\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1142\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1143\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1144\"},\"axis_label\":\"Vs/V0\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1145\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1146\",\"attributes\":{\"axis\":{\"id\":\"p1142\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1151\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1147\"}}}],\"frame_width\":375,\"frame_height\":275}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"mode\",\"kind\":\"Any\",\"default\":\"warn\"},{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationAreaBase1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"ff6151f4-d5a2-4429-bedd-efe0ffc52fa1\",\"roots\":{\"p1131\":\"b2423d71-4280-4ba2-92bf-279332230115\"},\"root_ids\":[\"p1131\"]}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1131" } }, "output_type": "display_data" } ], "source": [ "# Compute spindle volume\n", "spindle_volume = np.pi * df['Spindle Length (um)'] * df['Spindle Width (um)']**2 / 6\n", "\n", "# Compute the ratio V_s / V_0 (taking care of units)\n", "vol_ratio = spindle_volume / df['Droplet Volume (uL)'] * 1e-9\n", "\n", "# Plot an ECDF of the results\n", "bokeh.io.show(iqplot.ecdf(vol_ratio.values, x_axis_label='Vs/V0'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that for pretty much all spindles that were measured, $V_\\mathrm{s} / V_0$ is small, so this is a sound assumption." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "#### Do all spindles have the same aspect ratio $k$?\n", "\n", "In setting up our model, we assumed that all spindles had the same aspect ratio. We can check this assumption because we have the data to do so available to us." ] }, { "cell_type": "code", "execution_count": 5, "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false } }, "outputs": [ { "data": { "text/html": [ "\n", "
\n" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/javascript": [ "(function(root) {\n", " function embed_document(root) {\n", " const docs_json = {\"a522e69e-2628-4cb1-8d46-e2fbe06216c3\":{\"version\":\"3.2.1\",\"title\":\"Bokeh Application\",\"roots\":[{\"type\":\"object\",\"name\":\"Figure\",\"id\":\"p1174\",\"attributes\":{\"x_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1175\"},\"y_range\":{\"type\":\"object\",\"name\":\"DataRange1d\",\"id\":\"p1176\"},\"x_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1183\"},\"y_scale\":{\"type\":\"object\",\"name\":\"LinearScale\",\"id\":\"p1184\"},\"title\":{\"type\":\"object\",\"name\":\"Title\",\"id\":\"p1181\"},\"renderers\":[{\"type\":\"object\",\"name\":\"GlyphRenderer\",\"id\":\"p1211\",\"attributes\":{\"data_source\":{\"type\":\"object\",\"name\":\"ColumnDataSource\",\"id\":\"p1202\",\"attributes\":{\"selected\":{\"type\":\"object\",\"name\":\"Selection\",\"id\":\"p1203\",\"attributes\":{\"indices\":[],\"line_indices\":[]}},\"selection_policy\":{\"type\":\"object\",\"name\":\"UnionRenderers\",\"id\":\"p1204\"},\"data\":{\"type\":\"map\",\"entries\":[[\"index\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[670],\"dtype\":\"int32\",\"order\":\"little\"}],[\"x\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"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\"},\"shape\":[670],\"dtype\":\"float64\",\"order\":\"little\"}],[\"__dummy_cat\",{\"type\":\"ndarray\",\"array\":[\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"],\"shape\":[670],\"dtype\":\"object\",\"order\":\"little\"}],[\"__ECDF\",{\"type\":\"ndarray\",\"array\":{\"type\":\"bytes\",\"data\":\"4VdjIj1Q2T+640oC857AP3Vpqo98k+E/p0tTfeSb7D/1QOXsFn7lP2mqj3yTEec/eqBydgu/2j9JYN4TOgzQP26QzR1XEtg/NndcSWDe0z8pFi2r4AbZP+XsFn41JsI/SWDeEzoM4D+kBypnt/DrP0i+yYijts8/0bIKbpDNzT8T6YHK2S3cP5rqI99kxNE/9O9ap0tT3T8QpVi0rIKrPycjjtp+htA/WGMiPVA52z9JD1TObuHHPwtukM0dV7I/pLafIezF4z9yJYF5T+jQP26QzR1XEsg/32TEUdvPwD9t7riSwLznP5Ri0bIKbuA/lGLRsgpu0D8jjtp+hrCnP0lg3hM6DKA/HlcSmPeE7j8F5j2hwwDRP3CDbO64kuA/VM5u4Vdj4j/VR77JiKPmP7mSwLwndGg/0gOVs1v41T8QpVi0rIKLP62CG2Rzx8U/F341JtIDtT8m0gOVs1voP94TOgwQpcg/lbNb+NWY6D8LbpDNHVfSP7mSwLwndFg/dBggSrFoyT+sMZEeqJzdP6vgBtncceU/6DBAlGLR4j/rI99kxFHrPxy1/QxhL94/8k1GHLX97D/9u9bp0lS/P/H8u9bp0uQ/288Q9uL55z/xqzGRHqjcP9FhgCjFouU/1zpdmuojzz9ChwGiFIvWPzZ3XElg3uM/H6ic3cKv5j91aaqPfJPBP5rqI99kxOE/8asxkR6ozD+/GhPpgcrJP+SbjDhq+8k/P/JNRhy17T8ruEE2d1zpP3qgcnYLv6o/cdT2M4S92D9yJYF5T+jgP+gwQJRi0dI/C26QzR1Xwj+n+sg3GXHkP6apPvJNRqw/yTcZcdT24z8YIEqxaFnlP8x7QocBoqQ/xaJlFdwg2z8NYS+ef9faP8BrnS5N9bE/nd3Cr8ZE2j92C78aE+nhP+Ko7WcIe9E/ZHPHlQTm3T+yueNKAvPOP8+/a50uTdU/UyxaVsEN0j+NifRA5eymPxQ6DBClWNQ/L55/1zpduj9JD1TObuHnP6S2nyHsxdM/L55/1zpdyj/km4w4avupPxd+NSbSA8U/C26QzR1Xcj8f+SYjjtrePyBKsWhZBec/jThq+xnC7j/TVB/5JiPuPypnt/CrMbE/hwGiFIuWxT85avsZwl7cP2YV3CCbO+4/C26QzR1Xgj92ujTVR77pP8RR288Q9uI/N8jmjisJ7D/LKrhBNnfMP6ntZwh78dw/fjUm0gOV0z+dLk31kW/SP0lg3hM6DLA/EKVYtKyCmz9WcINs7riyPx0GiFIsWsY/gxtkc8eV5D/km4w4avvZPyxaVsENstk/5JuMOGr7uT/fZMRR28+wPwXmPaHDAME/VR/5JiOOyj91aaqPfJOhP+t0aaqPfLM/e/H8u9bp0j+Y94QOA0TpPzDvCR0GiNI/wbwndBgg6j9oCHvx/LvGP7X9DGEvnt8/o2UV3CCb2z+5ksC8J3ToP0+XpvrIN9k/xvPvWqdLwz8JzHtChwHiP4Ns7riSwOw/LAnMe0KH4T9CNndcSWDOP+jftU6Xpuo/P0PYi+ff5T/4hA4DRCmmPwodBohSLOo/Ch0GiFIsyj+amZmZmZm5P0bLKrhBNtc/l1Vwg2zu2D/+Xet0aarvP6Ah7MXz79o/feSbjDhq2z98QocBohTrPwKiFIuWVeA/n9BhgCjF4j9MpAcqZ7fQP+Ko7WcIe+E/dWmqj3yT0T9WcINs7rjiP4F5T+gwQOQ/T5em+sg3yT8ElbNb+NW4PxPpgcrZLew/DwNEKRYt6z9fPP+udbrkP6apPvJNRsw/Efbi+Xet0z9IvsmIo7bvP/czhL14/t0/xaJlFdwgyz+NOGr7GcLeP5B8kxFHbd8/32TEUdvPkD/4hA4DRCnGP7uFX42J9OA/+net06Wp7j/4hA4DRCm2P8k3GXHU9tM/TfWRbzLi6D8/Q9iL59/VP7DGRHqgctY/qJzdwq/G5D9e63Rpqo/cP0KHAaIUi+Y/XPjVmEgP1D/Dr8ZEeqDSP26QzR1XErg/pVi0rIIb5D/1QOXsFn7VPyBKsWhZBdc/Z7fwqzGRnj+sMZEeqJzNPwgqZ7fwq9E/NndcSWDekz/9u9bp0lTfP70ndBggSuE/r3W6NNVH3j9igCjFomWFP94TOgwQpdg/hrAXz79rvT9nt/CrMZHeP3Vpqo98k7E/O12a6iPf5D/BDbK540riP+64ksC8J+Q/xABRikXL6j9FeqBydgvvP+8JHQaIUuw/C26QzR1Xoj9Pl6b6yDe5Pzz/rnW6NNU/F341JtID1T811Ue+yYjjP7zW6dJUH+k/GsJePP+u1T82d1xJYN6zPypnt/CrMdE/BJWzW/jVyD/Aa50uTfXRP1m0rIIbZNM/W6dLU33kuz+NifRA5ezmP404avsZws4/AVGKRcsq2D/7yDcZcdTWP0+XpvrIN6k/AqIUi5ZV0D8pxaJlFdzgP3QYIEqxaOk/WGMiPVA56z/pgcrZLfzqP6apPvJNRrw/jYn0QOXsxj96oHJ2C7/KP/4MYS+ef8c/oHJ2C78asz+NifRA5ezWP+eOKwnMe+I/EKVYtKyC6z+xaFkFN8jmPwwQpVi0rOI/+SYjjtp+5j978fy71unCP9GyCm6Qzd0/Kme38Ksx4T/QEPbi+XftP3HU9jOEveg/HLX9DGEvvj8C857QYYDoP4r0QOXsFu4/HQaIUixa5j9nt/CrMZGuP1z41ZhID+Q//bvW6dJUrz+5ksC8J3R4P7EXz79rne4/1PYzhL147j/NzMzMzMzsPzlq+xnCXuw/wl48/6516j8/8k1GHLXdP/iEDgNEKeY/gCjFomUV3D+HAaIUi5blP8JePP+uddo/yOaOKwnM2z8ZcdT2M4TdP+t0aaqPfNM/W6dLU33k6z9EKRYtq+DmP8qIo7afIew/L031kW8y4j8Ie/H8u9bpP8x7QocBotQ/swpukM0dxz+yueNKAvO+P17rdGmqj+w/BohSLFpW4T8FN8jmjivpPzZ3XElg3sM/YoAoxaJlpT9QObuFX43pP2KAKMWiZZU/x5UE5j2h4z8sWlbBDbLpP5lID1TObuE/VnCDbO640j+QzR1XEpjnP78aE+mBytk/UtvPEPbi6T9WcINs7rjCPzUm0gOVs9s/2dxxJYF57z+DbO64ksDcP1Uf+SYjjto/ek/oMECU4j/Yi+fftU63P9IDlbNb+MU/T+gwQJRi4T9AlGLRsgruPyTfZMRR2+8/I47afoawxz9MU33km4zYPzyuJDDvCa0/W6dLU33k2z/ObuFXYyLtPwtukM0dV5I/LavgBtnc4T+BeU/oMEDEP6Bydgu/GuM/hrAXz79r7T9nt/CrMZF+P1unS1N95Ms/MzMzMzMz4z/Me0KHAaLEP8x7QocBorQ/7mcIe/H82z88riQw7wmdPwAAAAAAAPA/wGudLk31wT9rTKQHKmfnP9vPEPbi+dc/eK3Tpak+0j8u/GpMpAfqP+C1Tpem+ug/63Rpqo98wz8KHQaIUizaP/bi+Xet0+U/Kme38KsxwT+p7WcIe/HsP2Evnn/XOt0/YI2J9EDl7D++yYijtp/hPxYtq+AG2cw/7MXz71qn6z9lxFHbzxDmP99kxFHbz6A/236GsBfP3z93XElg3hPaP8bz71qnS9M/B9nccSWB6T+GsBfPv2vdP2KAKMWiZdU/GsJePP+u5T+qPvJNRhzVPxClWLSsgts/w6/GRHqg4j/l7BZ+NSbSP5MRR20/Q8g/rYIbZHPHtT/eEzoMEKXoP2Evnn/XOs0/8fy71unS1D8LbpDNHVfiP42J9EDl7JY/+IQOA0Qp1j94rdOlqT7iP+sj32TEUds/lgTmPaHD4D+5ksC8J3S4P/p3rdOlqd4/1KWpPvJN5j+bO64kMO/pPwSVs1v41eg/rDGRHqic7T/XOl2a6iPfP55/1zpdmuo/8FqnS1N95D/fZMRR28/gP/Oe0GGAKOU/uuNKAvOe0D/xqzGRHqi8P4mjtp8h7OU/Xzz/rnW61D9igCjFomXFP3qgcnYLv7o/c8eVBOY94T+5ksC8J3SoP/+udbo01ec/dBggSrFo2T+amZmZmZnJPybSA5WzW9g/1+nSVB/55j8xQJRi0bLqP4pFyyq4QeY/ObuFX42J1D8QpVi0rIK7P0KHAaIUi7Y/ocMAUYpF6z8jjtp+hrDnPwu/GhPpgeo/XPjVmEgPxD9nt/CrMZHuP0kPVM5u4dc/MzMzMzMz0z9nt/CrMZGOP1N95JuMOOo/WbSsghtk4z8OsrnjSgLTP4F5T+gwQLQ/p/rINxlxxD/km4w4avuZP6qPfJMRR+0/srnjSgLz3j9P6DBAlGLBPzZ3XElg3qM/Z7fwqzGRvj9snS5N9ZHvP6Bydgu/GsM/r3W6NNVH7j/OHVcSmPfkP0i+yYijtt8/Z7fwqzGRzj+PKwnMe0LnP8WiZRXcILs/4/l3rdOl6T8pFi2r4AbpP0I2d1xJYO4/Ij1QObuF3z8Yz79rnS7tPwSVs1v41dg/oHJ2C78a0z+mqT7yTUbsP9GyCm6Qzb0/gXlP6DBA1D8UOgwQpVjkPxKY94QOA+Q/DrK540oC4z+zCm6QzR3XP7ZOl6b6yNc/IZs7riQw7z/q0lQf+SbjP7zW6dJUH9k/bT9D2Ivn3z9ORhy1/QzhP0dtP0PYi+c/uZLAvCd0iD9kc8eVBObtPw9Uzm7hV+M/L55/1zpd2j+uJDDvCR3mPxsT6YHK2e0/SL7JiKO2vz/cIJs7riTQP1cSmPeEDuM/hrAXz79rzT+EvXj+XevUPzyuJDDvCc0/zHtChwGi5D81JtIDlbPLP/GrMZEeqOw/8fy71unSxD8NYS+ef9fqPyOO2n6GsNc/oCHsxfPv6j+4QTZ3XEngP3n+Xet0aeo/5JuMOGr76T9LAvOe0GHgP0lg3hM6DMA/5ewWfjUm4j/WmEgPVM7uP5qZmZmZmdk//gxhL55/1z/uuJLAvCfUP1bBDbK54+o/7RZ+NSbS4z+amZmZmZnpP4LK2S38auw/tFv41ZhI7z/G8+9ap0vjP2DeEzoMEOU/EkdtP0PY6z/7GcJePP/uP2MiPVA5u+U/0bIKbpDN7T/LKrhBNnfcPxYtq+AG2ew/x0R6oHJ26z9TLFpWwQ3iP5em+sg3GdE//bvW6dJUzz8iPVA5u4XPP4cBohSLltU/kxFHbT9D2D/ObuFXYyLdP53dwq/GROo/ZmZmZmZm5j995JuMOGrrPxXcIJs7ruQ/jtp+hrAX7z/bfoawF8/vP6IUi5ZVcOM/hL14/l3r5D+QfJMRR23vP/4MYS+ef+c/b+FXYyI9wD9oCHvx/LvWP754/l3rdOk/Efbi+Xet4z9tP0PYi+fPP4AoxaJlFew/T+gwQJRi0T/L2S38akzkP5rqI99kxME/Q9iL59+17j+QzR1XEpjXPzKRHqic3eI/Y9GyCm6Q7T86DBClWLTsP/xqTKQHKuc/+NWYSA9U7j/Yi+fftU7nPzLiqO1nCNs/EKVYtKyCyz8+ocMAUYrlP7ZOl6b6yOc/2Ivn37VO1z978fy71uniP3qgcnYLv+o/JyOO2n6G4D+tghtkc8flP0qxaFkFN+g/5j2hwwBR6j9+NSbSA5XjPzDvCR0GiMI/JYF5T+gw4D/U9jOEvXjeP1kFN8jmjus/AVGKRcsq6D9MpAcqZ7fgP6Bydgu/GqM/KHQYIEqx6D8w7wkdBojiPy+ef9c6Xeo/pqk+8k1G3D/Pv2udLk3lP8BrnS5N9eE/WlbBDbK54z9tP0PYi+fvP5JvMuKo7ec/fZMRR20/4z+jZRXcIJvrP9ot/GpMpOc/swpukM0d5z/hBtnccSXhP9VHvsmIo9Y/9zOEvXj+zT9ukM0dVxLoP7mSwLwndJg/vxoT6YHK6T9Gyyq4QTbnP6Ah7MXz78o/uZLAvCd0yD+K9EDl7BbeP4zn37VOl+Y/lGLRsgpusD9dmuoj32TkPxd+NSbSA+U/nS5N9ZFv4j+TwLwndBjgP4AoxaJlFcw/sMZEeqBy5j/7yDcZcdTmP/271unSVO8/c3YLvxoT6T8dBohSLFrWP62CG2Rzx9U/9ZFvMuKo7T9ChwGiFIvGPzz/rnW6NOU/3sKvxkR64D+IUixaVsHtP3Ay4qjtZ+g/PP+udbo0xT9CNndcSWDePzSEvXj+Xes/yyq4QTZ37D8AAAAAAADgP2KAKMWiZeU/IuzF8+9a5z9oCHvx/LvmP2tMpAcqZ9c/HGRzx5UE5j/hV2MiPVDpPyUw7wkdBug/d1xJYN4T6j8Vi5ZVcIPsPyOO2n6GsLc/TFN95JuM6D+A1zpdmurjP8WiZRXcIOs/Fi2r4AbZ3D+GX42J9EDlP2/hV2MiPeA/PK4kMO8J3T8ctf0MYS/OP0+XpvrIN+k/VR/5JiOO6j/dcSWBeU/oP4pFyyq4QdY/tf0MYS+e7z/SA5WzW/jlPykWLavgBsk/tKyCG2Rz5z8F5j2hwwDhP0V6oHJ2C98/6yPfZMRRyz/cIJs7riTgPwNEKRYtq+A/avsZwl483z9q+xnCXjzvP6o+8k1GHOU/NSbSA5Wz6z9v4VdjIj3QP/czhL14/u0/YS+ef9c67T9RikXLKrjhPzyuJDDvCb0/aVkFN8jm7j9S288Q9uLZP5yMOGr7GeI/uZLAvCd02D9igCjFomW1Pxy1/QxhL+4/yOaOKwnM6z8IKme38KvhP7rjSgLznuA/l1Vwg2zu6D/o37VOl6baP5Ri0bIKbsA/kxFHbT9D6D+XpvrINxnhP2XEUdvPENY/PK4kMO8J7T/rdGmqj3zjP9iL59+1Tsc/32TEUdvP0D89UDm7hV/tP5EeqJzdwu8/B9nccSWB2T+9J3QYIErRPzm7hV+NieQ/Ij1QObuF7z+6NNVHvsnoP42J9EDl7LY/hQ4DRCkW7T+n+sg3GXHUP7fwqzGRHug/9O9ap0tT7T+LllVwg2zuP3+GsBfPv+s/XElg3hM67D+3nyHsxfPvP0Yctf0MYe8/GXHU9jOE7T8R9uL5d63DPzgZcdT2M+Q/H/kmI47a7j/XOl2a6iPvP63Tpak+8u0/7mcIe/H86z9B5ewWfjXmP+RKAvOe0OE/MuKo7WcI6z8tq+AG2dzRP9GyCm6Qza0/srnjSgLz7j8=\"},\"shape\":[670],\"dtype\":\"float64\",\"order\":\"little\"}],[\"__label\",{\"type\":\"ndarray\",\"array\":[\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"],\"shape\":[670],\"dtype\":\"object\",\"order\":\"little\"}]]}}},\"view\":{\"type\":\"object\",\"name\":\"CDSView\",\"id\":\"p1212\",\"attributes\":{\"filter\":{\"type\":\"object\",\"name\":\"AllIndices\",\"id\":\"p1213\"}}},\"glyph\":{\"type\":\"object\",\"name\":\"Circle\",\"id\":\"p1208\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"__ECDF\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"}}},\"nonselection_glyph\":{\"type\":\"object\",\"name\":\"Circle\",\"id\":\"p1209\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"__ECDF\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.1},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.1},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.1}}},\"muted_glyph\":{\"type\":\"object\",\"name\":\"Circle\",\"id\":\"p1210\",\"attributes\":{\"x\":{\"type\":\"field\",\"field\":\"x\"},\"y\":{\"type\":\"field\",\"field\":\"__ECDF\"},\"line_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"},\"line_alpha\":{\"type\":\"value\",\"value\":0.2},\"fill_color\":{\"type\":\"value\",\"value\":\"#1f77b3\"},\"fill_alpha\":{\"type\":\"value\",\"value\":0.2},\"hatch_alpha\":{\"type\":\"value\",\"value\":0.2}}}}}],\"toolbar\":{\"type\":\"object\",\"name\":\"Toolbar\",\"id\":\"p1182\",\"attributes\":{\"tools\":[{\"type\":\"object\",\"name\":\"PanTool\",\"id\":\"p1195\"},{\"type\":\"object\",\"name\":\"WheelZoomTool\",\"id\":\"p1196\"},{\"type\":\"object\",\"name\":\"BoxZoomTool\",\"id\":\"p1197\",\"attributes\":{\"overlay\":{\"type\":\"object\",\"name\":\"BoxAnnotation\",\"id\":\"p1198\",\"attributes\":{\"syncable\":false,\"level\":\"overlay\",\"visible\":false,\"left_units\":\"canvas\",\"right_units\":\"canvas\",\"bottom_units\":\"canvas\",\"top_units\":\"canvas\",\"line_color\":\"black\",\"line_alpha\":1.0,\"line_width\":2,\"line_dash\":[4,4],\"fill_color\":\"lightgrey\",\"fill_alpha\":0.5}}}},{\"type\":\"object\",\"name\":\"SaveTool\",\"id\":\"p1199\"},{\"type\":\"object\",\"name\":\"ResetTool\",\"id\":\"p1200\"},{\"type\":\"object\",\"name\":\"HelpTool\",\"id\":\"p1201\"}]}},\"toolbar_location\":\"above\",\"left\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1190\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1191\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1192\"},\"axis_label\":\"ECDF\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1193\"}}}],\"below\":[{\"type\":\"object\",\"name\":\"LinearAxis\",\"id\":\"p1185\",\"attributes\":{\"ticker\":{\"type\":\"object\",\"name\":\"BasicTicker\",\"id\":\"p1186\",\"attributes\":{\"mantissas\":[1,2,5]}},\"formatter\":{\"type\":\"object\",\"name\":\"BasicTickFormatter\",\"id\":\"p1187\"},\"axis_label\":\"k\",\"major_label_policy\":{\"type\":\"object\",\"name\":\"AllLabels\",\"id\":\"p1188\"}}}],\"center\":[{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1189\",\"attributes\":{\"axis\":{\"id\":\"p1185\"}}},{\"type\":\"object\",\"name\":\"Grid\",\"id\":\"p1194\",\"attributes\":{\"dimension\":1,\"axis\":{\"id\":\"p1190\"}}}],\"frame_width\":375,\"frame_height\":275}}],\"defs\":[{\"type\":\"model\",\"name\":\"ReactiveHTML1\"},{\"type\":\"model\",\"name\":\"FlexBox1\",\"properties\":[{\"name\":\"align_content\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"align_items\",\"kind\":\"Any\",\"default\":\"flex-start\"},{\"name\":\"flex_direction\",\"kind\":\"Any\",\"default\":\"row\"},{\"name\":\"flex_wrap\",\"kind\":\"Any\",\"default\":\"wrap\"},{\"name\":\"justify_content\",\"kind\":\"Any\",\"default\":\"flex-start\"}]},{\"type\":\"model\",\"name\":\"FloatPanel1\",\"properties\":[{\"name\":\"config\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"contained\",\"kind\":\"Any\",\"default\":true},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"right-top\"},{\"name\":\"offsetx\",\"kind\":\"Any\",\"default\":null},{\"name\":\"offsety\",\"kind\":\"Any\",\"default\":null},{\"name\":\"theme\",\"kind\":\"Any\",\"default\":\"primary\"},{\"name\":\"status\",\"kind\":\"Any\",\"default\":\"normalized\"}]},{\"type\":\"model\",\"name\":\"GridStack1\",\"properties\":[{\"name\":\"mode\",\"kind\":\"Any\",\"default\":\"warn\"},{\"name\":\"ncols\",\"kind\":\"Any\",\"default\":null},{\"name\":\"nrows\",\"kind\":\"Any\",\"default\":null},{\"name\":\"allow_resize\",\"kind\":\"Any\",\"default\":true},{\"name\":\"allow_drag\",\"kind\":\"Any\",\"default\":true},{\"name\":\"state\",\"kind\":\"Any\",\"default\":[]}]},{\"type\":\"model\",\"name\":\"drag1\",\"properties\":[{\"name\":\"slider_width\",\"kind\":\"Any\",\"default\":5},{\"name\":\"slider_color\",\"kind\":\"Any\",\"default\":\"black\"},{\"name\":\"value\",\"kind\":\"Any\",\"default\":50}]},{\"type\":\"model\",\"name\":\"click1\",\"properties\":[{\"name\":\"terminal_output\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"debug_name\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"clears\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"FastWrapper1\",\"properties\":[{\"name\":\"object\",\"kind\":\"Any\",\"default\":null},{\"name\":\"style\",\"kind\":\"Any\",\"default\":null}]},{\"type\":\"model\",\"name\":\"NotificationAreaBase1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"NotificationArea1\",\"properties\":[{\"name\":\"js_events\",\"kind\":\"Any\",\"default\":{\"type\":\"map\"}},{\"name\":\"notifications\",\"kind\":\"Any\",\"default\":[]},{\"name\":\"position\",\"kind\":\"Any\",\"default\":\"bottom-right\"},{\"name\":\"_clear\",\"kind\":\"Any\",\"default\":0},{\"name\":\"types\",\"kind\":\"Any\",\"default\":[{\"type\":\"map\",\"entries\":[[\"type\",\"warning\"],[\"background\",\"#ffc107\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-exclamation-triangle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]},{\"type\":\"map\",\"entries\":[[\"type\",\"info\"],[\"background\",\"#007bff\"],[\"icon\",{\"type\":\"map\",\"entries\":[[\"className\",\"fas fa-info-circle\"],[\"tagName\",\"i\"],[\"color\",\"white\"]]}]]}]}]},{\"type\":\"model\",\"name\":\"Notification\",\"properties\":[{\"name\":\"background\",\"kind\":\"Any\",\"default\":null},{\"name\":\"duration\",\"kind\":\"Any\",\"default\":3000},{\"name\":\"icon\",\"kind\":\"Any\",\"default\":null},{\"name\":\"message\",\"kind\":\"Any\",\"default\":\"\"},{\"name\":\"notification_type\",\"kind\":\"Any\",\"default\":null},{\"name\":\"_destroyed\",\"kind\":\"Any\",\"default\":false}]},{\"type\":\"model\",\"name\":\"TemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"BootstrapTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]},{\"type\":\"model\",\"name\":\"MaterialTemplateActions1\",\"properties\":[{\"name\":\"open_modal\",\"kind\":\"Any\",\"default\":0},{\"name\":\"close_modal\",\"kind\":\"Any\",\"default\":0}]}]}};\n", " const render_items = [{\"docid\":\"a522e69e-2628-4cb1-8d46-e2fbe06216c3\",\"roots\":{\"p1174\":\"b916ab5a-6a49-4322-a748-8c2136b9c958\"},\"root_ids\":[\"p1174\"]}];\n", " root.Bokeh.embed.embed_items_notebook(docs_json, render_items);\n", " }\n", " if (root.Bokeh !== undefined) {\n", " embed_document(root);\n", " } else {\n", " let attempts = 0;\n", " const timer = setInterval(function(root) {\n", " if (root.Bokeh !== undefined) {\n", " clearInterval(timer);\n", " embed_document(root);\n", " } else {\n", " attempts++;\n", " if (attempts > 100) {\n", " clearInterval(timer);\n", " console.log(\"Bokeh: ERROR: Unable to run BokehJS code because BokehJS library is missing\");\n", " }\n", " }\n", " }, 10, root)\n", " }\n", "})(window);" ], "application/vnd.bokehjs_exec.v0+json": "" }, "metadata": { "application/vnd.bokehjs_exec.v0+json": { "id": "p1174" } }, "output_type": "display_data" } ], "source": [ "# Compute the aspect ratio\n", "k = df['Spindle Width (um)'] / df['Spindle Length (um)']\n", "\n", "# Plot ECDF\n", "bokeh.io.show(iqplot.ecdf(k.values, x_axis_label='k'))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The median aspect ratio is about 0.4, and we see spindle lengths about $\\pm 25\\%$ of that. This could be significant variation. We may wish to update the model to account for nonconstant $k$. Going forward, we will assume $k$ is constant, but you may wish to perform the analysis that follows with nonconstant $k$ as an exercise.\n", "\n", "Importantly, these checks of the model highlight the importance of checking your assumptions against your data. Always a good idea!" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing environment" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python implementation: CPython\n", "Python version : 3.11.4\n", "IPython version : 8.12.2\n", "\n", "numpy : 1.24.3\n", "pandas : 2.0.3\n", "bokeh : 3.2.1\n", "holoviews : 1.17.0\n", "iqplot : 0.3.4\n", "bebi103 : 0.1.15\n", "jupyterlab: 4.0.5\n", "\n" ] } ], "source": [ "%load_ext watermark\n", "%watermark -v -p numpy,pandas,bokeh,holoviews,iqplot,bebi103,jupyterlab" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.4" } }, "nbformat": 4, "nbformat_minor": 4 }