{
"cells": [
{
"cell_type": "markdown",
"id": "83d68c5f-79b2-4947-920f-9fd1fbdd392f",
"metadata": {},
"source": [
"## One-bin `2A + 5B <-> 4C + 3D`, with 1st-order kinetics for each species, taken to equilibrium\n",
"\n",
"Diffusion not applicable (just 1 bin)\n",
"\n",
"LAST REVISED: June 4, 2023"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "9e3ee9ae-4017-43c9-83fd-d32801a05b9f",
"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": "82fd4f08-1a4c-48d4-aac3-711aa72df099",
"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": "6635becc-7040-420b-b631-e89a23e80909",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"-> Output will be LOGGED into the file 'reaction_6.log.htm'\n"
]
}
],
"source": [
"# Initialize the HTML logging\n",
"log_file = get_notebook_basename() + \".log.htm\" # Use the notebook base filename for the log file\n",
"\n",
"# Set up the use of some specified graphic (Vue) components\n",
"GraphicLog.config(filename=log_file,\n",
" components=[\"vue_cytoscape_1\"],\n",
" extra_js=\"https://cdnjs.cloudflare.com/ajax/libs/cytoscape/3.21.2/cytoscape.umd.js\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "8acfd3e5-effa-4d10-b400-47777be200fc",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0:\n",
"1 bins and 4 species:\n",
" Species 0 (A). Diff rate: None. Conc: [4.]\n",
" Species 1 (B). Diff rate: None. Conc: [7.]\n",
" Species 2 (C). Diff rate: None. Conc: [5.]\n",
" Species 3 (D). Diff rate: None. Conc: [2.]\n"
]
}
],
"source": [
"# Initialize the system\n",
"chem_data = chem(names=[\"A\", \"B\", \"C\", \"D\"]) # NOTE: Diffusion not applicable (just 1 bin)\n",
"\n",
"# Specify the reaction\n",
"\n",
"# Reaction 2A + 5B <-> 4C + 3D , with 1st-order kinetics for each species\n",
"chem_data.add_reaction(reactants=[(2,\"A\") , (5,\"B\")], products=[(4,\"C\") , (3,\"D\")],\n",
" forward_rate=5., reverse_rate=2.)\n",
"\n",
"bio = BioSim1D(n_bins=1, chem_data=chem_data)\n",
"\n",
"bio.set_all_uniform_concentrations( [4., 7., 5., 2.] )\n",
"\n",
"bio.describe_state()"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "c9eaf7cf-04b7-49f7-ad99-e4b273a39574",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" D | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0 | \n",
" 4.0 | \n",
" 7.0 | \n",
" 5.0 | \n",
" 2.0 | \n",
" Initial state | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C D caption\n",
"0 0 4.0 7.0 5.0 2.0 Initial state"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Save the state of the concentrations of all species at bin 0\n",
"bio.add_snapshot(bio.bin_snapshot(bin_address = 0), caption=\"Initial state\")\n",
"bio.get_history()"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "5429cc81-fe31-4a1e-87c3-7c42dbd9e06e",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Number of reactions: 1 (at temp. 25 C)\n",
"0: 2 A + 5 B <-> 4 C + 3 D (kF = 5 / kR = 2 / Delta_G = -2,271.45 / K = 2.5) | 1st order in all reactants & products\n"
]
}
],
"source": [
"chem_data.describe_reactions()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "e95f3814-f76b-476a-963d-ae440e87b2e8",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Reaction 2 A + 5 B 4 C + 3 D\n",
"[GRAPHIC ELEMENT SENT TO LOG FILE `reaction_6.log.htm`]\n"
]
}
],
"source": [
"# Send a header and a plot to the HTML log file\n",
"log.write(\"Reaction 2 A + 5 B <-> 4 C + 3 D\",\n",
" style=log.h2)\n",
"graph_data = chem_data.prepare_graph_network()\n",
"GraphicLog.export_plot(graph_data, \"vue_cytoscape_1\")"
]
},
{
"cell_type": "markdown",
"id": "a1bdfcec-2945-4ace-97c0-739e9716edb2",
"metadata": {
"tags": []
},
"source": [
"### First step"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "177f241c-6ec9-4a3a-863e-685e031b4feb",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0.001:\n",
"1 bins and 4 species:\n",
" Species 0 (A). Diff rate: None. Conc: [3.76]\n",
" Species 1 (B). Diff rate: None. Conc: [6.4]\n",
" Species 2 (C). Diff rate: None. Conc: [5.48]\n",
" Species 3 (D). Diff rate: None. Conc: [2.36]\n"
]
}
],
"source": [
"# First step\n",
"bio.react(time_step=0.001, n_steps=1)\n",
"bio.describe_state()"
]
},