{
"cells": [
{
"cell_type": "markdown",
"id": "c3b90917-d8b3-4644-a485-b22d440272b9",
"metadata": {},
"source": [
"## One-bin Association/Dissociation reaction `A + B <-> C`\n",
"### with 1st-order kinetics for each species, taken to equilibrium\n",
"\n",
"Diffusion not applicable (just 1 bin)\n",
"\n",
"See also the experiment _\"reactions_single_compartment/react_3\"_ \n",
"\n",
"\n",
"LAST REVISED: June 23, 2024 (using v. 1.0 beta34.1)"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "a8f89c58-e3b5-4a07-96ec-6f7455db1bf5",
"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": "f5117d69",
"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": "ada82175-1d15-4213-b834-5a5d8e2dd31e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-> Output will be LOGGED into the file 'reaction_4.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": "d8f2d83d-97bc-4f57-8f71-c0923f0334ed",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of reactions: 1 (at temp. 25 C)\n",
"0: A + B <-> C (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: {'C', 'B', 'A'}\n"
]
}
],
"source": [
"# Specify the chemicals\n",
"chem_data = chem(names=[\"A\", \"B\", \"C\"]) # NOTE: Diffusion not applicable (using just 1 bin)\n",
"\n",
"\n",
"# Reaction A + B <-> C , with 1st-order kinetics for each species\n",
"chem_data.add_reaction(reactants=[\"A\" , \"B\"], products=[\"C\"],\n",
" forward_rate=5., reverse_rate=2.)\n",
"\n",
"chem_data.describe_reactions()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "b351573c-275c-434f-8301-4ed54197e0cc",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0:\n",
"1 bins and 3 species:\n",
" Species 0 (A). Diff rate: None. Conc: [10.]\n",
" Species 1 (B). Diff rate: None. Conc: [50.]\n",
" Species 2 (C). Diff rate: None. Conc: [20.]\n"
]
}
],
"source": [
"# Initialize the system\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",
"bio.set_uniform_concentration(species_index=2, conc=20.)\n",
"\n",
"bio.describe_state()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "fdb1f449-8415-4fdf-b4a3-24220866c96c",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0 | \n",
" 10.0 | \n",
" 50.0 | \n",
" 20.0 | \n",
" Initial state | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C caption\n",
"0 0 10.0 50.0 20.0 Initial state"
]
},
"execution_count": 6,
"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": 7,
"id": "25f70c0f-621e-413f-bc93-336d38d462d7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[GRAPHIC ELEMENT SENT TO LOG FILE `reaction_4.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": "356e4db3-02a6-40bd-a951-841bfc6c5522",
"metadata": {
"tags": []
},
"source": [
"### First step"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "b8c0d439-13f7-459c-88e2-0ae357b46c18",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0.002:\n",
"1 bins and 3 species:\n",
" Species 0 (A). Diff rate: None. Conc: [5.08]\n",
" Species 1 (B). Diff rate: None. Conc: [45.08]\n",
" Species 2 (C). Diff rate: None. Conc: [24.92]\n"
]
}
],
"source": [
"# First step\n",
"bio.react(time_step=0.002, n_steps=1)\n",
"bio.describe_state()"
]
},
{
"cell_type": "markdown",
"id": "4c074e7c-0308-4085-a2f9-2da055ffcef8",
"metadata": {},
"source": [
"_Early in the reaction :_\n",
"[A] = 5.08 , [B] = 45.08 , [C] = [24.92]"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "386d8052-2d92-43b0-b817-ab4a1cce3ba0",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000 | \n",
" 10.00 | \n",
" 50.00 | \n",
" 20.00 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.002 | \n",
" 5.08 | \n",
" 45.08 | \n",
" 24.92 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C caption\n",
"0 0.000 10.00 50.00 20.00 Initial state\n",
"1 0.002 5.08 45.08 24.92 "
]
},
"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": "88ec4bcc-48dc-45eb-84fc-8e6e0b259612",
"metadata": {},
"source": [
"### Numerous more steps"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "8efdf9ef-bdca-48ff-b139-6e2d9952c1d8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0.06:\n",
"1 bins and 3 species:\n",
" Species 0 (A). Diff rate: None. Conc: [0.29487831]\n",
" Species 1 (B). Diff rate: None. Conc: [40.29487831]\n",
" Species 2 (C). Diff rate: None. Conc: [29.70512169]\n"
]
}
],
"source": [
"# Numerous more steps\n",
"bio.react(time_step=0.002, n_steps=29, snapshots={\"sample_bin\": 0})\n",
"\n",
"bio.describe_state()"
]
},