{
"cells": [
{
"cell_type": "markdown",
"id": "8d1aaf6c-3d58-4e27-88ac-9482296ac61a",
"metadata": {},
"source": [
"### One-bin `2A <-> 3B` reaction, with 1st-order kinetics in both directions, taken to equilibrium\n",
"\n",
"Diffusion not applicable (just 1 bin)"
]
},
{
"cell_type": "markdown",
"id": "cc63c0c5-c23d-4b02-aaee-276cc382f379",
"metadata": {},
"source": [
"### TAGS : \"reactions 1D\", \"basic\""
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "8600a73a-456f-4611-95e0-dc4e927f7bc6",
"metadata": {},
"outputs": [],
"source": [
"LAST_REVISED = \"May 4, 2025\"\n",
"LIFE123_VERSION = \"1.0.0rc3\" # Library version this experiment is based on"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "1fe1cc26-5763-4feb-b097-3ff995c10c8b",
"metadata": {},
"outputs": [],
"source": [
"#import set_path # Using MyBinder? Uncomment this before running the next cell!"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "592e626f",
"metadata": {},
"outputs": [],
"source": [
"#import sys, os\n",
"#os.getcwd()\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 ChemData, BioSim1D, check_version\n",
"\n",
"from life123 import GraphicLog"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "6f10f260-f2d9-48eb-b702-0be5247b37d7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"OK\n"
]
}
],
"source": [
"check_version(LIFE123_VERSION)"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "89d4e3d6-09d9-427a-bd49-5cb9ace9d017",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 5,
"id": "4745cc84-d917-4701-87a8-8c16f9ac428e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-> Output will be LOGGED into the file 'reaction_3.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": "b2660f8d-3447-4874-88d0-da99c0edcfcd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0:\n",
"1 bins and 2 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",
" 10.0 | \n",
"
\n",
" \n",
" | 1 | \n",
" B | \n",
" None | \n",
" 50.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Species Diff rate Bin 0\n",
"0 A None 10.0\n",
"1 B None 50.0"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Initialize the system\n",
"chem_data = ChemData(names=[\"A\", \"B\"]) # NOTE: Diffusion not applicable (just 1 bin)\n",
"\n",
"bio = BioSim1D(n_bins=1, chem_data=chem_data)\n",
"\n",
"bio.set_uniform_concentration(chem_index=0, conc=10.)\n",
"bio.set_uniform_concentration(chem_index=1, conc=50.)\n",
"\n",
"bio.describe_state()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "331bd441-6a2d-4ac9-84b1-8d84301ae6ba",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of reactions: 1 (at temp. 25 C)\n",
"0: 2 A <-> 3 B (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: {'B', 'A'}\n"
]
}
],
"source": [
"# Specify the reaction\n",
"reactions = bio.get_reactions()\n",
"\n",
"# Reaction 2A <-> 3B , with 1st-order kinetics in both directions\n",
"reactions.add_reaction(reactants=[(2,\"A\",1)], products=[(3,\"B\",1)], forward_rate=5., reverse_rate=2.)\n",
"reactions.describe_reactions()"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "feae8232-392a-44fd-a9cf-0fb426258fee",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[GRAPHIC ELEMENT SENT TO LOG FILE `reaction_3.log.htm`]\n"
]
}
],
"source": [
"# Send the plot of the reaction network to the HTML log file\n",
"reactions.plot_reaction_network(\"vue_cytoscape_2\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f7e267d2-2205-4e51-9da5-0ed88eed1aaf",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "code",
"execution_count": 9,
"id": "50961a8b-29af-4001-8d46-2a57ed7ccb0d",
"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": "9140ad09-c601-4962-9736-f7b542b8b838",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.0 | \n",
" 10.0 | \n",
" 50.0 | \n",
" Initial state | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0.0 10.0 50.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": "0506f3fa-67d8-4aaf-986b-103f955336bb",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "ce4ebe89-8187-4c6f-a526-5609937ac65e",
"metadata": {
"tags": []
},
"source": [
"### First step"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "430626a5-2e29-4738-944f-6233edd0e7c7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"System Time is now: 0.05\n",
"SYSTEM STATE at Time t = 0.05:\n",
"1 bins and 2 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",
" 15.0 | \n",
"
\n",
" \n",
" | 1 | \n",
" B | \n",
" None | \n",
" 42.5 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Species Diff rate Bin 0\n",
"0 A None 15.0\n",
"1 B None 42.5"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# First step\n",
"bio.react(time_step=0.05, n_steps=1)\n",
"bio.describe_state()"
]
},