
{
"cell_type": "markdown",
"id": "bb01e107-69e1-4ffc-939f-ead43bc358a1",
"metadata": {},
"source": [
"_Early in the reaction :_\n",
"[A] = 3.76 , [B] = 6.4 , [C] = 5.48 , [D] = 2.36"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "ffc297af-487e-4020-a406-959f0a6fab98",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" D | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000 | \n",
" 4.00 | \n",
" 7.0 | \n",
" 5.00 | \n",
" 2.00 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.001 | \n",
" 3.76 | \n",
" 6.4 | \n",
" 5.48 | \n",
" 2.36 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C D caption\n",
"0 0.000 4.00 7.0 5.00 2.00 Initial state\n",
"1 0.001 3.76 6.4 5.48 2.36 "
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Save the state of the concentrations of all species at bin 0\n",
"bio.add_snapshot(bio.bin_snapshot(bin_address = 0))\n",
"bio.get_history()"
]
},
{
"cell_type": "markdown",
"id": "265fcc89-7cfd-44c0-ac69-36846c3f93de",
"metadata": {},
"source": [
"### Numerous more steps"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "d547bdba-3819-40bb-b965-28d06516619c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SYSTEM STATE at Time t = 0.041:\n",
"1 bins and 4 species:\n",
" Species 0 (A). Diff rate: None. Conc: [2.80284552]\n",
" Species 1 (B). Diff rate: None. Conc: [4.00711381]\n",
" Species 2 (C). Diff rate: None. Conc: [7.39430896]\n",
" Species 3 (D). Diff rate: None. Conc: [3.79573172]\n"
]
}
],
"source": [
"# Numerous more steps\n",
"bio.react(time_step=0.001, n_steps=40, snapshots={\"sample_bin\": 0})\n",
"\n",
"bio.describe_state()"
]
},
{
"cell_type": "markdown",
"id": "e9db30bd-ed51-491b-b11f-651094524269",
"metadata": {
"tags": []
},
"source": [
"### Equilibrium"
]
},