
{
"cell_type": "markdown",
"id": "6b0be45c-ff0e-43d8-847a-b6e8d0e6e0ec",
"metadata": {
"tags": []
},
"source": [
"### Equilibrium"
]
},
{
"cell_type": "markdown",
"id": "7f687d0d-75ab-4e29-8070-5b6f1fc80b4b",
"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] = 0.29487831 , [B] = 40.29487831 , [C] = 29.70512169"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "46a3ea5d-6516-4582-9958-6a80403e8f19",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"A + B <-> C\n",
"Final concentrations: [A] = 0.2949 ; [B] = 40.29 ; [C] = 29.71\n",
"1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2.49999\n",
" Formula used: [C] / ([A][B])\n",
"2. Ratio of forward/reverse reaction rates: 2.5\n",
"Discrepancy between the two values: 0.0003107 %\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": "6975a1e8-d708-401f-ab7f-78c183f765bf",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000 | \n",
" 10.000000 | \n",
" 50.000000 | \n",
" 20.000000 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.002 | \n",
" 5.080000 | \n",
" 45.080000 | \n",
" 24.920000 | \n",
" | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.004 | \n",
" 2.889616 | \n",
" 42.889616 | \n",
" 27.110384 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.006 | \n",
" 1.758712 | \n",
" 41.758712 | \n",
" 28.241288 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.008 | \n",
" 1.137262 | \n",
" 41.137262 | \n",
" 28.862738 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.010 | \n",
" 0.784874 | \n",
" 40.784874 | \n",
" 29.215126 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.012 | \n",
" 0.581625 | \n",
" 40.581625 | \n",
" 29.418375 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.014 | \n",
" 0.463266 | \n",
" 40.463266 | \n",
" 29.536734 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.016 | \n",
" 0.393960 | \n",
" 40.393960 | \n",
" 29.606040 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.018 | \n",
" 0.353248 | \n",
" 40.353248 | \n",
" 29.646752 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.020 | \n",
" 0.329288 | \n",
" 40.329288 | \n",
" 29.670712 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.022 | \n",
" 0.315171 | \n",
" 40.315171 | \n",
" 29.684829 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.024 | \n",
" 0.306849 | \n",
" 40.306849 | \n",
" 29.693151 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.026 | \n",
" 0.301940 | \n",
" 40.301940 | \n",
" 29.698060 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.028 | \n",
" 0.299045 | \n",
" 40.299045 | \n",
" 29.700955 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.030 | \n",
" 0.297336 | \n",
" 40.297336 | \n",
" 29.702664 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.032 | \n",
" 0.296328 | \n",
" 40.296328 | \n",
" 29.703672 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.034 | \n",
" 0.295734 | \n",
" 40.295734 | \n",
" 29.704266 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.036 | \n",
" 0.295383 | \n",
" 40.295383 | \n",
" 29.704617 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.038 | \n",
" 0.295176 | \n",
" 40.295176 | \n",
" 29.704824 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 0.040 | \n",
" 0.295053 | \n",
" 40.295053 | \n",
" 29.704947 | \n",
" | \n",
"
\n",
" \n",
" | 21 | \n",
" 0.042 | \n",
" 0.294981 | \n",
" 40.294981 | \n",
" 29.705019 | \n",
" | \n",
"
\n",
" \n",
" | 22 | \n",
" 0.044 | \n",
" 0.294939 | \n",
" 40.294939 | \n",
" 29.705061 | \n",
" | \n",
"
\n",
" \n",
" | 23 | \n",
" 0.046 | \n",
" 0.294914 | \n",
" 40.294914 | \n",
" 29.705086 | \n",
" | \n",
"
\n",
" \n",
" | 24 | \n",
" 0.048 | \n",
" 0.294899 | \n",
" 40.294899 | \n",
" 29.705101 | \n",
" | \n",
"
\n",
" \n",
" | 25 | \n",
" 0.050 | \n",
" 0.294890 | \n",
" 40.294890 | \n",
" 29.705110 | \n",
" | \n",
"
\n",
" \n",
" | 26 | \n",
" 0.052 | \n",
" 0.294885 | \n",
" 40.294885 | \n",
" 29.705115 | \n",
" | \n",
"
\n",
" \n",
" | 27 | \n",
" 0.054 | \n",
" 0.294882 | \n",
" 40.294882 | \n",
" 29.705118 | \n",
" | \n",
"
\n",
" \n",
" | 28 | \n",
" 0.056 | \n",
" 0.294880 | \n",
" 40.294880 | \n",
" 29.705120 | \n",
" | \n",
"
\n",
" \n",
" | 29 | \n",
" 0.058 | \n",
" 0.294879 | \n",
" 40.294879 | \n",
" 29.705121 | \n",
" | \n",
"
\n",
" \n",
" | 30 | \n",
" 0.060 | \n",
" 0.294878 | \n",
" 40.294878 | \n",
" 29.705122 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C caption\n",
"0 0.000 10.000000 50.000000 20.000000 Initial state\n",
"1 0.002 5.080000 45.080000 24.920000 \n",
"2 0.004 2.889616 42.889616 27.110384 \n",
"3 0.006 1.758712 41.758712 28.241288 \n",
"4 0.008 1.137262 41.137262 28.862738 \n",
"5 0.010 0.784874 40.784874 29.215126 \n",
"6 0.012 0.581625 40.581625 29.418375 \n",
"7 0.014 0.463266 40.463266 29.536734 \n",
"8 0.016 0.393960 40.393960 29.606040 \n",
"9 0.018 0.353248 40.353248 29.646752 \n",
"10 0.020 0.329288 40.329288 29.670712 \n",
"11 0.022 0.315171 40.315171 29.684829 \n",
"12 0.024 0.306849 40.306849 29.693151 \n",
"13 0.026 0.301940 40.301940 29.698060 \n",
"14 0.028 0.299045 40.299045 29.700955 \n",
"15 0.030 0.297336 40.297336 29.702664 \n",
"16 0.032 0.296328 40.296328 29.703672 \n",
"17 0.034 0.295734 40.295734 29.704266 \n",
"18 0.036 0.295383 40.295383 29.704617 \n",
"19 0.038 0.295176 40.295176 29.704824 \n",
"20 0.040 0.295053 40.295053 29.704947 \n",
"21 0.042 0.294981 40.294981 29.705019 \n",
"22 0.044 0.294939 40.294939 29.705061 \n",
"23 0.046 0.294914 40.294914 29.705086 \n",
"24 0.048 0.294899 40.294899 29.705101 \n",
"25 0.050 0.294890 40.294890 29.705110 \n",
"26 0.052 0.294885 40.294885 29.705115 \n",
"27 0.054 0.294882 40.294882 29.705118 \n",
"28 0.056 0.294880 40.294880 29.705120 \n",
"29 0.058 0.294879 40.294879 29.705121 \n",
"30 0.060 0.294878 40.294878 29.705122 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Save the state of the concentrations of all species at bin 0\n",
"bio.get_history()"
]
},