{
"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\") , (5,\"B\")], products=[(4,\"C\") , (3,\"D\")],\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.45 / K = 2.5) | 1st order in all reactants & products\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: [C] = 7.394 ; [D] = 3.796 ; [A] = 2.803 ; [B] = 4.007\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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IIAAAgggYE2AMNsaNRUhgAACCCCAAAIIIIAAAggggAACCCCAAAIIRBUgzI4qx3EIIIAAAggggAACCCCAAAIIIIAAAggggAAC1gQIs61RUxECCCCAAAIIIIAAAggggAACCCCAAAIIIIBAVAHC7KhyHIcAAggggAACCCCAAAIIIIAAAggggAACCCBgTYAw2xo1FSGAAAIIIIAAAggggAACCCCAAAIIIIAAAghEFSDMjirHcQgggAACCCCAAAIIIIAAAggggAACCCCAAALWBAizrVFTEQIIIIAAAggggAACCCCAAAIIIIAAAggggEBUAcLsqHIchwACCCCAAAIIIIAAAggggAACCCCAAAIIIGBNgDDbGjUVIYAAAggggAACCCCAAAIIIIAAAggggAACCEQVIMyOKsdxCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAtYECLOtUVMRAggggAACCCCAAAIIIIAAAggggAACCCCAQFQBwuyochyHAAIIIIAAAggggAACCCCAAAIIIIAAAgggYE2AMNsaNRUhgAACCCCAAAIIIIAAAggggAACCCCAAAIIRBUgzI4qx3EIIIAAAggggAACCCCAAAIIIIAAAggggAAC1gQIs61RUxECCCCAAAIIIIAAAggggAACCCCAAAIIIIBAVAHC7KhyHIcAAggggAACCCCAAAIIIIAAAggggAACCCBgTYAw2xo1FSGAAAIIIIAAAggggAACCCCAAAIIIIAAAghEFSDMjirHcQgggAACCCCAAAIIIIAAAggggAACCCCAAALWBAizrVFTEQIIIIAAAggggAACCCCAAAIIIIAAAggggEBUAcLsqHIchwACCCCAAAIIIIAAAggggAACCCCAAAIIIGBNgDDbGjUVIYAAAggggAACCCCAAAIIIIAAAggggAACCEQVIMyOKsdxCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAtYECLOtUVMRAggggAACCCCAAAIIIIAAAggggAACCCCAQFQBwuyochyHAAIIIIAAAggggAACCCCAAAIIIIAAAgggYE2AMNsaNRUhgAACCCCAAAIIIIAAAggggAACCCCAAAIIRBUgzI4qx3EIIIAAAggggAACCCCAAAIIIIAAAggggAAC1gQIs61RUxECCCCAAAIIIIAAAggggAACCCCAAAIIIIBAVAHC7KhyHIcAAggggAACCCCAAAIIIIAAAggggAACCCBgTYAw2xo1FSGAAAIIIIAAAggggAACCCCAAAIIIIAAAghEFSDMjirHcQgggAACCCCAAAIIIIAAAggggAACCCCAAALWBAizrVFTEQIIIIAAAggggAACCCCAAAIIIIAAAggggEBUAcLsqHIchwACCCCAAAIIIIAAAggggAACCCCAAAIIIGBNgDDbGjUVIYAAAggggAACCCCAAAIIIIAAAggggAACCEQVIMyOKsdxCCCAAAIIIIAAAggggAACCCCAAAIIIIAAAtYECLOtUVMRAggggAACCCCAAAIIIIAAAggggAACCCCAQFQBwuyochyHAAIIIIAAAggggAACCCCAAAIIIIAAAgggYE2AMNsaNRUhgAACCCCAAAIIIIAAAggggAACCCCAAAIIRBUgzI4qx3EIIIAAAggggAACCCCAAAIIIIAAAggggAAC1gQIs61RUxECCCCAAAIIIIAAAggggAACCCCAAAIIIIBAVIH/D489ZVrzf8LbAAAAAElFTkSuQmCC",
"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
}