
{
"cell_type": "markdown",
"id": "a7b6400e-696a-4b2f-98c6-a8dea6515160",
"metadata": {},
"source": [
"Consistent with the 5/2 ratio of forward/reverse rates (and the 1st order reactions),\n",
"the systems settles in the following equilibrium: \n",
"[A] = 2.80284552 , [B] = 4.00711381 , [C] = 7.39430896 , [D] = 3.79573172"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "f888886f-a56d-4f6b-9c28-5a58797b5924",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"2 A + 5 B <-> 4 C + 3 D\n",
"Final concentrations: [C] = 7.394 ; [D] = 3.796 ; [A] = 2.803 ; [B] = 4.007\n",
"1. Ratio of reactant/product concentrations, adjusted for reaction orders: 2.49898\n",
" Formula used: ([C][D]) / ([A][B])\n",
"2. Ratio of forward/reverse reaction rates: 2.5\n",
"Discrepancy between the two values: 0.04092 %\n",
"Reaction IS in equilibrium (within 1% tolerance)\n",
"\n"
]
},
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Verify that the reaction has reached equilibrium\n",
"bio.reaction_dynamics.is_in_equilibrium(rxn_index=0, conc=bio.bin_snapshot(bin_address = 0))"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "747a27b9-06c9-4097-90ab-827266ae5c6f",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" SYSTEM TIME | \n",
" A | \n",
" B | \n",
" C | \n",
" D | \n",
" caption | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" 0.000 | \n",
" 4.000000 | \n",
" 7.000000 | \n",
" 5.000000 | \n",
" 2.000000 | \n",
" Initial state | \n",
"
\n",
" \n",
" | 1 | \n",
" 0.001 | \n",
" 3.760000 | \n",
" 6.400000 | \n",
" 5.480000 | \n",
" 2.360000 | \n",
" | \n",
"
\n",
" \n",
" | 2 | \n",
" 0.002 | \n",
" 3.571091 | \n",
" 5.927728 | \n",
" 5.857818 | \n",
" 2.643363 | \n",
" | \n",
"
\n",
" \n",
" | 3 | \n",
" 0.003 | \n",
" 3.421344 | \n",
" 5.553360 | \n",
" 6.157312 | \n",
" 2.867984 | \n",
" | \n",
"
\n",
" \n",
" | 4 | \n",
" 0.004 | \n",
" 3.301981 | \n",
" 5.254952 | \n",
" 6.396039 | \n",
" 3.047029 | \n",
" | \n",
"
\n",
" \n",
" | 5 | \n",
" 0.005 | \n",
" 3.206419 | \n",
" 5.016047 | \n",
" 6.587162 | \n",
" 3.190372 | \n",
" | \n",
"
\n",
" \n",
" | 6 | \n",
" 0.006 | \n",
" 3.129645 | \n",
" 4.824113 | \n",
" 6.740709 | \n",
" 3.305532 | \n",
" | \n",
"
\n",
" \n",
" | 7 | \n",
" 0.007 | \n",
" 3.067794 | \n",
" 4.669486 | \n",
" 6.864411 | \n",
" 3.398309 | \n",
" | \n",
"
\n",
" \n",
" | 8 | \n",
" 0.008 | \n",
" 3.017854 | \n",
" 4.544634 | \n",
" 6.964293 | \n",
" 3.473220 | \n",
" | \n",
"
\n",
" \n",
" | 9 | \n",
" 0.009 | \n",
" 2.977457 | \n",
" 4.443643 | \n",
" 7.045085 | \n",
" 3.533814 | \n",
" | \n",
"
\n",
" \n",
" | 10 | \n",
" 0.010 | \n",
" 2.944734 | \n",
" 4.361834 | \n",
" 7.110532 | \n",
" 3.582899 | \n",
" | \n",
"
\n",
" \n",
" | 11 | \n",
" 0.011 | \n",
" 2.918195 | \n",
" 4.295487 | \n",
" 7.163611 | \n",
" 3.622708 | \n",
" | \n",
"
\n",
" \n",
" | 12 | \n",
" 0.012 | \n",
" 2.896651 | \n",
" 4.241627 | \n",
" 7.206699 | \n",
" 3.655024 | \n",
" | \n",
"
\n",
" \n",
" | 13 | \n",
" 0.013 | \n",
" 2.879148 | \n",
" 4.197870 | \n",
" 7.241704 | \n",
" 3.681278 | \n",
" | \n",
"
\n",
" \n",
" | 14 | \n",
" 0.014 | \n",
" 2.864920 | \n",
" 4.162300 | \n",
" 7.270160 | \n",
" 3.702620 | \n",
" | \n",
"
\n",
" \n",
" | 15 | \n",
" 0.015 | \n",
" 2.853348 | \n",
" 4.133370 | \n",
" 7.293304 | \n",
" 3.719978 | \n",
" | \n",
"
\n",
" \n",
" | 16 | \n",
" 0.016 | \n",
" 2.843932 | \n",
" 4.109831 | \n",
" 7.312135 | \n",
" 3.734101 | \n",
" | \n",
"
\n",
" \n",
" | 17 | \n",
" 0.017 | \n",
" 2.836269 | \n",
" 4.090672 | \n",
" 7.327463 | \n",
" 3.745597 | \n",
" | \n",
"
\n",
" \n",
" | 18 | \n",
" 0.018 | \n",
" 2.830029 | \n",
" 4.075073 | \n",
" 7.339942 | \n",
" 3.754956 | \n",
" | \n",
"
\n",
" \n",
" | 19 | \n",
" 0.019 | \n",
" 2.824948 | \n",
" 4.062370 | \n",
" 7.350104 | \n",
" 3.762578 | \n",
" | \n",
"
\n",
" \n",
" | 20 | \n",
" 0.020 | \n",
" 2.820809 | \n",
" 4.052024 | \n",
" 7.358381 | \n",
" 3.768786 | \n",
" | \n",
"
\n",
" \n",
" | 21 | \n",
" 0.021 | \n",
" 2.817438 | \n",
" 4.043596 | \n",
" 7.365123 | \n",
" 3.773843 | \n",
" | \n",
"
\n",
" \n",
" | 22 | \n",
" 0.022 | \n",
" 2.814692 | \n",
" 4.036729 | \n",
" 7.370617 | \n",
" 3.777962 | \n",
" | \n",
"
\n",
" \n",
" | 23 | \n",
" 0.023 | \n",
" 2.812454 | \n",
" 4.031135 | \n",
" 7.375092 | \n",
" 3.781319 | \n",
" | \n",
"
\n",
" \n",
" | 24 | \n",
" 0.024 | \n",
" 2.810630 | \n",
" 4.026576 | \n",
" 7.378739 | \n",
" 3.784054 | \n",
" | \n",
"
\n",
" \n",
" | 25 | \n",
" 0.025 | \n",
" 2.809144 | \n",
" 4.022861 | \n",
" 7.381711 | \n",
" 3.786283 | \n",
" | \n",
"
\n",
" \n",
" | 26 | \n",
" 0.026 | \n",
" 2.807933 | \n",
" 4.019834 | \n",
" 7.384133 | \n",
" 3.788100 | \n",
" | \n",
"
\n",
" \n",
" | 27 | \n",
" 0.027 | \n",
" 2.806947 | \n",
" 4.017366 | \n",
" 7.386107 | \n",
" 3.789580 | \n",
" | \n",
"
\n",
" \n",
" | 28 | \n",
" 0.028 | \n",
" 2.806142 | \n",
" 4.015355 | \n",
" 7.387716 | \n",
" 3.790787 | \n",
" | \n",
"
\n",
" \n",
" | 29 | \n",
" 0.029 | \n",
" 2.805487 | \n",
" 4.013717 | \n",
" 7.389027 | \n",
" 3.791770 | \n",
" | \n",
"
\n",
" \n",
" | 30 | \n",
" 0.030 | \n",
" 2.804952 | \n",
" 4.012381 | \n",
" 7.390095 | \n",
" 3.792572 | \n",
" | \n",
"
\n",
" \n",
" | 31 | \n",
" 0.031 | \n",
" 2.804517 | \n",
" 4.011292 | \n",
" 7.390966 | \n",
" 3.793225 | \n",
" | \n",
"
\n",
" \n",
" | 32 | \n",
" 0.032 | \n",
" 2.804162 | \n",
" 4.010405 | \n",
" 7.391676 | \n",
" 3.793757 | \n",
" | \n",
"
\n",
" \n",
" | 33 | \n",
" 0.033 | \n",
" 2.803872 | \n",
" 4.009681 | \n",
" 7.392255 | \n",
" 3.794191 | \n",
" | \n",
"
\n",
" \n",
" | 34 | \n",
" 0.034 | \n",
" 2.803637 | \n",
" 4.009092 | \n",
" 7.392727 | \n",
" 3.794545 | \n",
" | \n",
"
\n",
" \n",
" | 35 | \n",
" 0.035 | \n",
" 2.803444 | \n",
" 4.008611 | \n",
" 7.393111 | \n",
" 3.794833 | \n",
" | \n",
"
\n",
" \n",
" | 36 | \n",
" 0.036 | \n",
" 2.803288 | \n",
" 4.008219 | \n",
" 7.393424 | \n",
" 3.795068 | \n",
" | \n",
"
\n",
" \n",
" | 37 | \n",
" 0.037 | \n",
" 2.803160 | \n",
" 4.007900 | \n",
" 7.393680 | \n",
" 3.795260 | \n",
" | \n",
"
\n",
" \n",
" | 38 | \n",
" 0.038 | \n",
" 2.803056 | \n",
" 4.007640 | \n",
" 7.393888 | \n",
" 3.795416 | \n",
" | \n",
"
\n",
" \n",
" | 39 | \n",
" 0.039 | \n",
" 2.802971 | \n",
" 4.007428 | \n",
" 7.394058 | \n",
" 3.795543 | \n",
" | \n",
"
\n",
" \n",
" | 40 | \n",
" 0.040 | \n",
" 2.802902 | \n",
" 4.007255 | \n",
" 7.394196 | \n",
" 3.795647 | \n",
" | \n",
"
\n",
" \n",
" | 41 | \n",
" 0.041 | \n",
" 2.802846 | \n",
" 4.007114 | \n",
" 7.394309 | \n",
" 3.795732 | \n",
" | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" SYSTEM TIME A B C D caption\n",
"0 0.000 4.000000 7.000000 5.000000 2.000000 Initial state\n",
"1 0.001 3.760000 6.400000 5.480000 2.360000 \n",
"2 0.002 3.571091 5.927728 5.857818 2.643363 \n",
"3 0.003 3.421344 5.553360 6.157312 2.867984 \n",
"4 0.004 3.301981 5.254952 6.396039 3.047029 \n",
"5 0.005 3.206419 5.016047 6.587162 3.190372 \n",
"6 0.006 3.129645 4.824113 6.740709 3.305532 \n",
"7 0.007 3.067794 4.669486 6.864411 3.398309 \n",
"8 0.008 3.017854 4.544634 6.964293 3.473220 \n",
"9 0.009 2.977457 4.443643 7.045085 3.533814 \n",
"10 0.010 2.944734 4.361834 7.110532 3.582899 \n",
"11 0.011 2.918195 4.295487 7.163611 3.622708 \n",
"12 0.012 2.896651 4.241627 7.206699 3.655024 \n",
"13 0.013 2.879148 4.197870 7.241704 3.681278 \n",
"14 0.014 2.864920 4.162300 7.270160 3.702620 \n",
"15 0.015 2.853348 4.133370 7.293304 3.719978 \n",
"16 0.016 2.843932 4.109831 7.312135 3.734101 \n",
"17 0.017 2.836269 4.090672 7.327463 3.745597 \n",
"18 0.018 2.830029 4.075073 7.339942 3.754956 \n",
"19 0.019 2.824948 4.062370 7.350104 3.762578 \n",
"20 0.020 2.820809 4.052024 7.358381 3.768786 \n",
"21 0.021 2.817438 4.043596 7.365123 3.773843 \n",
"22 0.022 2.814692 4.036729 7.370617 3.777962 \n",
"23 0.023 2.812454 4.031135 7.375092 3.781319 \n",
"24 0.024 2.810630 4.026576 7.378739 3.784054 \n",
"25 0.025 2.809144 4.022861 7.381711 3.786283 \n",
"26 0.026 2.807933 4.019834 7.384133 3.788100 \n",
"27 0.027 2.806947 4.017366 7.386107 3.789580 \n",
"28 0.028 2.806142 4.015355 7.387716 3.790787 \n",
"29 0.029 2.805487 4.013717 7.389027 3.791770 \n",
"30 0.030 2.804952 4.012381 7.390095 3.792572 \n",
"31 0.031 2.804517 4.011292 7.390966 3.793225 \n",
"32 0.032 2.804162 4.010405 7.391676 3.793757 \n",
"33 0.033 2.803872 4.009681 7.392255 3.794191 \n",
"34 0.034 2.803637 4.009092 7.392727 3.794545 \n",
"35 0.035 2.803444 4.008611 7.393111 3.794833 \n",
"36 0.036 2.803288 4.008219 7.393424 3.795068 \n",
"37 0.037 2.803160 4.007900 7.393680 3.795260 \n",
"38 0.038 2.803056 4.007640 7.393888 3.795416 \n",
"39 0.039 2.802971 4.007428 7.394058 3.795543 \n",
"40 0.040 2.802902 4.007255 7.394196 3.795647 \n",
"41 0.041 2.802846 4.007114 7.394309 3.795732 "
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df = bio.get_history()\n",
"df"
]
},