
{
"cell_type": "markdown",
"id": "27067455-0efd-45d3-abd8-9b66b6f48097",
"metadata": {},
"source": [
"We're taking a smaller first step than in experiment \"reaction_2\", to avoid over-shooting the equilibrium value with too large a step!"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1c4e5a04-ba42-46ac-8dbe-796a9ef2ed0f",
"metadata": {},
"outputs": [],
"source": []
},
{
"cell_type": "markdown",
"id": "b12d38ef-c936-47b0-a1de-232fc9d521b7",
"metadata": {},
"source": [
"### Numerous more steps"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "f714a848-01a0-4343-bfbb-89d946a7e343",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"System Time is now: 10.05\n",
"SYSTEM STATE at Time t = 10.05:\n",
"1 bins and 2 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",
" 16.250 | \n",
"
\n",
" \n",
" | 1 | \n",
" B | \n",
" None | \n",
" 40.625 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Species Diff rate Bin 0\n",
"0 A None 16.250\n",
"1 B None 40.625"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Numerous more steps\n",
"bio.react(time_step=0.1, n_steps=100)\n",
"\n",
"bio.describe_state()"
]
},
{
"cell_type": "markdown",
"id": "ff1860cd-a3c7-47a5-9b9f-3c04560962fa",
"metadata": {
"tags": []
},
"source": [
"### Equilibrium"
]
},
{
"cell_type": "markdown",
"id": "20ce715e-e24a-4ec3-a93d-d3eb5858aef5",
"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: [A] = 16.25 , [B] = 40.625"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "796bef2e-8a11-4aff-8ce5-0b9bb5f72680",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2 A <-> 3 B\n",
"Current concentrations: [A] = 16.25 ; [B] = 40.63\n",
"1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2.5\n",
" Formula used: [B] / [A]\n",
"2. Ratio of forward/reverse reaction rates: 2.5\n",
"Discrepancy between the two values: 1.776e-14 %\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.reaction_dynamics.is_in_equilibrium(rxn_index=0, conc=bio.bin_snapshot(bin_address = 0))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "7527ea21-fd7d-4514-ab49-cc6c16482c10",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.00 | \n",
" 10.00 | \n",
" 50.000 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.05 | \n",
" 15.00 | \n",
" 42.500 | \n",
" | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.15 | \n",
" 17.00 | \n",
" 39.500 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.25 | \n",
" 15.80 | \n",
" 41.300 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.35 | \n",
" 16.52 | \n",
" 40.220 | \n",
" | \n",
"
\n",
" \n",
" | ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" | 97 | \n",
" 9.65 | \n",
" 16.25 | \n",
" 40.625 | \n",
" | \n",
"
\n",
" \n",
" | 98 | \n",
" 9.75 | \n",
" 16.25 | \n",
" 40.625 | \n",
" | \n",
"
\n",
" \n",
" | 99 | \n",
" 9.85 | \n",
" 16.25 | \n",
" 40.625 | \n",
" | \n",
"
\n",
" \n",
" | 100 | \n",
" 9.95 | \n",
" 16.25 | \n",
" 40.625 | \n",
" | \n",
"
\n",
" \n",
" | 101 | \n",
" 10.05 | \n",
" 16.25 | \n",
" 40.625 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
102 rows × 4 columns
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0.00 10.00 50.000 Initial state\n",
"1 0.05 15.00 42.500 \n",
"2 0.15 17.00 39.500 \n",
"3 0.25 15.80 41.300 \n",
"4 0.35 16.52 40.220 \n",
".. ... ... ... ...\n",
"97 9.65 16.25 40.625 \n",
"98 9.75 16.25 40.625 \n",
"99 9.85 16.25 40.625 \n",
"100 9.95 16.25 40.625 \n",
"101 10.05 16.25 40.625 \n",
"\n",
"[102 rows x 4 columns]"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bio.get_bin_history(bin_address=0)"
]
},