{ "cells": [ { "cell_type": "markdown", "id": "4f3151f1-fee2-40d3-9913-d02f15a8fa30", "metadata": {}, "source": [ "## 2 COUPLED reactions: `A + B <-> C` and `C + D <-> E` , \n", "### with 1st-order kinetics for each species, taken to equilibrium\n", "\n", "Both reactions are stronger in their respective forward rates. For the most part, \"C\" is produced by the 1st reaction, and consumed by the 2nd one\n", "\n", "Diffusion not applicable (just 1 bin)\n", "\n", "LAST REVISED: July 14, 2023" ] }, { "cell_type": "code", "execution_count": 1, "id": "c27da7de-2903-4744-9317-e5ef1a9cc492", "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": "aa3f2a77", "metadata": {}, "outputs": [], "source": [ "from experiments.get_notebook_info import get_notebook_basename\n", "\n", "from src.modules.chemicals.chem_data import ChemData as chem\n", "from src.life_1D.bio_sim_1d import BioSim1D\n", "\n", "import plotly.express as px\n", "from src.modules.html_log.html_log import HtmlLog as log\n", "from src.modules.visualization.graphic_log import GraphicLog" ] }, { "cell_type": "code", "execution_count": 3, "id": "05cc8402-3b3c-468a-bb98-ea4159816a0f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-> Output will be LOGGED into the file 'reaction_8.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_1\"],\n", " extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "c5443325-1f60-4129-aa6d-47d328ab7c05", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "1 bins and 5 species:\n", " Species 0 (A). Diff rate: None. Conc: [3.]\n", " Species 1 (B). Diff rate: None. Conc: [5.]\n", " Species 2 (C). Diff rate: None. Conc: [1.]\n", " Species 3 (D). Diff rate: None. Conc: [0.4]\n", " Species 4 (E). Diff rate: None. Conc: [0.1]\n" ] } ], "source": [ "# Initialize the system\n", "chem_data = chem(names=[\"A\", \"B\", \"C\", \"D\", \"E\"]) # NOTE: Diffusion not applicable (just 1 bin)\n", "\n", "# Specify the reactions\n", "\n", "\n", "# Reactions A + B <-> C and C + D <-> E , with 1st-order kinetics for each species\n", "chem_data.add_reaction(reactants=[\"A\", \"B\"], products=[\"C\"], forward_rate=5., reverse_rate=2.)\n", "chem_data.add_reaction(reactants=[\"C\", \"D\"], products=[\"E\"], forward_rate=8., reverse_rate=4.)\n", "\n", "bio = BioSim1D(n_bins=1, chem_data=chem_data)\n", "\n", "bio.set_all_uniform_concentrations( [3., 5., 1., 0.4, 0.1] )\n", "\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 5, "id": "98f90fcf-5e0c-488c-a96b-2b545e13b453", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABCDEcaption
003.05.01.00.40.1Initial state
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C D E caption\n", "0 0 3.0 5.0 1.0 0.4 0.1 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": "d79393b1-8751-4cdc-81fe-381b1161ec93", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 2 (at temp. 25 C)\n", "0: A + B <-> C (kF = 5 / kR = 2 / Delta_G = -2,271.45 / K = 2.5) | 1st order in all reactants & products\n", "1: C + D <-> E (kF = 8 / kR = 4 / Delta_G = -1,718.28 / K = 2) | 1st order in all reactants & products\n" ] } ], "source": [ "chem_data.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 7, "id": "c05a44f2-085e-418d-be55-8ea403b1b44e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2 COUPLED reactions: A + B C and C + D E\n", "[GRAPHIC ELEMENT SENT TO LOG FILE `reaction_8.log.htm`]\n" ] } ], "source": [ "# Send a header and a plot to the HTML log file\n", "log.write(\"2 COUPLED reactions: A + B <-> C and C + D <-> E\",\n", " style=log.h2)\n", "# Send the plot to the HTML log file\n", "graph_data = chem_data.prepare_graph_network()\n", "GraphicLog.export_plot(graph_data, \"vue_cytoscape_1\")" ] }, { "cell_type": "markdown", "id": "db7979c8-c39d-418c-bd70-e6e234d71cf7", "metadata": { "tags": [] }, "source": [ "### First step" ] }, { "cell_type": "code", "execution_count": 8, "id": "73e5e562-60d7-46d9-b9d5-03748e0103eb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.01:\n", "1 bins and 5 species:\n", " Species 0 (A). Diff rate: None. Conc: [2.27]\n", " Species 1 (B). Diff rate: None. Conc: [4.27]\n", " Species 2 (C). Diff rate: None. Conc: [1.702]\n", " Species 3 (D). Diff rate: None. Conc: [0.372]\n", " Species 4 (E). Diff rate: None. Conc: [0.128]\n" ] } ], "source": [ "# First step\n", "bio.react(time_step=0.01, n_steps=1, snapshots={\"sample_bin\": 0})\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "1b8f010c-0bfc-43e2-aad3-26b3422ba1ca", "metadata": {}, "source": [ "1 bins and 5 species:\n", " [[2.27 ]\n", " [4.27 ]\n", " [1.702]\n", " [0.372]\n", " [0.128]]" ] }, { "cell_type": "code", "execution_count": 9, "id": "29d41ef5-46ae-49fb-ab07-605a4d194573", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABCDEcaption
00.003.005.001.0000.4000.100Initial state
10.012.274.271.7020.3720.128
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C D E caption\n", "0 0.00 3.00 5.00 1.000 0.400 0.100 Initial state\n", "1 0.01 2.27 4.27 1.702 0.372 0.128 " ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.get_history()" ] }, { "cell_type": "code", "execution_count": 10, "id": "ae1ad0a8-b118-400d-ab94-8f404597642d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.02:\n", "1 bins and 5 species:\n", " Species 0 (A). Diff rate: None. Conc: [1.819395]\n", " Species 1 (B). Diff rate: None. Conc: [3.819395]\n", " Species 2 (C). Diff rate: None. Conc: [2.10707348]\n", " Species 3 (D). Diff rate: None. Conc: [0.32646848]\n", " Species 4 (E). Diff rate: None. Conc: [0.17353152]\n" ] } ], "source": [ "# Identical 2nd step\n", "bio.react(time_step=0.01, n_steps=1, snapshots={\"sample_bin\": 0})\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "39744f2c-3823-405c-b5ab-e844b4537765", "metadata": {}, "source": [ "1 bins and 5 species:\n", " [[1.819395 ]\n", " [3.819395 ]\n", " [2.10707348]\n", " [0.32646848]\n", " [0.17353152]]" ] }, { "cell_type": "code", "execution_count": 11, "id": "cd441e5a-cc00-489e-a702-879a91844656", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABCDEcaption
00.003.0000005.0000001.0000000.4000000.100000Initial state
10.012.2700004.2700001.7020000.3720000.128000
20.021.8193953.8193952.1070730.3264680.173532
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C D E \\\n", "0 0.00 3.000000 5.000000 1.000000 0.400000 0.100000 \n", "1 0.01 2.270000 4.270000 1.702000 0.372000 0.128000 \n", "2 0.02 1.819395 3.819395 2.107073 0.326468 0.173532 \n", "\n", " caption \n", "0 Initial state \n", "1 \n", "2 " ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.get_history()" ] }, { "cell_type": "markdown", "id": "100a4ed1-cf8d-40ba-a49c-680ee02a1d49", "metadata": {}, "source": [ "### Numerous more steps" ] }, { "cell_type": "code", "execution_count": 12, "id": "9bf6ad6f-5e63-44c2-a5eb-e27a5d442c45", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 2.02:\n", "1 bins and 5 species:\n", " Species 0 (A). Diff rate: None. Conc: [0.50508029]\n", " Species 1 (B). Diff rate: None. Conc: [2.50508029]\n", " Species 2 (C). Diff rate: None. Conc: [3.16316668]\n", " Species 3 (D). Diff rate: None. Conc: [0.06824696]\n", " Species 4 (E). Diff rate: None. Conc: [0.43175304]\n" ] } ], "source": [ "# Numerous more identical steps, to equilibrium\n", "bio.react(time_step=0.01, n_steps=200, snapshots={\"sample_bin\": 0, \"frequency\": 10})\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "37d92ec2-0efc-4ad1-a7d4-46eb351ac2fa", "metadata": {}, "source": [ "1 bins and 5 species:\n", " [[0.50508029]\n", " [2.50508029]\n", " [3.16316668]\n", " [0.06824696]\n", " [0.43175304]]" ] }, { "cell_type": "markdown", "id": "7c4e149f-3f80-48b1-a910-b828701c2806", "metadata": { "tags": [] }, "source": [ "### Equilibrium" ] }, { "cell_type": "code", "execution_count": 13, "id": "99dd2a45-b7fa-459b-a25f-3475043bdbb7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "A + B <-> C\n", "Final concentrations: [C] = 3.163 ; [A] = 0.5051 ; [B] = 2.505\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2.5\n", " Formula used: [C] / ([A][B])\n", "2. Ratio of forward/reverse reaction rates: 2.5\n", "Discrepancy between the two values: 8.882e-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 each 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": "ab2dbc91-ba95-45a9-9d41-638b78019752", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "C + D <-> E\n", "Final concentrations: [E] = 0.4318 ; [C] = 3.163 ; [D] = 0.06825\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2\n", " Formula used: [E] / ([C][D])\n", "2. Ratio of forward/reverse reaction rates: 2.0\n", "Discrepancy between the two values: 4.441e-14 %\n", "Reaction IS in equilibrium (within 1% tolerance)\n", "\n" ] }, { "data": { "text/plain": [ "True" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.reaction_dynamics.is_in_equilibrium(rxn_index=1, conc=bio.bin_snapshot(bin_address = 0))" ] }, { "cell_type": "code", "execution_count": 15, "id": "df7086e8-1ea6-45f0-9fa3-66c84a9475e7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "At equilibrium: -4.440892098500626e-15 (this should be close to 0 at equilibrium)\n" ] } ], "source": [ "# Do a consistent check with the equilibrium concentrations:\n", "\n", "A_eq = bio.bin_concentration(0, 0)\n", "B_eq = bio.bin_concentration(0, 1)\n", "C_eq = bio.bin_concentration(0, 2)\n", "D_eq = bio.bin_concentration(0, 3)\n", "E_eq = bio.bin_concentration(0, 4)\n", "\n", "Rf0 = chem_data.get_forward_rate(0)\n", "Rb0 = chem_data.get_reverse_rate(0)\n", "\n", "Rf1 = chem_data.get_forward_rate(1)\n", "Rb1 = chem_data.get_reverse_rate(1)\n", "\n", "equil = -(Rf0 * A_eq * B_eq - Rf1 * C_eq * D_eq) + (Rb0 * C_eq - Rb1 * E_eq)\n", "\n", "print(\"\\nAt equilibrium: \", equil, \" (this should be close to 0 at equilibrium)\")" ] }, { "cell_type": "code", "execution_count": 16, "id": "29054060-59d2-4516-944d-da09094cf975", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABCDEcaption
00.003.0000005.0000001.0000000.4000000.100000Initial state
10.012.2700004.2700001.7020000.3720000.128000
20.021.8193953.8193952.1070730.3264680.173532
30.120.6546542.6546543.0321200.0867740.413226
40.220.5276272.5276273.1419940.0696200.430380
50.320.5085782.5085783.1598300.0684080.431592
60.420.5056252.5056253.1626460.0682700.431730
70.520.5051652.5051653.1630850.0682510.431749
80.620.5050942.5050943.1631540.0682480.431752
90.720.5050822.5050823.1631650.0682470.431753
100.820.5050812.5050813.1631660.0682470.431753
110.920.5050802.5050803.1631670.0682470.431753
121.020.5050802.5050803.1631670.0682470.431753
131.120.5050802.5050803.1631670.0682470.431753
141.220.5050802.5050803.1631670.0682470.431753
151.320.5050802.5050803.1631670.0682470.431753
161.420.5050802.5050803.1631670.0682470.431753
171.520.5050802.5050803.1631670.0682470.431753
181.620.5050802.5050803.1631670.0682470.431753
191.720.5050802.5050803.1631670.0682470.431753
201.820.5050802.5050803.1631670.0682470.431753
211.920.5050802.5050803.1631670.0682470.431753
222.020.5050802.5050803.1631670.0682470.431753
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C D E \\\n", "0 0.00 3.000000 5.000000 1.000000 0.400000 0.100000 \n", "1 0.01 2.270000 4.270000 1.702000 0.372000 0.128000 \n", "2 0.02 1.819395 3.819395 2.107073 0.326468 0.173532 \n", "3 0.12 0.654654 2.654654 3.032120 0.086774 0.413226 \n", "4 0.22 0.527627 2.527627 3.141994 0.069620 0.430380 \n", "5 0.32 0.508578 2.508578 3.159830 0.068408 0.431592 \n", "6 0.42 0.505625 2.505625 3.162646 0.068270 0.431730 \n", "7 0.52 0.505165 2.505165 3.163085 0.068251 0.431749 \n", "8 0.62 0.505094 2.505094 3.163154 0.068248 0.431752 \n", "9 0.72 0.505082 2.505082 3.163165 0.068247 0.431753 \n", "10 0.82 0.505081 2.505081 3.163166 0.068247 0.431753 \n", "11 0.92 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "12 1.02 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "13 1.12 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "14 1.22 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "15 1.32 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "16 1.42 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "17 1.52 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "18 1.62 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "19 1.72 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "20 1.82 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "21 1.92 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "22 2.02 0.505080 2.505080 3.163167 0.068247 0.431753 \n", "\n", " caption \n", "0 Initial state \n", "1 \n", "2 \n", "3 \n", "4 \n", "5 \n", "6 \n", "7 \n", "8 \n", "9 \n", "10 \n", "11 \n", "12 \n", "13 \n", "14 \n", "15 \n", "16 \n", "17 \n", "18 \n", "19 \n", "20 \n", "21 \n", "22 " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.get_history()" ] }, { "cell_type": "markdown", "id": "bbd28c26-ea7e-4f5c-853a-96cb031b6b3c", "metadata": { "tags": [] }, "source": [ "# Plots of changes of concentration with time" ] }, { "cell_type": "code", "execution_count": 17, "id": "65010094-f1d7-4edf-8716-3c0be6faa043", "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": "navy", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.01, 0.02, 0.11999999999999998, 0.22000000000000006, 0.3200000000000001, 0.4200000000000002, 0.5200000000000002, 0.6200000000000003, 0.7200000000000004, 0.8200000000000005, 0.9200000000000006, 1.0200000000000007, 1.1200000000000008, 1.2200000000000009, 1.320000000000001, 1.420000000000001, 1.5200000000000011, 1.6200000000000012, 1.7200000000000013, 1.8200000000000014, 1.9200000000000015, 2.020000000000001 ], "xaxis": "x", "y": [ 3, 2.27, 1.819395, 0.6546542071373758, 0.5276265779980039, 0.5085777537856565, 0.5056248705954197, 0.5051651251130621, 0.5050935043527953, 0.5050823462155833, 0.5050806078226181, 0.5050803369877955, 0.5050802947927899, 0.5050802882189734, 0.5050802871947986, 0.5050802870352361, 0.5050802870103769, 0.5050802870065036, 0.5050802870059004, 0.5050802870058062, 0.5050802870057917, 0.5050802870057893, 0.505080287005789 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "cyan", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.01, 0.02, 0.11999999999999998, 0.22000000000000006, 0.3200000000000001, 0.4200000000000002, 0.5200000000000002, 0.6200000000000003, 0.7200000000000004, 0.8200000000000005, 0.9200000000000006, 1.0200000000000007, 1.1200000000000008, 1.2200000000000009, 1.320000000000001, 1.420000000000001, 1.5200000000000011, 1.6200000000000012, 1.7200000000000013, 1.8200000000000014, 1.9200000000000015, 2.020000000000001 ], "xaxis": "x", "y": [ 5, 4.27, 3.8193949999999997, 2.6546542071373755, 2.5276265779980043, 2.5085777537856573, 2.505624870595421, 2.5051651251130638, 2.5050935043527964, 2.505082346215585, 2.5050806078226193, 2.505080336987797, 2.5050802947927915, 2.505080288218975, 2.5050802871947995, 2.5050802870352373, 2.5050802870103785, 2.505080287006506, 2.5050802870059026, 2.5050802870058084, 2.5050802870057933, 2.5050802870057916, 2.5050802870057916 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "red", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.01, 0.02, 0.11999999999999998, 0.22000000000000006, 0.3200000000000001, 0.4200000000000002, 0.5200000000000002, 0.6200000000000003, 0.7200000000000004, 0.8200000000000005, 0.9200000000000006, 1.0200000000000007, 1.1200000000000008, 1.2200000000000009, 1.320000000000001, 1.420000000000001, 1.5200000000000011, 1.6200000000000012, 1.7200000000000013, 1.8200000000000014, 1.9200000000000015, 2.020000000000001 ], "xaxis": "x", "y": [ 1, 1.702, 2.10707348, 3.032119835748452, 3.1419937433830265, 3.159830490642069, 3.1626455660056068, 3.163085444467259, 3.1631540188897316, 3.163164703887413, 3.163166368610749, 3.1631666279694204, 3.1631666683765247, 3.1631666746717944, 3.163166675652573, 3.1631666758053743, 3.1631666758291797, 3.1631666758328887, 3.163166675833466, 3.1631666758335557, 3.163166675833569, 3.163166675833571, 3.163166675833571 ], "yaxis": "y" }, { "hovertemplate": "Chemical=D
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "D", "line": { "color": "orange", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "D", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.01, 0.02, 0.11999999999999998, 0.22000000000000006, 0.3200000000000001, 0.4200000000000002, 0.5200000000000002, 0.6200000000000003, 0.7200000000000004, 0.8200000000000005, 0.9200000000000006, 1.0200000000000007, 1.1200000000000008, 1.2200000000000009, 1.320000000000001, 1.420000000000001, 1.5200000000000011, 1.6200000000000012, 1.7200000000000013, 1.8200000000000014, 1.9200000000000015, 2.020000000000001 ], "xaxis": "x", "y": [ 0.4, 0.372, 0.32646848, 0.08677404288582762, 0.06962032138103086, 0.06840824442772607, 0.06827043660102639, 0.0682505695803209, 0.06824752324252664, 0.06824705010299546, 0.06824697643336625, 0.06824696495721497, 0.06824696316931336, 0.06824696289076639, 0.06824696284736989, 0.0682469628406089, 0.06824696283955556, 0.06824696283939145, 0.0682469628393659, 0.06824696283936191, 0.06824696283936131, 0.06824696283936123, 0.06824696283936123 ], "yaxis": "y" }, { "hovertemplate": "Chemical=E
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "E", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "E", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.01, 0.02, 0.11999999999999998, 0.22000000000000006, 0.3200000000000001, 0.4200000000000002, 0.5200000000000002, 0.6200000000000003, 0.7200000000000004, 0.8200000000000005, 0.9200000000000006, 1.0200000000000007, 1.1200000000000008, 1.2200000000000009, 1.320000000000001, 1.420000000000001, 1.5200000000000011, 1.6200000000000012, 1.7200000000000013, 1.8200000000000014, 1.9200000000000015, 2.020000000000001 ], "xaxis": "x", "y": [ 0.1, 0.128, 0.17353152, 0.41322595711417237, 0.4303796786189691, 0.43159175557227397, 0.43172956339897367, 0.4317494304196792, 0.43175247675747347, 0.43175294989700463, 0.43175302356663386, 0.43175303504278506, 0.4317530368306867, 0.43175303710923374, 0.4317530371526302, 0.4317530371593912, 0.43175303716044455, 0.43175303716060864, 0.43175303716063423, 0.43175303716063823, 0.4317530371606388, 0.4317530371606388, 0.4317530371606388 ], "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": "2 COUPLED reactions: A + B <-> C and C + D <-> E . Changes in concentrations" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 2.020000000000001 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -0.2057393170028965, 5.273986279842258 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABbMAAAFoCAYAAABtzWbpAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3QmcG3X9//F3svdut9ttodAqh61yaQVBBA8QxAOL/PCHCkUUkMPaetBSWnqICEhbWtuCIrUUEA+wFsW/ohVEoT8QRUCsooIHR0HK2WO73fvI//Gd3dlms5NkkkwmM5lXePBom535Hs/PbLJ557vfxBKJRELcEEAAAQQQQAABBBBAAAEEEEAAAQQQQAABBBAIsECMMDvA1WFoCCCAAAIIIIAAAggggAACCCCAAAIIIIAAApYAYTYXAgIIIIAAAggggAACCCCAAAIIIIAAAggggEDgBQizA18iBogAAggggAACCCCAAAIIIIAAAggggAACCCBAmM01gAACCCCAAAIIIIAAAggggAACCCCAAAIIIBB4AcLswJeIASKAAAIIIIAAAggggAACCCCAAAIIIIAAAggQZnMNIIAAAggggAACCCCAAAIIIIAAAggggAACCARegDA78CVigAgggAACCCCAAAIIIIAAAggggAACCCCAAAKE2VwDCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAoEXIMwOfIkYIAIIIIAAAggggAACCCCAAAIIIIAAAggggABhNtcAAggggAACCCCAAAIIIIAAAggggAACCCCAQOAFCLMDXyIGiAACCCCAAAIIIIAAAggggAACCCCAAAIIIECYzTWAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEHgBwuzAl4gBIoAAAggggAACCCCAAAIIIIAAAggggAACCBBmcw0ggAACCCCAAAIIIIAAAggggAACCCCAAAIIBF6AMDvwJWKACCCAAAIIIIAAAggggAACCCCAAAIIIIAAAoTZXAMIIIAAAggggAACCCCAAAIIIIAAAggggAACgRcgzA58iRggAggggAACCCCAAAIIIIAAAggggAACCCCAAGE21wACCCCAAAIIIIAAAggggAACCCCAAAIIIIBA4AUIswNfIgaIAAIIIIAAAggggAACCCCAAAIIIIAAAgggQJjNNYAAAggggAACCCCAAAIIIIAAAggggAACCCAQeAHC7MCXiAEigAACCCCAAAIIIIAAAggggAACCCCAAAIIEGZzDSCAAAIIIIAAAggggAACCCCAAAIIIIAAAggEXoAwO/AlYoAIIIAAAggggAACCCCAAAIIIIAAAggggAAChNlcAwgggAACCCCAAAIIIIAAAggggAACCCCAAAKBFyDMDnyJGCACCCCAAAIIIIAAAggggAACCCCAAAIIIIAAYTbXAAIIIIAAAggggAACCCCAAAIIIIAAAggggEDgBQizA18iBogAAggggAACCCCAAAIIIIAAAggggAACCCBAmM01gAACCCCAAAIIIIAAAggggAACCCCAAAIIIBB4AcLswJeIASKAAAIIIIAAAggggAACCCCAAAIIIIAAAggQZnMNIIAAAggggAACCCCAAAIIIIAAAggggAACCARegDA78CVigAgggAACCCCAAAIIIIAAAggggAACCCCAAAKE2VwDCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAoEXIMwOfIkYIAIIIIAAAggggAACCCCAAAIIIIAAAggggABhNtcAAggggAACCCCAAAIIIIAAAggggAACCCCAQOAFCLMDXyIGiAACCCCAAAIIIIAAAggggAACCCCAAAIIIECYzTWAAAIIIIAAAggggAACCCCAAAIIIIAAAgggEHgBwuzAl4gBIoAAAtETWLlmvV56ZZsun3uu6mqrowfAjH0T2N7SqhnzV+kdhx2ki6af5lu/dIQAAggggAACCCCAAAIIIJC7AGF2DmaPbHpS58xaOuyMK+edq1OnHptDK5L9wvnxJ54edt55Z0x1fCF9x4b7demym4cde9IJRzuGPObY67/7M61ZNkeT95s4YlwmIHp405NavXS2mpsa1dHZrcuW36xf/vahEcfecs18HXnYQUP3Z2vbHJhubnYjE/YaNzQ2J0/7uHxccypCkQ/OFI7Y9Uz1LfKQfG3+qc1bNH3eCr348laVupZO3z/lcp2lK2q67+t0jxu+XhwuO/MyzHa6BpIfi1wOyZPDyvlxLx1Qpu9Bc0665z4vwNN5Jz/+EmYPlzbfexvu/WPanyO8qEu5t5H6s5bX803Xvv3cO/V9R/HGjNfotIcAAggggAACCCAQGAHCbJelsF8QJwdz+bxosF/Up754t19Mm+HYQbN932vbWoa9qEwOqnINnNOF2abf5BWQ9jiT55tLmO1mhZttmjoH29WMKV0o77JsJTss6mG2fa3s0Txa+75ur4JW19rX+97jx+b14jzddev0PV3IBZNPAGTP7bG//duza92e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wuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAoBABwuxC9DgXAQQQQAABBBBAAAEEEEAAAQQQQAABBBBAwBcBwmxfmOkEAQQQ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ArkEhNm52DQiQIAAAQIECBBohMB4x4bUnpU92Vjj9dPIMLv24ZOV92d6Z3YKsyvr+P1NG7OjTirvO2ZksjvD5wkQIECAAAECBFpJQJjdStW0FgIECBAgQIBASQVefuXNuP0zN8d1S3uummEKhCvHd6SHK1Ze44XZ9fbTyDA7ze2HL/xzbLlvc7aOIsPsNPbPX/pl3LphTfYQSmF2SW900yJAgAABAgQIEJhRAWH2jPLqnAABAgQIECBAIAmkYzJ27d0fzz/zeNyzaWOGUjkaI/05Pdyw+kzn8cLsevtpdJhdXc2iw+zqsYXZ/l4RIECAAAECBAjMRQFh9lysujUTIECAAAECBGZBoBJEVw891nnZ6fMTHTNSTz+ThdlTfQBkOjO79tWIMLsyv7fe/m3Wfdq9/uyeR7Kd30/vO5B9LB0rUvsaL8z2AMhZuLENSYAAAQIECBAgUJiAMLswagMRIECAAAECBAgQIECAAAECBAgQIECAQF4BYXZeOe0IECBAgAABAgQIECBAgAABAgQIECBAoDABYXZh1AYiQIAAAQIECBAgQIAAAQIECBAgQIAAgbwCwuy8ctoRIECAAAECBAgQIECAAAECBAgQIECAQGECwuzCqA1EgAABAgQIECBAgAABAgQIECBAgAABAnkFhNl55bQjQIAAAQIECBAgQIAAAQIECBAgQIAAgcIEhNmFURuIAAECBAgQIECAAAECBAgQIECAAAECBPIKCLPzymlHgAABAgQIECBAgAABAgQIECBAgAABAoUJCLMLozYQAQIECBAgQIAAAQIECBAgQIAAAQIECOQVEGbnldOOAAECBAgQIECAAAECBAgQIECAAAECBAoTEGYXRm0gAgQIECBAgAABAgQIECBAgAABAgQIEMgrIMzOK6cdAQIECBAgQIAAAQIECBAgQIAAAQIECBQmIMwujNpABAgQIECAAAECBAgQIECAAAECBAgQIJBXQJidV047AgQIECBAgAABAgQIECBAgAABAgQIEChMQJhdGLWBCBAgQIAAAQIECBAgQIAAAQIECBAgQCCvgDA7r5x2BAgQIECAAAECBAgQIECAAAECBAgQIFCYgDC7MGoDESBAgAABAgQIECBAgAABAgQIECBAgEBeAWF2XjntCBAgQIAAAQIECBAgQIAAAQIECBAgQKAwAWF2YdQGIkCAAAECBAgQIECAAAECBAgQIECAAIG8AsLsvHLaESBAgAABAgQIECBAgAABAgQIECBAgEBhAsLswqgNRIAAAQIECBAgQIAAAQIECBAgQIAAAQJ5BYTZeeW0I0CAAAECBAgQIECAAAECBAgQIECAAIHCBITZhVEbiAABAgQIECBAgAABAgQIECBAgAABAgTyCgiz88ppR4AAAQIECBAgQIAAAQIECBAgQIAAAQKFCQizC6M2EAECBAgQIECAAAECBAgQIECAAAECBAjkFRBm55XTjgABAgQIECBAgAABAgQIECBAgAABAgQKExBmF0ZtIAIECBAgQIAAAQIECBAgQIAAAQIECBDIKyDMziunHQECBAgQIECAAAECBAgQIECAAAECBAgUJiDMLozaQAQIECBAgAABAgQIECBAgAABAgQIECCQV0CYnVdOOwIECBAgQIAAAQIECBAgQIAAAQIECBAoTECYXRi1gQgQIECAAAECBAgQIECAAAECBAgQIEAgr4AwO6+cdgQIECBAgAABAgQIECBAgAABAgQIECBQmIAwuzBqAxEgQIAAAQIECBAgQIAAAQIECBAgQIBAXgFhdl457QgQIECAAAECBAgQIECAAAECBAgQIECgMAFhdmHUBiJAgAABAgQIECBAgAABAgQIECBAgACBvALC7Lxy2hEgQIAAAQIECBAgQIAAAQIECBAgQIBAYQLC7MKoDUSAAAECBAgQIECAAAECBAgQIECAAAECeQWE2XnltCNAgAABAgQIECBAgAABAgQIECBAgACBwgSE2YVRG4gAAQIECBAgQIAAAQIECBAgQIAAAQIE8gr8P2nRk6c8E2fBAAAAAElFTkSuQmCC", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.get_history(), x=\"SYSTEM TIME\", y=[\"A\", \"B\", \"C\", \"D\", \"E\"], \n", " title=\"2 COUPLED reactions: A + B <-> C and C + D <-> E . Changes in concentrations\",\n", " color_discrete_sequence = ['navy', 'cyan', 'red', 'orange', 'green'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\"})\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "cde2dbcb-a43c-41f1-a8b3-b801290a8d57", "metadata": {}, "source": [ "A and B get consumed. \n", "C gets produced by the 1st reaction more quickly than consumed by the 2nd one.\n", "D gets consumed, while E gets produced." ] }, { "cell_type": "code", "execution_count": null, "id": "3204f3ee", "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 }