{ "cells": [ { "cell_type": "markdown", "id": "80abc7ee-f50e-48b7-9ea7-15ce6226b0bf", "metadata": {}, "source": [ "## One-bin `2A <-> B` reaction, \n", "### COMPARING 1st-order and 2nd-order kinetics in *forward* direction; reverse direction 1-st order\n", "\n", "Diffusion not applicable (just 1 bin)\n", "\n", "See also the experiment _\"reactions_single_compartment/react_4\"_ \n", "\n", "LAST REVISED: July 14, 2023" ] }, { "cell_type": "code", "execution_count": 1, "id": "9bbb329b-3c10-45dd-8d43-bba25487f64f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Added 'D:\\Docs\\- MY CODE\\BioSimulations\\life123-Win7' to sys.path\n" ] } ], "source": [ "import set_path # Importing this module will add the project's home directory to sys.path" ] }, { "cell_type": "code", "execution_count": 2, "id": "f86597fb", "metadata": {}, "outputs": [], "source": [ "from experiments.get_notebook_info import get_notebook_basename\n", "\n", "from src.modules.chemicals.chem_data import ChemData as chem\n", "from src.life_1D.bio_sim_1d import BioSim1D\n", "\n", "import plotly.express as px\n", "from src.modules.html_log.html_log import HtmlLog as log\n", "from src.modules.visualization.graphic_log import GraphicLog" ] }, { "cell_type": "code", "execution_count": 3, "id": "ecba68b6-d062-47fe-9a17-ec339907323e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-> Output will be LOGGED into the file 'reaction_7.log.htm'\n" ] } ], "source": [ "# Initialize the HTML logging\n", "log_file = get_notebook_basename() + \".log.htm\" # Use the notebook base filename for the log file\n", "\n", "# Set up the use of some specified graphic (Vue) components\n", "GraphicLog.config(filename=log_file,\n", " components=[\"vue_cytoscape_1\"],\n", " extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")" ] }, { "cell_type": "markdown", "id": "43fb42a4-1582-45b5-9c8b-be146cb72236", "metadata": {}, "source": [ "# INITIALLY, with 1st-order kinetics in both directions" ] }, { "cell_type": "code", "execution_count": 4, "id": "72d71ac8-3f7d-47b5-94ba-142fca566ff4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "1 bins and 2 species:\n", " Species 0 (A). Diff rate: None. Conc: [3.]\n", " Species 1 (B). Diff rate: None. Conc: [5.]\n" ] } ], "source": [ "# Initialize the system\n", "chem_data = chem(names=[\"A\", \"B\"]) # NOTE: Diffusion not applicable (just 1 bin)\n", "\n", "\n", "\n", "# Reaction 2A <-> B , FOR NOW with 1st-order kinetics in both directions\n", "chem_data.add_reaction(reactants=[(2, \"A\")], products=[\"B\"], forward_rate=5., reverse_rate=2.)\n", "\n", "bio = BioSim1D(n_bins=1, chem_data=chem_data)\n", "\n", "bio.set_all_uniform_concentrations( [3., 5.] )\n", "\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 5, "id": "35163098-208e-4ba1-a115-e02463df2750", "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", "
SYSTEM TIMEABcaption
003.05.0Initial state
\n", "
" ], "text/plain": [ " SYSTEM TIME A B caption\n", "0 0 3.0 5.0 Initial state" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save the state of the concentrations of all species at bin 0\n", "bio.add_snapshot(bio.bin_snapshot(bin_address = 0), caption=\"Initial state\")\n", "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 6, "id": "b472b184-9e22-45d4-ab18-b2507a83334a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 1 (at temp. 25 C)\n", "0: 2 A <-> B (kF = 5 / kR = 2 / Delta_G = -2,271.45 / K = 2.5) | 1st order in all reactants & products\n" ] } ], "source": [ "chem_data.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 7, "id": "3be8b568-fc3c-41a3-98dd-6ad6983f2bc9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reaction 2A B is 1st order in all species:\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `reaction_7.log.htm`]\n" ] } ], "source": [ "# Send a header and a plot to the HTML log file\n", "log.write(\"Reaction 2A <-> B is 1st order in all species:\",\n", " style=log.h2)\n", "\n", "graph_data = chem_data.prepare_graph_network()\n", "GraphicLog.export_plot(graph_data, \"vue_cytoscape_1\")" ] }, { "cell_type": "code", "execution_count": 8, "id": "4ee91e87-4800-41d6-bc21-223ac1e493b3", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.02:\n", "1 bins and 2 species:\n", " Species 0 (A). Diff rate: None. Conc: [2.8]\n", " Species 1 (B). Diff rate: None. Conc: [5.1]\n" ] } ], "source": [ "# First step\n", "bio.react(time_step=0.02, n_steps=1, snapshots={\"sample_bin\": 0})\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "fb58f958-29fc-4a43-ad33-751ef02c3cc2", "metadata": {}, "source": [ "Small conc. changes so far: [A] = 2.8 , [B] = 5.1" ] }, { "cell_type": "code", "execution_count": 9, "id": "86a7497e-cd17-4f4d-b9b1-9bfd786c865f", "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", "
SYSTEM TIMEABcaption
00.003.05.0Initial state
10.022.85.1
\n", "
" ], "text/plain": [ " SYSTEM TIME A B caption\n", "0 0.00 3.0 5.0 Initial state\n", "1 0.02 2.8 5.1 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 10, "id": "1e458105-4a8d-4f81-9776-7bde2c92b630", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.42:\n", "1 bins and 2 species:\n", " Species 0 (A). Diff rate: None. Conc: [2.16928427]\n", " Species 1 (B). Diff rate: None. Conc: [5.41535786]\n" ] } ], "source": [ "# Numerous more steps, to equilibrium\n", "bio.react(time_step=0.02, n_steps=20, snapshots={\"sample_bin\": 0})\n", "\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "bb5ee324-b0e9-4823-82ae-815aab494b57", "metadata": {}, "source": [ "Consistent with the 5/2 ratio of forward/reverse rates (and the *1st order* reactions),\n", "the systems settles in the following equilibrium: \n", "[A] = 2.16928427 , [B] = 5.41535786" ] }, { "cell_type": "code", "execution_count": 11, "id": "c3a088c4-c904-4d23-9940-307d9ca9a80f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2 A <-> B\n", "Final concentrations: [B] = 5.415 ; [A] = 2.169\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2.49638\n", " Formula used: [B] / [A]\n", "2. Ratio of forward/reverse reaction rates: 2.5\n", "Discrepancy between the two values: 0.1448 %\n", "Reaction IS in equilibrium (within 1% tolerance)\n", "\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Verify that the reaction has reached equilibrium\n", "bio.reaction_dynamics.is_in_equilibrium(rxn_index=0, conc=bio.bin_snapshot(bin_address = 0))" ] }, { "cell_type": "code", "execution_count": 12, "id": "7508667b-5e7f-4eed-ba41-a478f4d068b6", "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", "
SYSTEM TIMEABcaption
00.003.0000005.000000Initial state
10.022.8000005.100000
20.042.6480005.176000
30.062.5324805.233760
40.082.4446855.277658
50.102.3779605.311020
60.122.3272505.336375
70.142.2887105.355645
80.162.2594205.370290
90.182.2371595.381421
100.202.2202415.389880
110.222.2073835.396309
120.242.1976115.401194
130.262.1901845.404908
140.282.1845405.407730
150.302.1802515.409875
160.322.1769905.411505
170.342.1745135.412744
180.362.1726305.413685
190.382.1711995.414401
200.402.1701115.414945
210.422.1692845.415358
\n", "
" ], "text/plain": [ " SYSTEM TIME A B caption\n", "0 0.00 3.000000 5.000000 Initial state\n", "1 0.02 2.800000 5.100000 \n", "2 0.04 2.648000 5.176000 \n", "3 0.06 2.532480 5.233760 \n", "4 0.08 2.444685 5.277658 \n", "5 0.10 2.377960 5.311020 \n", "6 0.12 2.327250 5.336375 \n", "7 0.14 2.288710 5.355645 \n", "8 0.16 2.259420 5.370290 \n", "9 0.18 2.237159 5.381421 \n", "10 0.20 2.220241 5.389880 \n", "11 0.22 2.207383 5.396309 \n", "12 0.24 2.197611 5.401194 \n", "13 0.26 2.190184 5.404908 \n", "14 0.28 2.184540 5.407730 \n", "15 0.30 2.180251 5.409875 \n", "16 0.32 2.176990 5.411505 \n", "17 0.34 2.174513 5.412744 \n", "18 0.36 2.172630 5.413685 \n", "19 0.38 2.171199 5.414401 \n", "20 0.40 2.170111 5.414945 \n", "21 0.42 2.169284 5.415358 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df = bio.get_history()\n", "df" ] }, { "cell_type": "code", "execution_count": 13, "id": "7a77d5dc-035c-40b7-bd82-44bcfdef3ac6", "metadata": { "tags": [] }, "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": "navy", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.02, 0.04, 0.06, 0.08, 0.1, 0.12000000000000001, 0.14, 0.16, 0.18, 0.19999999999999998, 0.21999999999999997, 0.23999999999999996, 0.25999999999999995, 0.27999999999999997, 0.3, 0.32, 0.34, 0.36000000000000004, 0.38000000000000006, 0.4000000000000001, 0.4200000000000001 ], "xaxis": "x", "y": [ 3, 2.8, 2.6479999999999997, 2.5324799999999996, 2.4446847999999997, 2.3779604479999996, 2.32724994048, 2.2887099547647995, 2.2594195656212475, 2.237158869872148, 2.2202407411028324, 2.2073829632381528, 2.197611052060996, 2.1901843995663572, 2.1845401436704317, 2.180250509189528, 2.1769903869840412, 2.174512694107871, 2.172629647521982, 2.171198532116706, 2.1701108844086967, 2.1692842721506094 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "orange", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.02, 0.04, 0.06, 0.08, 0.1, 0.12000000000000001, 0.14, 0.16, 0.18, 0.19999999999999998, 0.21999999999999997, 0.23999999999999996, 0.25999999999999995, 0.27999999999999997, 0.3, 0.32, 0.34, 0.36000000000000004, 0.38000000000000006, 0.4000000000000001, 0.4200000000000001 ], "xaxis": "x", "y": [ 5, 5.1, 5.175999999999999, 5.233759999999999, 5.2776575999999995, 5.311019775999999, 5.336375029759999, 5.355645022617599, 5.370290217189376, 5.381420565063926, 5.389879629448584, 5.396308518380923, 5.401194473969502, 5.404907800216821, 5.407729928164784, 5.409874745405236, 5.411504806507979, 5.412743652946064, 5.413685176239008, 5.414400733941646, 5.414944557795651, 5.415357863924695 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "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": "2A <-> B : changes in concentrations with time" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 0.4200000000000001 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ 1.9889468503853824, 5.595695285689922 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "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IECAAAECUQFhdlROHQECBAgQIECAAAECBAgQIECAAAECBAikCQiz06g1IkCAAAECBAgQIECAAAECBAgQIECAAIGogDA7KqeOAAECBAgQIECAAAECBAgQIECAAAECBNIEhNlp1BoRIECAAAECBAgQIECAAAECBAgQIECAQFRAmB2VU0eAAAECBAgQIECAAAECBAgQIECAAAECaQLC7DRqjQgQIECAAAECBAgQIECAAAECBAgQIEAgKiDMjsqpI0CAAAECBAgQIECAAAECBAgQIECAAIE0AWF2GrVGBAgQIECAAAECBAgQIECAAAECBAgQIBAVEGZH5dQRIECAAAECBAgQIECAAAECBAgQIECAQJqAMDuNWiMCBAgQIECAAAECBAgQIECAAAECBAgQiAoIs6Ny6ggQIECAAAECBAgQIECAAAECBAgQIEAgTUCYnUatEQECBAgQIECAAAECBAgQIECAAAECBAhEBYTZUTl1BAgQIECAAAECBAgQIECAAAECBAgQIJAmIMxOo9aIAAECBAgQIECAAAECBAgQIECAAAECBKICwuyonDoCBAgQIECAAAECBAgQIECAAAECBAgQSBMQZqdRa0SAAAECBAgQIECAAAECBAgQIECAAAECUQFhdlROHQECBAgQIECAAAECBAgQIECAAAECBAikCQiz06g1IkCAAAECBAgQIECAAAECBAgQIECAAIGogDA7KqeOAAECBAgQIECAAAECBAgQIECAAAECBNIEhNlp1BoRIECAAAECBAgQIECAAAECBAgQIECAQFRAmB2VU0eAAAECBAgQIECAAAECBAgQIECAAAECaQLC7DRqjQgQIECAAAECBAgQIECAAAECBAgQIEAgKiDMjsqpI0CAAAECBAgQIECAAAECBAgQIECAAIE0AWF2GrVGBAgQIECAAAECBAgQIECAAAECBAgQIBAVEGZH5dQRIECAAAECBAgQIECAAAECBAgQIECAQJqAMDuNWiMCBAgQIECAAAECBAgQIECAAAECBAgQiAoIs6Ny6ggQIECAAAECBAgQIECAAAECBAgQIEAgTUCYnUatEQECBAgQIECAAAECBAgQIECAAAECBAhEBf4CXyelakv9fXgAAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.get_history(), x=\"SYSTEM TIME\", y=[\"A\", \"B\"], \n", " title=\"2A <-> B : changes in concentrations with time\",\n", " color_discrete_sequence = ['navy', 'orange'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\"})\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "c3d00af0-3222-4cba-8367-3345cea820f4", "metadata": {}, "source": [ "A gets depleted, while B gets produced." ] }, { "cell_type": "markdown", "id": "ab27ab50-7be4-4257-a6cc-2ef163539e1f", "metadata": {}, "source": [ "#### Let's verify that the stoichiometry is being respected" ] }, { "cell_type": "code", "execution_count": 14, "id": "e88539b9-28e1-4b07-9b68-169d1e650e4f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([3., 5.], dtype=float32), array([2.8, 5.1], dtype=float32))" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# We'll check the first two arrays of concentrations, from the run's history\n", "arr0 = bio.reaction_dynamics.get_historical_concentrations(row=0, df=df)\n", "arr1 = bio.reaction_dynamics.get_historical_concentrations(row=1, df=df)\n", "arr0, arr1" ] }, { "cell_type": "code", "execution_count": 15, "id": "f1d42c06-f5bc-447d-93c0-bf7c4b1c824d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.reaction_dynamics.stoichiometry_checker(rxn_index=0, \n", " conc_arr_before = arr0, \n", " conc_arr_after = arr1)" ] }, { "cell_type": "markdown", "id": "6c277db7-6b2b-4e74-b50e-4746cff17e90", "metadata": {}, "source": [ "# STARTING OVER, this time with 2nd-order kinetics in the forward reaction" ] }, { "cell_type": "code", "execution_count": 16, "id": "162100c5-e9d4-498b-81ee-be7b71e7f542", "metadata": {}, "outputs": [], "source": [ "bio.reaction_dynamics.clear_reactions()" ] }, { "cell_type": "code", "execution_count": 17, "id": "9c09f158-2d64-49d6-8d0c-6d3a8b7eff4b", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 17, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Reaction 2A <-> B , NOW WITH 2nd-order kinetics in the forward direction\n", "chem_data.add_reaction(reactants=[(2, \"A\", 2)], products=[\"B\"], forward_rate=5., reverse_rate=2.)" ] }, { "cell_type": "code", "execution_count": 18, "id": "f2dea24e-6f87-4f76-a513-176916934edb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.42:\n", "1 bins and 2 species:\n", " Species 0 (A). Diff rate: None. Conc: [3.]\n", " Species 1 (B). Diff rate: None. Conc: [5.]\n" ] } ], "source": [ "# RESET the concentrations to their original values\n", "bio.set_all_uniform_concentrations( [3., 5.] )\n", "\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 19, "id": "8c2155d6-cb42-49e3-8247-c858b0c65860", "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", "
SYSTEM TIMEABcaption
00.003.0000005.000000Initial state
10.022.8000005.100000
20.042.6480005.176000
30.062.5324805.233760
40.082.4446855.277658
50.102.3779605.311020
60.122.3272505.336375
70.142.2887105.355645
80.162.2594205.370290
90.182.2371595.381421
100.202.2202415.389880
110.222.2073835.396309
120.242.1976115.401194
130.262.1901845.404908
140.282.1845405.407730
150.302.1802515.409875
160.322.1769905.411505
170.342.1745135.412744
180.362.1726305.413685
190.382.1711995.414401
200.402.1701115.414945
210.422.1692845.415358
220.423.0000005.000000RESET all concentrations to initial values
\n", "
" ], "text/plain": [ " SYSTEM TIME A B \\\n", "0 0.00 3.000000 5.000000 \n", "1 0.02 2.800000 5.100000 \n", "2 0.04 2.648000 5.176000 \n", "3 0.06 2.532480 5.233760 \n", "4 0.08 2.444685 5.277658 \n", "5 0.10 2.377960 5.311020 \n", "6 0.12 2.327250 5.336375 \n", "7 0.14 2.288710 5.355645 \n", "8 0.16 2.259420 5.370290 \n", "9 0.18 2.237159 5.381421 \n", "10 0.20 2.220241 5.389880 \n", "11 0.22 2.207383 5.396309 \n", "12 0.24 2.197611 5.401194 \n", "13 0.26 2.190184 5.404908 \n", "14 0.28 2.184540 5.407730 \n", "15 0.30 2.180251 5.409875 \n", "16 0.32 2.176990 5.411505 \n", "17 0.34 2.174513 5.412744 \n", "18 0.36 2.172630 5.413685 \n", "19 0.38 2.171199 5.414401 \n", "20 0.40 2.170111 5.414945 \n", "21 0.42 2.169284 5.415358 \n", "22 0.42 3.000000 5.000000 \n", "\n", " caption \n", "0 Initial state \n", "1 \n", "2 \n", "3 \n", "4 \n", "5 \n", "6 \n", "7 \n", "8 \n", "9 \n", "10 \n", "11 \n", "12 \n", "13 \n", "14 \n", "15 \n", "16 \n", "17 \n", "18 \n", "19 \n", "20 \n", "21 \n", "22 RESET all concentrations to initial values " ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save the state of the concentrations of all species at bin 0\n", "bio.add_snapshot(bio.bin_snapshot(bin_address = 0),\n", " caption = \"RESET all concentrations to initial values\")\n", "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 20, "id": "68b1c2fa-fc50-4f33-a4f0-55d231939752", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 1 (at temp. 25 C)\n", "0: 2 A <-> B (kF = 5 / kR = 2 / Delta_G = -2,271.45 / K = 2.5) | 2-th order in reactant A\n" ] } ], "source": [ "chem_data.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 21, "id": "9c9e81e0-b5b3-45eb-a4eb-0ab157dcf9db", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Reaction 2A B is 2nd order in A, and 1st order in B:\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `reaction_7.log.htm`]\n" ] } ], "source": [ "# Send a header and a plot to the HTML log file\n", "log.write(\"Reaction 2A <-> B is 2nd order in A, and 1st order in B:\",\n", " style=log.h2)\n", "graph_data = chem_data.prepare_graph_network()\n", "GraphicLog.export_plot(graph_data, \"vue_cytoscape_1\")" ] }, { "cell_type": "code", "execution_count": 22, "id": "ab938afe-a818-4e9c-bc2d-d347aa0d0a23", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.44:\n", "1 bins and 2 species:\n", " Species 0 (A). Diff rate: None. Conc: [1.6]\n", " Species 1 (B). Diff rate: None. Conc: [5.7]\n" ] } ], "source": [ "# First step\n", "bio.react(time_step=0.02, n_steps=1, snapshots={\"sample_bin\": 0})\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "0c8b4979-26aa-4b43-baa9-b65547d3ba24", "metadata": {}, "source": [ "[A] = 1.6 , [B] = 5.7\n", "_(Contrast with the counterpart in the 1st order kinetics: [A] = 2.8 , [B] = 5.1)_" ] }, { "cell_type": "code", "execution_count": 23, "id": "a964cc75-e378-493a-aa5c-27da363c7baf", "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", "
SYSTEM TIMEABcaption
00.003.0000005.000000Initial state
10.022.8000005.100000
20.042.6480005.176000
30.062.5324805.233760
40.082.4446855.277658
50.102.3779605.311020
60.122.3272505.336375
70.142.2887105.355645
80.162.2594205.370290
90.182.2371595.381421
100.202.2202415.389880
110.222.2073835.396309
120.242.1976115.401194
130.262.1901845.404908
140.282.1845405.407730
150.302.1802515.409875
160.322.1769905.411505
170.342.1745135.412744
180.362.1726305.413685
190.382.1711995.414401
200.402.1701115.414945
210.422.1692845.415358
220.423.0000005.000000RESET all concentrations to initial values
230.441.6000005.700000
\n", "
" ], "text/plain": [ " SYSTEM TIME A B \\\n", "0 0.00 3.000000 5.000000 \n", "1 0.02 2.800000 5.100000 \n", "2 0.04 2.648000 5.176000 \n", "3 0.06 2.532480 5.233760 \n", "4 0.08 2.444685 5.277658 \n", "5 0.10 2.377960 5.311020 \n", "6 0.12 2.327250 5.336375 \n", "7 0.14 2.288710 5.355645 \n", "8 0.16 2.259420 5.370290 \n", "9 0.18 2.237159 5.381421 \n", "10 0.20 2.220241 5.389880 \n", "11 0.22 2.207383 5.396309 \n", "12 0.24 2.197611 5.401194 \n", "13 0.26 2.190184 5.404908 \n", "14 0.28 2.184540 5.407730 \n", "15 0.30 2.180251 5.409875 \n", "16 0.32 2.176990 5.411505 \n", "17 0.34 2.174513 5.412744 \n", "18 0.36 2.172630 5.413685 \n", "19 0.38 2.171199 5.414401 \n", "20 0.40 2.170111 5.414945 \n", "21 0.42 2.169284 5.415358 \n", "22 0.42 3.000000 5.000000 \n", "23 0.44 1.600000 5.700000 \n", "\n", " caption \n", "0 Initial state \n", "1 \n", "2 \n", "3 \n", "4 \n", "5 \n", "6 \n", "7 \n", "8 \n", "9 \n", "10 \n", "11 \n", "12 \n", "13 \n", "14 \n", "15 \n", "16 \n", "17 \n", "18 \n", "19 \n", "20 \n", "21 \n", "22 RESET all concentrations to initial values \n", "23 " ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 24, "id": "95e9aab1-a16d-46b7-9b97-82ab60011e6b", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.84:\n", "1 bins and 2 species:\n", " Species 0 (A). Diff rate: None. Conc: [1.51554944]\n", " Species 1 (B). Diff rate: None. Conc: [5.74222528]\n" ] } ], "source": [ "# Numerous more steps\n", "bio.react(time_step=0.02, n_steps=20, snapshots={\"sample_bin\": 0})\n", "\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "bec6b756-4269-4ab5-b4e8-7ba989b4454e", "metadata": {}, "source": [ "The systems settles in the following equilibrium: [A] = 1.51554944 , [B] = 5.74222528" ] }, { "cell_type": "code", "execution_count": 25, "id": "8c2e158b-091f-485d-b5fd-a1dd21bcf6f0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2 A <-> B\n", "Final concentrations: [B] = 5.742 ; [A] = 1.516\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2.5\n", " Formula used: [B] / [A]^2 \n", "2. Ratio of forward/reverse reaction rates: 2.5\n", "Discrepancy between the two values: 1.041e-08 %\n", "Reaction IS in equilibrium (within 1% tolerance)\n", "\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Verify that the reaction has reached equilibrium\n", "bio.reaction_dynamics.is_in_equilibrium(rxn_index=0, conc=bio.bin_snapshot(bin_address = 0))" ] }, { "cell_type": "code", "execution_count": 26, "id": "3eeeb74b-0427-48ce-a2e3-9a876c0c66a0", "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", " \n", " \n", " \n", " \n", " \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.003.0000005.000000Initial state
10.022.8000005.100000
20.042.6480005.176000
30.062.5324805.233760
40.082.4446855.277658
50.102.3779605.311020
60.122.3272505.336375
70.142.2887105.355645
80.162.2594205.370290
90.182.2371595.381421
100.202.2202415.389880
110.222.2073835.396309
120.242.1976115.401194
130.262.1901845.404908
140.282.1845405.407730
150.302.1802515.409875
160.322.1769905.411505
170.342.1745135.412744
180.362.1726305.413685
190.382.1711995.414401
200.402.1701115.414945
210.422.1692845.415358
220.423.0000005.000000RESET all concentrations to initial values
230.441.6000005.700000
240.461.5440005.728000
250.481.5254535.737274
260.501.5190335.740483
270.521.5167805.741610
280.541.5159845.742008
290.561.5157035.742148
300.581.5156045.742198
310.601.5155695.742216
320.621.5155565.742222
330.641.5155525.742224
340.661.5155505.742225
350.681.5155505.742225
360.701.5155505.742225
370.721.5155495.742225
380.741.5155495.742225
390.761.5155495.742225
400.781.5155495.742225
410.801.5155495.742225
420.821.5155495.742225
430.841.5155495.742225
\n", "
" ], "text/plain": [ " SYSTEM TIME A B \\\n", "0 0.00 3.000000 5.000000 \n", "1 0.02 2.800000 5.100000 \n", "2 0.04 2.648000 5.176000 \n", "3 0.06 2.532480 5.233760 \n", "4 0.08 2.444685 5.277658 \n", "5 0.10 2.377960 5.311020 \n", "6 0.12 2.327250 5.336375 \n", "7 0.14 2.288710 5.355645 \n", "8 0.16 2.259420 5.370290 \n", "9 0.18 2.237159 5.381421 \n", "10 0.20 2.220241 5.389880 \n", "11 0.22 2.207383 5.396309 \n", "12 0.24 2.197611 5.401194 \n", "13 0.26 2.190184 5.404908 \n", "14 0.28 2.184540 5.407730 \n", "15 0.30 2.180251 5.409875 \n", "16 0.32 2.176990 5.411505 \n", "17 0.34 2.174513 5.412744 \n", "18 0.36 2.172630 5.413685 \n", "19 0.38 2.171199 5.414401 \n", "20 0.40 2.170111 5.414945 \n", "21 0.42 2.169284 5.415358 \n", "22 0.42 3.000000 5.000000 \n", "23 0.44 1.600000 5.700000 \n", "24 0.46 1.544000 5.728000 \n", "25 0.48 1.525453 5.737274 \n", "26 0.50 1.519033 5.740483 \n", "27 0.52 1.516780 5.741610 \n", "28 0.54 1.515984 5.742008 \n", "29 0.56 1.515703 5.742148 \n", "30 0.58 1.515604 5.742198 \n", "31 0.60 1.515569 5.742216 \n", "32 0.62 1.515556 5.742222 \n", "33 0.64 1.515552 5.742224 \n", "34 0.66 1.515550 5.742225 \n", "35 0.68 1.515550 5.742225 \n", "36 0.70 1.515550 5.742225 \n", "37 0.72 1.515549 5.742225 \n", "38 0.74 1.515549 5.742225 \n", "39 0.76 1.515549 5.742225 \n", "40 0.78 1.515549 5.742225 \n", "41 0.80 1.515549 5.742225 \n", "42 0.82 1.515549 5.742225 \n", "43 0.84 1.515549 5.742225 \n", "\n", " caption \n", "0 Initial state \n", "1 \n", "2 \n", "3 \n", "4 \n", "5 \n", "6 \n", "7 \n", "8 \n", "9 \n", "10 \n", "11 \n", "12 \n", "13 \n", "14 \n", "15 \n", "16 \n", "17 \n", "18 \n", "19 \n", "20 \n", "21 \n", "22 RESET all concentrations to initial values \n", "23 \n", "24 \n", "25 \n", "26 \n", "27 \n", "28 \n", "29 \n", "30 \n", "31 \n", "32 \n", "33 \n", "34 \n", "35 \n", "36 \n", "37 \n", "38 \n", "39 \n", "40 \n", "41 \n", "42 \n", "43 " ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df2 = bio.get_history()\n", "df2" ] }, { "cell_type": "code", "execution_count": 27, "id": "16ec259b-98fe-4660-8123-83fdf55b74fb", "metadata": {}, "outputs": [ { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "navy", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.02, 0.04, 0.06, 0.08, 0.1, 0.12000000000000001, 0.14, 0.16, 0.18, 0.19999999999999998, 0.21999999999999997, 0.23999999999999996, 0.25999999999999995, 0.27999999999999997, 0.3, 0.32, 0.34, 0.36000000000000004, 0.38000000000000006, 0.4000000000000001, 0.4200000000000001, 0.4200000000000001, 0.4400000000000001, 0.46000000000000013, 0.48000000000000015, 0.5000000000000001, 0.5200000000000001, 0.5400000000000001, 0.5600000000000002, 0.5800000000000002, 0.6000000000000002, 0.6200000000000002, 0.6400000000000002, 0.6600000000000003, 0.6800000000000003, 0.7000000000000003, 0.7200000000000003, 0.7400000000000003, 0.7600000000000003, 0.7800000000000004, 0.8000000000000004, 0.8200000000000004, 0.8400000000000004 ], "xaxis": "x", "y": [ 3, 2.8, 2.6479999999999997, 2.5324799999999996, 2.4446847999999997, 2.3779604479999996, 2.32724994048, 2.2887099547647995, 2.2594195656212475, 2.237158869872148, 2.2202407411028324, 2.2073829632381528, 2.197611052060996, 2.1901843995663572, 2.1845401436704317, 2.180250509189528, 2.1769903869840412, 2.174512694107871, 2.172629647521982, 2.171198532116706, 2.1701108844086967, 2.1692842721506094, 3, 1.5999999999999999, 1.544, 1.5254528, 1.519033438994432, 1.5167795836780045, 1.5159843392384003, 1.5157032623056466, 1.5156038559406249, 1.515568692074582, 1.5155562523122668, 1.5155518514352155, 1.515550294500065, 1.5155497436882157, 1.5155495488220039, 1.515549479882208, 1.5155494554926734, 1.5155494468641386, 1.5155494438115338, 1.5155494427315825, 1.515549442349517, 1.5155494422143498 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "orange", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.02, 0.04, 0.06, 0.08, 0.1, 0.12000000000000001, 0.14, 0.16, 0.18, 0.19999999999999998, 0.21999999999999997, 0.23999999999999996, 0.25999999999999995, 0.27999999999999997, 0.3, 0.32, 0.34, 0.36000000000000004, 0.38000000000000006, 0.4000000000000001, 0.4200000000000001, 0.4200000000000001, 0.4400000000000001, 0.46000000000000013, 0.48000000000000015, 0.5000000000000001, 0.5200000000000001, 0.5400000000000001, 0.5600000000000002, 0.5800000000000002, 0.6000000000000002, 0.6200000000000002, 0.6400000000000002, 0.6600000000000003, 0.6800000000000003, 0.7000000000000003, 0.7200000000000003, 0.7400000000000003, 0.7600000000000003, 0.7800000000000004, 0.8000000000000004, 0.8200000000000004, 0.8400000000000004 ], "xaxis": "x", "y": [ 5, 5.1, 5.175999999999999, 5.233759999999999, 5.2776575999999995, 5.311019775999999, 5.336375029759999, 5.355645022617599, 5.370290217189376, 5.381420565063926, 5.389879629448584, 5.396308518380923, 5.401194473969502, 5.404907800216821, 5.407729928164784, 5.409874745405236, 5.411504806507979, 5.412743652946064, 5.413685176239008, 5.414400733941646, 5.414944557795651, 5.415357863924695, 5, 5.7, 5.728, 5.7372736, 5.740483280502784, 5.741610208160997, 5.7420078303808, 5.742148368847177, 5.742198072029688, 5.74221565396271, 5.742221873843867, 5.742224074282393, 5.742224852749968, 5.7422251281558925, 5.7422252255889985, 5.7422252600588966, 5.7422252722536635, 5.742225276567931, 5.742225278094233, 5.7422252786342085, 5.7422252788252415, 5.742225278892825 ], "yaxis": "y" } ], "layout": { "autosize": true, "legend": { "title": { "text": "Chemical" }, "tracegroupgap": 0 }, "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": "2A <-> B : changes in concentrations (the jump at 0.42 is the concentration reset)" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 0.8400000000000004 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ 1.2807341179544345, 5.97704060315274 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "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a8OZ/36eJcyOV4MX26v86e8FQwzUr7hs1rT9xV2ZXWcFOpYAAQIECBAgQOBiFRBmX6yPnPMmQIAAAQIECEyAQL9tQ6p7ZQ+aar9+mgyzq18+Wf573FdmxzC7nMdPFy8otjop/22bkUErw/0ECBAgQIAAAQKTJCDMnqRH01wIECBAgAABAheowKtH/xUWLZwfLp89a9oZxkC43L4jfrlieesXZtftp8kwO57bMwf/GlYsX1rMI2eYHcf+y5HXw43X/6D4Ekph9gW60J0WAQIECBAgQIDAWAWE2WPl1TkBAgQIECBAgEAUiNtkbNm+L+zfvTksWbygQCm3xoj/H7/csHtP535hdt1+mg6zux/N3GF299jCbL9XBAgQIECAAAECbRQQZrfxUTdnAgQIECBAgMB5ECiD6O6he+2XHe+faZuROv0MCrOH/QLIuGd29dZEmF2e37Hj7xfdx6vXn9y2vrjye9eeA8XP4rYi1Vu/MNsXQJ6HhW1IAgQIECBAgACBbALC7GzUBiJAgAABAgQIECBAgAABAgQIECBAgACBVAFhdqqcdgQIECBAgAABAgQIECBAgAABAgQIECCQTUCYnY3aQAQIECBAgAA7RMn5AAAESUlEQVQBAgQIECBAgAABAgQIECCQKiDMTpXTjgABAgQIECBAgAABAgQIECBAgAABAgSyCQizs1EbiAABAgQIECBAgAABAgQIECBAgAABAgRSBYTZqXLaESBAgAABAgQIECBAgAABAgQIECBAgEA2AWF2NmoDESBAgAABAgQIECBAgAABAgQIECBAgECqgDA7VU47AgQIECBAgAABAgQIECBAgAABAgQIEMgmIMzORm0gAgQIECBAgAABAgQIECBAgAABAgQIEEgVEGanymlHgAABAgQIECBAgAABAgQIECBAgAABAtkEhNnZqA1EgAABAgQIECBAgAABAgQIECBAgAABAqkCwuxUOe0IECBAgAABAgQIECBAgAABAgQIECBAIJuAMDsbtYEIECBAgAABAgQIECBAgAABAgQIECBAIFVAmJ0qpx0BAgQIECBAgAABAgQIECBAgAABAgQIZBMQZmejNhABAgQIECBAgAABAgQIECBAgAABAgQIpAoIs1PltCNAgAABAgQIECBAgAABAgQIECBAgACBbALC7GzUBiJAgAABAgQIECBAgAABAgQIECBAgACBVAFhdqqcdgQIECBAgAABAgQIECBAgAABAgQIECCQTUCYnY3aQAQIECBAgAABAgQIECBAgAABAgQIECCQKiDMTpXTjgABAgQIECBAgAABAgQIECBAgAABAgSyCQizs1EbiAABAgQIECBAgAABAgQIECBAgAABAgRSBYTZqXLaESBAgAABAgQIECBAgAABAgQIECBAgEA2AWF2NmoDESBAgAABAgQIECBAgAABAgQIECBAgECqgDA7VU47AgQIECBAgAABAgQIECBAgAABAgQIEMgmIMzORm0gAgQIECBAgAABAgQIECBAgAABAgQIEEgVEGanymlHgAABAgQIECBAgAABAgQIECBAgAABAtkEhNnZqA1EgAABAgQIECBAgAABAgQIECBAgAABAqkCwuxUOe0IECBAgAABAgQIECBAgAABAgQIECBAIJuAMDsbtYEIECBAgAABAgQIECBAgAABAgQIECBAIFVAmJ0qpx0BAgQIECBAgAABAgQIECBAgAABAgQIZBMQZmejNhABAgQIECBAgAABAgQIECBAgAABAgQIpAoIs1PltCNAgAABAgQIECBAgAABAgQIECBAgACBbALC7GzUBiJAgAABAgQIECBAgAABAgQIECBAgACBVAFhdqqcdgQIECBAgAABAgQIECBAgAABAgQIECCQTUCYnY3aQAQIECBAgAABAgQIECBAgAABAgQIECCQKiDMTpXTjgABAgQIECBAgAABAgQIECBAgAABAgSyCQizs1EbiAABAgQIECBAgAABAgQIECBAgAABAgRSBYTZqXLaESBAgAABAgQIECBAgAABAgQIECBAgEA2AWF2NmoDESBAgAABAgQIECBAgAABAgQIECBAgECqwP8AszEkxG/TDVkAAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.get_history(), x=\"SYSTEM TIME\", y=[\"A\", \"B\"], \n", " title=\"2A <-> B : changes in concentrations (the jump at 0.42 is the concentration reset)\",\n", " color_discrete_sequence = ['navy', 'orange'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\"})\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "3fd3bce2-7095-43a4-9ef0-764714be1301", "metadata": {}, "source": [ "**Compared to first-order kinetics in A**, the (2nd order in A) reaction now takes place much more quickly, and proceeds to almost complete depletion of A" ] }, { "cell_type": "markdown", "id": "ea064b52-efc9-4fb6-94c7-9a22264bc751", "metadata": {}, "source": [ "#### Let's verify that the stoichiometry is still being respected" ] }, { "cell_type": "code", "execution_count": 28, "id": "8798e44e-7a1b-41ba-af64-5a4b1e7cf687", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([3., 5.], dtype=float32), array([1.6, 5.7], dtype=float32))" ] }, "execution_count": 28, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# We'll check the first two arrays of concentrations, from the run's history\n", "arr0 = bio.reaction_dynamics.get_historical_concentrations(row=22, df=df2) # Row 22 is the conc. reset\n", "arr1 = bio.reaction_dynamics.get_historical_concentrations(row=23, df=df2)\n", "arr0, arr1" ] }, { "cell_type": "code", "execution_count": 29, "id": "bdbcef17-1fc3-4547-8afe-7c932a586dc3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "True" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.reaction_dynamics.stoichiometry_checker(rxn_index=0, \n", " conc_arr_before = arr0, \n", " conc_arr_after = arr1)" ] }, { "cell_type": "code", "execution_count": null, "id": "0ebe7c58", "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 }