
{
"cell_type": "markdown",
"id": "f2e3dc99-8b9d-4dcd-a2e3-ad099efbcbf4",
"metadata": {
"tags": []
},
"source": [
"# Plots of changes of concentration with time"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "8b70983e-0a60-432a-aa70-20fc596cd9ad",
"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": "darkturquoise",
"dash": "solid",
"shape": "linear"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "A",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.05,
0.15000000000000002,
0.25,
0.35,
0.44999999999999996,
0.5499999999999999,
0.6499999999999999,
0.7499999999999999,
0.8499999999999999,
0.9499999999999998,
1.0499999999999998,
1.15,
1.25,
1.35,
1.4500000000000002,
1.5500000000000003,
1.6500000000000004,
1.7500000000000004,
1.8500000000000005,
1.9500000000000006,
2.0500000000000007,
2.150000000000001,
2.250000000000001,
2.350000000000001,
2.450000000000001,
2.550000000000001,
2.6500000000000012,
2.7500000000000013,
2.8500000000000014,
2.9500000000000015,
3.0500000000000016,
3.1500000000000017,
3.2500000000000018,
3.350000000000002,
3.450000000000002,
3.550000000000002,
3.650000000000002,
3.750000000000002,
3.8500000000000023,
3.9500000000000024,
4.0500000000000025,
4.150000000000002,
4.250000000000002,
4.350000000000001,
4.450000000000001,
4.550000000000001,
4.65,
4.75,
4.85,
4.949999999999999,
5.049999999999999,
5.149999999999999,
5.249999999999998,
5.349999999999998,
5.4499999999999975,
5.549999999999997,
5.649999999999997,
5.7499999999999964,
5.849999999999996,
5.949999999999996,
6.049999999999995,
6.149999999999995,
6.249999999999995,
6.349999999999994,
6.449999999999994,
6.549999999999994,
6.649999999999993,
6.749999999999993,
6.8499999999999925,
6.949999999999992,
7.049999999999992,
7.1499999999999915,
7.249999999999991,
7.349999999999991,
7.44999999999999,
7.54999999999999,
7.64999999999999,
7.749999999999989,
7.849999999999989,
7.949999999999989,
8.049999999999988,
8.149999999999988,
8.249999999999988,
8.349999999999987,
8.449999999999987,
8.549999999999986,
8.649999999999986,
8.749999999999986,
8.849999999999985,
8.949999999999985,
9.049999999999985,
9.149999999999984,
9.249999999999984,
9.349999999999984,
9.449999999999983,
9.549999999999983,
9.649999999999983,
9.749999999999982,
9.849999999999982,
9.949999999999982,
10.049999999999981
],
"xaxis": "x",
"y": [
10,
15,
17,
15.8,
16.52,
16.088,
16.3472,
16.191679999999998,
16.284992000000003,
16.2290048,
16.262597120000002,
16.242441728,
16.2545349632,
16.24727902208,
16.251632586752002,
16.249020447948798,
16.250587731230723,
16.24964736126157,
16.25021158324306,
16.249873050054166,
16.250076169967503,
16.2499542980195,
16.2500274211883,
16.249983547287023,
16.250009871627785,
16.24999407702333,
16.250003553786005,
16.2499978677284,
16.250001279362962,
16.249999232382226,
16.250000460570668,
16.2499997236576,
16.250000165805442,
16.249999900516734,
16.25000005968996,
16.249999964186024,
16.250000021488386,
16.249999987106968,
16.25000000773582,
16.24999999535851,
16.250000002784898,
16.249999998329063,
16.250000001002565,
16.249999999398465,
16.250000000360924,
16.249999999783448,
16.250000000129933,
16.249999999922046,
16.25000000004678,
16.249999999971937,
16.250000000016843,
16.2499999999899,
16.250000000006064,
16.249999999996366,
16.250000000002185,
16.249999999998693,
16.25000000000079,
16.24999999999953,
16.250000000000288,
16.249999999999833,
16.250000000000107,
16.24999999999994,
16.25000000000004,
16.24999999999998,
16.250000000000018,
16.249999999999996,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004,
16.250000000000007,
16.250000000000004
],
"yaxis": "y"
},
{
"hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
Concentration=%{y}",
"legendgroup": "B",
"line": {
"color": "green",
"dash": "solid",
"shape": "linear"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "B",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.05,
0.15000000000000002,
0.25,
0.35,
0.44999999999999996,
0.5499999999999999,
0.6499999999999999,
0.7499999999999999,
0.8499999999999999,
0.9499999999999998,
1.0499999999999998,
1.15,
1.25,
1.35,
1.4500000000000002,
1.5500000000000003,
1.6500000000000004,
1.7500000000000004,
1.8500000000000005,
1.9500000000000006,
2.0500000000000007,
2.150000000000001,
2.250000000000001,
2.350000000000001,
2.450000000000001,
2.550000000000001,
2.6500000000000012,
2.7500000000000013,
2.8500000000000014,
2.9500000000000015,
3.0500000000000016,
3.1500000000000017,
3.2500000000000018,
3.350000000000002,
3.450000000000002,
3.550000000000002,
3.650000000000002,
3.750000000000002,
3.8500000000000023,
3.9500000000000024,
4.0500000000000025,
4.150000000000002,
4.250000000000002,
4.350000000000001,
4.450000000000001,
4.550000000000001,
4.65,
4.75,
4.85,
4.949999999999999,
5.049999999999999,
5.149999999999999,
5.249999999999998,
5.349999999999998,
5.4499999999999975,
5.549999999999997,
5.649999999999997,
5.7499999999999964,
5.849999999999996,
5.949999999999996,
6.049999999999995,
6.149999999999995,
6.249999999999995,
6.349999999999994,
6.449999999999994,
6.549999999999994,
6.649999999999993,
6.749999999999993,
6.8499999999999925,
6.949999999999992,
7.049999999999992,
7.1499999999999915,
7.249999999999991,
7.349999999999991,
7.44999999999999,
7.54999999999999,
7.64999999999999,
7.749999999999989,
7.849999999999989,
7.949999999999989,
8.049999999999988,
8.149999999999988,
8.249999999999988,
8.349999999999987,
8.449999999999987,
8.549999999999986,
8.649999999999986,
8.749999999999986,
8.849999999999985,
8.949999999999985,
9.049999999999985,
9.149999999999984,
9.249999999999984,
9.349999999999984,
9.449999999999983,
9.549999999999983,
9.649999999999983,
9.749999999999982,
9.849999999999982,
9.949999999999982,
10.049999999999981
],
"xaxis": "x",
"y": [
50,
42.5,
39.5,
41.3,
40.22,
40.867999999999995,
40.4792,
40.71248,
40.572511999999996,
40.6564928,
40.60610432,
40.636337408,
40.6181975552,
40.62908146688,
40.622551119872,
40.62646932807681,
40.62411840315392,
40.62552895810765,
40.624682625135414,
40.625190424918756,
40.62488574504875,
40.62506855297075,
40.624958868217554,
40.62502467906947,
40.62498519255833,
40.62500888446501,
40.624994669321,
40.625003198407406,
40.624998080955564,
40.625001151426666,
40.624999309144,
40.62500041451361,
40.62499975129184,
40.6250001492249,
40.624999910465064,
40.62500005372097,
40.62499996776742,
40.62500001933955,
40.624999988396276,
40.62500000696224,
40.62499999582266,
40.62500000250641,
40.62499999849616,
40.62500000090231,
40.62499999945862,
40.62500000032484,
40.62499999980511,
40.62500000011694,
40.62499999992984,
40.62500000004211,
40.62499999997475,
40.62500000001516,
40.62499999999091,
40.625000000005464,
40.62499999999673,
40.62500000000197,
40.62499999999883,
40.62500000000072,
40.62499999999958,
40.62500000000026,
40.62499999999985,
40.6250000000001,
40.62499999999995,
40.62500000000004,
40.624999999999986,
40.62500000000002,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014,
40.62500000000001,
40.625000000000014
],
"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 2A <-> 3B . Concentrations at bin 0"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
0,
10.049999999999981
],
"title": {
"text": "SYSTEM TIME"
},
"type": "linear"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
7.777777777777778,
52.22222222222222
],
"title": {
"text": "Concentration"
},
"type": "linear"
}
}
},
"image/png": "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",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"bio.plot_history_single_bin(bin_address=0, \n",
" title=\"Reaction 2A <-> 3B . Concentrations at bin 0\")"
]
},
{
"cell_type": "markdown",
"id": "ca41b04c-8626-45b1-b83d-79a97dd9a3cd",
"metadata": {},
"source": [
"### Notice the *early overshoots* (the time step is too large early in the simulation!)\n",
"Variable, adaptive time steps are explored at length in the _\"reactions_single_compartment\"_ experiments"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "243badde",
"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
}