{
"cells": [
{
"cell_type": "markdown",
"id": "83d68c5f-79b2-4947-920f-9fd1fbdd392f",
"metadata": {},
"source": [
"## One-bin `2A + 5B <-> 4C + 3D`, with 1st-order kinetics for each species, 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": "0500edb0-a509-453d-b3b4-8fbaae42925d",
"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": "8565d1f8",
"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 HtmlLog as log\n",
"from life123 import GraphicLog"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "6635becc-7040-420b-b631-e89a23e80909",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-> Output will be LOGGED into the file 'reaction_6.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": "8acfd3e5-effa-4d10-b400-47777be200fc",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0:\n",
"1 bins and 4 species:\n",
" Species 0 (A). Diff rate: None. Conc: [4.]\n",
" Species 1 (B). Diff rate: None. Conc: [7.]\n",
" Species 2 (C). Diff rate: None. Conc: [5.]\n",
" Species 3 (D). Diff rate: None. Conc: [2.]\n"
]
}
],
"source": [
"# Initialize the system\n",
"chem_data = chem(names=[\"A\", \"B\", \"C\", \"D\"]) # NOTE: Diffusion not applicable (just 1 bin)\n",
"\n",
"# Specify the reaction\n",
"\n",
"# Reaction 2A + 5B <-> 4C + 3D , with 1st-order kinetics for each species\n",
"chem_data.add_reaction(reactants=[(2,\"A\",1) , (5,\"B\",1)], products=[(4,\"C\",1) , (3,\"D\",1)],\n",
" forward_rate=5., reverse_rate=2.)\n",
"\n",
"bio = BioSim1D(n_bins=1, chem_data=chem_data)\n",
"\n",
"bio.set_all_uniform_concentrations( [4., 7., 5., 2.] )\n",
"\n",
"bio.describe_state()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "c9eaf7cf-04b7-49f7-ad99-e4b273a39574",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" D | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0 | \n",
" 4.0 | \n",
" 7.0 | \n",
" 5.0 | \n",
" 2.0 | \n",
" Initial state | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C D caption\n",
"0 0 4.0 7.0 5.0 2.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": "5429cc81-fe31-4a1e-87c3-7c42dbd9e06e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of reactions: 1 (at temp. 25 C)\n",
"0: 2 A + 5 B <-> 4 C + 3 D (kF = 5 / kR = 2 / delta_G = -2,271.4 / K = 2.5) | 1st order in all reactants & products\n",
"Set of chemicals involved in the above reactions: {'A', 'D', 'B', 'C'}\n"
]
}
],
"source": [
"chem_data.describe_reactions()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "e95f3814-f76b-476a-963d-ae440e87b2e8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Reaction 2 A + 5 B 4 C + 3 D\n",
"[GRAPHIC ELEMENT SENT TO LOG FILE `reaction_6.log.htm`]\n"
]
}
],
"source": [
"# Send a header and a plot to the HTML log file\n",
"log.write(\"Reaction 2 A + 5 B <-> 4 C + 3 D\",\n",
" style=log.h2)\n",
"chem_data.plot_reaction_network(\"vue_cytoscape_2\")"
]
},
{
"cell_type": "markdown",
"id": "a1bdfcec-2945-4ace-97c0-739e9716edb2",
"metadata": {
"tags": []
},
"source": [
"### First step"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "177f241c-6ec9-4a3a-863e-685e031b4feb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0.001:\n",
"1 bins and 4 species:\n",
" Species 0 (A). Diff rate: None. Conc: [3.76]\n",
" Species 1 (B). Diff rate: None. Conc: [6.4]\n",
" Species 2 (C). Diff rate: None. Conc: [5.48]\n",
" Species 3 (D). Diff rate: None. Conc: [2.36]\n"
]
}
],
"source": [
"# First step\n",
"bio.react(time_step=0.001, n_steps=1)\n",
"bio.describe_state()"
]
},