{ "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)" ] }, { "cell_type": "markdown", "id": "cc63c0c5-c23d-4b02-aaee-276cc382f379", "metadata": {}, "source": [ "### TAGS : \"reactions 1D\", \"basic\"" ] }, { "cell_type": "code", "execution_count": 1, "id": "8600a73a-456f-4611-95e0-dc4e927f7bc6", "metadata": {}, "outputs": [], "source": [ "LAST_REVISED = \"May 4, 2025\"\n", "LIFE123_VERSION = \"1.0.0rc3\" # Library version this experiment is based on" ] }, { "cell_type": "code", "execution_count": 2, "id": "1fe1cc26-5763-4feb-b097-3ff995c10c8b", "metadata": {}, "outputs": [], "source": [ "#import set_path # Using MyBinder? Uncomment this before running the next cell!" ] }, { "cell_type": "code", "execution_count": 3, "id": "592e626f", "metadata": {}, "outputs": [], "source": [ "#import sys, os\n", "#os.getcwd()\n", "#sys.path.append(\"C:/some_path/my_env_or_install\") # CHANGE to the folder containing your venv or libraries installation!\n", "# NOTE: If any of the imports below can't find a module, uncomment the lines above, or try: import set_path\n", "\n", "from experiments.get_notebook_info import get_notebook_basename\n", "\n", "from life123 import ChemData, BioSim1D, check_version\n", "\n", "from life123 import GraphicLog" ] }, { "cell_type": "code", "execution_count": 4, "id": "6f10f260-f2d9-48eb-b702-0be5247b37d7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OK\n" ] } ], "source": [ "check_version(LIFE123_VERSION)" ] }, { "cell_type": "code", "execution_count": null, "id": "89d4e3d6-09d9-427a-bd49-5cb9ace9d017", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 5, "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_2\"],\n", " extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")" ] }, { "cell_type": "code", "execution_count": 6, "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 chemical species:\n" ] }, { "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", "
SpeciesDiff rateBin 0
0ANone10.0
1BNone50.0
\n", "
" ], "text/plain": [ " Species Diff rate Bin 0\n", "0 A None 10.0\n", "1 B None 50.0" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Initialize the system\n", "chem_data = ChemData(names=[\"A\", \"B\"]) # NOTE: Diffusion not applicable (just 1 bin)\n", "\n", "bio = BioSim1D(n_bins=1, chem_data=chem_data)\n", "\n", "bio.set_uniform_concentration(chem_index=0, conc=10.)\n", "bio.set_uniform_concentration(chem_index=1, conc=50.)\n", "\n", "bio.describe_state()" ] }, { "cell_type": "code", "execution_count": 7, "id": "331bd441-6a2d-4ac9-84b1-8d84301ae6ba", "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.4 / K = 2.5) | 1st order in all reactants & products\n", "Set of chemicals involved in the above reactions: {'B', 'A'}\n" ] } ], "source": [ "# Specify the reaction\n", "reactions = bio.get_reactions()\n", "\n", "# Reaction 2A <-> 3B , with 1st-order kinetics in both directions\n", "reactions.add_reaction(reactants=[(2,\"A\",1)], products=[(3,\"B\",1)], forward_rate=5., reverse_rate=2.)\n", "reactions.describe_reactions()" ] }, { "cell_type": "code", "execution_count": 8, "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 of the reaction network to the HTML log file\n", "reactions.plot_reaction_network(\"vue_cytoscape_2\")" ] }, { "cell_type": "code", "execution_count": null, "id": "f7e267d2-2205-4e51-9da5-0ed88eed1aaf", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": 9, "id": "50961a8b-29af-4001-8d46-2a57ed7ccb0d", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "History enabled for bins None and chemicals None (None means 'all')\n" ] } ], "source": [ "# Let's enable history - by default for all chemicals and all bins\n", "bio.enable_history(take_snapshot=True, caption=\"Initial state\")" ] }, { "cell_type": "code", "execution_count": 10, "id": "9140ad09-c601-4962-9736-f7b542b8b838", "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
00.010.050.0Initial state
\n", "
" ], "text/plain": [ " SYSTEM TIME A B caption\n", "0 0.0 10.0 50.0 Initial state" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.get_bin_history(bin_address=0)" ] }, { "cell_type": "code", "execution_count": null, "id": "0506f3fa-67d8-4aaf-986b-103f955336bb", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "ce4ebe89-8187-4c6f-a526-5609937ac65e", "metadata": { "tags": [] }, "source": [ "### First step" ] }, { "cell_type": "code", "execution_count": 11, "id": "430626a5-2e29-4738-944f-6233edd0e7c7", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "System Time is now: 0.05\n", "SYSTEM STATE at Time t = 0.05:\n", "1 bins and 2 chemical species:\n" ] }, { "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", "
SpeciesDiff rateBin 0
0ANone15.0
1BNone42.5
\n", "
" ], "text/plain": [ " Species Diff rate Bin 0\n", "0 A None 15.0\n", "1 B None 42.5" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "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": [ "We're taking a smaller first step than in experiment \"reaction_2\", to avoid over-shooting the equilibrium value with too large a step!" ] }, { "cell_type": "code", "execution_count": null, "id": "1c4e5a04-ba42-46ac-8dbe-796a9ef2ed0f", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "b12d38ef-c936-47b0-a1de-232fc9d521b7", "metadata": {}, "source": [ "### Numerous more steps" ] }, { "cell_type": "code", "execution_count": 12, "id": "f714a848-01a0-4343-bfbb-89d946a7e343", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "System Time is now: 10.05\n", "SYSTEM STATE at Time t = 10.05:\n", "1 bins and 2 chemical species:\n" ] }, { "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", "
SpeciesDiff rateBin 0
0ANone16.250
1BNone40.625
\n", "
" ], "text/plain": [ " Species Diff rate Bin 0\n", "0 A None 16.250\n", "1 B None 40.625" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Numerous more steps\n", "bio.react(time_step=0.1, n_steps=100)\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": 13, "id": "796bef2e-8a11-4aff-8ce5-0b9bb5f72680", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "2 A <-> 3 B\n", "Current concentrations: [A] = 16.25 ; [B] = 40.63\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": 13, "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": 14, "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": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "bio.get_bin_history(bin_address=0)" ] }, { "cell_type": "markdown", "id": "f2e3dc99-8b9d-4dcd-a2e3-ad099efbcbf4", "metadata": { "tags": [] }, "source": [ "# Plots of changes of concentration with time" ] }, { "cell_type": "code", "execution_count": 15, "id": "8b70983e-0a60-432a-aa70-20fc596cd9ad", "metadata": { "tags": [] }, "outputs": [ { "data": { "text/html": [ " \n", " " ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.plotly.v1+json": { "config": { "plotlyServerURL": "https://plot.ly" }, "data": [ { "hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
Concentration=%{y}", "legendgroup": "A", "line": { "color": "darkturquoise", "dash": "solid", "shape": "linear" }, "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": "green", "dash": "solid", "shape": "linear" }, "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": "Reaction 2A <-> 3B . Concentrations at bin 0" }, "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": "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", "text/html": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "bio.plot_history_single_bin(bin_address=0, \n", " title=\"Reaction 2A <-> 3B . Concentrations at bin 0\")" ] }, { "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": "243badde", "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.9.13" } }, "nbformat": 4, "nbformat_minor": 5 }