
{
"cell_type": "markdown",
"id": "f4ef60c7-9d9e-4324-9a93-525dd426bc6e",
"metadata": {},
"source": [
"A and B get depleted, while C and D get produced.\n",
"\n",
"**2A + 5B <-> 4C + 3D**"
]
},
{
"cell_type": "markdown",
"id": "a1525fa9-e852-4942-aef9-26b4ddcbab4e",
"metadata": {},
"source": [
"#### Let's verify that the stoichiometry is being respected"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "ea6a6286-aa49-4b4f-adff-2a3d3ff729d0",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(array([4., 7., 5., 2.], dtype=float32),\n",
" array([3.76, 6.4 , 5.48, 2.36], dtype=float32))"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# We'll check the first two arrays of concentrations, from the run's history\n",
"arr0 = bio.reaction_dynamics.get_historical_concentrations(row=0, df=df)\n",
"arr1 = bio.reaction_dynamics.get_historical_concentrations(row=1, df=df)\n",
"arr0, arr1"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "8cd8dfee-21c5-4dd6-8bf4-155d275797a5",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"True"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bio.reaction_dynamics.stoichiometry_checker(rxn_index=0, \n",
" conc_arr_before = arr0, \n",
" conc_arr_after = arr1)"
]
},
{
"cell_type": "markdown",
"id": "b0e3663b-3c12-4790-b948-79df3e6f740e",
"metadata": {},
"source": [
"Indeed, the change in [A] is -2 x 0.12, and the change in [B] is -5 X 0.12, \n",
" while the change in [C] is 4 x 0.12, and the change in [D] is 3 X 0.12"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "72e2ec04-2d7d-4c43-941e-11a613d784e3",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"array([-2.0000002, -4.9999995, 4.0000005, 2.9999993], dtype=float32)"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(arr1 - arr0) / 0.12"
]
},