
{
"cell_type": "markdown",
"id": "bb01e107-69e1-4ffc-939f-ead43bc358a1",
"metadata": {},
"source": [
"_Early in the reaction :_\n",
"[A] = 3.76 , [B] = 6.4 , [C] = 5.48 , [D] = 2.36"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ffc297af-487e-4020-a406-959f0a6fab98",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" D | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000 | \n",
" 4.00 | \n",
" 7.0 | \n",
" 5.00 | \n",
" 2.00 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.001 | \n",
" 3.76 | \n",
" 6.4 | \n",
" 5.48 | \n",
" 2.36 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C D caption\n",
"0 0.000 4.00 7.0 5.00 2.00 Initial state\n",
"1 0.001 3.76 6.4 5.48 2.36 "
]
},
"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": "265fcc89-7cfd-44c0-ac69-36846c3f93de",
"metadata": {},
"source": [
"### Numerous more steps"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "d547bdba-3819-40bb-b965-28d06516619c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0.041:\n",
"1 bins and 4 species:\n",
" Species 0 (A). Diff rate: None. Conc: [2.80284552]\n",
" Species 1 (B). Diff rate: None. Conc: [4.00711381]\n",
" Species 2 (C). Diff rate: None. Conc: [7.39430896]\n",
" Species 3 (D). Diff rate: None. Conc: [3.79573172]\n"
]
}
],
"source": [
"# Numerous more steps\n",
"bio.react(time_step=0.001, n_steps=40, snapshots={\"sample_bin\": 0})\n",
"\n",
"bio.describe_state()"
]
},
{
"cell_type": "markdown",
"id": "e9db30bd-ed51-491b-b11f-651094524269",
"metadata": {
"tags": []
},
"source": [
"### Equilibrium"
]
},