{ "cells": [ { "cell_type": "markdown", "id": "54d8ecb1-ea4d-4985-9d5a-e838e264c308", "metadata": {}, "source": [ "## One-bin reaction `A <-> 2C + D`, with 1st-order kinetics for each species, taken to equilibrium\n", "\n", "Diffusion not applicable (just 1 bin)" ] }, { "cell_type": "markdown", "id": "6827a7a1-953d-471a-bdf8-8985dd365340", "metadata": {}, "source": [ "### TAGS : \"reactions 1D\", \"basic\"" ] }, { "cell_type": "code", "execution_count": 1, "id": "463509b5-9d5f-4106-9c30-557c4e9dcb44", "metadata": {}, "outputs": [], "source": [ "LAST_REVISED = \"June 6, 2025\"\n", "LIFE123_VERSION = \"1.0.0rc6\" # Library version this experiment is based on" ] }, { "cell_type": "code", "execution_count": 2, "id": "7d9e829a-3644-4769-8c4e-5596b678337f", "metadata": {}, "outputs": [], "source": [ "#import set_path # Using MyBinder? Uncomment this before running the next cell!" ] }, { "cell_type": "code", "execution_count": 3, "id": "5f9ccc38-f179-4b45-8e14-610a1636cdd0", "metadata": {}, "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", "from experiments.get_notebook_info import get_notebook_basename\n", "\n", "from life123 import BioSim1D, ChemData, check_version\n", "\n", "from life123 import GraphicLog" ] }, { "cell_type": "code", "execution_count": 4, "id": "d89b4fd0-cb1f-4f41-907b-45dd5a02e666", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OK\n" ] } ], "source": [ "check_version(LIFE123_VERSION)" ] }, { "cell_type": "code", "execution_count": null, "id": "c917f49a-8ebd-4f07-93df-4305017b69ab", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 5, "id": "3c9c6dc0-8c6d-431d-a9d8-0a33780a2441", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-> Output will be LOGGED into the file 'reaction_5.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_2\"],\n", " extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "6ad40924-3c41-494f-8682-ec8efc540537", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "1 bins and 3 chemical species\n" ] }, { "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", "
SpeciesDiff rateBin 0
0ANone4.0
1CNone7.0
2DNone2.0
\n", "
" ], "text/plain": [ " Species Diff rate Bin 0\n", "0 A None 4.0\n", "1 C None 7.0\n", "2 D None 2.0" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Initialize the system; NOTE: Diffusion not applicable (just 1 bin)\n", "chem_data = ChemData(names=[\"A\", \"C\", \"D\"], plot_colors=['navy', 'violet', 'red'])\n", "\n", "bio = BioSim1D(n_bins=1, chem_data=chem_data)\n", "\n", "bio.set_all_uniform_concentrations( [4., 7., 2.] )\n", "\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 7, "id": "903963db-0be7-4100-9b91-2f4aef6e0a75", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 1 (at temp. 25 C)\n", "0: A <-> 2 C + D (kF = 5 / kR = 2 / delta_G = -2,271.4 / K = 2.5) | 1st order in all reactants & products\n", "Set of chemicals involved in the above reactions: {\"A\" (navy), \"D\" (red), \"C\" (violet)}\n" ] } ], "source": [ "# Specify the reaction\n", "reactions = bio.get_reactions()\n", "\n", "# Reaction A <-> 2C + D , with 1st-order kinetics for each species\n", "reactions.add_reaction(reactants=\"A\", products=[(2, \"C\", 1) , \"D\"],\n", " forward_rate=5., reverse_rate=2.)\n", "\n", "reactions.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 8, "id": "8c9cea88-b766-4145-843b-9b109334d487", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[GRAPHIC ELEMENT SENT TO LOG FILE `reaction_5.log.htm`]\n" ] } ], "source": [ "# Send the plot to the HTML log file\n", "reactions.plot_reaction_network(\"vue_cytoscape_2\")" ] }, { "cell_type": "code", "execution_count": null, "id": "5e35e9cc-c405-42eb-806b-99aff22faea0", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 9, "id": "4165378b-9ede-422c-8a99-9704ed7aadcb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "History enabled for bins None and chemicals None (None means 'all')\n" ] } ], "source": [ "# Let's enable history - by default for all chemicals and all bins\n", "bio.enable_history(take_snapshot=True, caption=\"Initial state\")" ] }, { "cell_type": "code", "execution_count": 10, "id": "4c905cf5-2719-4a3c-a07d-d0549b779d90", "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", "
SYSTEM TIMEACDcaption
00.04.07.02.0Initial state
\n", "
" ], "text/plain": [ " SYSTEM TIME A C D caption\n", "0 0.0 4.0 7.0 2.0 Initial state" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.get_bin_history(bin_address=0)" ] }, { "cell_type": "code", "execution_count": null, "id": "f98d35c5-1c55-49dc-8811-fe2bd01c8fcc", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "25818d65-235f-4e27-9608-35d05fb026c5", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "39837c2b-aa44-4a5f-b2a2-747b889ca9fc", "metadata": { "tags": [] }, "source": [ "### First step" ] }, { "cell_type": "code", "execution_count": 11, "id": "8de0fb5d-419d-4976-b57d-b7656f7f0358", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "System Time is now: 0.2\n", "SYSTEM STATE at Time t = 0.2:\n", "1 bins and 3 chemical species\n" ] }, { "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", "
SpeciesDiff rateBin 0
0ANone5.6
1CNone3.8
2DNone0.4
\n", "
" ], "text/plain": [ " Species Diff rate Bin 0\n", "0 A None 5.6\n", "1 C None 3.8\n", "2 D None 0.4" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# First step\n", "bio.react(time_step=0.2, n_steps=1)\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "a128c0ed-ed29-4fa9-ac8d-995df08cc60c", "metadata": {}, "source": [ "--- \n", " Note: the above values are quite INaccurate because of the large time step 0.2\n", "\n", " For example, the value for the concentration of D (0.4) is a wild overshot from the initial 2.0 to the equilibrium value of 1.68941267\n", " \n", " A more precise calculation with bio.react(time_step=0.1, n_steps=2) gives conc_D(0.2) = 2.304\n", " \n", " An even more precise calculation with bio.react(time_step=0.05, n_steps=4) gives conc_D(0.2) = 1.69037202\n", " \n", " I.e. the system is almost at equilibrium already at t=0.2 !\n", "---" ] }, { "cell_type": "code", "execution_count": null, "id": "a12a465a-9cef-4aa9-be8f-3176307667b6", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "6d201c6c-1cb7-4902-a3c3-d3f33514ffa7", "metadata": {}, "source": [ "### Numerous more steps" ] }, { "cell_type": "code", "execution_count": 12, "id": "19212806-2baa-43c6-8083-f3cbc4916d89", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "System Time is now: 1.7\n", "SYSTEM STATE at Time t = 1.7:\n", "1 bins and 3 chemical species\n" ] }, { "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", "
SpeciesDiff rateBin 0
0ANone4.310587
1CNone6.378825
2DNone1.689413
\n", "
" ], "text/plain": [ " Species Diff rate Bin 0\n", "0 A None 4.310587\n", "1 C None 6.378825\n", "2 D None 1.689413" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Numerous more steps\n", "bio.react(time_step=0.05, n_steps=30)\n", "\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "dd1dfc16-d0e0-446f-a02a-cbd6ec40db7b", "metadata": { "tags": [] }, "source": [ "## Equilibrium" ] }, { "cell_type": "markdown", "id": "622e8969-dc8c-44ea-be61-05824b1f8d5c", "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] = 4.31058733 , [C] = 6.37882534 , [D] = 1.68941267" ] }, { "cell_type": "code", "execution_count": 13, "id": "52260eec-31d6-42a0-8ea9-a4122851c328", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "A <-> 2 C + D\n", "Current concentrations: [A] = 4.311 ; [C] = 6.379 ; [D] = 1.689\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2.5\n", " Formula used: ([C][D]) / [A]\n", "2. Ratio of forward/reverse reaction rates: 2.5\n", "Discrepancy between the two values: 0 %\n", "Reaction IS in equilibrium (within 1% tolerance)\n", "\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Verify that the reaction has reached equilibrium\n", "bio.get_reaction_handler().is_in_equilibrium(rxn_index=0, conc=bio.bin_snapshot(bin_address = 0))" ] }, { "cell_type": "code", "execution_count": 14, "id": "9c836591-3896-44ac-8d0b-6fc948411f2a", "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", "
SYSTEM TIMEACDcaption
00.004.0000007.0000002.000000Initial state
10.205.6000003.8000000.400000
20.254.3520006.2960001.648000
30.304.3015816.3968381.698419
40.354.3126376.3747261.687363
50.404.3101256.3797491.689875
60.454.3106926.3786171.689308
70.504.3105646.3788721.689436
80.554.3105936.3788151.689407
90.604.3105866.3788281.689414
100.654.3105886.3788251.689412
110.704.3105876.3788251.689413
120.754.3105876.3788251.689413
130.804.3105876.3788251.689413
140.854.3105876.3788251.689413
150.904.3105876.3788251.689413
160.954.3105876.3788251.689413
171.004.3105876.3788251.689413
181.054.3105876.3788251.689413
191.104.3105876.3788251.689413
201.154.3105876.3788251.689413
211.204.3105876.3788251.689413
221.254.3105876.3788251.689413
231.304.3105876.3788251.689413
241.354.3105876.3788251.689413
251.404.3105876.3788251.689413
261.454.3105876.3788251.689413
271.504.3105876.3788251.689413
281.554.3105876.3788251.689413
291.604.3105876.3788251.689413
301.654.3105876.3788251.689413
311.704.3105876.3788251.689413
\n", "
" ], "text/plain": [ " SYSTEM TIME A C D caption\n", "0 0.00 4.000000 7.000000 2.000000 Initial state\n", "1 0.20 5.600000 3.800000 0.400000 \n", "2 0.25 4.352000 6.296000 1.648000 \n", "3 0.30 4.301581 6.396838 1.698419 \n", "4 0.35 4.312637 6.374726 1.687363 \n", "5 0.40 4.310125 6.379749 1.689875 \n", "6 0.45 4.310692 6.378617 1.689308 \n", "7 0.50 4.310564 6.378872 1.689436 \n", "8 0.55 4.310593 6.378815 1.689407 \n", "9 0.60 4.310586 6.378828 1.689414 \n", "10 0.65 4.310588 6.378825 1.689412 \n", "11 0.70 4.310587 6.378825 1.689413 \n", "12 0.75 4.310587 6.378825 1.689413 \n", "13 0.80 4.310587 6.378825 1.689413 \n", "14 0.85 4.310587 6.378825 1.689413 \n", "15 0.90 4.310587 6.378825 1.689413 \n", "16 0.95 4.310587 6.378825 1.689413 \n", "17 1.00 4.310587 6.378825 1.689413 \n", "18 1.05 4.310587 6.378825 1.689413 \n", "19 1.10 4.310587 6.378825 1.689413 \n", "20 1.15 4.310587 6.378825 1.689413 \n", "21 1.20 4.310587 6.378825 1.689413 \n", "22 1.25 4.310587 6.378825 1.689413 \n", "23 1.30 4.310587 6.378825 1.689413 \n", "24 1.35 4.310587 6.378825 1.689413 \n", "25 1.40 4.310587 6.378825 1.689413 \n", "26 1.45 4.310587 6.378825 1.689413 \n", "27 1.50 4.310587 6.378825 1.689413 \n", "28 1.55 4.310587 6.378825 1.689413 \n", "29 1.60 4.310587 6.378825 1.689413 \n", "30 1.65 4.310587 6.378825 1.689413 \n", "31 1.70 4.310587 6.378825 1.689413 " ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.get_bin_history(bin_address=0)" ] }, { "cell_type": "markdown", "id": "16c85241-2b62-4ac8-bd44-f6231f6ef685", "metadata": {}, "source": [ "C and D get depleted, while A gets produced.\n", "A wild overshoot is present at t=0.2" ] }, { "cell_type": "markdown", "id": "c8219705-f08b-41c1-b585-9a01ff80f4ab", "metadata": { "tags": [] }, "source": [ "# Plots of changes of concentration with time" ] }, { "cell_type": "code", "execution_count": 15, "id": "4d7a677c-03cb-490d-96e9-c07ee49506ee", "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": "navy", "dash": "solid", "shape": "linear" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.2, 0.25, 0.3, 0.35, 0.39999999999999997, 0.44999999999999996, 0.49999999999999994, 0.5499999999999999, 0.6, 0.65, 0.7000000000000001, 0.7500000000000001, 0.8000000000000002, 0.8500000000000002, 0.9000000000000002, 0.9500000000000003, 1.0000000000000002, 1.0500000000000003, 1.1000000000000003, 1.1500000000000004, 1.2000000000000004, 1.2500000000000004, 1.3000000000000005, 1.3500000000000005, 1.4000000000000006, 1.4500000000000006, 1.5000000000000007, 1.5500000000000007, 1.6000000000000008, 1.6500000000000008, 1.7000000000000008 ], "xaxis": "x", "y": [ 4, 5.6, 4.351999999999999, 4.3015808, 4.312636915785728, 4.310125447697398, 4.3106916519678125, 4.310563782331762, 4.310592648763124, 4.310586131626044, 4.31058760296257, 4.3105872707859065, 4.310587345779779, 4.310587328848781, 4.310587332671209, 4.310587331808239, 4.310587332003067, 4.3105873319590815, 4.310587331969011, 4.31058733196677, 4.310587331967276, 4.310587331967161, 4.310587331967187, 4.310587331967182, 4.3105873319671835, 4.310587331967183, 4.310587331967183, 4.310587331967183, 4.310587331967183, 4.310587331967183, 4.310587331967183, 4.310587331967183 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
SYSTEM TIME=%{x}
Concentration=%{y}", "legendgroup": "C", "line": { "color": "violet", "dash": "solid", "shape": "linear" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.2, 0.25, 0.3, 0.35, 0.39999999999999997, 0.44999999999999996, 0.49999999999999994, 0.5499999999999999, 0.6, 0.65, 0.7000000000000001, 0.7500000000000001, 0.8000000000000002, 0.8500000000000002, 0.9000000000000002, 0.9500000000000003, 1.0000000000000002, 1.0500000000000003, 1.1000000000000003, 1.1500000000000004, 1.2000000000000004, 1.2500000000000004, 1.3000000000000005, 1.3500000000000005, 1.4000000000000006, 1.4500000000000006, 1.5000000000000007, 1.5500000000000007, 1.6000000000000008, 1.6500000000000008, 1.7000000000000008 ], "xaxis": "x", "y": [ 7, 3.8, 6.296, 6.3968384, 6.374726168428544, 6.379749104605204, 6.378616696064373, 6.378872435336473, 6.37881470247375, 6.378827736747909, 6.378824794074859, 6.378825458428185, 6.378825308440439, 6.378825342302434, 6.378825334657579, 6.37882533638352, 6.378825335993863, 6.378825336081833, 6.378825336061973, 6.378825336066456, 6.378825336065444, 6.378825336065673, 6.3788253360656215, 6.378825336065633, 6.37882533606563, 6.378825336065631, 6.378825336065631, 6.378825336065631, 6.378825336065631, 6.378825336065631, 6.378825336065631, 6.378825336065631 ], "yaxis": "y" }, { "hovertemplate": "Chemical=D
SYSTEM TIME=%{x}
Concentration=%{y}", "legendgroup": "D", "line": { "color": "red", "dash": "solid", "shape": "linear" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "D", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.2, 0.25, 0.3, 0.35, 0.39999999999999997, 0.44999999999999996, 0.49999999999999994, 0.5499999999999999, 0.6, 0.65, 0.7000000000000001, 0.7500000000000001, 0.8000000000000002, 0.8500000000000002, 0.9000000000000002, 0.9500000000000003, 1.0000000000000002, 1.0500000000000003, 1.1000000000000003, 1.1500000000000004, 1.2000000000000004, 1.2500000000000004, 1.3000000000000005, 1.3500000000000005, 1.4000000000000006, 1.4500000000000006, 1.5000000000000007, 1.5500000000000007, 1.6000000000000008, 1.6500000000000008, 1.7000000000000008 ], "xaxis": "x", "y": [ 2, 0.3999999999999999, 1.6480000000000001, 1.6984192, 1.687363084214272, 1.6898745523026022, 1.6893083480321869, 1.6894362176682367, 1.6894073512368748, 1.6894138683739546, 1.6894123970374295, 1.6894127292140924, 1.6894126542202195, 1.689412671151217, 1.689412667328789, 1.6894126681917596, 1.689412667996931, 1.6894126680409165, 1.6894126680309862, 1.689412668033228, 1.689412668032722, 1.6894126680328363, 1.6894126680328105, 1.6894126680328163, 1.689412668032815, 1.6894126680328154, 1.6894126680328152, 1.6894126680328152, 1.6894126680328152, 1.6894126680328152, 1.6894126680328152, 1.6894126680328152 ], "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": "Reaction `A + B <-> C`
Concentration as a function of time of all chemicals at bin 0" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 1.7000000000000008 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ 0.03333333333333327, 7.366666666666666 ], "title": { "text": "Concentration" }, "type": "linear" } } }, "image/png": "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AAEIQMCYAGJhjJAMIAABCEAAAhCAAAQgAAHEghiAAAQgAAEIQAACEIAABIwJIBbGCMkAAhCAAAQgAAEIQAACEEAsiAEIQAACEIAABCAAAQhAwJgAYmGMkAwgAAEIQAACEIAABCAAAcSCGIAABCAAAQhAAAIQgAAEjAkgFsYIyQACEIAABCAAAQhAAAIQQCyIAQhAAAIQgAAEIAABCEDAmABiYYyQDCAAAQhAAAIQgAAEIAABxIIYgAAEIAABCEAAAhCAAASMCSAWxgjJAAIQgAAEIAABCEAAAhBALIgBCEAAAhCAAAQgAAEIQMCYAGJhjJAMIAABCEAAAhCAAAQgAAHEghiAAAQgAAEIQAACEIAABIwJIBbGCMkAAhCAAAQgAAEIQAACEEAsiAEIQAACEIAABCAAAQhAwJgAYmGMkAwgAAEIQAACEIAABCAAAcSCGIAABCBRHSDjAAABWUlEQVQAAQhAAAIQgAAEjAkgFsYIyQACEIAABCAAAQhAAAIQQCyIAQhAAAIQgAAEIAABCEDAmABiYYyQDCAAAQhAAAIQgAAEIAABxIIYgAAEIAABCEAAAhCAAASMCSAWxgjJAAIQgAAEIAABCEAAAhBALIgBCEAAAhCAAAQgAAEIQMCYAGJhjJAMIAABCEAAAhCAAAQgAAHEghiAAAQgAAEIQAACEIAABIwJIBbGCMkAAhCAAAQgAAEIQAACEEAsiAEIQAACEIAABCAAAQhAwJgAYmGMkAwgAAEIQAACEIAABCAAAcSCGIAABCAAAQhAAAIQgAAEjAkgFsYIyQACEIAABCAAAQhAAAIQQCyIAQhAAAIQgAAEIAABCEDAmABiYYyQDCAAAQhAAAIQgAAEIAABxIIYgAAEIAABCEAAAhCAAASMCSAWxgjJAAIQgAAEIAABCEAAAhD4/3vb6BAThUiTAAAAAElFTkSuQmCC", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bio.plot_history_single_bin(bin_address=0, \n", " title_prefix=\"Reaction `A + B <-> C`\")" ] }, { "cell_type": "markdown", "id": "42921718-2075-4098-b55d-60a9df1e5f93", "metadata": {}, "source": [ "### Notice the **wild overshoot** present at t=0.2 ! (Too large a time step, early in the reaction!)\n", "#### Variable, adaptive time steps are explored at length in the _\"reactions_single_compartment\"_ experiments" ] }, { "cell_type": "code", "execution_count": null, "id": "6b46289d", "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.9.13" } }, "nbformat": 4, "nbformat_minor": 5 }