{
"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)\n",
"\n",
"LAST REVISED: June 23, 2024 (using v. 1.0 beta34.1)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "1fe1cc26-5763-4feb-b097-3ff995c10c8b",
"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": "592e626f",
"metadata": {},
"outputs": [],
"source": [
"from experiments.get_notebook_info import get_notebook_basename\n",
"\n",
"from life123 import ChemData as chem\n",
"from life123 import BioSim1D\n",
"\n",
"import plotly.express as px\n",
"from life123 import GraphicLog"
]
},
{
"cell_type": "code",
"execution_count": 3,
"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": 4,
"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 species:\n",
" Species 0 (A). Diff rate: None. Conc: [10.]\n",
" Species 1 (B). Diff rate: None. Conc: [50.]\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 <-> 3B , with 1st-order kinetics in both directions\n",
"chem_data.add_reaction(reactants=[(2,\"A\",1)], products=[(3,\"B\",1)], forward_rate=5., reverse_rate=2.)\n",
"\n",
"bio = BioSim1D(n_bins=1, chem_data=chem_data)\n",
"\n",
"bio.set_uniform_concentration(species_index=0, conc=10.)\n",
"bio.set_uniform_concentration(species_index=1, conc=50.)\n",
"\n",
"bio.describe_state()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "50961a8b-29af-4001-8d46-2a57ed7ccb0d",
"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 | \n",
" 10.0 | \n",
" 50.0 | \n",
" Initial state | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0 10.0 50.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": "0506f3fa-67d8-4aaf-986b-103f955336bb",
"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": [
"chem_data.describe_reactions()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"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 to the HTML log file\n",
"chem_data.plot_reaction_network(\"vue_cytoscape_2\")"
]
},
{
"cell_type": "markdown",
"id": "ce4ebe89-8187-4c6f-a526-5609937ac65e",
"metadata": {
"tags": []
},
"source": [
"### First step"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "430626a5-2e29-4738-944f-6233edd0e7c7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0.05:\n",
"1 bins and 2 species:\n",
" Species 0 (A). Diff rate: None. Conc: [15.]\n",
" Species 1 (B). Diff rate: None. Conc: [42.5]\n"
]
}
],
"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": [
"_Early in the reaction :_\n",
"[A] = 15. [B] = 42.5\n",
"\n",
"We're taking a smaller first step than in experimetn \"reaction_2\", to avoid over-shooting the equilibrium value with too large a step!"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "63f11bce-17f0-4757-98a3-a40e7621084f",
"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.0 | \n",
" 50.0 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.05 | \n",
" 15.0 | \n",
" 42.5 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B caption\n",
"0 0.00 10.0 50.0 Initial state\n",
"1 0.05 15.0 42.5 "
]
},
"execution_count": 9,
"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",
"bio.get_history()"
]
},
{
"cell_type": "markdown",
"id": "b12d38ef-c936-47b0-a1de-232fc9d521b7",
"metadata": {},
"source": [
"### Numerous more steps"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "f714a848-01a0-4343-bfbb-89d946a7e343",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 10.05:\n",
"1 bins and 2 species:\n",
" Species 0 (A). Diff rate: None. Conc: [16.25]\n",
" Species 1 (B). Diff rate: None. Conc: [40.625]\n"
]
}
],
"source": [
"# Numerous more steps\n",
"bio.react(time_step=0.1, n_steps=100, snapshots={\"sample_bin\": 0})\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": 11,
"id": "796bef2e-8a11-4aff-8ce5-0b9bb5f72680",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2 A <-> 3 B\n",
"Final 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": 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": "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": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bio.get_history()"
]
},
{
"cell_type": "markdown",
"id": "f2e3dc99-8b9d-4dcd-a2e3-ad099efbcbf4",
"metadata": {
"tags": []
},
"source": [
"# Plots of changes of concentration with time"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "c206e345-03c3-4c13-b1f3-d1d21d6bf100",
"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"
},
"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": "darkorange",
"dash": "solid"
},
"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": "Changes in concentrations"
},
"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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gAABAgQIECBAgAABAgRSCQhlU0mqQ4AAAQIECBAgQIAAAQIECBAgQIAAgQ4EhLIdILmEAAECBAgQIECAAAECBAgQIECAAAECqQSEsqkk1SFAgAABAgQIECBAgAABAgQIECBAgEAHAkLZDpBcQoAAAQIECBAgQIAAAQIECBAgQIAAgVQCQtlUkuoQIECAAAECBAgQIECAAAECBAgQIECgAwGhbAdILiFAgAABAgQIECBAgAABAgQIECBAgEAqAaFsKkl1CBAgQIAAAQIECBAgQIAAAQIECBAg0IGAULYDJJcQIECAAAECBAgQIECAAAECBAgQIEAglYBQNpWkOgQIECBAgAABAgQIECBAgAABAgQIEOhAQCjbAZJLCBAgQIAAAQIECBAgQIAAAQIECBAgkEpAKJtKUh0CBAgQIECAAAECBAgQIECAAAECBAh0ICCU7QDJJQQIECBAgAABAgQIECBAgAABAgQIEEglIJRNJakOAQIECBAgQIAAAQIECBAgQIAAAQIEOhAQynaA5BICBAgQIECAAAECBAgQIECAAAECBAikEhDKppJUhwABAgQIECBAgAABAgQIECBAgAABAh0ICGU7QHIJAQIECBAgQIAAAQIECBAgQIAAAQIEUgkIZVNJqkOAAAECBAgQIECAAAECBAgQIECAAIEOBISyHSC5hAABAgQIECBAgAABAgQIECBAgAABAqkEhLKpJNUhQIAAAQIECBAgQIAAAQIECBAgQIBABwJC2Q6QXEKAAAECBAgQIECAAAECBAgQIECAAIFUAkLZVJLqECBAgAABAgQIECBAgAABAgQIECBAoAMBoWwHSC4hQIAAAQIECBAgQIAAAQIECBAgQIBAKgGhbCpJdQgQIECAAAECBAgQIECAAAECBAgQINCBgFC2AySXECBAgAABAgQIECBAgAABAgQIECBAIJWAUDaVpDoECBAgQIAAAQIECBAgQIAAAQIECBDoQEAo2wGSSwgQIECAAAECBAgQIECAAAECBAgQIJBKQCibSlIdAgQIECBAgAABAgQIECBAgAABAgQIdCAglO0AySUECBAgQIAAAQIECBAgQIAAAQIECBBIJSCUTSWpDgECBAgQIECAAAECBAgQIECAAAECBDoQEMp2gOQSAgQIECBAgAABAgQIECBAgAABAgQIpBIQyqaSVIcAAQIECBAgQIAAAQIECBAgQIAAAQIdCAhlO0ByCQECBAgQIECAAAECBAgQIECAAAECBFIJ/F+WeSFsqo1DFQAAAABJRU5ErkJggg==",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = px.line(data_frame=bio.get_history(), x=\"SYSTEM TIME\", y=[\"A\", \"B\"], \n",
" title=\"Changes in concentrations\",\n",
" color_discrete_sequence = ['navy', 'darkorange'],\n",
" labels={\"value\":\"concentration\", \"variable\":\"Chemical\"})\n",
"fig.show()"
]
},
{
"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.8.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}