{ "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", "\n", "LAST REVISED: June 23, 2024 (using v. 1.0 beta34.1)" ] }, { "cell_type": "code", "execution_count": 1, "id": "a8f89c58-e3b5-4a07-96ec-6f7455db1bf5", "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": "f5117d69", "metadata": {}, "outputs": [], "source": [ "from experiments.get_notebook_info import get_notebook_basename\n", "\n", "from life123 import ChemData as chem\n", "from life123 import BioSim1D\n", "\n", "import plotly.express as px\n", "from life123 import 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_2\"],\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.4 / K = 2.5) | 1st order in all reactants & products\n", "Set of chemicals involved in the above reactions: {'C', 'B', 'A'}\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", "chem_data.plot_reaction_network(\"vue_cytoscape_2\")" ] }, { "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: [A] = 0.2949 ; [B] = 40.29 ; [C] = 29.71\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": "iVBORw0KGgoAAAANSUhEUgAABWUAAAFoCAYAAAA/wpnnAAAgAElEQVR4Xu3dC7RldZ0f+P+9VUUVrwKqwBcKNKI20vR0dCV20tABtZGeNSLLWbFxTZwQcXpBMmStticLbWZM4jQ+ViK9VphEYtSQcWZ89IpBnJWg3bYm0I6abvuBSFRkgYryLN5QBVV1Z/9P1b6cOnXOvXuf+z977//en7PWpYpz9/4/Pr997uNb//PfSyvFI3gQIECAAAECBAgQIECAAAECBAgQIECAQCMCS0LZRpx1QoAAAQIECBAgQIAAAQIECBAgQIAAgZGAUNaFQIAAAQIECBAgQIAAAQIECBAgQIAAgQYFhLINYuuKAAECBAgQIECAAAECBAgQIECAAAECQlnXAAECBAgQIECAAAECBAgQIECAAAECBBoUEMo2iK0rAgQIECBAgAABAgQIECBAgAABAgQICGVdAwQIECBAgAABAgQIECBAgAABAgQIEGhQQCjbILauCBAgQIAAAQIECBAgQIAAAQIECBAgIJR1DRAgQIAAAQIECBAgQIAAAQIECBAgQKBBAaFsg9i6IkCAAAECBAgQIECAAAECBAgQIECAgFDWNUCAAAECBAgQIECAAAECBAgQIECAAIEGBYSyDWLrigABAgQIECBAgAABAgQIECBAgAABAkJZ1wABAgQIECBAgAABAgQIECBAgAABAgQaFBDKNoitKwIECBAgQIAAAQIECBAgQIAAAQIECAhlXQMECBAgQIAAAQIECBAgQIAAAQIECBBoUEAo2yC2rggQIECAAAECBAgQIECAAAECBAgQICCUdQ0QIECAAAECBAgQIECAAAECBAgQIECgQQGhbIPYuiJAgAABAgQIECBAgAABAgQIECBAgIBQ1jVAgAABAgQIECBAgAABAgQIECBAgACBBgWEsg1i64oAAQIECBAgQIAAAQIECBAgQIAAAQJCWdcAAQIECBAgQIAAAQIECBAgQIAAAQIEGhQQyjaIrSsCBAgQIECAAAECBAgQIECAAAECBAgIZV0DBAgQIECAAAECBAgQIECAAAECBAgQaFBAKNsgtq4IECBAgAABAgQIECBAgAABAgQIECAglHUNECBAgAABAgQIECBAgAABAgQIECBAoEEBoWyD2LoiQIAAAQIECBAgQIAAAQIECBAgQICAUNY1QIAAAQIECBAg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AAECBAgQIJCNgFA2m1IZKAECBAgQIECAAAECBAgQIECAAAECfRAQyvahiuZAgAABAgQIECBAgAABAgQIECBAgEA2AkLZbEploAQIECBAgAABAgQIECBAgAABAgQI9EFAKNuHKpoDAQIECBAgQIAAAQIECBAgQIAAAQLZCAhlsymVgRIgQIAAAQIECBAgQIAAAQIECBAg0AcBoWwfqmgOBAgQIECAAAECBAgQIECAAAECBAhkIyCUzaZUBkqAAAECBAgQIECAAAECBAgQIECAQB8EhLJ9qKI5ECBAgAABAgQIECBAgAABAgQIECCQjYBQNptSGSgBAgQIECBAgAABAgQIECBAgAABAn0QEMr2oYrmQIAAAQIECBAgQIAAAQIECBAgQIBANgJC2WxKZaAECBAgQIAAAQIECBAgQIAAAQIECPRBQCjbhyqaAwECBAgQIECAAAECBAgQIECAAAEC2QgIZbMplYESIECAAAECBAgQIECAAAECBAgQINAHAaFsH6poDgQIECBAgAABAgQIECBAgAABAgQIZCMglM2mVAZKgAABAgQIECBAgAABAgQIECBAgEAfBISyfaiiORAgQIAAAQIECBAgQIAAAQIECBAgkI2AUDabUhkoAQIECBAgQIAAAQIECBAgQIAAAQJ9EBDK9qGK5kCAAAECBAgQIECAAAECBAgQIECAQDYCQtlsSmWgBAgQIECAAAECBAgQIECAAAECBAj0QUAo24cqmgMBAgQIECBAgAABAgQIECBAgAABAtkICGWzKZWBEiBAgAABAgQIECBAgAABAgQIECDQBwGhbB+qaA4ECBAgQIAAAQIECBAgQIAAAQIECGQjIJTNplQGSoAAAQIECBAgQIAAAQIECBAgQIBAHwSEsn2oojkQIECAAAECBAgQIECAAAECBAgQIJCNgFA2m1IZKAECBAgQIECAAAECBAgQIECAAAECfRAQyvahiuZAgAABAgQIECBAgAABAgQIECBAgEA2AkLZbEploAQIECBAgAABAgQIECBAgAABAgQI9EFAKNuHKpoDAQIECBAgQIAAAQIECBAgQIAAAQLZCAhlsymVgRIgQIAAAQIECBAgQIAAAQIECBAg0AcBoWwfqmgOBAgQIECAAAECBAgQIECAAAECBAhkIyCUzaZUBkqAAAECBAgQIECAAAECBAgQIECAQB8EhLIJ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UFVAKFtVynEECBAgQIAAgYwEyrf+l0Oetq1BGaSWNwGbNb06bW1kT9kYypY334pjKVfv1lmhOs+eslX7rTOOjC4VQyVAgAABAgQIEGhBQCjbArouCRAgQIAAAQJNCsRtAG768tdHq0/HH9P2kl1vXLPaWm+l7HrbD5TbF8RQNt6Y7PpP3bS6x22dMHQjoex6/dYZx3qOPk+AAAECBAgQIDBsAaHssOtv9gQIECBAgEBPBGLA+v/8+z8crTSdfJRhY3kDrfLzs0LZedpKGcrG8cU9beN+t/FRJwzdSCi7Xr91xtGTy8o0CBAgQIAAAQIEFiQglF0QrGYJECBAgAABAk0KjG8xML4itnz+da8587AbgK0Vyl5yxftHw6/aVupQdtyuThi60VB2rX7rjKPJ2uuLAAECBAgQIEAgPwGhbH41M2ICBAgQIECAwEyB8Zt3lQfN2jN2ve0L6rS1Xihb9UZf01b61glDZ42j3HahNCn32B3fNmESdbJfN/rywiNAgAABAgQIEEglIJRNJakdAgQIECBAgAABAgQIECBAgAABAgQIVBAQylZAcggBAgQIECBAgAABAgQIECBAgAABAgRSCQhlU0lqhwABAgQIECBAgAABAgQIECBAgAABAhUEhLIVkBxCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS2iFAgAABAgQIECBAgAABAgQIECBAgEAFAaFsBSSHECBAgAABAgQIECBAgAABAgQIECBAIJWAUDaVpHYIECBAgAABAgQIECBAgAABAgQIECBQQUAoWwHJIQQIECBAgAABAgQIECBAgAABAgQIEEglIJRNJakdAgQIECBAgAABAgQIECBAgAABAgQIVBAQylZAcggBAgQIECBAgAABAgQIECBAgAABAgRSCQhlU0lqhwABAgQIECBAgAABAgQIECBAgAABAhUEhLIVkBxCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS2iFAgAABAgQIECBAgAABAgQIECBAgEAFAaFsBSSHECBAgAABAgQIECBAgAABAgQIECBAIJWAUDaVpHYIECBAgAABAgQIECBAgAABAgQIECBQQUAoWwHJIQQIECBAgAABAgQIECBAgAABAgQIEEglIJRNJakdAgQIECBAgAABAgQIECBAgAABAgQIVBAQylZAcggBAgQIECBAgAABAgQIECBAgAABAgRSCQhlU0lqhwABAgQIECBAgAABAgQIECBAgAABAhUEhLIVkBxCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS2iFAgAABAgQIECBAgAABAgQIECBAgEAFAaFsBSSHECBAgAABAgQIECBAgAABAgQIECBAIJWAUDaVpHYIECBAgAABAgQIECBAgAABAgQIECBQQUAoWwHJIQQIECBAgAABAgQIECBAgAABAgQIEEglIJRNJakdAgQIECBAgAABAgQIECBAgAABAgQIVBAQylZAcggBAgQIECBAgAABAgQIECBAgAABAgRSCQhlU0lqhwABAgQIECBAgAABAgQIECBAgAABAhUEhLIVkBxCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS2iFAgAABAgQIECBAgAABAgQIECBAgEAFAaFsBSSHECBAgAABAgQIECBAgAABAgQIECBAIJWAUDaVpHYIECBAgAABAgQIECBAgAABAgQIECBQQUAoWwHJIQQIECBAgAABAgQIECBAgAABAgQIEEglIJRNJakdAgQIECBAgAABAgQIECBAgAABAgQIVBAQylZAcggBAgQIECBAgAABAgQIECBAgAABAgRSCQhlU0lqhwABAgQIECBAgAABAgQIECBAgAABAhUEhLIVkBxCgAABAgQIECBAgAABAgQIECBAgACBVAJC2VSS2iFAgAABAgQIECBAgAABAgQIECBAgEAFAaFsBSSHECBAgAABAgQIECBAgAABAgQIECBAIJXA/w92vZYvUw1W6AAAAABJRU5ErkJggg==", "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": "57b81064", "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 }