{
"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",
" Species | \n",
" Diff rate | \n",
" Bin 0 | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" A | \n",
" None | \n",
" 4.0 | \n",
"
\n",
" \n",
" | 1 | \n",
" C | \n",
" None | \n",
" 7.0 | \n",
"
\n",
" \n",
" | 2 | \n",
" D | \n",
" None | \n",
" 2.0 | \n",
"
\n",
" \n",
"
\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",
" SYSTEM TIME | \n",
" A | \n",
" C | \n",
" D | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.0 | \n",
" 4.0 | \n",
" 7.0 | \n",
" 2.0 | \n",
" Initial state | \n",
"
\n",
" \n",
"
\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",
" Species | \n",
" Diff rate | \n",
" Bin 0 | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" A | \n",
" None | \n",
" 5.6 | \n",
"
\n",
" \n",
" | 1 | \n",
" C | \n",
" None | \n",
" 3.8 | \n",
"
\n",
" \n",
" | 2 | \n",
" D | \n",
" None | \n",
" 0.4 | \n",
"
\n",
" \n",
"
\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",
" Species | \n",
" Diff rate | \n",
" Bin 0 | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" A | \n",
" None | \n",
" 4.310587 | \n",
"
\n",
" \n",
" | 1 | \n",
" C | \n",
" None | \n",
" 6.378825 | \n",
"
\n",
" \n",
" | 2 | \n",
" D | \n",
" None | \n",
" 1.689413 | \n",
"
\n",
" \n",
"
\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",
" SYSTEM TIME | \n",
" A | \n",
" C | \n",
" D | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.00 | \n",
" 4.000000 | \n",
" 7.000000 | \n",
" 2.000000 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.20 | \n",
" 5.600000 | \n",
" 3.800000 | \n",
" 0.400000 | \n",
" | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.25 | \n",
" 4.352000 | \n",
" 6.296000 | \n",
" 1.648000 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.30 | \n",
" 4.301581 | \n",
" 6.396838 | \n",
" 1.698419 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.35 | \n",
" 4.312637 | \n",
" 6.374726 | \n",
" 1.687363 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.40 | \n",
" 4.310125 | \n",
" 6.379749 | \n",
" 1.689875 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.45 | \n",
" 4.310692 | \n",
" 6.378617 | \n",
" 1.689308 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.50 | \n",
" 4.310564 | \n",
" 6.378872 | \n",
" 1.689436 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.55 | \n",
" 4.310593 | \n",
" 6.378815 | \n",
" 1.689407 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.60 | \n",
" 4.310586 | \n",
" 6.378828 | \n",
" 1.689414 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.65 | \n",
" 4.310588 | \n",
" 6.378825 | \n",
" 1.689412 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.70 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.75 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.80 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.85 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.90 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.95 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 1.00 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 1.05 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 1.10 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 1.15 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 21 | \n",
" 1.20 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 22 | \n",
" 1.25 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 23 | \n",
" 1.30 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 24 | \n",
" 1.35 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 25 | \n",
" 1.40 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 26 | \n",
" 1.45 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 27 | \n",
" 1.50 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 28 | \n",
" 1.55 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 29 | \n",
" 1.60 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 30 | \n",
" 1.65 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
" | 31 | \n",
" 1.70 | \n",
" 4.310587 | \n",
" 6.378825 | \n",
" 1.689413 | \n",
" | \n",
"
\n",
" \n",
"
\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
}