{
"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: July 14, 2023"
]
},
{
"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 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": "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_1\"],\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: {'B', 'A', 'C', 'D'}\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",
"graph_data = chem_data.prepare_graph_network()\n",
"GraphicLog.export_plot(graph_data, \"vue_cytoscape_1\")"
]
},
{
"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": "iVBORw0KGgoAAAANSUhEUgAABCcAAAFoCAYAAABkA5G6AAAAAXNSR0IArs4c6QAAIABJREFUeF7svQm8JFV59/+r3u5+7+zMPsCwDPsAsimbmmiCGVQSETVxweAIJr4iL/xBoohGIPCiJDGQyUTUJCZmzIvKKNHXDQeDKAKDKDOArLMw+8ydu/dW/885VdW3um91d3XXqeXc+fXnc+3tnOc59X3q4tT3nnPKME3TBB8kQAIkQAIkQAIkQAIkQAIkQAIkQAIkEBMBg3IiJvJMSwIkQAIkQAIkQAIkQAIkQAIkQAIkIAlQTvBEIAESIAESIAESIAESIAESIAESIAESiJUA5USs+JmcBEiABEiABEiABEiABEiABEiABEiAcoLnAAmQAAmQAAmQAAmQAAmQAAmQAAmQQKwEKCdixc/kJEACJEACJEACJEACJEACJEACJEAClBM8B0iABEiABEiABEiABEiABEiABEiABGIlQDkRK34mJwESIAESIAESIAESIAESIAESIAESoJzgOUACJEACJEACJEACJEACJEACJEACJBArAcqJWPEzOQmQAAmQAAmQAAmQAAmQAAmQAAmQAOUEzwESIAESIAESIAESIAESIAESIAESIIFYCVBOxIqfyUmABEiABEiABEiABEiABEiABEiABCgneA6QAAmQAAmQAAmQAAmQAAmQAAmQAAnESoByIlb8TE4CJEACJEACJEACJEACJEACJEACJEA5wXOABEiABEiABEiABEiABEiABEiABEggVgKUE7HiZ3ISIAESIAESIAESIAESIAESIAESIAHKCZ4DJEACJEACJEACJEACJEACJEACJEACsRKgnIgVP5OTAAmQAAmQAAmQAAmQAAmQAAmQAAlQTvAcIAESIAESIAESIAESIAESIAESIAESiJUA5USs+JmcBEiABEiABEiABEiABEiABEiABEiAcoLnAAmQAAmQAAmQAAmQAAmQAAmQAAmQQKwEKCdixc/kJEACJEACJEACJEACJEACJEACJEAClBM8B0iABEiABEiABEiABEiABEiABEiABGIlQDkRK34mJwESIAESIAESIAESIAESIAESIAESoJzgOUACJEACJEACJEACJEACJEACJEACJBArAcqJWPEzOQmQAAmQAAmQAAmQAAmQAAmQAAmQAOUEzwESIAESIAESIAESIAES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JEAClBM8B0iABEiABEiABEiABEiABEiABEiABGIlQDkRK34mJwESIAESIAESIAESIAESIAESIAESoJzgOUACJEACJEACJEACJEACJEACJEACJBArAcqJWPEzOQmQAAmQAAmQAAmQAAmQAAmQAAmQAOUEzwESIAESIAESIAESIAESIAESIAESIIFYCVBOxIqfyUmABEiABEiABEiABEiABEiABEiABCgneA6QAAmQAAmQAAmQAAmQAAmQAAmQAAnESoByIlb8TE4CJEACJEACJEACJEACJEACJEACJEA5wXOABEiABEiABEiABEiABEiABEiABEggVgKUE7HiZ3ISIAESIAESIAESIAESIAESIAESIAHKCZ4DJEACJEACJEACJEACJEACJEACJEACsRKgnIgVP5OTAAmQAAmQAAmQAAmQAAmQAAmQAAlQTvAcIAESIAESIAESIAESIAESIAESIAESiJUA5USs+JmcBEiABEiABEiABEiABEiABEiABEiAcoLnAAmQAAmQAAmQAAmQAAmQAAmQAAmQQKwEKCdixc/kJEACJEACJEACJEACJEACJEACJEAClBM8B0iABEiABEiABEiABEiABEiABEiABGIlQDkRK34mJwESIAESIAESIAESIAESIAESIAESoJzgOUACJEACJEACJEACJEACJEACJEACJBArAcqJWPEzOQmQAAmQAAmQAAmQAAmQAAmQAAmQAOUEzwESIAESIAESIAESIAESIAESIAESIIFYCVBOxIqfyUmABEiABEiABEiABEiABEiABEiABCgneA6QAAmQAAmQAAmQAAmQAAmQAAmQAAnESoByIlb8TE4CJEACJEACJEACJEACJEACJEACJEA5wXOABEiABEiABEiABEiABEiABEiABEggVgKUE7HiZ3ISIAESIAESIAESIAESIAESIAESIAHKCZ4DJEACJEACJEACJEACJEACJEACJEACsRKgnIgVP5OTAAmQAAmQAAmQAAmQAAmQAAmQAAlQTvAcIAESIAESIAESIAESIAESIAESIAESiJUA5USs+JmcBEiABEiABEiABEiABEiABEiABEiAcoLnAAmQAAmQAAmQAAmQAAmQAAmQAAmQQKwEKCdixc/kJEACJEACJEACJEACJEACJEACJEAClBM8B0iABEiABEiABEiABEiABEiABEiABGIl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",
"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
}