{ "cells": [ { "cell_type": "markdown", "id": "c3b90917-d8b3-4644-a485-b22d440272b9", "metadata": {}, "source": [ "## One-bin Association/Dissociation reaction `A + B <-> C`\n", "### with 1st-order kinetics for each species, taken to equilibrium\n", "\n", "Diffusion not applicable (just 1 bin)\n", "\n", "See also the experiment _\"reactions_single_compartment/react_3\"_ \n", "\n", "LAST REVISED: June 4, 2023" ] }, { "cell_type": "code", "execution_count": 1, "id": "701e83e3-c855-483e-b391-db38c080825d", "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": "bce82b44-dace-4396-af34-6ba5b941b64a", "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.visualization.graphic_log import GraphicLog" ] }, { "cell_type": "code", "execution_count": 3, "id": "ada82175-1d15-4213-b834-5a5d8e2dd31e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-> Output will be LOGGED into the file 'reaction_4.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": "d8f2d83d-97bc-4f57-8f71-c0923f0334ed", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 1 (at temp. 25 C)\n", "0: A + B <-> C (kF = 5 / kR = 2 / Delta_G = -2,271.45 / K = 2.5) | 1st order in all reactants & products\n" ] } ], "source": [ "# Specify the chemicals\n", "chem_data = chem(names=[\"A\", \"B\", \"C\"]) # NOTE: Diffusion not applicable (using just 1 bin)\n", "\n", "\n", "# Reaction A + B <-> C , with 1st-order kinetics for each species\n", "chem_data.add_reaction(reactants=[\"A\" , \"B\"], products=[\"C\"],\n", " forward_rate=5., reverse_rate=2.)\n", "\n", "chem_data.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 5, "id": "b351573c-275c-434f-8301-4ed54197e0cc", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "1 bins and 3 species:\n", " Species 0 (A). Diff rate: None. Conc: [10.]\n", " Species 1 (B). Diff rate: None. Conc: [50.]\n", " Species 2 (C). Diff rate: None. Conc: [20.]\n" ] } ], "source": [ "# Initialize the system\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", "bio.set_uniform_concentration(species_index=2, conc=20.)\n", "\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 6, "id": "fdb1f449-8415-4fdf-b4a3-24220866c96c", "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", "
SYSTEM TIMEABCcaption
0010.050.020.0Initial state
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C caption\n", "0 0 10.0 50.0 20.0 Initial state" ] }, "execution_count": 6, "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": 7, "id": "25f70c0f-621e-413f-bc93-336d38d462d7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "[GRAPHIC ELEMENT SENT TO LOG FILE `reaction_4.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": "356e4db3-02a6-40bd-a951-841bfc6c5522", "metadata": { "tags": [] }, "source": [ "### First step" ] }, { "cell_type": "code", "execution_count": 8, "id": "b8c0d439-13f7-459c-88e2-0ae357b46c18", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.002:\n", "1 bins and 3 species:\n", " Species 0 (A). Diff rate: None. Conc: [5.08]\n", " Species 1 (B). Diff rate: None. Conc: [45.08]\n", " Species 2 (C). Diff rate: None. Conc: [24.92]\n" ] } ], "source": [ "# First step\n", "bio.react(time_step=0.002, n_steps=1)\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "4c074e7c-0308-4085-a2f9-2da055ffcef8", "metadata": {}, "source": [ "_Early in the reaction :_\n", "[A] = 5.08 , [B] = 45.08 , [C] = [24.92]" ] }, { "cell_type": "code", "execution_count": 9, "id": "386d8052-2d92-43b0-b817-ab4a1cce3ba0", "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", "
SYSTEM TIMEABCcaption
00.00010.0050.0020.00Initial state
10.0025.0845.0824.92
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C caption\n", "0 0.000 10.00 50.00 20.00 Initial state\n", "1 0.002 5.08 45.08 24.92 " ] }, "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": "88ec4bcc-48dc-45eb-84fc-8e6e0b259612", "metadata": {}, "source": [ "### Numerous more steps" ] }, { "cell_type": "code", "execution_count": 10, "id": "8efdf9ef-bdca-48ff-b139-6e2d9952c1d8", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0.06:\n", "1 bins and 3 species:\n", " Species 0 (A). Diff rate: None. Conc: [0.29487831]\n", " Species 1 (B). Diff rate: None. Conc: [40.29487831]\n", " Species 2 (C). Diff rate: None. Conc: [29.70512169]\n" ] } ], "source": [ "# Numerous more steps\n", "bio.react(time_step=0.002, n_steps=29, snapshots={\"sample_bin\": 0})\n", "\n", "bio.describe_state()" ] }, { "cell_type": "markdown", "id": "6b0be45c-ff0e-43d8-847a-b6e8d0e6e0ec", "metadata": { "tags": [] }, "source": [ "### Equilibrium" ] }, { "cell_type": "markdown", "id": "7f687d0d-75ab-4e29-8070-5b6f1fc80b4b", "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] = 0.29487831 , [B] = 40.29487831 , [C] = 29.70512169" ] }, { "cell_type": "code", "execution_count": 11, "id": "46a3ea5d-6516-4582-9958-6a80403e8f19", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "A + B <-> C\n", "Final concentrations: [C] = 29.71 ; [A] = 0.2949 ; [B] = 40.29\n", "1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2.49999\n", " Formula used: [C] / ([A][B])\n", "2. Ratio of forward/reverse reaction rates: 2.5\n", "Discrepancy between the two values: 0.0003107 %\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": "6975a1e8-d708-401f-ab7f-78c183f765bf", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
SYSTEM TIMEABCcaption
00.00010.00000050.00000020.000000Initial state
10.0025.08000045.08000024.920000
20.0042.88961642.88961627.110384
30.0061.75871241.75871228.241288
40.0081.13726241.13726228.862738
50.0100.78487440.78487429.215126
60.0120.58162540.58162529.418375
70.0140.46326640.46326629.536734
80.0160.39396040.39396029.606040
90.0180.35324840.35324829.646752
100.0200.32928840.32928829.670712
110.0220.31517140.31517129.684829
120.0240.30684940.30684929.693151
130.0260.30194040.30194029.698060
140.0280.29904540.29904529.700955
150.0300.29733640.29733629.702664
160.0320.29632840.29632829.703672
170.0340.29573440.29573429.704266
180.0360.29538340.29538329.704617
190.0380.29517640.29517629.704824
200.0400.29505340.29505329.704947
210.0420.29498140.29498129.705019
220.0440.29493940.29493929.705061
230.0460.29491440.29491429.705086
240.0480.29489940.29489929.705101
250.0500.29489040.29489029.705110
260.0520.29488540.29488529.705115
270.0540.29488240.29488229.705118
280.0560.29488040.29488029.705120
290.0580.29487940.29487929.705121
300.0600.29487840.29487829.705122
\n", "
" ], "text/plain": [ " SYSTEM TIME A B C caption\n", "0 0.000 10.000000 50.000000 20.000000 Initial state\n", "1 0.002 5.080000 45.080000 24.920000 \n", "2 0.004 2.889616 42.889616 27.110384 \n", "3 0.006 1.758712 41.758712 28.241288 \n", "4 0.008 1.137262 41.137262 28.862738 \n", "5 0.010 0.784874 40.784874 29.215126 \n", "6 0.012 0.581625 40.581625 29.418375 \n", "7 0.014 0.463266 40.463266 29.536734 \n", "8 0.016 0.393960 40.393960 29.606040 \n", "9 0.018 0.353248 40.353248 29.646752 \n", "10 0.020 0.329288 40.329288 29.670712 \n", "11 0.022 0.315171 40.315171 29.684829 \n", "12 0.024 0.306849 40.306849 29.693151 \n", "13 0.026 0.301940 40.301940 29.698060 \n", "14 0.028 0.299045 40.299045 29.700955 \n", "15 0.030 0.297336 40.297336 29.702664 \n", "16 0.032 0.296328 40.296328 29.703672 \n", "17 0.034 0.295734 40.295734 29.704266 \n", "18 0.036 0.295383 40.295383 29.704617 \n", "19 0.038 0.295176 40.295176 29.704824 \n", "20 0.040 0.295053 40.295053 29.704947 \n", "21 0.042 0.294981 40.294981 29.705019 \n", "22 0.044 0.294939 40.294939 29.705061 \n", "23 0.046 0.294914 40.294914 29.705086 \n", "24 0.048 0.294899 40.294899 29.705101 \n", "25 0.050 0.294890 40.294890 29.705110 \n", "26 0.052 0.294885 40.294885 29.705115 \n", "27 0.054 0.294882 40.294882 29.705118 \n", "28 0.056 0.294880 40.294880 29.705120 \n", "29 0.058 0.294879 40.294879 29.705121 \n", "30 0.060 0.294878 40.294878 29.705122 " ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Save the state of the concentrations of all species at bin 0\n", "bio.get_history()" ] }, { "cell_type": "markdown", "id": "8a4576cc-d927-4776-a691-2001bba5d1b7", "metadata": {}, "source": [ "## Note: \"A\" (now largely depleted) is largely the limiting reagent" ] }, { "cell_type": "markdown", "id": "d82cb7fe-0bd2-4b3e-bbec-6f5b70d0e5ae", "metadata": { "tags": [] }, "source": [ "## Plots of changes of concentration with time" ] }, { "cell_type": "code", "execution_count": 13, "id": "14d83e31-e46e-46aa-ac3a-5e45f3475bf0", "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": "red", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "A", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.002, 0.004, 0.006, 0.008, 0.01, 0.012, 0.014, 0.016, 0.018000000000000002, 0.020000000000000004, 0.022000000000000006, 0.024000000000000007, 0.02600000000000001, 0.02800000000000001, 0.030000000000000013, 0.032000000000000015, 0.034000000000000016, 0.03600000000000002, 0.03800000000000002, 0.04000000000000002, 0.04200000000000002, 0.044000000000000025, 0.04600000000000003, 0.04800000000000003, 0.05000000000000003, 0.05200000000000003, 0.054000000000000034, 0.056000000000000036, 0.05800000000000004, 0.06000000000000004 ], "xaxis": "x", "y": [ 10, 5.08, 2.889616, 1.7587123297254401, 1.1372618579290796, 0.7848744219907284, 0.5816248769235214, 0.4632655516718558, 0.39396011908276785, 0.3532481852190526, 0.3292880755869499, 0.31517138668258465, 0.3068488164329863, 0.3019403326325966, 0.29904475860432483, 0.29733639845169046, 0.2963284041387654, 0.29573362363570993, 0.2953826559253961, 0.29517555379732074, 0.2950533439876077, 0.29498122825863154, 0.29493867279189473, 0.29491356077688685, 0.29489874213972356, 0.2948899976341194, 0.2948848374828887, 0.2948817924660286, 0.2948799955944733, 0.29487893525628817, 0.29487830954816896 ], "yaxis": "y" }, { "hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "B", "line": { "color": "violet", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "B", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.002, 0.004, 0.006, 0.008, 0.01, 0.012, 0.014, 0.016, 0.018000000000000002, 0.020000000000000004, 0.022000000000000006, 0.024000000000000007, 0.02600000000000001, 0.02800000000000001, 0.030000000000000013, 0.032000000000000015, 0.034000000000000016, 0.03600000000000002, 0.03800000000000002, 0.04000000000000002, 0.04200000000000002, 0.044000000000000025, 0.04600000000000003, 0.04800000000000003, 0.05000000000000003, 0.05200000000000003, 0.054000000000000034, 0.056000000000000036, 0.05800000000000004, 0.06000000000000004 ], "xaxis": "x", "y": [ 50, 45.08, 42.889616, 41.758712329725434, 41.137261857929076, 40.78487442199072, 40.58162487692351, 40.463265551671846, 40.393960119082756, 40.35324818521904, 40.32928807558694, 40.31517138668257, 40.306848816432975, 40.30194033263258, 40.29904475860431, 40.29733639845168, 40.29632840413875, 40.29573362363569, 40.29538265592538, 40.29517555379731, 40.2950533439876, 40.29498122825862, 40.294938672791886, 40.29491356077688, 40.294898742139715, 40.29488999763411, 40.294884837482876, 40.294881792466015, 40.29487999559446, 40.29487893525627, 40.29487830954815 ], "yaxis": "y" }, { "hovertemplate": "Chemical=C
SYSTEM TIME=%{x}
concentration=%{y}", "legendgroup": "C", "line": { "color": "green", "dash": "solid" }, "marker": { "symbol": "circle" }, "mode": "lines", "name": "C", "orientation": "v", "showlegend": true, "type": "scatter", "x": [ 0, 0.002, 0.004, 0.006, 0.008, 0.01, 0.012, 0.014, 0.016, 0.018000000000000002, 0.020000000000000004, 0.022000000000000006, 0.024000000000000007, 0.02600000000000001, 0.02800000000000001, 0.030000000000000013, 0.032000000000000015, 0.034000000000000016, 0.03600000000000002, 0.03800000000000002, 0.04000000000000002, 0.04200000000000002, 0.044000000000000025, 0.04600000000000003, 0.04800000000000003, 0.05000000000000003, 0.05200000000000003, 0.054000000000000034, 0.056000000000000036, 0.05800000000000004, 0.06000000000000004 ], "xaxis": "x", "y": [ 20, 24.92, 27.110384000000003, 28.241287670274563, 28.862738142070924, 29.215125578009275, 29.418375123076483, 29.53673444832815, 29.606039880917237, 29.646751814780952, 29.670711924413055, 29.68482861331742, 29.693151183567018, 29.698059667367406, 29.70095524139568, 29.702663601548313, 29.703671595861238, 29.70426637636429, 29.704617344074606, 29.704824446202682, 29.704946656012396, 29.705018771741372, 29.70506132720811, 29.705086439223116, 29.705101257860278, 29.70511000236588, 29.70511516251711, 29.70511820753397, 29.705120004405526, 29.70512106474371, 29.70512169045183 ], "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": "Reaction A + B <-> C . Changes in concentrations with time" }, "xaxis": { "anchor": "y", "autorange": true, "domain": [ 0, 1 ], "range": [ 0, 0.06000000000000004 ], "title": { "text": "SYSTEM TIME" }, "type": "linear" }, "yaxis": { "anchor": "x", "autorange": true, "domain": [ 0, 1 ], "range": [ -2.466517339921377, 52.76139564946955 ], "title": { "text": "concentration" }, "type": "linear" } } }, "image/png": "iVBORw0KGgoAAAANSUhEUgAABTkAAAFoCAYAAACc6v8hAAAAAXNSR0IArs4c6QAAIABJREFUeF7s3Q20FfV97//v3ueRhyOCCEiiGElSQEFSa8Jat/VvY9omJC5beqV4k0aDpYi3/64YFy4wy2VtVgILrtF7uyohRDRpbCj20gcrNm1sjbf9h8ZloxAfUq8maIo8CfJ8OOfss//rN3vPZvac/TAz+zczv9/M+2QZYJ+Z3/x+r++cw/d8mD1TKJfLZeEDAQQQQAABBBBAAAEEEEAAAQQQQAABBBCwVKBAyGlp5Zg2AggggAACCCCAAAIIIIAAAggggAACCDgChJycCAgggAACCCCAAAIIIIAAAggggAACCCBgtQAhp9XlY/IIIIAAAggggAACCCCAAAIIIIAAAgggQMjJOYAAAggggAACCCCAAAIIIIAAAggggAACVgsQclpdPiaPAAIIIIAAAggggAACCCCAAAIIIIAAAoScnAMIIIAAAggggAACCCCAAAIIIIAAAgggYLUAIafV5WPyCCCAAAIIIIAAAggggAACCCCAAAIIIEDIyTmAAAIIIIAAAggggAACCCCAAAIIIIAAAlYLEHJaXT4mjwACCCCAAAIIIIAAAggggAACCCCAAAKEnJwDCCCAAAIIIIAAAggggAACCCCAAAIIIGC1ACGn1eVj8ggggAACCCCAAAIIIIAAAggggAACCCBAyMk5gAACCCCAAAIIIIAAAggggAACCCCAAAJWCxByWl0+Jo8AAggggAACCCCAAAIIIIAAAggggAAChJycAwgggAACCCCAAAIIIIAAAggggAACCCBgtQAhp9XlY/IIIIAAAggggAACCCCAAAIIIIAAAgggQMjJOYAAAggggAACCCCAAAIIIIAAAggggAACVgsQclpdPiaPAAIIIIAAAggggAACCCCAAAIIIIAAAoScnAMIIIAAAggggAACCCCAAAIIIIAAAgggYLUAIafV5WPyCCCAAAIIIIAAAggggAACCCCAAAIIIEDIyTmAAAIIIIAAAggggAACCCCAAAIIIIAAAlYLEHJaXT4mjwACCCCAAAIIIIAAAggggAACCCCAAAKEnJwDCCCAAAIIIIAAAggggAACCCCAAAIIIGC1ACGn1eVj8ggggAACCCCAAAIIIIAAAggggAACCCBAyMk5gAACCCCAAAIIIIAA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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\"], \n", " title=\"Reaction A + B <-> C . Changes in concentrations with time\",\n", " color_discrete_sequence = ['red', 'violet', 'green'],\n", " labels={\"value\":\"concentration\", \"variable\":\"Chemical\"})\n", "fig.show()" ] }, { "cell_type": "markdown", "id": "ea1bbd14-90d4-480d-946c-f0ce30d61df1", "metadata": {}, "source": [ "## For more in-depth analysis of this reaction, including variable time steps, see the experiment _\"reactions_single_compartment/react_3\"_ " ] }, { "cell_type": "code", "execution_count": null, "id": "a8f89c58-e3b5-4a07-96ec-6f7455db1bf5", "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 }