
{
"cell_type": "markdown",
"id": "a7b6400e-696a-4b2f-98c6-a8dea6515160",
"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] = 2.80284552 , [B] = 4.00711381 , [C] = 7.39430896 , [D] = 3.79573172"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "f888886f-a56d-4f6b-9c28-5a58797b5924",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2 A + 5 B <-> 4 C + 3 D\n",
"Final concentrations: [A] = 2.803 ; [B] = 4.007 ; [C] = 7.394 ; [D] = 3.796\n",
"1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2.49898\n",
" Formula used: ([C][D]) / ([A][B])\n",
"2. Ratio of forward/reverse reaction rates: 2.5\n",
"Discrepancy between the two values: 0.04092 %\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": "747a27b9-06c9-4097-90ab-827266ae5c6f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" D | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000 | \n",
" 4.000000 | \n",
" 7.000000 | \n",
" 5.000000 | \n",
" 2.000000 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.001 | \n",
" 3.760000 | \n",
" 6.400000 | \n",
" 5.480000 | \n",
" 2.360000 | \n",
" | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.002 | \n",
" 3.571091 | \n",
" 5.927728 | \n",
" 5.857818 | \n",
" 2.643363 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.003 | \n",
" 3.421344 | \n",
" 5.553360 | \n",
" 6.157312 | \n",
" 2.867984 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.004 | \n",
" 3.301981 | \n",
" 5.254952 | \n",
" 6.396039 | \n",
" 3.047029 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.005 | \n",
" 3.206419 | \n",
" 5.016047 | \n",
" 6.587162 | \n",
" 3.190372 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.006 | \n",
" 3.129645 | \n",
" 4.824113 | \n",
" 6.740709 | \n",
" 3.305532 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.007 | \n",
" 3.067794 | \n",
" 4.669486 | \n",
" 6.864411 | \n",
" 3.398309 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.008 | \n",
" 3.017854 | \n",
" 4.544634 | \n",
" 6.964293 | \n",
" 3.473220 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.009 | \n",
" 2.977457 | \n",
" 4.443643 | \n",
" 7.045085 | \n",
" 3.533814 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.010 | \n",
" 2.944734 | \n",
" 4.361834 | \n",
" 7.110532 | \n",
" 3.582899 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.011 | \n",
" 2.918195 | \n",
" 4.295487 | \n",
" 7.163611 | \n",
" 3.622708 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.012 | \n",
" 2.896651 | \n",
" 4.241627 | \n",
" 7.206699 | \n",
" 3.655024 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.013 | \n",
" 2.879148 | \n",
" 4.197870 | \n",
" 7.241704 | \n",
" 3.681278 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.014 | \n",
" 2.864920 | \n",
" 4.162300 | \n",
" 7.270160 | \n",
" 3.702620 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.015 | \n",
" 2.853348 | \n",
" 4.133370 | \n",
" 7.293304 | \n",
" 3.719978 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.016 | \n",
" 2.843932 | \n",
" 4.109831 | \n",
" 7.312135 | \n",
" 3.734101 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.017 | \n",
" 2.836269 | \n",
" 4.090672 | \n",
" 7.327463 | \n",
" 3.745597 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.018 | \n",
" 2.830029 | \n",
" 4.075073 | \n",
" 7.339942 | \n",
" 3.754956 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.019 | \n",
" 2.824948 | \n",
" 4.062370 | \n",
" 7.350104 | \n",
" 3.762578 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 0.020 | \n",
" 2.820809 | \n",
" 4.052024 | \n",
" 7.358381 | \n",
" 3.768786 | \n",
" | \n",
"
\n",
" \n",
" | 21 | \n",
" 0.021 | \n",
" 2.817438 | \n",
" 4.043596 | \n",
" 7.365123 | \n",
" 3.773843 | \n",
" | \n",
"
\n",
" \n",
" | 22 | \n",
" 0.022 | \n",
" 2.814692 | \n",
" 4.036729 | \n",
" 7.370617 | \n",
" 3.777962 | \n",
" | \n",
"
\n",
" \n",
" | 23 | \n",
" 0.023 | \n",
" 2.812454 | \n",
" 4.031135 | \n",
" 7.375092 | \n",
" 3.781319 | \n",
" | \n",
"
\n",
" \n",
" | 24 | \n",
" 0.024 | \n",
" 2.810630 | \n",
" 4.026576 | \n",
" 7.378739 | \n",
" 3.784054 | \n",
" | \n",
"
\n",
" \n",
" | 25 | \n",
" 0.025 | \n",
" 2.809144 | \n",
" 4.022861 | \n",
" 7.381711 | \n",
" 3.786283 | \n",
" | \n",
"
\n",
" \n",
" | 26 | \n",
" 0.026 | \n",
" 2.807933 | \n",
" 4.019834 | \n",
" 7.384133 | \n",
" 3.788100 | \n",
" | \n",
"
\n",
" \n",
" | 27 | \n",
" 0.027 | \n",
" 2.806947 | \n",
" 4.017366 | \n",
" 7.386107 | \n",
" 3.789580 | \n",
" | \n",
"
\n",
" \n",
" | 28 | \n",
" 0.028 | \n",
" 2.806142 | \n",
" 4.015355 | \n",
" 7.387716 | \n",
" 3.790787 | \n",
" | \n",
"
\n",
" \n",
" | 29 | \n",
" 0.029 | \n",
" 2.805487 | \n",
" 4.013717 | \n",
" 7.389027 | \n",
" 3.791770 | \n",
" | \n",
"
\n",
" \n",
" | 30 | \n",
" 0.030 | \n",
" 2.804952 | \n",
" 4.012381 | \n",
" 7.390095 | \n",
" 3.792572 | \n",
" | \n",
"
\n",
" \n",
" | 31 | \n",
" 0.031 | \n",
" 2.804517 | \n",
" 4.011292 | \n",
" 7.390966 | \n",
" 3.793225 | \n",
" | \n",
"
\n",
" \n",
" | 32 | \n",
" 0.032 | \n",
" 2.804162 | \n",
" 4.010405 | \n",
" 7.391676 | \n",
" 3.793757 | \n",
" | \n",
"
\n",
" \n",
" | 33 | \n",
" 0.033 | \n",
" 2.803872 | \n",
" 4.009681 | \n",
" 7.392255 | \n",
" 3.794191 | \n",
" | \n",
"
\n",
" \n",
" | 34 | \n",
" 0.034 | \n",
" 2.803637 | \n",
" 4.009092 | \n",
" 7.392727 | \n",
" 3.794545 | \n",
" | \n",
"
\n",
" \n",
" | 35 | \n",
" 0.035 | \n",
" 2.803444 | \n",
" 4.008611 | \n",
" 7.393111 | \n",
" 3.794833 | \n",
" | \n",
"
\n",
" \n",
" | 36 | \n",
" 0.036 | \n",
" 2.803288 | \n",
" 4.008219 | \n",
" 7.393424 | \n",
" 3.795068 | \n",
" | \n",
"
\n",
" \n",
" | 37 | \n",
" 0.037 | \n",
" 2.803160 | \n",
" 4.007900 | \n",
" 7.393680 | \n",
" 3.795260 | \n",
" | \n",
"
\n",
" \n",
" | 38 | \n",
" 0.038 | \n",
" 2.803056 | \n",
" 4.007640 | \n",
" 7.393888 | \n",
" 3.795416 | \n",
" | \n",
"
\n",
" \n",
" | 39 | \n",
" 0.039 | \n",
" 2.802971 | \n",
" 4.007428 | \n",
" 7.394058 | \n",
" 3.795543 | \n",
" | \n",
"
\n",
" \n",
" | 40 | \n",
" 0.040 | \n",
" 2.802902 | \n",
" 4.007255 | \n",
" 7.394196 | \n",
" 3.795647 | \n",
" | \n",
"
\n",
" \n",
" | 41 | \n",
" 0.041 | \n",
" 2.802846 | \n",
" 4.007114 | \n",
" 7.394309 | \n",
" 3.795732 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C D caption\n",
"0 0.000 4.000000 7.000000 5.000000 2.000000 Initial state\n",
"1 0.001 3.760000 6.400000 5.480000 2.360000 \n",
"2 0.002 3.571091 5.927728 5.857818 2.643363 \n",
"3 0.003 3.421344 5.553360 6.157312 2.867984 \n",
"4 0.004 3.301981 5.254952 6.396039 3.047029 \n",
"5 0.005 3.206419 5.016047 6.587162 3.190372 \n",
"6 0.006 3.129645 4.824113 6.740709 3.305532 \n",
"7 0.007 3.067794 4.669486 6.864411 3.398309 \n",
"8 0.008 3.017854 4.544634 6.964293 3.473220 \n",
"9 0.009 2.977457 4.443643 7.045085 3.533814 \n",
"10 0.010 2.944734 4.361834 7.110532 3.582899 \n",
"11 0.011 2.918195 4.295487 7.163611 3.622708 \n",
"12 0.012 2.896651 4.241627 7.206699 3.655024 \n",
"13 0.013 2.879148 4.197870 7.241704 3.681278 \n",
"14 0.014 2.864920 4.162300 7.270160 3.702620 \n",
"15 0.015 2.853348 4.133370 7.293304 3.719978 \n",
"16 0.016 2.843932 4.109831 7.312135 3.734101 \n",
"17 0.017 2.836269 4.090672 7.327463 3.745597 \n",
"18 0.018 2.830029 4.075073 7.339942 3.754956 \n",
"19 0.019 2.824948 4.062370 7.350104 3.762578 \n",
"20 0.020 2.820809 4.052024 7.358381 3.768786 \n",
"21 0.021 2.817438 4.043596 7.365123 3.773843 \n",
"22 0.022 2.814692 4.036729 7.370617 3.777962 \n",
"23 0.023 2.812454 4.031135 7.375092 3.781319 \n",
"24 0.024 2.810630 4.026576 7.378739 3.784054 \n",
"25 0.025 2.809144 4.022861 7.381711 3.786283 \n",
"26 0.026 2.807933 4.019834 7.384133 3.788100 \n",
"27 0.027 2.806947 4.017366 7.386107 3.789580 \n",
"28 0.028 2.806142 4.015355 7.387716 3.790787 \n",
"29 0.029 2.805487 4.013717 7.389027 3.791770 \n",
"30 0.030 2.804952 4.012381 7.390095 3.792572 \n",
"31 0.031 2.804517 4.011292 7.390966 3.793225 \n",
"32 0.032 2.804162 4.010405 7.391676 3.793757 \n",
"33 0.033 2.803872 4.009681 7.392255 3.794191 \n",
"34 0.034 2.803637 4.009092 7.392727 3.794545 \n",
"35 0.035 2.803444 4.008611 7.393111 3.794833 \n",
"36 0.036 2.803288 4.008219 7.393424 3.795068 \n",
"37 0.037 2.803160 4.007900 7.393680 3.795260 \n",
"38 0.038 2.803056 4.007640 7.393888 3.795416 \n",
"39 0.039 2.802971 4.007428 7.394058 3.795543 \n",
"40 0.040 2.802902 4.007255 7.394196 3.795647 \n",
"41 0.041 2.802846 4.007114 7.394309 3.795732 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = bio.get_history()\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "f4ef60c7-9d9e-4324-9a93-525dd426bc6e",
"metadata": {},
"source": [
"A and B get depleted, while C and D get produced.\n",
"\n",
"**2A + 5B <-> 4C + 3D**"
]
},