
{
"cell_type": "markdown",
"id": "8a4576cc-d927-4776-a691-2001bba5d1b7",
"metadata": {},
"source": [
"## Note: \"A\" (now largely depleted) is largely the limiting reagent"
]
},
{
"cell_type": "markdown",
"id": "d82cb7fe-0bd2-4b3e-bbec-6f5b70d0e5ae",
"metadata": {
"tags": []
},
"source": [
"## Plots of changes of concentration with time"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "14d83e31-e46e-46aa-ac3a-5e45f3475bf0",
"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": "red",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "A",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.002,
0.004,
0.006,
0.008,
0.01,
0.012,
0.014,
0.016,
0.018000000000000002,
0.020000000000000004,
0.022000000000000006,
0.024000000000000007,
0.02600000000000001,
0.02800000000000001,
0.030000000000000013,
0.032000000000000015,
0.034000000000000016,
0.03600000000000002,
0.03800000000000002,
0.04000000000000002,
0.04200000000000002,
0.044000000000000025,
0.04600000000000003,
0.04800000000000003,
0.05000000000000003,
0.05200000000000003,
0.054000000000000034,
0.056000000000000036,
0.05800000000000004,
0.06000000000000004
],
"xaxis": "x",
"y": [
10,
5.08,
2.889616,
1.7587123297254401,
1.1372618579290796,
0.7848744219907284,
0.5816248769235214,
0.4632655516718558,
0.39396011908276785,
0.3532481852190526,
0.3292880755869499,
0.31517138668258465,
0.3068488164329863,
0.3019403326325966,
0.29904475860432483,
0.29733639845169046,
0.2963284041387654,
0.29573362363570993,
0.2953826559253961,
0.29517555379732074,
0.2950533439876077,
0.29498122825863154,
0.29493867279189473,
0.29491356077688685,
0.29489874213972356,
0.2948899976341194,
0.2948848374828887,
0.2948817924660286,
0.2948799955944733,
0.29487893525628817,
0.29487830954816896
],
"yaxis": "y"
},
{
"hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}",
"legendgroup": "B",
"line": {
"color": "violet",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "B",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.002,
0.004,
0.006,
0.008,
0.01,
0.012,
0.014,
0.016,
0.018000000000000002,
0.020000000000000004,
0.022000000000000006,
0.024000000000000007,
0.02600000000000001,
0.02800000000000001,
0.030000000000000013,
0.032000000000000015,
0.034000000000000016,
0.03600000000000002,
0.03800000000000002,
0.04000000000000002,
0.04200000000000002,
0.044000000000000025,
0.04600000000000003,
0.04800000000000003,
0.05000000000000003,
0.05200000000000003,
0.054000000000000034,
0.056000000000000036,
0.05800000000000004,
0.06000000000000004
],
"xaxis": "x",
"y": [
50,
45.08,
42.889616,
41.758712329725434,
41.137261857929076,
40.78487442199072,
40.58162487692351,
40.463265551671846,
40.393960119082756,
40.35324818521904,
40.32928807558694,
40.31517138668257,
40.306848816432975,
40.30194033263258,
40.29904475860431,
40.29733639845168,
40.29632840413875,
40.29573362363569,
40.29538265592538,
40.29517555379731,
40.2950533439876,
40.29498122825862,
40.294938672791886,
40.29491356077688,
40.294898742139715,
40.29488999763411,
40.294884837482876,
40.294881792466015,
40.29487999559446,
40.29487893525627,
40.29487830954815
],
"yaxis": "y"
},
{
"hovertemplate": "Chemical=C
SYSTEM TIME=%{x}
concentration=%{y}",
"legendgroup": "C",
"line": {
"color": "green",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "C",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.002,
0.004,
0.006,
0.008,
0.01,
0.012,
0.014,
0.016,
0.018000000000000002,
0.020000000000000004,
0.022000000000000006,
0.024000000000000007,
0.02600000000000001,
0.02800000000000001,
0.030000000000000013,
0.032000000000000015,
0.034000000000000016,
0.03600000000000002,
0.03800000000000002,
0.04000000000000002,
0.04200000000000002,
0.044000000000000025,
0.04600000000000003,
0.04800000000000003,
0.05000000000000003,
0.05200000000000003,
0.054000000000000034,
0.056000000000000036,
0.05800000000000004,
0.06000000000000004
],
"xaxis": "x",
"y": [
20,
24.92,
27.110384000000003,
28.241287670274563,
28.862738142070924,
29.215125578009275,
29.418375123076483,
29.53673444832815,
29.606039880917237,
29.646751814780952,
29.670711924413055,
29.68482861331742,
29.693151183567018,
29.698059667367406,
29.70095524139568,
29.702663601548313,
29.703671595861238,
29.70426637636429,
29.704617344074606,
29.704824446202682,
29.704946656012396,
29.705018771741372,
29.70506132720811,
29.705086439223116,
29.705101257860278,
29.70511000236588,
29.70511516251711,
29.70511820753397,
29.705120004405526,
29.70512106474371,
29.70512169045183
],
"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 . Changes in concentrations with time"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
0,
0.06000000000000004
],
"title": {
"text": "SYSTEM TIME"
},
"type": "linear"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
-2.466517339921377,
52.76139564946955
],
"title": {
"text": "concentration"
},
"type": "linear"
}
}
},
"image/png": "iVBORw0KGgoAAAANSUhEUgAABWUAAAFoCAYAAAA/wpnnAAAgAElEQVR4Xu3dC7RldZ0f+P+9VUUVrwKqwBcKNKI20vR0dCV20tABtZGeNSLLWbFxTZwQcXpBMmStticLbWZM4jQ+ViK9VphEYtSQcWZ89IpBnJWg3bYm0I6abvuBSFRkgYryLN5QBVV1Z/9P1b6cOnXOvXuf+z977//en7PWpYpz9/4/Pr997uNb//PfSyvFI3gQIECAAAECBAgQIECAAAECBAgQIECAQCMCS0LZRpx1QoAAAQIECBAgQIAAAQIECBAgQIAAgZGAUNaFQIAAAQIECBAgQIAAAQIECBAgQIAAgQYFhLINYuuKAAECBAgQIECAAAECBAgQIECAAAECQlnXAAECBAgQIECAAAECBAgQIECAAAECBBoUEMo2iK0rAgQIECBAgAABAgQIECBAgAABAgQICGVdAwQIECBAgAABAgQIECBAgAABAgQIEGhQQCjbILauCBAgQIAAAQIECBAgQIAAAQIECBAgIJR1DRAgQIAAAQIECBAgQIAAAQIECBAgQKBBAaFsg9i6IkCAAAECBAgQIECAAAECBAgQIECAgFDWNUCAAAECBAgQIECAAAECBAgQIECAAIEGBYSyDWLrigABAgQIECBAgAABAgQIECBAgAABAkJZ1wABAgQIECBAgAABAgQIECBAgAABAgQaFBDKNoitKwIECBAgQIAAAQIECBAgQIAAAQIECAhlXQMECBAgQIAAAQIECBAgQIAAAQIECBBoUEAo2yC2rggQIECAAAECBAgQIECAAAECBAgQICCUdQ0QIECAAAECBAgQIECAAAECBAgQIECgQQGhbIPYuiJAgAABAgQIECBAgAABAgQIECBAgIBQ1jVAgAABAgQIECBAgAABAgQIECBAgACBBgWEsg1i64oAAQIECBAgQIAAAQIECBAgQIAAAQJCWdcAAQIECBAgQIAAAQIECBAgQIAAAQIEGhQQyjaIrSsCBAgQIECAAAECBAgQIECAAAECBAgIZV0DBAgQIECAAAECBAgQIECAAAECBAgQaFBAKNsgtq4IECBAgAABAgQIECBAgAABAgQIECAglHUNECBAgAABAgQIECBAgAABAgQIECBAoEEBoWyD2LoiQIAAAQIECBAgQIAAAQIECBAgQICAUNY1QIAAAQIECBAg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AAECBAgQIJCNgFA2m1IZKAECBAgQIECAAAECBAgQIECAAAECfRAQyvahiuZAgAABAgQIECBAgAABAgQIECBAgEA2AkLZbEploAQIECBAgAABAgQIECBAgAABAgQI9EFAKNuHKpoDAQIECBAgQIAAAQIECBAgQIAAAQLZCAhlsymVgRIgQIAAAQIECBAgQIAAAQIECBAg0AcBoWwfqmgOBAgQIECAAAECBAgQIECAAAECBAhkIyCUzaZUBkqAAAECBAgQIECAAAECBAgQIECAQB8EhLJ9qKI5ECBAgAABAgQIECBAgAABAgQIECCQjYBQNptSGSgBAgQIECBAgAABAgQIECBAgAABAn0QEMr2oYrmQIAAAQIECBAgQIAAAQIECBAgQIBANgJC2WxKZaAECBAgQIAAAQIECBAgQIAAAQIECPRBQCjbhyqaAwECBAgQIECAAAECBAgQIECAAAEC2QgIZbMplYESIECAAAECBAgQIECAAAECBAgQINAHAaFsH6poDgQIECBAgAABAgQIECBAgAABAgQIZCMglM2mVAZKgAABAgQIECBAgAABAgQIECBAgEAfBISyfaiiORAgQIAAAQIECBAgQIAAAQIECBAgkI2AUDabUhkoAQIECBAgQIAAAQIECBAgQIAAAQJ9EBDK9qGK5kCAAAECBAgQIECAAAECBAgQIECAQDYCQtlsSmWgBAgQIECAAAECBAgQIECAAAECBAj0QUAo24cqmgMBAgQIECBAgAABAgQIECBAgAABAtkICGWzKZWBEiBAgAABAgQIECBAgAABAgQIECDQBwGhbB+qaA4ECBAgQIAAAQIECBAgQIAAAQIECGQjIJTNplQGSoAAAQIECBAgQIAAAQIECBAgQIBAHwSEsn2oojkQIECAAAECBAgQIECAAAECBAgQIJCNgFA2m1IZKAECBAgQIECAAAECBAgQIECAAAECfRAQyvahiuZAgAABAgQIECBAgAABAgQIECBAgEA2AkLZbEploAQIECBAgAABAgQIECBAgAABAgQI9EFAKNuHKpoDAQIECBAgQIAAAQIECBAgQIAAAQLZCAhlsymVgRIgQIAAAQIECBAgQIAAAQIECBAg0AcBoWwfqmgOBAgQIECAAAECBAgQIECAAAECBAhkIyCUzaZUBkqAAAECBAgQIECAAAECBAgQIECAQB8EhLIJ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UFVAKFtVynEECBAgQIAAgYwEyrf+l0Oetq1BGaSWNwGbNb06bW1kT9kYypY334pjKVfv1lmhOs+eslX7rTOOjC4VQyVAgAABAgQIEGhBQCjbArouCRAgQIAAAQJNCsRtAG768tdHq0/HH9P2kl1vXLPaWm+l7HrbD5TbF8RQNt6Y7PpP3bS6x22dMHQjoex6/dYZx3qOPk+AAAECBAgQIDBsAaHssOtv9gQIECBAgEBPBGLA+v/8+z8crTSdfJRhY3kDrfLzs0LZedpKGcrG8cU9beN+t/FRJwzdSCi7Xr91xtGTy8o0CBAgQIAAAQIEFiQglF0QrGYJECBAgAABAk0KjG8xML4itnz+da8587AbgK0Vyl5yxftHw6/aVupQdtyuThi60VB2rX7rjKPJ2uuLAAECBAgQIEAgPwGhbH41M2ICBAgQIECAwEyB8Zt3lQfN2jN2ve0L6rS1Xihb9UZf01b61glDZ42j3HahNCn32B3fNmESdbJfN/rywiNAgAABAgQIEEglIJRNJakdAgQIECBAgAABAgQIECBAgAABAgQIVBAQylZAcggBAgQIECBAgAABAgQIECBAgAABAgRSCQhlU0lqhwABAgQIECBAgAABAgQIECBAgAABAhUEhLIVkBxCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS2iFAgAABAgQIECBAgAABAgQIECBAgEAFAaFsBSSHECBAgAABAgQIECBAgAABAgQIECBAIJWAUDaVpHYIECBAgAABAgQIECBAgAABAgQIECBQQUAoWwHJIQQIECBAgAABAgQIECBAgAABAgQIEEglIJRNJakdAgQIECBAgAABAgQIECBAgAABAgQIVBAQylZAcggBAgQIECBAgAABAgQIECBAgAABAgRSCQhlU0lqhwABAgQIECBAgAABAgQIECBAgAABAhUEhLIVkBxCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS2iFAgAABAgQIECBAgAABAgQIECBAgEAFAaFsBSSHECBAgAABAgQIECBAgAABAgQIECBAIJWAUDaVpHYIECBAgAABAgQIECBAgAABAgQIECBQQUAoWwHJIQQIECBAgAABAgQIECBAgAABAgQIEEglIJRNJakdAgQIECBAgAABAgQIECBAgAABAgQIVBAQylZAcggBAgQIECBAgAABAgQIECBAgAABAgRSCQhlU0lqhwABAgQIECBAgAABAgQIECBAgAABAhUEhLIVkBxCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS2iFAgAABAgQIECBAgAABAgQIECBAgEAFAaFsBSSHECBAgAABAgQIECBAgAABAgQIECBAIJWAUDaVpHYIECBAgAABAgQIECBAgAABAgQIECBQQUAoWwHJIQQIECBAgAABAgQIECBAgAABAgQIEEglIJRNJakdAgQIECBAgAABAgQIECBAgAABAgQIVBAQylZAcggBAgQIECBAgAABAgQIECBAgAABAgRSCQhlU0lqhwABAgQIECBAgAABAgQIECBAgAABAhUEhLIVkBxCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS2iFAgAABAgQIECBAgAABAgQIECBAgEAFAaFsBSSHECBAgAABAgQIECBAgAABAgQIECBAIJWAUDaVpHYIECBAgAABAgQIECBAgAABAgQIECBQQUAoWwHJIQQIECBAgAABAgQIECBAgAABAgQIEEglIJRNJakdAgQIECBAgAABAgQIECBAgAABAgQIVBAQylZAcggBAgQIECBAgAABAgQIECBAgAABAgRSCQhlU0lqhwABAgQIECBAgAABAgQIECBAgAABAhUEhLIVkBxCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS2iFAgAABAgQIECBAgAABAgQIECBAgEAFAaFsBSSHECBAgAABAgQIECBAgAABAgQIECBAIJXA/w92vZYvUw1W6AAAAABJRU5ErkJggg==",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = px.line(data_frame=bio.get_history(), x=\"SYSTEM TIME\", y=[\"A\", \"B\", \"C\"], \n",
" title=\"Reaction A + B <-> C . Changes in concentrations with time\",\n",
" color_discrete_sequence = ['red', 'violet', 'green'],\n",
" labels={\"value\":\"concentration\", \"variable\":\"Chemical\"})\n",
"fig.show()"
]
},
{
"cell_type": "markdown",
"id": "ea1bbd14-90d4-480d-946c-f0ce30d61df1",
"metadata": {},
"source": [
"## For more in-depth analysis of this reaction, including variable time steps, see the experiment _\"reactions_single_compartment/react_3\"_ "
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "57b81064",
"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
}