{ "cells": [ { "cell_type": "markdown", "id": "8d1aaf6c-3d58-4e27-88ac-9482296ac61a", "metadata": {}, "source": [ "### One-bin `2A <-> 3B` reaction, with 1st-order kinetics in both directions, taken to equilibrium\n", "\n", "Diffusion not applicable (just 1 bin)\n", "\n", "LAST REVISED: June 4, 2023" ] }, { "cell_type": "code", "execution_count": 1, "id": "266e43ba-f034-4552-b27c-9b344150333b", "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": "1af1338d-1bb3-4fa7-ac47-1e36421df8c0", "metadata": {}, "outputs": [], "source": [ "from experiments.get_notebook_info import get_notebook_basename\n", "\n", "from src.modules.reactions.reaction_data import ChemData as chem\n", "from src.modules.reactions.reaction_dynamics import ReactionDynamics\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": "4745cc84-d917-4701-87a8-8c16f9ac428e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-> Output will be LOGGED into the file 'reaction_3.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": "b2660f8d-3447-4874-88d0-da99c0edcfcd", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "1 bins and 2 species:\n", " Species 0 (A). Diff rate: None. Conc: [10.]\n", " Species 1 (B). Diff rate: None. Conc: [50.]\n" ] } ], "source": [ "# Initialize the system\n", "chem_data = chem(names=[\"A\", \"B\"]) # NOTE: Diffusion not applicable (just 1 bin)\n", "\n", "\n", "\n", "# Reaction 2A <-> 3B , with 1st-order kinetics in both directions\n", "chem_data.add_reaction(reactants=[(2,\"A\")], products=[(3,\"B\")], forward_rate=5., reverse_rate=2.)\n", "\n", "bio = BioSim1D(n_bins=1, chem_data=chem_data)\n", "\n", "bio.set_uniform_concentration(species_index=0, conc=10.)\n", "bio.set_uniform_concentration(species_index=1, conc=50.)\n", "\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 5, "id": "50961a8b-29af-4001-8d46-2a57ed7ccb0d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABcaption
0010.050.0Initial state
\n", "
" ], "text/plain": [ " SYSTEM TIME A B caption\n", "0 0 10.0 50.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": "0506f3fa-67d8-4aaf-986b-103f955336bb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 1 (at temp. 25 C)\n", "0: 2 A <-> 3 B (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": "feae8232-392a-44fd-a9cf-0fb426258fee", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[GRAPHIC ELEMENT SENT TO LOG FILE `reaction_3.log.htm`]\n" ] } ], "source": [ "# Send the plot to the HTML log file\n", "graph_data = chem_data.prepare_graph_network()\n", "GraphicLog.export_plot(graph_data, \"vue_cytoscape_1\")" ] }, { "cell_type": "markdown", "id": "ce4ebe89-8187-4c6f-a526-5609937ac65e", "metadata": { "tags": [] }, "source": [ "### First step" ] }, { "cell_type": "code", "execution_count": 8, "id": "430626a5-2e29-4738-944f-6233edd0e7c7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.05:\n", "1 bins and 2 species:\n", " Species 0 (A). Diff rate: None. Conc: [15.]\n", " Species 1 (B). Diff rate: None. Conc: [42.5]\n" ] } ], "source": [ "# First step\n", "bio.react(time_step=0.05, n_steps=1)\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "27067455-0efd-45d3-abd8-9b66b6f48097", "metadata": {}, "source": [ "_Early in the reaction :_\n", "[A] = 15. [B] = 42.5\n", "\n", "We're taking a smaller first step than in experimetn \"reaction_2\", to avoid over-shooting the equilibrium value with too large a step!" ] }, { "cell_type": "code", "execution_count": 9, "id": "63f11bce-17f0-4757-98a3-a40e7621084f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABcaption
00.0010.050.0Initial state
10.0515.042.5
\n", "
" ], "text/plain": [ " SYSTEM TIME A B caption\n", "0 0.00 10.0 50.0 Initial state\n", "1 0.05 15.0 42.5 " ] }, "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": "b12d38ef-c936-47b0-a1de-232fc9d521b7", "metadata": {}, "source": [ "### Numerous more steps" ] }, { "cell_type": "code", "execution_count": 10, "id": "f714a848-01a0-4343-bfbb-89d946a7e343", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 10.05:\n", "1 bins and 2 species:\n", " Species 0 (A). Diff rate: None. Conc: [16.25]\n", " Species 1 (B). Diff rate: None. Conc: [40.625]\n" ] } ], "source": [ "# Numerous more steps\n", "bio.react(time_step=0.1, n_steps=100, snapshots={\"sample_bin\": 0})\n", "\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "ff1860cd-a3c7-47a5-9b9f-3c04560962fa", "metadata": { "tags": [] }, "source": [ "### Equilibrium" ] }, { "cell_type": "markdown", "id": "20ce715e-e24a-4ec3-a93d-d3eb5858aef5", "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: [A] = 16.25 , [B] = 40.625" ] }, { "cell_type": "code", "execution_count": 11, "id": "796bef2e-8a11-4aff-8ce5-0b9bb5f72680", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2 A <-> 3 B\n", "Final concentrations: [B] = 40.63 ; [A] = 16.25\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2.5\n", " Formula used: [B] / [A]\n", "2. Ratio of forward/reverse reaction rates: 2.5\n", "Discrepancy between the two values: 1.776e-14 %\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": "7527ea21-fd7d-4514-ab49-cc6c16482c10", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABcaption
00.0010.0050.000Initial state
10.0515.0042.500
20.1517.0039.500
30.2515.8041.300
40.3516.5240.220
...............
979.6516.2540.625
989.7516.2540.625
999.8516.2540.625
1009.9516.2540.625
10110.0516.2540.625
\n", "

102 rows × 4 columns

\n", "
" ], "text/plain": [ " SYSTEM TIME A B caption\n", "0 0.00 10.00 50.000 Initial state\n", "1 0.05 15.00 42.500 \n", "2 0.15 17.00 39.500 \n", "3 0.25 15.80 41.300 \n", "4 0.35 16.52 40.220 \n", ".. ... ... ... ...\n", "97 9.65 16.25 40.625 \n", "98 9.75 16.25 40.625 \n", "99 9.85 16.25 40.625 \n", "100 9.95 16.25 40.625 \n", "101 10.05 16.25 40.625 \n", "\n", "[102 rows x 4 columns]" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.get_history()" ] }, { "cell_type": "markdown", "id": "f2e3dc99-8b9d-4dcd-a2e3-ad099efbcbf4", "metadata": { "tags": [] }, "source": [ "# Plots of changes of concentration with time" ] }, { "cell_type": "code", "execution_count": 13, "id": "c206e345-03c3-4c13-b1f3-d1d21d6bf100", "metadata": {}, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "A", "line": { "color": "navy", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.05, 0.15000000000000002, 0.25, 0.35, 0.44999999999999996, 0.5499999999999999, 0.6499999999999999, 0.7499999999999999, 0.8499999999999999, 0.9499999999999998, 1.0499999999999998, 1.15, 1.25, 1.35, 1.4500000000000002, 1.5500000000000003, 1.6500000000000004, 1.7500000000000004, 1.8500000000000005, 1.9500000000000006, 2.0500000000000007, 2.150000000000001, 2.250000000000001, 2.350000000000001, 2.450000000000001, 2.550000000000001, 2.6500000000000012, 2.7500000000000013, 2.8500000000000014, 2.9500000000000015, 3.0500000000000016, 3.1500000000000017, 3.2500000000000018, 3.350000000000002, 3.450000000000002, 3.550000000000002, 3.650000000000002, 3.750000000000002, 3.8500000000000023, 3.9500000000000024, 4.0500000000000025, 4.150000000000002, 4.250000000000002, 4.350000000000001, 4.450000000000001, 4.550000000000001, 4.65, 4.75, 4.85, 4.949999999999999, 5.049999999999999, 5.149999999999999, 5.249999999999998, 5.349999999999998, 5.4499999999999975, 5.549999999999997, 5.649999999999997, 5.7499999999999964, 5.849999999999996, 5.949999999999996, 6.049999999999995, 6.149999999999995, 6.249999999999995, 6.349999999999994, 6.449999999999994, 6.549999999999994, 6.649999999999993, 6.749999999999993, 6.8499999999999925, 6.949999999999992, 7.049999999999992, 7.1499999999999915, 7.249999999999991, 7.349999999999991, 7.44999999999999, 7.54999999999999, 7.64999999999999, 7.749999999999989, 7.849999999999989, 7.949999999999989, 8.049999999999988, 8.149999999999988, 8.249999999999988, 8.349999999999987, 8.449999999999987, 8.549999999999986, 8.649999999999986, 8.749999999999986, 8.849999999999985, 8.949999999999985, 9.049999999999985, 9.149999999999984, 9.249999999999984, 9.349999999999984, 9.449999999999983, 9.549999999999983, 9.649999999999983, 9.749999999999982, 9.849999999999982, 9.949999999999982, 10.049999999999981 ], "xaxis": "x", "y": [ 10, 15, 17, 15.8, 16.52, 16.088, 16.3472, 16.191679999999998, 16.284992000000003, 16.2290048, 16.262597120000002, 16.242441728, 16.2545349632, 16.24727902208, 16.251632586752002, 16.249020447948798, 16.250587731230723, 16.24964736126157, 16.25021158324306, 16.249873050054166, 16.250076169967503, 16.2499542980195, 16.2500274211883, 16.249983547287023, 16.250009871627785, 16.24999407702333, 16.250003553786005, 16.2499978677284, 16.250001279362962, 16.249999232382226, 16.250000460570668, 16.2499997236576, 16.250000165805442, 16.249999900516734, 16.25000005968996, 16.249999964186024, 16.250000021488386, 16.249999987106968, 16.25000000773582, 16.24999999535851, 16.250000002784898, 16.249999998329063, 16.250000001002565, 16.249999999398465, 16.250000000360924, 16.249999999783448, 16.250000000129933, 16.249999999922046, 16.25000000004678, 16.249999999971937, 16.250000000016843, 16.2499999999899, 16.250000000006064, 16.249999999996366, 16.250000000002185, 16.249999999998693, 16.25000000000079, 16.24999999999953, 16.250000000000288, 16.249999999999833, 16.250000000000107, 16.24999999999994, 16.25000000000004, 16.24999999999998, 16.250000000000018, 16.249999999999996, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004, 16.250000000000007, 16.250000000000004 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "darkorange", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.05, 0.15000000000000002, 0.25, 0.35, 0.44999999999999996, 0.5499999999999999, 0.6499999999999999, 0.7499999999999999, 0.8499999999999999, 0.9499999999999998, 1.0499999999999998, 1.15, 1.25, 1.35, 1.4500000000000002, 1.5500000000000003, 1.6500000000000004, 1.7500000000000004, 1.8500000000000005, 1.9500000000000006, 2.0500000000000007, 2.150000000000001, 2.250000000000001, 2.350000000000001, 2.450000000000001, 2.550000000000001, 2.6500000000000012, 2.7500000000000013, 2.8500000000000014, 2.9500000000000015, 3.0500000000000016, 3.1500000000000017, 3.2500000000000018, 3.350000000000002, 3.450000000000002, 3.550000000000002, 3.650000000000002, 3.750000000000002, 3.8500000000000023, 3.9500000000000024, 4.0500000000000025, 4.150000000000002, 4.250000000000002, 4.350000000000001, 4.450000000000001, 4.550000000000001, 4.65, 4.75, 4.85, 4.949999999999999, 5.049999999999999, 5.149999999999999, 5.249999999999998, 5.349999999999998, 5.4499999999999975, 5.549999999999997, 5.649999999999997, 5.7499999999999964, 5.849999999999996, 5.949999999999996, 6.049999999999995, 6.149999999999995, 6.249999999999995, 6.349999999999994, 6.449999999999994, 6.549999999999994, 6.649999999999993, 6.749999999999993, 6.8499999999999925, 6.949999999999992, 7.049999999999992, 7.1499999999999915, 7.249999999999991, 7.349999999999991, 7.44999999999999, 7.54999999999999, 7.64999999999999, 7.749999999999989, 7.849999999999989, 7.949999999999989, 8.049999999999988, 8.149999999999988, 8.249999999999988, 8.349999999999987, 8.449999999999987, 8.549999999999986, 8.649999999999986, 8.749999999999986, 8.849999999999985, 8.949999999999985, 9.049999999999985, 9.149999999999984, 9.249999999999984, 9.349999999999984, 9.449999999999983, 9.549999999999983, 9.649999999999983, 9.749999999999982, 9.849999999999982, 9.949999999999982, 10.049999999999981 ], "xaxis": "x", "y": [ 50, 42.5, 39.5, 41.3, 40.22, 40.867999999999995, 40.4792, 40.71248, 40.572511999999996, 40.6564928, 40.60610432, 40.636337408, 40.6181975552, 40.62908146688, 40.622551119872, 40.62646932807681, 40.62411840315392, 40.62552895810765, 40.624682625135414, 40.625190424918756, 40.62488574504875, 40.62506855297075, 40.624958868217554, 40.62502467906947, 40.62498519255833, 40.62500888446501, 40.624994669321, 40.625003198407406, 40.624998080955564, 40.625001151426666, 40.624999309144, 40.62500041451361, 40.62499975129184, 40.6250001492249, 40.624999910465064, 40.62500005372097, 40.62499996776742, 40.62500001933955, 40.624999988396276, 40.62500000696224, 40.62499999582266, 40.62500000250641, 40.62499999849616, 40.62500000090231, 40.62499999945862, 40.62500000032484, 40.62499999980511, 40.62500000011694, 40.62499999992984, 40.62500000004211, 40.62499999997475, 40.62500000001516, 40.62499999999091, 40.625000000005464, 40.62499999999673, 40.62500000000197, 40.62499999999883, 40.62500000000072, 40.62499999999958, 40.62500000000026, 40.62499999999985, 40.6250000000001, 40.62499999999995, 40.62500000000004, 40.624999999999986, 40.62500000000002, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014, 40.62500000000001, 40.625000000000014 ], "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" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 10.049999999999981 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ 7.777777777777778, 52.22222222222222 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABTkAAAFoCAYAAACc6v8hAAAAAXNSR0IArs4c6QAAIABJREFUeF7t3Qu8XWV9J/z/yT1ACOFOHASCdYARpWWQtCqlUqcaSu3QSnG0xcZJM6HzdgQmvASHF2lHQpOJ8M68hcbUSK2MNLTptAyxVu1QvDSKKBYL2BYUL9xvIZIbSc77WRv26T47++Tsy7PWXmvv7/58/JCcs9b/eZ7vf4UcfzxrrZHR0dHR8CFAgAABAgQIECBAgAABAgQIECBAgEBFBUaEnBXtnGkTIECAAAECBAgQIECAAAECBAgQIFATEHK6EAgQIECAAAECBAgQIECAAAECBAgQqLSAkLPS7TN5AgQIECBAgAABAgQIECBAgAABAgSEnK4BAgQIECBAgAABAgQIECBAgAABAgQqLSDkrHT7TJ4AAQIECBAgQIAAAQIECBAgQIAAASGna4AAAQIECBAgQIAAAQIECBAgQIAAgUoLCDkr3T6TJ0CAAAECBAgQIECAAAECBAgQIEBAyOkaIECAAAECBAgQIECAAAECBAgQIECg0gJCzkq3z+QJECBAgAABAgQIECBAgAABAgQIEBByugYIECBAgAABAgQIECBAgAABAgQIEKi0gJCz0u0zeQIECBAgQIAAAQIECBAgQIAAAQIEhJyuAQIECBAgQIAAAQIECBAgQIAAAQIEKi0g5Kx0+0yeAAECBAgQIECAAAECBAgQIECAAAEhp2uAAAECBAgQIECAAAECBAgQIECAAIFKCwg5K90+kydAgAABAgQIECBAgAABAgQIECBAQMjpGiBAgAABAgQIECBAgAABAgQIECBAoNICQs5Kt8/kCRAgQIAAAQIECBAgQIAAAQIECBAQcroGCBAgQIAAAQIECBAgQIAAAQIECBCotICQs9LtM3kCBAgQIECAAAECBAgQIECAAAECBIScrgECBAgQIECAAAECBAgQIECAAAECBCotIOSsdPtMngABAgQIECBAgAABAgQIECBAgAABIadrgAABAgQIECBAgAABAgQIECBAgACBSgsIOSvdPpMnQIAAAQIECBAgQIAAAQIECBAgQEDI6RogQIAAAQIECBAgQIAAAQIECBAgQKDSAkLOSrfP5AkQIECAAAECBAgQIECAAAECBAgQEHK6BggQIECAAAECBAgQIECAAAECBAgQqLSA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OO4RBNl8Gt923knIub9AeaJrrdWzRhvfJN/qOmj1cq3m+q0MenXt5fqa7F9mvk+AAAECBAgQIECAAAECBAgMr4CQc4LeN4ZEjYc0B5/thpxZjXqoWa+X1XrLma/v6O3qzTsHm58NmQWm2dvW16zdEI23KWdjTvQcycY1tTom27XavFO1FVteIWc9NLxq1fqxYVvNqf5cykbfS5deMHZOJy8eqp/UXLPVC5laPWOycX6dhJytrpP6bdz7ez5p8/WajX/tiiVx5cp1+1wHzdfhZPVTuvZyfQ3vv6atnAABAgQIECBAgAABAgQIEJhMQMg5mVAFv9/8xvQKLsGUCRAgQIAAAQIECBAgQIAAAQIECLQtIORsm6qcB2a77LLdoGecdtLYBNt5aU45V2NWBAgQIECAAAECBAgQIECAAAECBDoXEHJ2blaqM5pvJc4m13xLfakmbDIECBAgQIAAAQIECBAgQIAAAQIEEgsIORODKkeAAAECBAgQIECAAAECBAgQIECAQLECQs5ivY1GgAABAgQIECBAgAABAgQIECBAgEBiASFnYlDlCBAgQIAAAQIECBAgQIAAAQIECBAoVkDIWay30QgQIECAAAECBAgQIECAAAECBAgQSCwg5EwMqhwBAgQIECBAgAABAgQIECBAgAABAsUKCDmL9TYaAQIECBAgQIAAAQIECBAgQIAAAQKJBYSciUGVI0CAAAECBAgQIECAAAECBAgQIECgWAEhZ7HeRiNAgAABAgQIECBAgAABAgQIECBAILGAkDMxqHIECBAgQIAAAQIECBAgQIAAAQIECBQrIOQs1ttoBAgQIECAAAECBAgQIECAAAECBAgkFhByJgZVjgABAgQIECBAgAABAgQIECBAgACBYgWEnMV6G40AAQIECBAgQIAAAQIECBAgQIAAgcQCQs7EoMoRIECAAAECBAgQIECAAAECBAgQIFCsgJCzWG+jESBAgAABAgQIECBAgAABAgQIECCQWEDImRhUOQIECBAgQIAAAQIECBAgQIAAAQIEihUQchbrbTQCBAgQIECAAAECBAgQIECAAAECBBILCDkTgypHgAABAgQIECBAgAABAgQIECBAgECxAkLOYr2NRoAAAQIECBAgQIAAAQIECBAgQIBAYgEhZ2JQ5QgQIECAAAECBAgQIECAAAECBAgQKFZAyFmst9EIECBAgAABAgQIECBAgAABAgQIEEgsIORMDKocAQIECBAgQIAAAQIECBAgQIAAAQLFCgg5i/U2GgECBAgQIECAAAECBAgQIECAAAECiQWEnIlBlSNAgAABAgQIECBAgAABAgQIECBAoFgBIWex3kYjQIAAAQIECBAgQIAAAQIECBAgQCCxgJAzMahyBAgQIECAAAECBAgQIECAAAECBAgUKyDkLNbbaAQIECBAgAABAgQIECBAgAABAgQIJBYQciYGVY4AAQIECBAgQIAAAQIECBAgQIAAgWIFhJzFehuNAAECBAgQIECAAAECBAgQIECAAIHEAkLOxKDKESBAgAABAgQIECBAgAABAgQIECBQrICQs1hvoxEgQIAAAQIECBAgQIAAAQIECBAgkFhAyJkYVDkCBAgQIECAAAECBAgQIECAAAECBIoVEHIW6200AgQIECBAgAABAgQIECBAgAABAgQSCwg5E4MqR4AAAQIECBAgQIAAAQIECBAgQIBAsQJCzmK9jUaAAAECBAgQIECAAAECBAgQIECAQGIBIWdiUOUIECBAgAABAgQIECBAgAABAgQIEChWQMhZrLfRCBAgQIAAAQIECBAgQIAAAQIECBBILCDkTAyqHAECBAgQIECAAAECBAgQIECAAAECxQoIOYv1NhoBAgQIECBAgAABAgQIECBAgAABAokFhJyJQZUjQIAAAQIECBAgQIAAAQIECBAgQKBYASFnsd5GI0CAAAECBAgQIECAAAECBAgQIEAgsYCQMzGocgQIECBAgAABAgQIECBAgAABAgQIFCsg5CzW22gECBAgQIAAAQIECBAgQIAAAQIECCQWEHImBlWOAAECBAgQIECAAAECBAgQIECAAIFiBYScxXobjQABAgQIECBAgAABAgQIECBAgACBxAJCzsSgyhEgQIAAAQIECBAgQIAAAQIECBAgUKyAkLNYb6MRIECAAAECBAgQIECAAAECBAgQIJBYQMiZGFQ5AgQIECBAgAABAgQIECBAgAABAgSKFRByJvB+9JntCaooQYBACoGj5s2Kp7fsjD17R1OUU4MAgR4Fpk8diUMOmhFPbdnZYyWnEyCQSuDgA6bH3tHR+NH23alKqkOAQI8C2c+w2d+Ve/0M26Ok0wmkEZgxbUocfOD02v+3bP7MP2x2mkFUSS4g5ExAKuRMgKgEgUQCQs5EkMoQ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oPHvxqxS84v55D+9+RZ5tpCzSG1jESBAgAABAgQIECBAgAABAgQIECCQXEDImZxUQQIECBAgQIAAAQIECBAgQIAAAQIEihQQchapbSwCBAgQIECAAAECBAgQIECAAAECBJILCDmTkypIgAABAgQIECBAgAABAgQIECBAgECRAkLOIrWNRYAAAQIECBAgQIAAAQIECBAgQIBAcgEhZ3JSBQkQIECAAAECBAgQIECAAAECBAgQKFJAyFmktrEIECBAgAABAgQIECBAgAABAgQIEEguIORMTqogAQIECBAgQIAAAQIECBAgQIAAAQJFCgg5i9Q2FgECBAgQIECAAAECBAgQIECAAAECyQWEnMlJFSRAgAABAgQIECBAgAABAgQIECBAoEgBIWeR2sYiQIAAAQIECBAgQIAAAQIECBAgQCC5gJAzOamCBAgQIECAAAECBAgQIECAAAECBAgUKSDkLFLbWAQIECBAgAABAgQIECBAgAABAgQIJBcQciYnVZAAAQIECBAgQIAAAQIECBAgQIAAgSIFhJxFahuLAAECBAgQIECAAAECBAgQIECAAIHkAkLO5KQKEiBAgAABAgQIECBAgAABAgQIECBQpICQs0htYxEgQIAAAQIECBAgQIAAAQIECBAgkFxAyJmcVEECBAgQIECAAAECBAgQIECAAAECBIoUEHIWqW0sAgQIECBAgECDwHNbtsayK66P+x54eJzL71y+ON7x1oVx9er1ta9fs3xxzJ41Y+yYhx55NJZeviYuvuidcf6is2J/dbLvf2TthvjYpzZNaH/qyQviIx/6zbjho7fFHZ/fvM9x556zsDaH7JPNKTvm5huuiDNOO2ns2O07dk34vfpBGzfdFVetenlNrT7HHHVYrLrqP8Sq3/vUmEk2t5uuuyTmzZ0zto7MJ1tX46e+xvr3GufTPFZ9PY2mLkwCBAgQIECAAIFqCwg5q90/sydAgAABAgQqKtAcVNaXkX39lo2fi+XLLowdO3fWQtALzjt7XKiXBXrZ59KlF0Q7dRrDvHogetnSC1qGlEcfeWitbqtPY3D4/ncvGnfc3fc+GO/7wHW105oD0P3VWnj6KfsElvVxmudSDzKbQ8q6wWNPPBPNIef+1lPRS8e0CRAgQIAAAQIEWggIOV0WBAgQIECAAIE+CGS7GjfcfufYLsWJppCFhytWrou1qy6LE4+bH9nv16zdMHZeu3Xq9VOEnK854VXx9fv+MZZffGFtTvVQ8vWnnBg3b/jLWLliybgANWXI+aNtO+JHP9oW7zrv7LExsvDzoANnx19/6RtjgfBEQWkfWm1IAgQIECBAgACBAgSEnAUgG4IAAQIECBAg0CzQHF7uTygL8R5/8tm45DfeFZd86PfG7ezspE42RoqQM9t9+d3vP16bcn036eobb41sd2cWyOYZcmZjHn/s0bH5nvtrt9Bnu11XXLuuNnYW/tZ3vQo5/ZkjQIAAAQIECAyXgJBzuPpttQQIECBAgEBJBFo9M7LVsyaz6Tbejt18q3YnddoJOdt5JmcWcr7hX70mPrhyXXx4xZL487/8Yi14zL6WPSs075Dz1y98R+02/uyW++8/+mQtcK1/rTnk3N96PJOzJH8YTIMAAQIECBAgkEBAyJkAUQkCBAgQIECAQC8Cjc+zzOo0P+8y+1p2W/qNf/jnY7ettxqvnTqpdnLWX2j01W88EIfMnRMrr1wSzz6/tZCQM9s9WrtN/y/+T40hC1oPPWTOuOeX2snZyxXpXAIECBAgQIBA9QSEnNXrmRkTIECAAAECAyww0e3nzc/inIxgojopQ87mlx7Vf5/3Ts4s5Kyv442nnVS7Zb7+e7erT3Zl+D4BAgQIECBAYDAFhJyD2VerIkCAAAECBEoucNfmb8apJy+IeXPnjJtpFhTWbwPPXupT/0wUcnZaJ2XImc3tlo2fjUXnLKyto8iQMxv7M3d+NV5zwr+ovfxIyFnyC970CBAgQIAAAQI5Cwg5cwZWngABAgQIECDQSiC73fqqVevj5huuGHtLeP0W6+z47KU6jc+MnCjk7LRO6pCzcW1Fh5yNYws5/TkjQIAAAQIECAy3gJBzuPtv9QQIECBAgEAfBeoBZeMUWj2PM/v+/m5X76TOZCFnuy8eyp7J2fxJEXLW53ffAw/Xyme7XW+67pLaTtHsLfPZJ7s9vfkzUcjpxUN9vMANTYAAAQIECBAoUEDIWSC2oQgQIECAAAECBAgQIECAAAECBAgQSC8g5ExvqiIBAgQIECBAgAABAgQIECBAgAABAgUKCDkLxDYUAQIECBAgQIAAAQIECBAgQIAAAQLpBYSc6U1VJECAAAECBAgQIECAAAECBAgQIECgQAEhZ4HYhiJAgAABAgQIECBAgAABAgQIECBAIL2AkDO9qYoECBAgQIAAAQIECBAgQIAAAQIECBQoIOQsENtQBAgQIECAAAECBAgQIECAAAECBAikFxBypjdVkQABAgQIECBAgAABAgQIECBAgACBAgWEnAViG4oAAQIECBAgQIAAAQIECBAgQIAAgfQCQs70pioSIECAAAECBAgQIECAAAECBAgQIFCggJCzQGxDESBAgAABAgQIECBAgAABAgQIECCQXkDImd5URQIECBAgQIAAAQIECBAgQIAAAQIEChQQchaIbSgCBAgQIECAAAECBAgQIECAAAECBNILCDnTm6pIgAABAgQIECBAgAABAgQIECBAgECBAkLOArENRYAAAQIECBAgQIAAAQIECBAgQIBAegEhZ3pTFQkQIECAAAECBAgQIECAAAECBAgQKFBAyFkgtqEIECBAgAABAgQIECBAgAABAgQIEEgvIORMb6oiAQIECBAgQIAAAQIECBAgQIAAAQIFCgg5C8Q2FAECBAgQIECAAAECBAgQIECAAAEC6QWEnOlNVSRAgAABAgQIECBAgAABAgQIECBAoEABIWeB2IYiQIAAAQIECBAgQIAAAQIECBAgQCC9gJAzvamKBAgQIECAAAECBAgQIECAAAECBAgUKCDkLBDbUAQIECBAgAABAgQIECBAgAABAgQIpBcQcqY3VZEAAQIECBAgQIAAAQIECBAgQIAAgQIFhJwFYhuKAAECBAgQIECAAAECBAgQIECAAIH0AkLO9KYqEiBAgAABAgQIECBAgAABAgQIECBQoICQs0BsQxEgQIAAAQIECBAgQIAAAQIECBAgkF5AyJneVEUCBAgQIECAAAECBAgQIECAAAECBAoUEHIWiG0oAgQIECBAgAABAgQIECBAgAABAgTSCwg505uqSIAAAQIECBAgQIAAAQIECBAgQIBAgQJCzgKxDUWAAAECBAgQIECAAAECBAgQIECAQHoBIWd6UxUJECBAgAABAgQIECBAgAABAgQIEChQQMhZILahCBAgQIAAAQIECBAgQIAAAQIECBBILyDkTG+qIgECBAgQIECAAAECBAgQIECAAAECBQoIOQvENhQBAgQIECBAgAABAgQIECBAgAABAukFhJzpTVUkQIAAAQIECBAgQIAAAQIECBAgQKBAASFngdiGIkCAAAECBAgQIECAAAECBAgQIEAgvYCQM72pigQIECBAgAABAgQIECBAgAABAgQIFCgg5CwQ21AECBAgQIAAAQIECBAgQIAAAQIECKQX+P8BAdy8qE4WJYMAAAAASUVORK5CYII=", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig = px.line(data_frame=bio.get_history(), x=\"SYSTEM TIME\", y=[\"A\", \"B\"], \n", " title=\"Changes in concentrations\",\n", " color_discrete_sequence = ['navy', 'darkorange'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\"})\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "ca41b04c-8626-45b1-b83d-79a97dd9a3cd", "metadata": {}, "source": [ "### Notice the *early overshoots* (the time step is too large early in the simulation!)\n", "Variable, adaptive time steps are explored at length in the _\"reactions_single_compartment\"_ experiments" ] }, { "cell_type": "code", "execution_count": null, "id": "1fe1cc26-5763-4feb-b097-3ff995c10c8b", "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 }