
{
"cell_type": "markdown",
"id": "a1525fa9-e852-4942-aef9-26b4ddcbab4e",
"metadata": {},
"source": [
"#### Let's verify that the stoichiometry is being respected"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "ea6a6286-aa49-4b4f-adff-2a3d3ff729d0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([4., 7., 5., 2.], dtype=float32),\n",
" array([3.76, 6.4 , 5.48, 2.36], dtype=float32))"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# We'll check the first two arrays of concentrations, from the run's history\n",
"arr0 = bio.reaction_dynamics.get_historical_concentrations(row=0, df=df)\n",
"arr1 = bio.reaction_dynamics.get_historical_concentrations(row=1, df=df)\n",
"arr0, arr1"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "8cd8dfee-21c5-4dd6-8bf4-155d275797a5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bio.reaction_dynamics.stoichiometry_checker(rxn_index=0, \n",
" conc_arr_before = arr0, \n",
" conc_arr_after = arr1)"
]
},
{
"cell_type": "markdown",
"id": "b0e3663b-3c12-4790-b948-79df3e6f740e",
"metadata": {},
"source": [
"Indeed, the change in [A] is -2 x 0.12, and the change in [B] is -5 X 0.12, \n",
" while the change in [C] is 4 x 0.12, and the change in [D] is 3 X 0.12"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "72e2ec04-2d7d-4c43-941e-11a613d784e3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([-2.0000002, -4.9999995, 4.0000005, 2.9999993], dtype=float32)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(arr1 - arr0) / 0.12"
]
},