
{
"cell_type": "markdown",
"id": "058add5c-cb7b-4ed1-a3ad-87e32670ed39",
"metadata": {
"tags": []
},
"source": [
"# Plots of changes of concentration with time"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "68ab68a0-2b22-4f91-b2fc-978401b7dc73",
"metadata": {
"tags": []
},
"outputs": [
{
"data": {
"text/html": [
" \n",
" "
]
},
"metadata": {},
"output_type": "display_data"
},
{
"data": {
"application/vnd.plotly.v1+json": {
"config": {
"plotlyServerURL": "https://plot.ly"
},
"data": [
{
"hovertemplate": "Chemical=A
SYSTEM TIME=%{x}
concentration=%{y}",
"legendgroup": "A",
"line": {
"color": "navy",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "A",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.001,
0.002,
0.003,
0.004,
0.005,
0.006,
0.007,
0.008,
0.009000000000000001,
0.010000000000000002,
0.011000000000000003,
0.012000000000000004,
0.013000000000000005,
0.014000000000000005,
0.015000000000000006,
0.016000000000000007,
0.017000000000000008,
0.01800000000000001,
0.01900000000000001,
0.02000000000000001,
0.02100000000000001,
0.022000000000000013,
0.023000000000000013,
0.024000000000000014,
0.025000000000000015,
0.026000000000000016,
0.027000000000000017,
0.028000000000000018,
0.02900000000000002,
0.03000000000000002,
0.03100000000000002,
0.03200000000000002,
0.03300000000000002,
0.03400000000000002,
0.035000000000000024,
0.036000000000000025,
0.037000000000000026,
0.03800000000000003,
0.03900000000000003,
0.04000000000000003,
0.04100000000000003
],
"xaxis": "x",
"y": [
4,
3.76,
3.5710911999999997,
3.421343984936673,
3.301980728001355,
3.2064188890000027,
3.1296453862394342,
3.0677942598136902,
3.0178536016474613,
2.9774572735702503,
2.9447337853232094,
2.9181946595034987,
2.896650676719295,
2.8791481940685353,
2.864920170128554,
2.8533481325184336,
2.8439323993268655,
2.836268601207023,
2.8300290633553296,
2.8249479697668667,
2.8208094937384085,
2.817438269840165,
2.814691724361387,
2.8124538876914618,
2.810630392954937,
2.8091444272685577,
2.8079334500421775,
2.8069465302591987,
2.8061421841616245,
2.805486618085015,
2.80495229972419,
2.8045167959066166,
2.8041618268042856,
2.803872496040423,
2.8036366638212202,
2.80344443641785,
2.8032877503339826,
2.8031600335513334,
2.8030559295354904,
2.8029710723541625,
2.8029019034285914,
2.802845522201422
],
"yaxis": "y"
},
{
"hovertemplate": "Chemical=B
SYSTEM TIME=%{x}
concentration=%{y}",
"legendgroup": "B",
"line": {
"color": "cyan",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "B",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.001,
0.002,
0.003,
0.004,
0.005,
0.006,
0.007,
0.008,
0.009000000000000001,
0.010000000000000002,
0.011000000000000003,
0.012000000000000004,
0.013000000000000005,
0.014000000000000005,
0.015000000000000006,
0.016000000000000007,
0.017000000000000008,
0.01800000000000001,
0.01900000000000001,
0.02000000000000001,
0.02100000000000001,
0.022000000000000013,
0.023000000000000013,
0.024000000000000014,
0.025000000000000015,
0.026000000000000016,
0.027000000000000017,
0.028000000000000018,
0.02900000000000002,
0.03000000000000002,
0.03100000000000002,
0.03200000000000002,
0.03300000000000002,
0.03400000000000002,
0.035000000000000024,
0.036000000000000025,
0.037000000000000026,
0.03800000000000003,
0.03900000000000003,
0.04000000000000003,
0.04100000000000003
],
"xaxis": "x",
"y": [
7,
6.4,
5.927728,
5.553359962341683,
5.254951820003388,
5.016047222500007,
4.824113465598586,
4.669485649534226,
4.544634004118653,
4.443643183925626,
4.361834463308023,
4.295486648758746,
4.2416266917982375,
4.197870485171339,
4.162300425321385,
4.133370331296084,
4.109830998317164,
4.090671503017557,
4.075072658388323,
4.062369924417166,
4.052023734346021,
4.043595674600413,
4.0367293109034685,
4.031134719228654,
4.026575982387343,
4.022861068171395,
4.019833625105444,
4.017366325647997,
4.015355460404061,
4.013716545212537,
4.012380749310474,
4.011291989766541,
4.0104045670107125,
4.009681240101056,
4.009091659553049,
4.0086110910446235,
4.008219375834954,
4.00790008387833,
4.007639823838723,
4.007427680885403,
4.007254758571475,
4.007113805503551
],
"yaxis": "y"
},
{
"hovertemplate": "Chemical=C
SYSTEM TIME=%{x}
concentration=%{y}",
"legendgroup": "C",
"line": {
"color": "red",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "C",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.001,
0.002,
0.003,
0.004,
0.005,
0.006,
0.007,
0.008,
0.009000000000000001,
0.010000000000000002,
0.011000000000000003,
0.012000000000000004,
0.013000000000000005,
0.014000000000000005,
0.015000000000000006,
0.016000000000000007,
0.017000000000000008,
0.01800000000000001,
0.01900000000000001,
0.02000000000000001,
0.02100000000000001,
0.022000000000000013,
0.023000000000000013,
0.024000000000000014,
0.025000000000000015,
0.026000000000000016,
0.027000000000000017,
0.028000000000000018,
0.02900000000000002,
0.03000000000000002,
0.03100000000000002,
0.03200000000000002,
0.03300000000000002,
0.03400000000000002,
0.035000000000000024,
0.036000000000000025,
0.037000000000000026,
0.03800000000000003,
0.03900000000000003,
0.04000000000000003,
0.04100000000000003
],
"xaxis": "x",
"y": [
5,
5.48,
5.857817600000001,
6.157312030126654,
6.39603854399729,
6.587162221999995,
6.7407092275211316,
6.8644114803726195,
6.964292796705077,
7.0450854528594995,
7.110532429353581,
7.163610680993003,
7.20669864656141,
7.241703611862929,
7.270159659742892,
7.293303734963133,
7.312135201346269,
7.327462797585954,
7.339941873289341,
7.350104060466267,
7.358381012523183,
7.36512346031967,
7.370616551277226,
7.3750922246170765,
7.378739214090126,
7.3817111454628845,
7.384133099915645,
7.386106939481603,
7.387715631676751,
7.38902676382997,
7.39009540055162,
7.390966408186767,
7.391676346391429,
7.392255007919154,
7.3927266723575595,
7.3931111271643,
7.393424499332035,
7.393679932897333,
7.393888140929019,
7.394057855291675,
7.394196193142817,
7.394308955597156
],
"yaxis": "y"
},
{
"hovertemplate": "Chemical=D
SYSTEM TIME=%{x}
concentration=%{y}",
"legendgroup": "D",
"line": {
"color": "orange",
"dash": "solid"
},
"marker": {
"symbol": "circle"
},
"mode": "lines",
"name": "D",
"orientation": "v",
"showlegend": true,
"type": "scatter",
"x": [
0,
0.001,
0.002,
0.003,
0.004,
0.005,
0.006,
0.007,
0.008,
0.009000000000000001,
0.010000000000000002,
0.011000000000000003,
0.012000000000000004,
0.013000000000000005,
0.014000000000000005,
0.015000000000000006,
0.016000000000000007,
0.017000000000000008,
0.01800000000000001,
0.01900000000000001,
0.02000000000000001,
0.02100000000000001,
0.022000000000000013,
0.023000000000000013,
0.024000000000000014,
0.025000000000000015,
0.026000000000000016,
0.027000000000000017,
0.028000000000000018,
0.02900000000000002,
0.03000000000000002,
0.03100000000000002,
0.03200000000000002,
0.03300000000000002,
0.03400000000000002,
0.035000000000000024,
0.036000000000000025,
0.037000000000000026,
0.03800000000000003,
0.03900000000000003,
0.04000000000000003,
0.04100000000000003
],
"xaxis": "x",
"y": [
2,
2.36,
2.6433632,
2.86798402259499,
3.047028907997967,
3.190371666499996,
3.3055319206408487,
3.3983086102794644,
3.473219597528808,
3.533814089644624,
3.582899322015186,
3.622708010744752,
3.655023984921057,
3.6812777088971966,
3.7026197448071687,
3.7199778012223494,
3.734101401009702,
3.745597098189466,
3.754956404967006,
3.7625780453497004,
3.768785759392388,
3.7738425952397527,
3.7779624134579195,
3.781319168462808,
3.7840544105675944,
3.786283359097163,
3.788099824936734,
3.789580204611202,
3.7907867237575634,
3.791770072872478,
3.792571550413715,
3.7932248061400755,
3.7937572597935723,
3.794191255939366,
3.7945450042681697,
3.794833345373225,
3.7950683744990266,
3.7952599496730004,
3.7954161056967646,
3.7955433914687564,
3.795647144857113,
3.795731716697867
],
"yaxis": "y"
}
],
"layout": {
"autosize": true,
"legend": {
"title": {
"text": "Chemical"
},
"tracegroupgap": 0
},
"template": {
"data": {
"bar": [
{
"error_x": {
"color": "#2a3f5f"
},
"error_y": {
"color": "#2a3f5f"
},
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "bar"
}
],
"barpolar": [
{
"marker": {
"line": {
"color": "#E5ECF6",
"width": 0.5
},
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "barpolar"
}
],
"carpet": [
{
"aaxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"baxis": {
"endlinecolor": "#2a3f5f",
"gridcolor": "white",
"linecolor": "white",
"minorgridcolor": "white",
"startlinecolor": "#2a3f5f"
},
"type": "carpet"
}
],
"choropleth": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "choropleth"
}
],
"contour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "contour"
}
],
"contourcarpet": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "contourcarpet"
}
],
"heatmap": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmap"
}
],
"heatmapgl": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "heatmapgl"
}
],
"histogram": [
{
"marker": {
"pattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
}
},
"type": "histogram"
}
],
"histogram2d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2d"
}
],
"histogram2dcontour": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "histogram2dcontour"
}
],
"mesh3d": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"type": "mesh3d"
}
],
"parcoords": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "parcoords"
}
],
"pie": [
{
"automargin": true,
"type": "pie"
}
],
"scatter": [
{
"fillpattern": {
"fillmode": "overlay",
"size": 10,
"solidity": 0.2
},
"type": "scatter"
}
],
"scatter3d": [
{
"line": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatter3d"
}
],
"scattercarpet": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattercarpet"
}
],
"scattergeo": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergeo"
}
],
"scattergl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattergl"
}
],
"scattermapbox": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scattermapbox"
}
],
"scatterpolar": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolar"
}
],
"scatterpolargl": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterpolargl"
}
],
"scatterternary": [
{
"marker": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"type": "scatterternary"
}
],
"surface": [
{
"colorbar": {
"outlinewidth": 0,
"ticks": ""
},
"colorscale": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"type": "surface"
}
],
"table": [
{
"cells": {
"fill": {
"color": "#EBF0F8"
},
"line": {
"color": "white"
}
},
"header": {
"fill": {
"color": "#C8D4E3"
},
"line": {
"color": "white"
}
},
"type": "table"
}
]
},
"layout": {
"annotationdefaults": {
"arrowcolor": "#2a3f5f",
"arrowhead": 0,
"arrowwidth": 1
},
"autotypenumbers": "strict",
"coloraxis": {
"colorbar": {
"outlinewidth": 0,
"ticks": ""
}
},
"colorscale": {
"diverging": [
[
0,
"#8e0152"
],
[
0.1,
"#c51b7d"
],
[
0.2,
"#de77ae"
],
[
0.3,
"#f1b6da"
],
[
0.4,
"#fde0ef"
],
[
0.5,
"#f7f7f7"
],
[
0.6,
"#e6f5d0"
],
[
0.7,
"#b8e186"
],
[
0.8,
"#7fbc41"
],
[
0.9,
"#4d9221"
],
[
1,
"#276419"
]
],
"sequential": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
],
"sequentialminus": [
[
0,
"#0d0887"
],
[
0.1111111111111111,
"#46039f"
],
[
0.2222222222222222,
"#7201a8"
],
[
0.3333333333333333,
"#9c179e"
],
[
0.4444444444444444,
"#bd3786"
],
[
0.5555555555555556,
"#d8576b"
],
[
0.6666666666666666,
"#ed7953"
],
[
0.7777777777777778,
"#fb9f3a"
],
[
0.8888888888888888,
"#fdca26"
],
[
1,
"#f0f921"
]
]
},
"colorway": [
"#636efa",
"#EF553B",
"#00cc96",
"#ab63fa",
"#FFA15A",
"#19d3f3",
"#FF6692",
"#B6E880",
"#FF97FF",
"#FECB52"
],
"font": {
"color": "#2a3f5f"
},
"geo": {
"bgcolor": "white",
"lakecolor": "white",
"landcolor": "#E5ECF6",
"showlakes": true,
"showland": true,
"subunitcolor": "white"
},
"hoverlabel": {
"align": "left"
},
"hovermode": "closest",
"mapbox": {
"style": "light"
},
"paper_bgcolor": "white",
"plot_bgcolor": "#E5ECF6",
"polar": {
"angularaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"radialaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"scene": {
"xaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"yaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
},
"zaxis": {
"backgroundcolor": "#E5ECF6",
"gridcolor": "white",
"gridwidth": 2,
"linecolor": "white",
"showbackground": true,
"ticks": "",
"zerolinecolor": "white"
}
},
"shapedefaults": {
"line": {
"color": "#2a3f5f"
}
},
"ternary": {
"aaxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"baxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
},
"bgcolor": "#E5ECF6",
"caxis": {
"gridcolor": "white",
"linecolor": "white",
"ticks": ""
}
},
"title": {
"x": 0.05
},
"xaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
},
"yaxis": {
"automargin": true,
"gridcolor": "white",
"linecolor": "white",
"ticks": "",
"title": {
"standoff": 15
},
"zerolinecolor": "white",
"zerolinewidth": 2
}
}
},
"title": {
"text": "Changes in concentrations with time"
},
"xaxis": {
"anchor": "y",
"autorange": true,
"domain": [
0,
1
],
"range": [
0,
0.04100000000000003
],
"title": {
"text": "SYSTEM TIME"
},
"type": "linear"
},
"yaxis": {
"anchor": "x",
"autorange": true,
"domain": [
0,
1
],
"range": [
1.7003161691334914,
7.693992786463665
],
"title": {
"text": "concentration"
},
"type": "linear"
}
}
},
"image/png": "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",
"text/html": [
""
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"fig = px.line(data_frame=bio.get_history(), x=\"SYSTEM TIME\", y=[\"A\", \"B\", \"C\", \"D\"], \n",
" title=\"Changes in concentrations with time\",\n",
" color_discrete_sequence = ['navy', 'cyan', 'red', 'orange'],\n",
" labels={\"value\":\"concentration\", \"variable\":\"Chemical\"})\n",
"fig.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0500edb0-a509-453d-b3b4-8fbaae42925d",
"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
}