{ "cells": [ { "cell_type": "markdown", "id": "3bbe8002-bdf3-490c-bde0-80dd3713a3d0", "metadata": {}, "source": [ "## A simple `A <-> B` reaction whose rate constants are to be estimated from a given time evolution of [A] and [B] \n", "### (values given on a *variable-time* grid.)\n", "\n", "Assume the reaction is known to be 1st order (won't verify that.) \n", "\n", "In PART 1, a time evolution of [A] and [B] is obtained by simulation \n", "\n", "In PART 2, the time evolutions generated in Part 1 are taken as a _starting point,_ to estimate the rate constants of `A <-> B` \n", "\n", "In PART 3, we'll repeat what we did in Part 2, but this time showing the full details of how the answer is arrived at" ] }, { "cell_type": "markdown", "id": "4118b513-1c98-455d-b58f-37898bb03bdd", "metadata": {}, "source": [ "### TAGS : \"numerical\", \"uniform compartment\", \"under-the-hood\"" ] }, { "cell_type": "code", "execution_count": 1, "id": "e4c76b22-243f-4c4b-b6ca-7d9bf89ec74c", "metadata": {}, "outputs": [], "source": [ "LAST_REVISED = \"Sep. 8, 2024\"\n", "LIFE123_VERSION = \"1.0.0.beta.38\" # Version this experiment is based on" ] }, { "cell_type": "code", "execution_count": 2, "id": "97b7f9e2-99b8-42a1-bede-b9e551b9e024", "metadata": {}, "outputs": [], "source": [ "#import set_path # Using MyBinder? Uncomment this before running the next cell!\n", " # Importing this local file will add the project's home directory to sys.path" ] }, { "cell_type": "code", "execution_count": 3, "id": "3924c013", "metadata": { "lines_to_next_cell": 2, "tags": [] }, "outputs": [], "source": [ "#import sys\n", "#sys.path.append(\"C:/some_path/my_env_or_install\") # CHANGE to the folder containing your venv or libraries installation!\n", "# NOTE: If any of the imports below can't find a module, uncomment the lines above, or try: import set_path\n", "\n", "import ipynbname\n", "import numpy as np\n", "\n", "from life123 import check_version, UniformCompartment, PlotlyHelper, Numerical" ] }, { "cell_type": "code", "execution_count": 4, "id": "1276f744-1b85-46e1-8d9d-f6fa90e73b49", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OK\n" ] } ], "source": [ "check_version(LIFE123_VERSION)" ] }, { "cell_type": "code", "execution_count": null, "id": "b5208e04-e3b8-4769-8937-d61751e55a47", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "9329208b-070f-4902-8f37-0f11ddf75ed6", "metadata": {}, "source": [ "# PART 1 - We'll generate the time evolution of [A] and [B] by simulating a reaction of KNOWN rate constants...\n", "## but pretend you don't see this section! (because we later want to estimate those rate constants)" ] }, { "cell_type": "code", "execution_count": 5, "id": "72b4245c-de4e-480d-a501-3495b7ed8bc4", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 1 (at temp. 25 C)\n", "0: A <-> B (kF = 12 / kR = 2 / delta_G = -4,441.7 / K = 6) | 1st order in all reactants & products\n", "Set of chemicals involved in the above reactions: {'A', 'B'}\n" ] } ], "source": [ "# Instantiate the simulator and specify the accuracy preset\n", "dynamics = UniformCompartment(preset=\"mid\")\n", "\n", "# Reaction A <-> B (mostly in the forward direction)\n", "dynamics.add_reaction(reactants=\"A\", products=\"B\",\n", " forward_rate=12., reverse_rate=2.) \n", " \n", "dynamics.describe_reactions()" ] }, { "cell_type": "markdown", "id": "98a9fbe5-2090-4d38-9c5f-94fbf7c3eae2", "metadata": {}, "source": [ "### Run the simulation" ] }, { "cell_type": "code", "execution_count": 6, "id": "ae304704-c8d9-4cef-9e0b-2587bb3909ef", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "2 species:\n", " Species 0 (A). Conc: 40.0\n", " Species 1 (B). Conc: 10.0\n", "Set of chemicals involved in reactions: {'A', 'B'}\n" ] } ], "source": [ "dynamics.set_conc({\"A\": 40., \"B\": 10.}, snapshot=True) # Set the initial concentrations\n", "dynamics.describe_state()" ] }, { "cell_type": "code", "execution_count": 7, "id": "2502cd11-0df9-4303-8895-98401a1df7b8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "39 total step(s) taken\n", "Number of step re-do's because of elective soft aborts: 2\n", "Norm usage: {'norm_A': 24, 'norm_B': 22, 'norm_C': 22, 'norm_D': 22}\n" ] } ], "source": [ "dynamics.enable_diagnostics() # To save diagnostic information for the simulation run, below\n", "\n", "dynamics.single_compartment_react(initial_step=0.01, duration=0.5,\n", " snapshots={\"initial_caption\": \"1st reaction step\",\n", " \"final_caption\": \"last reaction step\"},\n", " variable_steps=True)" ] }, { "cell_type": "markdown", "id": "199b6238-f6ed-44a8-8130-a003444d7658", "metadata": {}, "source": [ "### Plots of changes of concentration with time" ] }, { "cell_type": "code", "execution_count": 8, "id": "a2c0e793-5457-46a5-9150-388c9f562cf0", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
Concentration=%{y}", "legendgroup": "A", "line": { "color": "darkturquoise", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.0016, 0.00352, 0.00544, 0.007744000000000001, 0.0105088, 0.0132736, 0.0160384, 0.018803200000000003, 0.021568000000000004, 0.024885760000000003, 0.028203520000000003, 0.031521280000000006, 0.03483904000000001, 0.03882035200000001, 0.04280166400000001, 0.04678297600000001, 0.05156055040000001, 0.05633812480000001, 0.061115699200000005, 0.06684878848, 0.07258187776000001, 0.07831496704000002, 0.08519467417600002, 0.09207438131200002, 0.10033002987520002, 0.10858567843840003, 0.11849245671424002, 0.130380590645248, 0.14464635136245763, 0.1589121120796672, 0.17603102494031872, 0.19657372037310053, 0.2212249548924387, 0.25080643631564453, 0.2863042140234915, 0.3289015472729079, 0.3800183471722075, 0.4413585070513671, 0.5149666989063586 ], "xaxis": "x", "y": [ 40, 39.264, 38.400583680000004, 37.56037599068161, 36.57922850272618, 35.43982898922546, 34.344532440573715, 33.29163175448994, 32.27948590584255, 31.30651738898792, 30.18414823313308, 29.113911598145645, 28.093385999331552, 27.120262426667562, 26.00675445927339, 24.95531160873677, 23.962474466734328, 22.8374768427134, 21.787725856572635, 20.808188558560524, 19.711364647902297, 18.702575388903462, 17.774754834316262, 16.750734040476118, 15.825342730915095, 14.82182903553432, 13.93430052971745, 12.992361996425823, 12.018806236615541, 11.04497851404361, 10.265644297251626, 9.517222200753451, 8.834360185525007, 8.250593250795292, 7.7918345994122795, 7.469312994549506, 7.274626912668843, 7.180327827281463, 7.148149418454293, 7.14269565072923 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
Concentration=%{y}", "legendgroup": "B", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.0016, 0.00352, 0.00544, 0.007744000000000001, 0.0105088, 0.0132736, 0.0160384, 0.018803200000000003, 0.021568000000000004, 0.024885760000000003, 0.028203520000000003, 0.031521280000000006, 0.03483904000000001, 0.03882035200000001, 0.04280166400000001, 0.04678297600000001, 0.05156055040000001, 0.05633812480000001, 0.061115699200000005, 0.06684878848, 0.07258187776000001, 0.07831496704000002, 0.08519467417600002, 0.09207438131200002, 0.10033002987520002, 0.10858567843840003, 0.11849245671424002, 0.130380590645248, 0.14464635136245763, 0.1589121120796672, 0.17603102494031872, 0.19657372037310053, 0.2212249548924387, 0.25080643631564453, 0.2863042140234915, 0.3289015472729079, 0.3800183471722075, 0.4413585070513671, 0.5149666989063586 ], "xaxis": "x", "y": [ 10, 10.736, 11.599416320000001, 12.4396240093184, 13.420771497273826, 14.56017101077455, 15.655467559426297, 16.708368245510073, 17.720514094157465, 18.693482611012094, 19.815851766866935, 20.88608840185437, 21.906614000668462, 22.879737573332452, 23.993245540726623, 25.044688391263243, 26.037525533265686, 27.162523157286614, 28.21227414342738, 29.19181144143949, 30.288635352097717, 31.297424611096552, 32.22524516568375, 33.249265959523896, 34.17465726908492, 35.17817096446569, 36.06569947028256, 37.007638003574186, 37.98119376338447, 38.9550214859564, 39.73435570274838, 40.482777799246556, 41.165639814475, 41.74940674920472, 42.20816540058773, 42.5306870054505, 42.725373087331164, 42.81967217271854, 42.85185058154571, 42.85730434927078 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "shapes": [ { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0, "x1": 0, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0016, "x1": 0.0016, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00352, "x1": 0.00352, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.00544, "x1": 0.00544, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.007744000000000001, "x1": 0.007744000000000001, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0105088, "x1": 0.0105088, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0132736, "x1": 0.0132736, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.0160384, "x1": 0.0160384, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.018803200000000003, "x1": 0.018803200000000003, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.021568000000000004, "x1": 0.021568000000000004, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.024885760000000003, "x1": 0.024885760000000003, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.028203520000000003, "x1": 0.028203520000000003, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.031521280000000006, "x1": 0.031521280000000006, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.03483904000000001, "x1": 0.03483904000000001, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.03882035200000001, "x1": 0.03882035200000001, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.04280166400000001, "x1": 0.04280166400000001, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.04678297600000001, "x1": 0.04678297600000001, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.05156055040000001, "x1": 0.05156055040000001, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.05633812480000001, "x1": 0.05633812480000001, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.061115699200000005, "x1": 0.061115699200000005, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.06684878848, "x1": 0.06684878848, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.07258187776000001, "x1": 0.07258187776000001, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.07831496704000002, "x1": 0.07831496704000002, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.08519467417600002, "x1": 0.08519467417600002, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.09207438131200002, "x1": 0.09207438131200002, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.10033002987520002, "x1": 0.10033002987520002, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.10858567843840003, "x1": 0.10858567843840003, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.11849245671424002, "x1": 0.11849245671424002, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.130380590645248, "x1": 0.130380590645248, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.14464635136245763, "x1": 0.14464635136245763, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.1589121120796672, "x1": 0.1589121120796672, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.17603102494031872, "x1": 0.17603102494031872, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.19657372037310053, "x1": 0.19657372037310053, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.2212249548924387, "x1": 0.2212249548924387, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.25080643631564453, "x1": 0.25080643631564453, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.2863042140234915, "x1": 0.2863042140234915, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.3289015472729079, "x1": 0.3289015472729079, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.3800183471722075, "x1": 0.3800183471722075, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.4413585070513671, "x1": 0.4413585070513671, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" }, { "line": { "color": "gray", "dash": "dot", "width": 1 }, "type": "line", "x0": 0.5149666989063586, "x1": 0.5149666989063586, "xref": "x", "y0": 0, "y1": 1, "yref": "y domain" } ], "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "Reaction `A <-> B` . Changes in concentrations with time (time steps shown in dashed lines)" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.0007573039689799391, 0.5157240028753386 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ 5.158550723032478, 44.84144927696753 ], "title": { "text": "Concentration" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dynamics.plot_history(colors=['darkturquoise', 'green'], show_intervals=True)" ] }, { "cell_type": "markdown", "id": "cdcb5bde-65ff-43dc-ad43-897f5dd726a4", "metadata": {}, "source": [ "Notice the variable time steps (vertical dashed lines), more frequent when there's more change" ] }, { "cell_type": "code", "execution_count": null, "id": "f3007827-f052-4d96-8064-47b10a42ad91", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "042a23ff-84de-4273-ae7b-09b73b740b4c", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "1f447754-5017-4b48-a4f5-fc9049b7de64", "metadata": {}, "source": [ "# PART 2 - This is the starting point of fitting the data from part 1 \n", "### We're given the data of the above curves - i.e. the system history, and we want to estimate the rate constants (forward and reverse) of the reaction `A <-> B`" ] }, { "cell_type": "markdown", "id": "b5f75cfb-45b4-4fd2-ad4c-c2a2084ca62d", "metadata": {}, "source": [ "Let's start by taking stock of the actual data (saved during the simulation of part 1):" ] }, { "cell_type": "code", "execution_count": 9, "id": "f26c98c3-802c-4c38-a726-06ac4a77211a", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABcaption
00.00000040.00000010.000000Initialized state
10.00160039.26400010.7360001st reaction step
20.00352038.40058411.599416
30.00544037.56037612.439624
40.00774436.57922913.420771
50.01050935.43982914.560171
60.01327434.34453215.655468
70.01603833.29163216.708368
80.01880332.27948617.720514
90.02156831.30651718.693483
100.02488630.18414819.815852
110.02820429.11391220.886088
120.03152128.09338621.906614
130.03483927.12026222.879738
140.03882026.00675423.993246
150.04280224.95531225.044688
160.04678323.96247426.037526
170.05156122.83747727.162523
180.05633821.78772628.212274
190.06111620.80818929.191811
200.06684919.71136530.288635
210.07258218.70257531.297425
220.07831517.77475532.225245
230.08519516.75073433.249266
240.09207415.82534334.174657
250.10033014.82182935.178171
260.10858613.93430136.065699
270.11849212.99236237.007638
280.13038112.01880637.981194
290.14464611.04497938.955021
300.15891210.26564439.734356
310.1760319.51722240.482778
320.1965748.83436041.165640
330.2212258.25059341.749407
340.2508067.79183542.208165
350.2863047.46931342.530687
360.3289027.27462742.725373
370.3800187.18032842.819672
380.4413597.14814942.851851
390.5149677.14269642.857304last reaction step
\n", "
" ], "text/plain": [ " SYSTEM TIME A B caption\n", "0 0.000000 40.000000 10.000000 Initialized state\n", "1 0.001600 39.264000 10.736000 1st reaction step\n", "2 0.003520 38.400584 11.599416 \n", "3 0.005440 37.560376 12.439624 \n", "4 0.007744 36.579229 13.420771 \n", "5 0.010509 35.439829 14.560171 \n", "6 0.013274 34.344532 15.655468 \n", "7 0.016038 33.291632 16.708368 \n", "8 0.018803 32.279486 17.720514 \n", "9 0.021568 31.306517 18.693483 \n", "10 0.024886 30.184148 19.815852 \n", "11 0.028204 29.113912 20.886088 \n", "12 0.031521 28.093386 21.906614 \n", "13 0.034839 27.120262 22.879738 \n", "14 0.038820 26.006754 23.993246 \n", "15 0.042802 24.955312 25.044688 \n", "16 0.046783 23.962474 26.037526 \n", "17 0.051561 22.837477 27.162523 \n", "18 0.056338 21.787726 28.212274 \n", "19 0.061116 20.808189 29.191811 \n", "20 0.066849 19.711365 30.288635 \n", "21 0.072582 18.702575 31.297425 \n", "22 0.078315 17.774755 32.225245 \n", "23 0.085195 16.750734 33.249266 \n", "24 0.092074 15.825343 34.174657 \n", "25 0.100330 14.821829 35.178171 \n", "26 0.108586 13.934301 36.065699 \n", "27 0.118492 12.992362 37.007638 \n", "28 0.130381 12.018806 37.981194 \n", "29 0.144646 11.044979 38.955021 \n", "30 0.158912 10.265644 39.734356 \n", "31 0.176031 9.517222 40.482778 \n", "32 0.196574 8.834360 41.165640 \n", "33 0.221225 8.250593 41.749407 \n", "34 0.250806 7.791835 42.208165 \n", "35 0.286304 7.469313 42.530687 \n", "36 0.328902 7.274627 42.725373 \n", "37 0.380018 7.180328 42.819672 \n", "38 0.441359 7.148149 42.851851 \n", "39 0.514967 7.142696 42.857304 last reaction step" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = dynamics.get_history() \n", "df" ] }, { "cell_type": "markdown", "id": "fe1139cb-e3d3-4f4f-aa78-89e400a5c008", "metadata": {}, "source": [ "The reaction is mostly forward; the reactant `A` gets consumed, while the product `B` gets produced" ] }, { "cell_type": "markdown", "id": "543b6f5a-f54c-426e-8dc6-342b62d50078", "metadata": {}, "source": [ "#### Let's extract some columns, as Numpy arrays:" ] }, { "cell_type": "code", "execution_count": 10, "id": "9e3a5eda-d426-4aa3-b1fd-65730a4af8d2", "metadata": {}, "outputs": [], "source": [ "t_arr = df[\"SYSTEM TIME\"].to_numpy() # The independent variable : Time" ] }, { "cell_type": "code", "execution_count": 11, "id": "44a76d0e-5bf0-4d34-b37f-37c11eff9a8f", "metadata": {}, "outputs": [], "source": [ "A_conc = df[\"A\"].to_numpy()" ] }, { "cell_type": "code", "execution_count": 12, "id": "2955b13a-483d-4ad1-962e-f2d968a3d11b", "metadata": {}, "outputs": [], "source": [ "B_conc = df[\"B\"].to_numpy()" ] }, { "cell_type": "markdown", "id": "1d41750e-d6bf-4288-8555-51acfce9e82a", "metadata": {}, "source": [ "### **Here, we take the easy way out,** using a specialized Life123 function!\n", "(in Part 3, we'll do a step-by-step derivation, to see how it works)" ] }, { "cell_type": "code", "execution_count": 13, "id": "344c1ead-1de4-49f7-b3cf-7958513d10b4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reaction A <-> B\n", "Total REACTANT + PRODUCT has a median of 50, \n", " with standard deviation 5.617e-15 (ideally should be zero)\n", "The sum of the time derivatives of the reactant and the product \n", " has a median of 0 (ideally should be zero)\n", "Least square fit to B'(t) = kF * A(t) + kR * (- B(t) )\n", "\n", "-> ESTIMATED RATE CONSTANTS: kF = 12.19 , kR = 1.925\n" ] }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "B'(t) :
A(t)=%{x}
value=%{y}", "legendgroup": "wide_variable_0", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B'(t)", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 40, 39.264, 38.400583680000004, 37.56037599068161, 36.57922850272618, 35.43982898922546, 34.344532440573715, 33.29163175448994, 32.27948590584255, 31.30651738898792, 30.18414823313308, 29.113911598145645, 28.093385999331552, 27.120262426667562, 26.00675445927339, 24.95531160873677, 23.962474466734328, 22.8374768427134, 21.787725856572635, 20.808188558560524, 19.711364647902297, 18.702575388903462, 17.774754834316262, 16.750734040476118, 15.825342730915095, 14.82182903553432, 13.93430052971745, 12.992361996425823, 12.018806236615541, 11.04497851404361, 10.265644297251626, 9.517222200753451, 8.834360185525007, 8.250593250795292, 7.7918345994122795, 7.469312994549506, 7.274626912668843, 7.180327827281463, 7.148149418454293, 7.14269565072923 ], "xaxis": "x", "y": [ 464.6836363636344, 455.3163636363638, 443.6520857600003, 432.2613953152463, 419.60159803709917, 404.13340244366145, 388.49053000859385, 373.45314936544537, 358.99782362232736, 345.72118484726616, 330.43465935484755, 315.0864188189512, 300.4510831823404, 287.114799437325, 271.8891182015868, 256.73446247607126, 243.0563079822996, 227.5996591661342, 212.3764188950022, 198.79474282284946, 183.63687244523953, 168.89758025764013, 155.93174282454765, 141.67842212354662, 128.6214227785497, 114.53020236514567, 101.85769782410011, 89.08605311327938, 75.69771311480508, 61.44649325461387, 49.67029963520736, 38.95633409289792, 28.8956252590948, 19.96616210361549, 12.588932275060301, 7.033274179008686, 3.3314704935433497, 1.2446916885349424, 0.3198178894039643, -0.171634172683639 ], "yaxis": "y" }, { "hovertemplate": "Linear Fit :
A(t)=%{x}
value=%{y}", "legendgroup": "wide_variable_1", "line": { "color": "red", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "Linear Fit", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 40, 39.264, 38.400583680000004, 37.56037599068161, 36.57922850272618, 35.43982898922546, 34.344532440573715, 33.29163175448994, 32.27948590584255, 31.30651738898792, 30.18414823313308, 29.113911598145645, 28.093385999331552, 27.120262426667562, 26.00675445927339, 24.95531160873677, 23.962474466734328, 22.8374768427134, 21.787725856572635, 20.808188558560524, 19.711364647902297, 18.702575388903462, 17.774754834316262, 16.750734040476118, 15.825342730915095, 14.82182903553432, 13.93430052971745, 12.992361996425823, 12.018806236615541, 11.04497851404361, 10.265644297251626, 9.517222200753451, 8.834360185525007, 8.250593250795292, 7.7918345994122795, 7.469312994549506, 7.274626912668843, 7.180327827281463, 7.148149418454293, 7.14269565072923 ], "xaxis": "x", "y": [ 468.18488295978176, 457.7993252211335, 445.6158197267704, 433.75980686009586, 419.91501897111374, 403.8371664781118, 388.3816426371268, 373.52435884855964, 359.2421589150533, 345.51278295081323, 329.67524263531266, 314.5733345284124, 300.17288951448245, 286.44132558684447, 270.72882383709305, 255.89211129206993, 241.8823728907915, 226.00774275477048, 211.1949037904119, 197.37283698923758, 181.89576082990195, 167.66092510237394, 154.56862355241464, 140.11885849806237, 127.06083556832138, 112.90044232796632, 100.3766943091384, 87.08517661381521, 73.34751417454443, 59.60601411983362, 48.60897538858717, 38.04813177980729, 28.412394162029116, 20.17496860965251, 13.70151146013798, 9.15046968124689, 6.403290952601736, 5.072654273264291, 4.618590791182228, 4.541633699331925 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Curve vs Fit:" }, "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "d/dt B(t) as a function of A(t), alongside its least-square fit" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 7.14269565072923, 40 ], "title": { "text": "A(t)" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -26.19144068004283, 494.20468946714095 ], "title": { "text": "B'(t)" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "dynamics.estimate_rate_constants_simple(t=t_arr,\n", " A_conc=A_conc, B_conc=B_conc,\n", " reactant_name=\"A\", product_name=\"B\")" ] }, { "cell_type": "markdown", "id": "94af05ee-037a-4223-a1a7-fa681baf5ae1", "metadata": {}, "source": [ "### The least-square fit is good... and the values estimated from the data for kF and kR are in good agreement with the values we used in the simulation to get that data, respectively 12 and 2 (see PART 1, above) " ] }, { "cell_type": "markdown", "id": "4ac5c182-7d13-459e-b073-b946867a9e49", "metadata": {}, "source": [ "Note that our data set is _quite skimpy_ in the number of points:" ] }, { "cell_type": "code", "execution_count": 14, "id": "0cb00de3-91bb-4b6d-8e66-788ea743100b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "40" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "len(B_conc)" ] }, { "cell_type": "markdown", "id": "703cab8c-1850-4799-809f-a8fd43d61c26", "metadata": {}, "source": [ "and that it uses a _variable_ grid, with more points where there's more change, such as in the early times:" ] }, { "cell_type": "code", "execution_count": 15, "id": "0d1d5afc-4e04-457a-9548-f608a71cce1a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0. , 0.0016 , 0.00352 , 0.00544 , 0.007744 ,\n", " 0.0105088 , 0.0132736 , 0.0160384 , 0.0188032 , 0.021568 ,\n", " 0.02488576, 0.02820352, 0.03152128, 0.03483904, 0.03882035,\n", " 0.04280166, 0.04678298, 0.05156055, 0.05633812, 0.0611157 ,\n", " 0.06684879, 0.07258188, 0.07831497, 0.08519467, 0.09207438,\n", " 0.10033003, 0.10858568, 0.11849246, 0.13038059, 0.14464635,\n", " 0.15891211, 0.17603102, 0.19657372, 0.22122495, 0.25080644,\n", " 0.28630421, 0.32890155, 0.38001835, 0.44135851, 0.5149667 ])" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t_arr # Time points in our data set" ] }, { "cell_type": "code", "execution_count": 16, "id": "b8aa3145-e2e7-4ac2-a565-9a20a990bbb4", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0.0016 , 0.00176 , 0.00192 , 0.002112 , 0.0025344 ,\n", " 0.0027648 , 0.0027648 , 0.0027648 , 0.0027648 , 0.00304128,\n", " 0.00331776, 0.00331776, 0.00331776, 0.00364954, 0.00398131,\n", " 0.00398131, 0.00437944, 0.00477757, 0.00477757, 0.00525533,\n", " 0.00573309, 0.00573309, 0.0063064 , 0.00687971, 0.00756768,\n", " 0.00825565, 0.00908121, 0.01089746, 0.01307695, 0.01426576,\n", " 0.01569234, 0.0188308 , 0.02259696, 0.02711636, 0.03253963,\n", " 0.03904756, 0.04685707, 0.05622848, 0.06747418, 0.07360819])" ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "np.gradient(t_arr) # Notice how it gets larger in later times, as bigger steps get taken" ] }, { "cell_type": "markdown", "id": "742366ab-5fb7-4244-9203-6c89689f743c", "metadata": {}, "source": [ "#### The variable time grid, and the skimpy number of data points, are best seen in the plot that was shown at the end of PART 1" ] }, { "cell_type": "code", "execution_count": null, "id": "a14bf79b-ebf8-4696-a92b-ec98e78ecd90", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "81203644-93d4-4e88-b6f0-219458d0fe8e", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "fb02e6dc-feb7-4b5d-9c7c-ee18ca4727bd", "metadata": {}, "source": [ "# PART 3 - investigate how the `estimate_rate_constants()` function used in part 2 works \n", "#### Again, the starting point are the time evolutions of [A] and [B] , that is the system history that was given to us" ] }, { "cell_type": "markdown", "id": "36f3e683-5794-460f-98a6-c0f404a641d7", "metadata": {}, "source": [ "Let's revisit the Numpy arrays that we had set up at the beginning of Part 2" ] }, { "cell_type": "code", "execution_count": 17, "id": "3df1e539-4874-4953-acd7-089fc38518c6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([0. , 0.0016 , 0.00352 , 0.00544 , 0.007744 ,\n", " 0.0105088 , 0.0132736 , 0.0160384 , 0.0188032 , 0.021568 ,\n", " 0.02488576, 0.02820352, 0.03152128, 0.03483904, 0.03882035,\n", " 0.04280166, 0.04678298, 0.05156055, 0.05633812, 0.0611157 ,\n", " 0.06684879, 0.07258188, 0.07831497, 0.08519467, 0.09207438,\n", " 0.10033003, 0.10858568, 0.11849246, 0.13038059, 0.14464635,\n", " 0.15891211, 0.17603102, 0.19657372, 0.22122495, 0.25080644,\n", " 0.28630421, 0.32890155, 0.38001835, 0.44135851, 0.5149667 ])" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "t_arr # The independent variable : Time" ] }, { "cell_type": "code", "execution_count": 18, "id": "d29137a5-5dba-4470-9d74-919f14cd939a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([40. , 39.264 , 38.40058368, 37.56037599, 36.5792285 ,\n", " 35.43982899, 34.34453244, 33.29163175, 32.27948591, 31.30651739,\n", " 30.18414823, 29.1139116 , 28.093386 , 27.12026243, 26.00675446,\n", " 24.95531161, 23.96247447, 22.83747684, 21.78772586, 20.80818856,\n", " 19.71136465, 18.70257539, 17.77475483, 16.75073404, 15.82534273,\n", " 14.82182904, 13.93430053, 12.992362 , 12.01880624, 11.04497851,\n", " 10.2656443 , 9.5172222 , 8.83436019, 8.25059325, 7.7918346 ,\n", " 7.46931299, 7.27462691, 7.18032783, 7.14814942, 7.14269565])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A_conc" ] }, { "cell_type": "code", "execution_count": 19, "id": "ef430e60-6431-44c9-9b50-469e433270fe", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([10. , 10.736 , 11.59941632, 12.43962401, 13.4207715 ,\n", " 14.56017101, 15.65546756, 16.70836825, 17.72051409, 18.69348261,\n", " 19.81585177, 20.8860884 , 21.906614 , 22.87973757, 23.99324554,\n", " 25.04468839, 26.03752553, 27.16252316, 28.21227414, 29.19181144,\n", " 30.28863535, 31.29742461, 32.22524517, 33.24926596, 34.17465727,\n", " 35.17817096, 36.06569947, 37.007638 , 37.98119376, 38.95502149,\n", " 39.7343557 , 40.4827778 , 41.16563981, 41.74940675, 42.2081654 ,\n", " 42.53068701, 42.72537309, 42.81967217, 42.85185058, 42.85730435])" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "B_conc" ] }, { "cell_type": "markdown", "id": "56744c87-7555-4bfa-a285-a06da3c39ff3", "metadata": {}, "source": [ "#### Let's verify that the stoichiometry is satified. From the reaction `A <-> B` we can infer that any drop in [A] corresponds to an equal increase in [B]. Their sum will remain constants:" ] }, { "cell_type": "code", "execution_count": 20, "id": "5c2b104b-7f9b-4cd6-9315-68a110351717", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([50., 50., 50., 50., 50., 50., 50., 50., 50., 50., 50., 50., 50.,\n", " 50., 50., 50., 50., 50., 50., 50., 50., 50., 50., 50., 50., 50.,\n", " 50., 50., 50., 50., 50., 50., 50., 50., 50., 50., 50., 50., 50.,\n", " 50.])" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "A_conc + B_conc" ] }, { "cell_type": "markdown", "id": "b61a3b6c-235b-4452-a7fb-38cf174be0f7", "metadata": {}, "source": [ "#### Just as expected!" ] }, { "cell_type": "code", "execution_count": 21, "id": "db27029c-4c13-40aa-a855-79ec186259f7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Incidentally, there's a function to verify that the stoichiometry \n", "# of a single reaction holds true across the entire simulation run \n", "# (overkill in this case!)\n", "dynamics.diagnostics.stoichiometry_checker_entire_run() " ] }, { "cell_type": "code", "execution_count": null, "id": "dbd5a0eb-5c1e-4249-b219-20010b648c41", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "a723c800-5c7c-4579-88fb-1fe968f0193e", "metadata": {}, "source": [ "### Now, let's investigate the rates of change of [A] and [B]" ] }, { "cell_type": "code", "execution_count": 22, "id": "83278f03-9f66-44ba-88eb-45a2bd9f742b", "metadata": {}, "outputs": [], "source": [ "# The rate of change of [A] with time\n", "Deriv_A = np.gradient(A_conc, t_arr, edge_order=2)\n", "\n", "# The rate of change of [B] with time\n", "Deriv_B = np.gradient(B_conc, t_arr, edge_order=2)" ] }, { "cell_type": "code", "execution_count": 23, "id": "a85508f3-9149-4906-9320-e74dd21a95cf", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([-6.82121026e-12, 1.36424205e-12, 1.36424205e-12, -4.54747351e-13,\n", " 6.82121026e-13, 4.54747351e-13, 0.00000000e+00, -4.54747351e-13,\n", " 4.54747351e-13, 0.00000000e+00, 4.54747351e-13, 4.54747351e-13,\n", " 4.54747351e-13, -4.54747351e-13, 4.54747351e-13, 0.00000000e+00,\n", " 4.54747351e-13, 4.54747351e-13, 0.00000000e+00, 6.82121026e-13,\n", " -2.27373675e-13, 0.00000000e+00, -4.54747351e-13, 0.00000000e+00,\n", " -3.41060513e-13, -1.13686838e-13, -2.27373675e-13, 0.00000000e+00,\n", " -5.68434189e-14, -1.70530257e-13, 3.97903932e-13, -1.13686838e-13,\n", " 2.27373675e-13, -4.26325641e-14, -4.26325641e-14, -9.94759830e-14,\n", " -5.68434189e-14, -8.52651283e-14, 2.84217094e-14, 1.42108547e-13])" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# As expected from the stoichiometry, the two derivatives are opposites: \n", "# when [A] increases by a certain amount, [B] decreases by that same amount\n", "Deriv_A + Deriv_B # Will be very close to zero throughout" ] }, { "cell_type": "code", "execution_count": 24, "id": "964ab34f-364c-4a46-945f-f39d4e7149d9", "metadata": { "tags": [] }, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "A'(t) :
t=%{x}
value=%{y}", "legendgroup": "wide_variable_0", "line": { "color": "aqua", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A'(t)", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.0016, 0.00352, 0.00544, 0.007744000000000001, 0.0105088, 0.0132736, 0.0160384, 0.018803200000000003, 0.021568000000000004, 0.024885760000000003, 0.028203520000000003, 0.031521280000000006, 0.03483904000000001, 0.03882035200000001, 0.04280166400000001, 0.04678297600000001, 0.05156055040000001, 0.05633812480000001, 0.061115699200000005, 0.06684878848, 0.07258187776000001, 0.07831496704000002, 0.08519467417600002, 0.09207438131200002, 0.10033002987520002, 0.10858567843840003, 0.11849245671424002, 0.130380590645248, 0.14464635136245763, 0.1589121120796672, 0.17603102494031872, 0.19657372037310053, 0.2212249548924387, 0.25080643631564453, 0.2863042140234915, 0.3289015472729079, 0.3800183471722075, 0.4413585070513671, 0.5149666989063586 ], "xaxis": "x", "y": [ -464.6836363636412, -455.31636363636244, -443.65208575999895, -432.2613953152468, -419.6015980370985, -404.133402443661, -388.49053000859385, -373.4531493654458, -358.9978236223269, -345.72118484726616, -330.4346593548471, -315.08641881895073, -300.45108318233997, -287.1147994373255, -271.88911820158637, -256.73446247607126, -243.05630798229913, -227.59965916613373, -212.3764188950022, -198.79474282284878, -183.63687244523976, -168.89758025764013, -155.9317428245481, -141.67842212354662, -128.62142277855003, -114.53020236514578, -101.85769782410034, -89.08605311327938, -75.69771311480514, -61.44649325461404, -49.67029963520696, -38.95633409289803, -28.895625259094572, -19.96616210361553, -12.588932275060344, -7.033274179008785, -3.3314704935434065, -1.2446916885350277, -0.31981788940393585, 0.17163417268378112 ], "yaxis": "y" }, { "hovertemplate": "B'(t) :
t=%{x}
value=%{y}", "legendgroup": "wide_variable_1", "line": { "color": "greenyellow", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B'(t)", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.0016, 0.00352, 0.00544, 0.007744000000000001, 0.0105088, 0.0132736, 0.0160384, 0.018803200000000003, 0.021568000000000004, 0.024885760000000003, 0.028203520000000003, 0.031521280000000006, 0.03483904000000001, 0.03882035200000001, 0.04280166400000001, 0.04678297600000001, 0.05156055040000001, 0.05633812480000001, 0.061115699200000005, 0.06684878848, 0.07258187776000001, 0.07831496704000002, 0.08519467417600002, 0.09207438131200002, 0.10033002987520002, 0.10858567843840003, 0.11849245671424002, 0.130380590645248, 0.14464635136245763, 0.1589121120796672, 0.17603102494031872, 0.19657372037310053, 0.2212249548924387, 0.25080643631564453, 0.2863042140234915, 0.3289015472729079, 0.3800183471722075, 0.4413585070513671, 0.5149666989063586 ], "xaxis": "x", "y": [ 464.6836363636344, 455.3163636363638, 443.6520857600003, 432.2613953152463, 419.60159803709917, 404.13340244366145, 388.49053000859385, 373.45314936544537, 358.99782362232736, 345.72118484726616, 330.43465935484755, 315.0864188189512, 300.4510831823404, 287.114799437325, 271.8891182015868, 256.73446247607126, 243.0563079822996, 227.5996591661342, 212.3764188950022, 198.79474282284946, 183.63687244523953, 168.89758025764013, 155.93174282454765, 141.67842212354662, 128.6214227785497, 114.53020236514567, 101.85769782410011, 89.08605311327938, 75.69771311480508, 61.44649325461387, 49.67029963520736, 38.95633409289792, 28.8956252590948, 19.96616210361549, 12.588932275060301, 7.033274179008686, 3.3314704935433497, 1.2446916885349424, 0.3198178894039643, -0.171634172683639 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Derivative" }, "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "d/dt A(t) and d/dt B(t) as a function of time" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 0.5149666989063586 ], "title": { "text": "t" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -516.3151515151565, 516.3151515151496 ], "title": { "text": "Time derivatives" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "PlotlyHelper.plot_curves(x=t_arr, y=[Deriv_A , Deriv_B], title=\"d/dt A(t) and d/dt B(t) as a function of time\",\n", " xlabel=\"t\", ylabel=\"Time derivatives\", curve_labels=[\"A'(t)\", \"B'(t)\"], \n", " legend_title=\"Derivative\", colors=['aqua', 'greenyellow'])" ] }, { "cell_type": "markdown", "id": "2e212588-3169-4f82-af8e-c998f1c87c94", "metadata": {}, "source": [ "The rate of changes of both [A] and [B] get smaller as the reaction marches towards equilibrium" ] }, { "cell_type": "code", "execution_count": null, "id": "a5be5194-232a-42d1-9ef0-499687db53fe", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "5eb72a33-d5d9-4675-9602-c8b3fa49d286", "metadata": {}, "source": [ "### Now, let's determine what kF and kR rate constants for `A <-> B` will yield the above data" ] }, { "cell_type": "markdown", "id": "f38690a4-b17d-4ba3-9fa8-26b597002528", "metadata": {}, "source": [ "Assuming that `A <-> B` is an elementary chemical reaction (i.e. occuring in a single step), \n", "OR THAT IT CAN BE APPROXIMATED AS ONE, \n", "then the rate of change of the reaction product concentration `B(t)` is the difference of the forward rate (producing `B`) and the reverse rate (consuming it): \n", "\n", "`B'(t) = kF * A(t) - kR * B(t)`\n", " \n", "We can re-write it as: \n", "`B'(t) = kF * {A(t)} + kR * {- B(t)}`       **(Eqn. 1)** \n", "\n", "`A(t)`, `B(t)` are given to us; `B'(t)` is a gradient we already computed numerically; `kF` and `kR` are the rate constants that we are trying to estimate. \n", "\n", "**If we can do a satisfactory Least Square Fit to express `B'(t)` as a linear function of `{A(t)}` and `{- B(t)}`**, as:\n", "\n", "`B'(t) = a * {A(t)} + b * {- B(t)}` , for some constants a and b, \n", "\n", "then, comparing with Eqn. 1, it immediately follows that \n", "* `kF = a` \n", "\n", "* `kR = b`" ] }, { "cell_type": "markdown", "id": "37d4919c-9218-48c8-953e-e065d9a3fca2", "metadata": {}, "source": [ "Let's carry it out! First, let's verify that `B'(t)` is indeed a linear function of `A(t)` and of `B(t)`.\n", "We already have, from our data, B'(t) as the Numpy array `Deriv_B` , and we also have A(t) and B(t) as, respectively, the Numpy arrays `A_conc` and `B_conc`" ] }, { "cell_type": "code", "execution_count": 25, "id": "ed4bb090-6951-46c6-b66a-575ce29bd885", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "A(t)=%{x}
B'(t)=%{y}", "legendgroup": "", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "", "orientation": "v", "showlegend": false, "type": "scatter", "x": [ 40, 39.264, 38.400583680000004, 37.56037599068161, 36.57922850272618, 35.43982898922546, 34.344532440573715, 33.29163175448994, 32.27948590584255, 31.30651738898792, 30.18414823313308, 29.113911598145645, 28.093385999331552, 27.120262426667562, 26.00675445927339, 24.95531160873677, 23.962474466734328, 22.8374768427134, 21.787725856572635, 20.808188558560524, 19.711364647902297, 18.702575388903462, 17.774754834316262, 16.750734040476118, 15.825342730915095, 14.82182903553432, 13.93430052971745, 12.992361996425823, 12.018806236615541, 11.04497851404361, 10.265644297251626, 9.517222200753451, 8.834360185525007, 8.250593250795292, 7.7918345994122795, 7.469312994549506, 7.274626912668843, 7.180327827281463, 7.148149418454293, 7.14269565072923 ], "xaxis": "x", "y": [ 464.6836363636344, 455.3163636363638, 443.6520857600003, 432.2613953152463, 419.60159803709917, 404.13340244366145, 388.49053000859385, 373.45314936544537, 358.99782362232736, 345.72118484726616, 330.43465935484755, 315.0864188189512, 300.4510831823404, 287.114799437325, 271.8891182015868, 256.73446247607126, 243.0563079822996, 227.5996591661342, 212.3764188950022, 198.79474282284946, 183.63687244523953, 168.89758025764013, 155.93174282454765, 141.67842212354662, 128.6214227785497, 114.53020236514567, 101.85769782410011, 89.08605311327938, 75.69771311480508, 61.44649325461387, 49.67029963520736, 38.95633409289792, 28.8956252590948, 19.96616210361549, 12.588932275060301, 7.033274179008686, 3.3314704935433497, 1.2446916885349424, 0.3198178894039643, -0.171634172683639 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "d/dt B(t) as a function of A(t)" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 7.14269565072923, 40 ], "title": { "text": "A(t)" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -25.99692698025686, 490.50892917120757 ], "title": { "text": "B'(t)" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "PlotlyHelper.plot_curves(x=A_conc, y=Deriv_B, title=\"d/dt B(t) as a function of A(t)\",\n", " xlabel=\"A(t)\", ylabel=\"B'(t)\", colors=\"green\")" ] }, { "cell_type": "markdown", "id": "edb3e52a-4a04-48d5-b8c9-2be9df1462de", "metadata": {}, "source": [ "As expected, it appears to be a straight line (green), and the rate of change in the product B is higher when the concentration of the reactant A is larger. " ] }, { "cell_type": "code", "execution_count": 26, "id": "257a295a-6e4f-4efa-adbb-e07362875b44", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "B(t)=%{x}
B'(t)=%{y}", "legendgroup": "", "line": { "color": "blue", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "", "orientation": "v", "showlegend": false, "type": "scatter", "x": [ 10, 10.736, 11.599416320000001, 12.4396240093184, 13.420771497273826, 14.56017101077455, 15.655467559426297, 16.708368245510073, 17.720514094157465, 18.693482611012094, 19.815851766866935, 20.88608840185437, 21.906614000668462, 22.879737573332452, 23.993245540726623, 25.044688391263243, 26.037525533265686, 27.162523157286614, 28.21227414342738, 29.19181144143949, 30.288635352097717, 31.297424611096552, 32.22524516568375, 33.249265959523896, 34.17465726908492, 35.17817096446569, 36.06569947028256, 37.007638003574186, 37.98119376338447, 38.9550214859564, 39.73435570274838, 40.482777799246556, 41.165639814475, 41.74940674920472, 42.20816540058773, 42.5306870054505, 42.725373087331164, 42.81967217271854, 42.85185058154571, 42.85730434927078 ], "xaxis": "x", "y": [ 464.6836363636344, 455.3163636363638, 443.6520857600003, 432.2613953152463, 419.60159803709917, 404.13340244366145, 388.49053000859385, 373.45314936544537, 358.99782362232736, 345.72118484726616, 330.43465935484755, 315.0864188189512, 300.4510831823404, 287.114799437325, 271.8891182015868, 256.73446247607126, 243.0563079822996, 227.5996591661342, 212.3764188950022, 198.79474282284946, 183.63687244523953, 168.89758025764013, 155.93174282454765, 141.67842212354662, 128.6214227785497, 114.53020236514567, 101.85769782410011, 89.08605311327938, 75.69771311480508, 61.44649325461387, 49.67029963520736, 38.95633409289792, 28.8956252590948, 19.96616210361549, 12.588932275060301, 7.033274179008686, 3.3314704935433497, 1.2446916885349424, 0.3198178894039643, -0.171634172683639 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "d/dt B(t) as a function of B(t)" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 10, 42.85730434927078 ], "title": { "text": "B(t)" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -25.99692698025686, 490.50892917120757 ], "title": { "text": "B'(t)" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "PlotlyHelper.plot_curves(x=B_conc, y=Deriv_B, title=\"d/dt B(t) as a function of B(t)\",\n", " xlabel=\"B(t)\", ylabel=\"B'(t)\", colors=\"blue\")" ] }, { "cell_type": "markdown", "id": "dff549b8-b9d3-4080-8c99-32a4f56c1b3c", "metadata": {}, "source": [ "#### Let's do the least-square fit we had set out to do: `B'(t) = a * {A(t)} + b * {- B(t)}` , for some a, b" ] }, { "cell_type": "code", "execution_count": 27, "id": "f2577edd-5da2-47d5-8b3d-475c8b7d5e38", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(12.185860088176147, 1.924952056726416)" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "a, b = Numerical.two_vector_least_square(V = A_conc, W = -B_conc, Y = Deriv_B)\n", "a, b" ] }, { "cell_type": "markdown", "id": "64e075f2-36fb-4334-8a80-4601acc49c7a", "metadata": {}, "source": [ "#### **Voila', those are, respectively, our estimated kF and kR!**" ] }, { "cell_type": "markdown", "id": "c9bb3d0f-f964-4111-ba27-7492b78fa22d", "metadata": {}, "source": [ "#### We just obtained the same values of the estimated kF and kR as were computed by a call to `estimate_rate_constants()` in Part 2" ] }, { "cell_type": "markdown", "id": "b5630424-9ae2-4506-af8e-5683ee1ad5f1", "metadata": {}, "source": [ "#### Visually verify the least-square fit" ] }, { "cell_type": "code", "execution_count": 28, "id": "d825b4dd-c4ed-4ad5-a355-1db6b1ac0dd7", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "B'(t) :
A(t)=%{x}
value=%{y}", "legendgroup": "wide_variable_0", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B'(t)", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 464.6836363636344, 455.3163636363638, 443.6520857600003, 432.2613953152463, 419.60159803709917, 404.13340244366145, 388.49053000859385, 373.45314936544537, 358.99782362232736, 345.72118484726616, 330.43465935484755, 315.0864188189512, 300.4510831823404, 287.114799437325, 271.8891182015868, 256.73446247607126, 243.0563079822996, 227.5996591661342, 212.3764188950022, 198.79474282284946, 183.63687244523953, 168.89758025764013, 155.93174282454765, 141.67842212354662, 128.6214227785497, 114.53020236514567, 101.85769782410011, 89.08605311327938, 75.69771311480508, 61.44649325461387, 49.67029963520736, 38.95633409289792, 28.8956252590948, 19.96616210361549, 12.588932275060301, 7.033274179008686, 3.3314704935433497, 1.2446916885349424, 0.3198178894039643, -0.171634172683639 ], "xaxis": "x", "y": [ 464.6836363636344, 455.3163636363638, 443.6520857600003, 432.2613953152463, 419.60159803709917, 404.13340244366145, 388.49053000859385, 373.45314936544537, 358.99782362232736, 345.72118484726616, 330.43465935484755, 315.0864188189512, 300.4510831823404, 287.114799437325, 271.8891182015868, 256.73446247607126, 243.0563079822996, 227.5996591661342, 212.3764188950022, 198.79474282284946, 183.63687244523953, 168.89758025764013, 155.93174282454765, 141.67842212354662, 128.6214227785497, 114.53020236514567, 101.85769782410011, 89.08605311327938, 75.69771311480508, 61.44649325461387, 49.67029963520736, 38.95633409289792, 28.8956252590948, 19.96616210361549, 12.588932275060301, 7.033274179008686, 3.3314704935433497, 1.2446916885349424, 0.3198178894039643, -0.171634172683639 ], "yaxis": "y" }, { "hovertemplate": "Linear Fit :
A(t)=%{x}
value=%{y}", "legendgroup": "wide_variable_1", "line": { "color": "red", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "Linear Fit", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 464.6836363636344, 455.3163636363638, 443.6520857600003, 432.2613953152463, 419.60159803709917, 404.13340244366145, 388.49053000859385, 373.45314936544537, 358.99782362232736, 345.72118484726616, 330.43465935484755, 315.0864188189512, 300.4510831823404, 287.114799437325, 271.8891182015868, 256.73446247607126, 243.0563079822996, 227.5996591661342, 212.3764188950022, 198.79474282284946, 183.63687244523953, 168.89758025764013, 155.93174282454765, 141.67842212354662, 128.6214227785497, 114.53020236514567, 101.85769782410011, 89.08605311327938, 75.69771311480508, 61.44649325461387, 49.67029963520736, 38.95633409289792, 28.8956252590948, 19.96616210361549, 12.588932275060301, 7.033274179008686, 3.3314704935433497, 1.2446916885349424, 0.3198178894039643, -0.171634172683639 ], "xaxis": "x", "y": [ 468.18488295978176, 457.7993252211335, 445.6158197267704, 433.75980686009586, 419.91501897111374, 403.8371664781118, 388.3816426371268, 373.52435884855964, 359.2421589150533, 345.51278295081323, 329.67524263531266, 314.5733345284124, 300.17288951448245, 286.44132558684447, 270.72882383709305, 255.89211129206993, 241.8823728907915, 226.00774275477048, 211.1949037904119, 197.37283698923758, 181.89576082990195, 167.66092510237394, 154.56862355241464, 140.11885849806237, 127.06083556832138, 112.90044232796632, 100.3766943091384, 87.08517661381521, 73.34751417454443, 59.60601411983362, 48.60897538858717, 38.04813177980729, 28.412394162029116, 20.17496860965251, 13.70151146013798, 9.15046968124689, 6.403290952601736, 5.072654273264291, 4.618590791182228, 4.541633699331925 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Curve vs Fit:" }, "tracegroupgap": 0 }, "margin": { "t": 60 }, "template": { "data": { "bar": [ { "error_x": { "color": "#2a3f5f" }, "error_y": { "color": "#2a3f5f" }, "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "bar" } ], "barpolar": [ { "marker": { "line": { "color": "#E5ECF6", "width": 0.5 }, "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "barpolar" } ], "carpet": [ { "aaxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "baxis": { "endlinecolor": "#2a3f5f", "gridcolor": "white", "linecolor": "white", "minorgridcolor": "white", "startlinecolor": "#2a3f5f" }, "type": "carpet" } ], "choropleth": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "choropleth" } ], "contour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "contour" } ], "contourcarpet": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "contourcarpet" } ], "heatmap": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmap" } ], "heatmapgl": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "heatmapgl" } ], "histogram": [ { "marker": { "pattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 } }, "type": "histogram" } ], "histogram2d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2d" } ], "histogram2dcontour": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "histogram2dcontour" } ], "mesh3d": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "type": "mesh3d" } ], "parcoords": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "parcoords" } ], "pie": [ { "automargin": true, "type": "pie" } ], "scatter": [ { "fillpattern": { "fillmode": "overlay", "size": 10, "solidity": 0.2 }, "type": "scatter" } ], "scatter3d": [ { "line": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatter3d" } ], "scattercarpet": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattercarpet" } ], "scattergeo": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergeo" } ], "scattergl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattergl" } ], "scattermapbox": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scattermapbox" } ], "scatterpolar": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolar" } ], "scatterpolargl": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterpolargl" } ], "scatterternary": [ { "marker": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "type": "scatterternary" } ], "surface": [ { "colorbar": { "outlinewidth": 0, "ticks": "" }, "colorscale": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "type": "surface" } ], "table": [ { "cells": { "fill": { "color": "#EBF0F8" }, "line": { "color": "white" } }, "header": { "fill": { "color": "#C8D4E3" }, "line": { "color": "white" } }, "type": "table" } ] }, "layout": { "annotationdefaults": { "arrowcolor": "#2a3f5f", "arrowhead": 0, "arrowwidth": 1 }, "autotypenumbers": "strict", "coloraxis": { "colorbar": { "outlinewidth": 0, "ticks": "" } }, "colorscale": { "diverging": [ [ 0, "#8e0152" ], [ 0.1, "#c51b7d" ], [ 0.2, "#de77ae" ], [ 0.3, "#f1b6da" ], [ 0.4, "#fde0ef" ], [ 0.5, "#f7f7f7" ], [ 0.6, "#e6f5d0" ], [ 0.7, "#b8e186" ], [ 0.8, "#7fbc41" ], [ 0.9, "#4d9221" ], [ 1, "#276419" ] ], "sequential": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ], "sequentialminus": [ [ 0, "#0d0887" ], [ 0.1111111111111111, "#46039f" ], [ 0.2222222222222222, "#7201a8" ], [ 0.3333333333333333, "#9c179e" ], [ 0.4444444444444444, "#bd3786" ], [ 0.5555555555555556, "#d8576b" ], [ 0.6666666666666666, "#ed7953" ], [ 0.7777777777777778, "#fb9f3a" ], [ 0.8888888888888888, "#fdca26" ], [ 1, "#f0f921" ] ] }, "colorway": [ "#636efa", "#EF553B", "#00cc96", "#ab63fa", "#FFA15A", "#19d3f3", "#FF6692", "#B6E880", "#FF97FF", "#FECB52" ], "font": { "color": "#2a3f5f" }, "geo": { "bgcolor": "white", "lakecolor": "white", "landcolor": "#E5ECF6", "showlakes": true, "showland": true, "subunitcolor": "white" }, "hoverlabel": { "align": "left" }, "hovermode": "closest", "mapbox": { "style": "light" }, "paper_bgcolor": "white", "plot_bgcolor": "#E5ECF6", "polar": { "angularaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "radialaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "scene": { "xaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "yaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" }, "zaxis": { "backgroundcolor": "#E5ECF6", "gridcolor": "white", "gridwidth": 2, "linecolor": "white", "showbackground": true, "ticks": "", "zerolinecolor": "white" } }, "shapedefaults": { "line": { "color": "#2a3f5f" } }, "ternary": { "aaxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "baxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" }, "bgcolor": "#E5ECF6", "caxis": { "gridcolor": "white", "linecolor": "white", "ticks": "" } }, "title": { "x": 0.05 }, "xaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 }, "yaxis": { "automargin": true, "gridcolor": "white", "linecolor": "white", "ticks": "", "title": { "standoff": 15 }, "zerolinecolor": "white", "zerolinewidth": 2 } } }, "title": { "text": "d/dt B(t) as a function of A(t), alongside its least-square fit" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.171634172683639, 464.6836363636344 ], "title": { "text": "A(t)" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -26.19144068004283, 494.20468946714095 ], "title": { "text": "B'(t)" }, "type": "linear" } } }, "image/png": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Plot B'(t) vs. its least-square approx\n", "PlotlyHelper.plot_curves(x=Deriv_B , y=[Deriv_B, (a * A_conc - b * B_conc)],\n", " title=\"d/dt B(t) as a function of A(t), alongside its least-square fit\",\n", " xlabel=\"A(t)\", ylabel=\"B'(t)\", \n", " curve_labels=[\"B'(t)\", \"Linear Fit\"], legend_title=\"Curve vs Fit:\", colors=['green', 'red'])" ] }, { "cell_type": "markdown", "id": "e39163f0-24fd-47bd-9365-3c734a8f83db", "metadata": {}, "source": [ "_Virtually indistinguishable lines! And the same plot we saw in Part 2!_" ] }, { "cell_type": "code", "execution_count": null, "id": "306660cc-049f-43e2-a4f3-ff5f19b01e00", "metadata": {}, "outputs": [], "source": [] } ], "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.8.10" } }, "nbformat": 4, "nbformat_minor": 5 }