
{
"cell_type": "markdown",
"id": "058add5c-cb7b-4ed1-a3ad-87e32670ed39",
"metadata": {
"tags": []
},
"source": [
"# Plots of changes of concentration with time"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "68ab68a0-2b22-4f91-b2fc-978401b7dc73",
"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.001,
0.002,
0.003,
0.004,
0.005,
0.006,
0.007,
0.008,
0.009000000000000001,
0.010000000000000002,
0.011000000000000003,
0.012000000000000004,
0.013000000000000005,
0.014000000000000005,
0.015000000000000006,
0.016000000000000007,
0.017000000000000008,
0.01800000000000001,
0.01900000000000001,
0.02000000000000001,
0.02100000000000001,
0.022000000000000013,
0.023000000000000013,
0.024000000000000014,
0.025000000000000015,
0.026000000000000016,
0.027000000000000017,
0.028000000000000018,
0.02900000000000002,
0.03000000000000002,
0.03100000000000002,
0.03200000000000002,
0.03300000000000002,
0.03400000000000002,
0.035000000000000024,
0.036000000000000025,
0.037000000000000026,
0.03800000000000003,
0.03900000000000003,
0.04000000000000003,
0.04100000000000003
],
"xaxis": "x",
"y": [
4,
3.76,
3.5710911999999997,
3.421343984936673,
3.301980728001355,
3.2064188890000027,
3.1296453862394342,
3.0677942598136902,
3.0178536016474613,
2.9774572735702503,
2.9447337853232094,
2.9181946595034987,
2.896650676719295,
2.8791481940685353,
2.864920170128554,
2.8533481325184336,
2.8439323993268655,
2.836268601207023,
2.8300290633553296,
2.8249479697668667,
2.8208094937384085,
2.817438269840165,
2.814691724361387,
2.8124538876914618,
2.810630392954937,
2.8091444272685577,
2.8079334500421775,
2.8069465302591987,
2.8061421841616245,
2.805486618085015,
2.80495229972419,
2.8045167959066166,
2.8041618268042856,
2.803872496040423,
2.8036366638212202,
2.80344443641785,
2.8032877503339826,
2.8031600335513334,
2.8030559295354904,
2.8029710723541625,
2.8029019034285914,
2.802845522201422
],
"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.001,
0.002,
0.003,
0.004,
0.005,
0.006,
0.007,
0.008,
0.009000000000000001,
0.010000000000000002,
0.011000000000000003,
0.012000000000000004,
0.013000000000000005,
0.014000000000000005,
0.015000000000000006,
0.016000000000000007,
0.017000000000000008,
0.01800000000000001,
0.01900000000000001,
0.02000000000000001,
0.02100000000000001,
0.022000000000000013,
0.023000000000000013,
0.024000000000000014,
0.025000000000000015,
0.026000000000000016,
0.027000000000000017,
0.028000000000000018,
0.02900000000000002,
0.03000000000000002,
0.03100000000000002,
0.03200000000000002,
0.03300000000000002,
0.03400000000000002,
0.035000000000000024,
0.036000000000000025,
0.037000000000000026,
0.03800000000000003,
0.03900000000000003,
0.04000000000000003,
0.04100000000000003
],
"xaxis": "x",
"y": [
7,
6.4,
5.927728,
5.553359962341683,
5.254951820003388,
5.016047222500007,
4.824113465598586,
4.669485649534226,
4.544634004118653,
4.443643183925626,
4.361834463308023,
4.295486648758746,
4.2416266917982375,
4.197870485171339,
4.162300425321385,
4.133370331296084,
4.109830998317164,
4.090671503017557,
4.075072658388323,
4.062369924417166,
4.052023734346021,
4.043595674600413,
4.0367293109034685,
4.031134719228654,
4.026575982387343,
4.022861068171395,
4.019833625105444,
4.017366325647997,
4.015355460404061,
4.013716545212537,
4.012380749310474,
4.011291989766541,
4.0104045670107125,
4.009681240101056,
4.009091659553049,
4.0086110910446235,
4.008219375834954,
4.00790008387833,
4.007639823838723,
4.007427680885403,
4.007254758571475,
4.007113805503551
],
"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.001,
0.002,
0.003,
0.004,
0.005,
0.006,
0.007,
0.008,
0.009000000000000001,
0.010000000000000002,
0.011000000000000003,
0.012000000000000004,
0.013000000000000005,
0.014000000000000005,
0.015000000000000006,
0.016000000000000007,
0.017000000000000008,
0.01800000000000001,
0.01900000000000001,
0.02000000000000001,
0.02100000000000001,
0.022000000000000013,
0.023000000000000013,
0.024000000000000014,
0.025000000000000015,
0.026000000000000016,
0.027000000000000017,
0.028000000000000018,
0.02900000000000002,
0.03000000000000002,
0.03100000000000002,
0.03200000000000002,
0.03300000000000002,
0.03400000000000002,
0.035000000000000024,
0.036000000000000025,
0.037000000000000026,
0.03800000000000003,
0.03900000000000003,
0.04000000000000003,
0.04100000000000003
],
"xaxis": "x",
"y": [
5,
5.48,
5.857817600000001,
6.157312030126654,
6.39603854399729,
6.587162221999995,
6.7407092275211316,
6.8644114803726195,
6.964292796705077,
7.0450854528594995,
7.110532429353581,
7.163610680993003,
7.20669864656141,
7.241703611862929,
7.270159659742892,
7.293303734963133,
7.312135201346269,
7.327462797585954,
7.339941873289341,
7.350104060466267,
7.358381012523183,
7.36512346031967,
7.370616551277226,
7.3750922246170765,
7.378739214090126,
7.3817111454628845,
7.384133099915645,
7.386106939481603,
7.387715631676751,
7.38902676382997,
7.39009540055162,
7.390966408186767,
7.391676346391429,
7.392255007919154,
7.3927266723575595,
7.3931111271643,
7.393424499332035,
7.393679932897333,
7.393888140929019,
7.394057855291675,
7.394196193142817,
7.394308955597156
],
"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.001,
0.002,
0.003,
0.004,
0.005,
0.006,
0.007,
0.008,
0.009000000000000001,
0.010000000000000002,
0.011000000000000003,
0.012000000000000004,
0.013000000000000005,
0.014000000000000005,
0.015000000000000006,
0.016000000000000007,
0.017000000000000008,
0.01800000000000001,
0.01900000000000001,
0.02000000000000001,
0.02100000000000001,
0.022000000000000013,
0.023000000000000013,
0.024000000000000014,
0.025000000000000015,
0.026000000000000016,
0.027000000000000017,
0.028000000000000018,
0.02900000000000002,
0.03000000000000002,
0.03100000000000002,
0.03200000000000002,
0.03300000000000002,
0.03400000000000002,
0.035000000000000024,
0.036000000000000025,
0.037000000000000026,
0.03800000000000003,
0.03900000000000003,
0.04000000000000003,
0.04100000000000003
],
"xaxis": "x",
"y": [
2,
2.36,
2.6433632,
2.86798402259499,
3.047028907997967,
3.190371666499996,
3.3055319206408487,
3.3983086102794644,
3.473219597528808,
3.533814089644624,
3.582899322015186,
3.622708010744752,
3.655023984921057,
3.6812777088971966,
3.7026197448071687,
3.7199778012223494,
3.734101401009702,
3.745597098189466,
3.754956404967006,
3.7625780453497004,
3.768785759392388,
3.7738425952397527,
3.7779624134579195,
3.781319168462808,
3.7840544105675944,
3.786283359097163,
3.788099824936734,
3.789580204611202,
3.7907867237575634,
3.791770072872478,
3.792571550413715,
3.7932248061400755,
3.7937572597935723,
3.794191255939366,
3.7945450042681697,
3.794833345373225,
3.7950683744990266,
3.7952599496730004,
3.7954161056967646,
3.7955433914687564,
3.795647144857113,
3.795731716697867
],
"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 with time"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
0,
0.04100000000000003
],
"title": {
"text": "SYSTEM TIME"
},
"type": "linear"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
1.7003161691334914,
7.693992786463665
],
"title": {
"text": "concentration"
},
"type": "linear"
}
}
},
"image/png": "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sR/01e9J3zZh6KDrqLddqE3qPXa7t03oRe09rw/68g+PAAECBAgQIEAglYBQNpWkOgQIECBAgAABAgQIECBAgAABAgQIEIgQEMpGIBlCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS6hAgQIAAAQIECBAgQIAAAQIECBAgQCBCQCgbgWQIAQIECBAgQIAAAQIECBAgQIAAAQIEUgkIZVNJqkOAAAECBAgQIECAAAECBAgQIECAAIEIAaFsBJIhBAgQIECAAAECBAgQIECAAAECBAgQSCUglE0lqQ4BAgQIECBAgAABAgQIECBAgAABAgQiBISyEUiGECBAgAABAgQIECBAgAABAgQIECBAIJWAUDaVpDoECBAgQIAAAQIECBAgQIAAAQIECBCIEBDKRiAZQoAAAQIECBAgQIAAAQIECBAgQIAAgVQCQtlUkuoQIECAAAECBAgQIECAAAECBAgQIEAgQkAoG4FkCAECBAgQIECAAAECBAgQIECAAAECBFIJCGVTSapDgAABAgQIECBAgAABAgQIECBAgACBCAGhbASSIQQIECBAgAABAgQIECBAgAABAgQIEEglIJRNJakOAQIECBAgQIAAAQIECBAgQIAAAQIEIgSEshFIhhAgQIAAAQIECBAgQIAAAQIECBAgQCCVgFA2laQ6BAgQIECAAAECBAgQIECAAAECBAgQiBAQykYgGUKAAAECBAgQIECAAAECBAgQIECAAIFUAkLZVJLqECBAgAABAgQIECBAgAABAgQIECBAIEJAKBuBZAgBAgQIECBAgAABAgQIECBAgAABAgRSCQhlU0mqQ4AAAQIECBAgQIAAAQIECBAgQIAAgQgBoWwEkiEECBAgQIAAAQIECBAgQIAAAQIECBBIJSCUTSWpDgECBAgQIECAAAECBAgQIECAAAECBCIEhLIRSIYQIECAAAECBAgQIECAAAECBAgQIEAglYBQNpWkOgQIECBAgAABAgQIECBAgAABAgQIEIgQEMpGIBlCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS6hAgQIAAAQIECBAgQIAAAQIECBAgQCBCQCgbgWQIAQIECBAgQIAAAQIECBAgQIAAAQIEUgkIZVNJqkOAAAECBAgQIECAAAECBAgQIECAAIEIAaFsBJIhBAgQIECAAAECBAgQIECAAAECBAgQSCUglE0lqQ4BAgQIECBAgAABAgQIECBAgAABAgQiBISyEUiGECBAgAABAgQIECBAgAABAgQIECBAIJWAUDaVpDoECBAgQIAAAQIECBAgQIAAAQIECBCIEBDKRiAZQoAAAQIECBAgQIAAAQIECBAgQIAAgVQCQtlUkuoQIECAAAECBAgQIECAAAECBAgQIEAgQkAoG4FkCAECBAgQIECAAAECBAgQIECAAAECBFIJCGVTSapDgAABAgQIECBAgAABAgQIECBAgACBCAGhbASSIQQIECBAgAABAgQIECBAgAABAgQIEEgl8H/H6DSIbI5PJwAAAABJRU5ErkJggg==",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = px.line(data_frame=bio.get_history(), x=\"SYSTEM TIME\", y=[\"A\", \"B\", \"C\", \"D\"], \n",
" title=\"Changes in concentrations with time\",\n",
" color_discrete_sequence = ['navy', 'cyan', 'red', 'orange'],\n",
" labels={\"value\":\"concentration\", \"variable\":\"Chemical\"})\n",
"fig.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "a68a26cd",
"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
}