{ "cells": [ { "cell_type": "markdown", "id": "3bbe8002-bdf3-490c-bde0-80dd3713a3d0", "metadata": {}, "source": [ "## `A <-> B` , downregulated by the \"shunt\" (coupled reaction) `A <-> S`\n", "### _Kinetic_ advantage (downregulation in early phase) vs. _Thermodynamic_ advantage (long-term downregulation) \n", "\n", "**[Scenario 1](#down_regulate_1_scenario_1)** : No downregulation on `A <-> B `\n", "\n", "**[Scenario 2](#down_regulate_1_scenario_2)** : The shunt (`A <-> S`) has a *kinetic* advantage but *thermodynamic* DIS-advantage compared to `A <-> B ` \n", "(i.e. `A <-> S` is fast, but energetically unfavored) \n", "\n", "**[Scenario 3](#down_regulate_1_scenario_3)** : The shunt (`A <-> S`) is has a *kinetic* DIS-advantage but a *thermodynamic* advantage compared to `A <-> B` \n", "(i.e. `A <-> S` is slow, but energetically favored) \n", "\n", "All reactions are 1st order, mostly forward. Taken to equilibrium.\n", "\n", "LAST REVISED: June 23, 2024 (using v. 1.0 beta36)" ] }, { "cell_type": "markdown", "id": "61171e99-518e-4019-a731-be7437e95dfd", "metadata": {}, "source": [ "## Bathtub analogy:\n", "A is initially full, while B and S are empty. \n", "If the \"shunt\" S is present, scenario 2 corresponds to a large pipe and a small elevation change... \n", "while scenario 3 corresponds to a narrow pipe and a large elevation change." ] }, { "cell_type": "markdown", "id": "832afe37-f169-41c8-a719-e739336bc5cf", "metadata": {}, "source": [ "![Downregulated by shunt](../../docs/down_regulate_1.png)" ] }, { "cell_type": "code", "execution_count": 1, "id": "c4231a63-e456-48e9-bf4f-d074bbd3490a", "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": "64933384", "metadata": { "tags": [] }, "outputs": [], "source": [ "from experiments.get_notebook_info import get_notebook_basename\n", "\n", "from life123 import ChemData as chem\n", "from life123 import UniformCompartment\n", "\n", "import plotly.express as px\n", "from life123 import GraphicLog" ] }, { "cell_type": "code", "execution_count": 3, "id": "83c3cc5f-de21-4f66-9988-2806fbf0666d", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-> Output will be LOGGED into the file 'down_regulate_1.log.htm'\n" ] } ], "source": [ "# Initialize the HTML logging (for the graphics)\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": null, "id": "001bc666-f2ef-40a3-b46f-30b087ea33da", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "35b5ef15-69da-4fc9-b1e9-fd34a9bafb99", "metadata": {}, "source": [ "# Scenario 1: A <-> B in the absence of the 2nd reaction" ] }, { "cell_type": "markdown", "id": "9329208b-070f-4902-8f37-0f11ddf75ed6", "metadata": {}, "source": [ "### Initialize the System\n", "Specify the chemicals and the reaction" ] }, { "cell_type": "code", "execution_count": 4, "id": "57d8431c-d6d0-462c-af78-e64eeb220e2e", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Number of reactions: 1 (at temp. 25 C)\n", "0: A <-> B (kF = 30 / kR = 5 / delta_G = -4,441.7 / K = 6) | 1st order in all reactants & products\n", "Set of chemicals involved in the above reactions: {'A', 'B'}\n" ] } ], "source": [ "# Specify the chemicals\n", "chem_data = chem(names=[\"A\", \"B\"])\n", "\n", "# Reaction A <-> B\n", "chem_data.add_reaction(reactants=[\"A\"], products=[\"B\"],\n", " forward_rate=30., reverse_rate=5.)\n", "\n", "chem_data.describe_reactions()" ] }, { "cell_type": "markdown", "id": "f5eabdf2-0e6b-4141-a886-10974dfc6c3a", "metadata": {}, "source": [ "### Set the initial concentrations of all the chemicals" ] }, { "cell_type": "code", "execution_count": 5, "id": "67a0375f-a14f-4cbe-965b-81d4c841aeab", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "SYSTEM STATE at Time t = 0:\n", "2 species:\n", " Species 0 (A). Conc: 50.0\n", " Species 1 (B). Conc: 0.0\n", "Set of chemicals involved in reactions: {'A', 'B'}\n" ] } ], "source": [ "dynamics = UniformCompartment(chem_data=chem_data, preset=\"fast\")\n", "dynamics.set_conc(conc={\"A\": 50.}, snapshot=True)\n", "dynamics.describe_state()" ] }, { "cell_type": "markdown", "id": "72a2148e-1aae-4ed7-bab3-5781b3a80fb0", "metadata": {}, "source": [ "### Run the reaction" ] }, { "cell_type": "code", "execution_count": 6, "id": "89f23b49-2840-4517-a275-b6a4f97898af", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "37 total step(s) taken\n", "Number of step re-do's because of negative concentrations: 0\n", "Number of step re-do's because of elective soft aborts: 0\n", "Norm usage: {'norm_A': 22, 'norm_B': 17, 'norm_C': 16, 'norm_D': 16}\n" ] } ], "source": [ "dynamics.set_diagnostics() # To save diagnostic information about the call to single_compartment_react()\n", "\n", "# The changes of concentrations vary very rapidly early on; automated variable timesteps will take care of that\n", "dynamics.single_compartment_react(initial_step=0.001, duration=0.3,\n", " snapshots={\"initial_caption\": \"1st reaction step\",\n", " \"final_caption\": \"last reaction step\"},\n", " variable_steps=True)" ] }, { "cell_type": "code", "execution_count": 7, "id": "80fbaee3-bd6f-4197-9270-23374d46a4a7", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | SYSTEM TIME | \n", "A | \n", "B | \n", "caption | \n", "
---|---|---|---|---|
0 | \n", "0.000000 | \n", "50.000000 | \n", "0.000000 | \n", "Initialized state | \n", "
1 | \n", "0.001000 | \n", "48.500000 | \n", "1.500000 | \n", "1st reaction step | \n", "
2 | \n", "0.002000 | \n", "47.052500 | \n", "2.947500 | \n", "\n", " |
3 | \n", "0.002800 | \n", "45.935030 | \n", "4.064970 | \n", "\n", " |
4 | \n", "0.003600 | \n", "44.848849 | \n", "5.151151 | \n", "\n", " |
5 | \n", "0.004400 | \n", "43.793081 | \n", "6.206919 | \n", "\n", " |
6 | \n", "0.005200 | \n", "42.766875 | \n", "7.233125 | \n", "\n", " |
7 | \n", "0.006000 | \n", "41.769403 | \n", "8.230597 | \n", "\n", " |
8 | \n", "0.007200 | \n", "40.315088 | \n", "9.684912 | \n", "\n", " |
9 | \n", "0.008400 | \n", "38.921854 | \n", "11.078146 | \n", "\n", " |
10 | \n", "0.009600 | \n", "37.587136 | \n", "12.412864 | \n", "\n", " |
11 | \n", "0.010800 | \n", "36.308476 | \n", "13.691524 | \n", "\n", " |
12 | \n", "0.012000 | \n", "35.083520 | \n", "14.916480 | \n", "\n", " |
13 | \n", "0.013800 | \n", "33.323259 | \n", "16.676741 | \n", "\n", " |
14 | \n", "0.015240 | \n", "32.003766 | \n", "17.996234 | \n", "\n", " |
15 | \n", "0.016680 | \n", "30.750777 | \n", "19.249223 | \n", "\n", " |
16 | \n", "0.018840 | \n", "28.966018 | \n", "21.033982 | \n", "\n", " |
17 | \n", "0.020568 | \n", "27.646153 | \n", "22.353847 | \n", "\n", " |
18 | \n", "0.022296 | \n", "26.406114 | \n", "23.593886 | \n", "\n", " |
19 | \n", "0.024888 | \n", "24.658551 | \n", "25.341449 | \n", "\n", " |
20 | \n", "0.026962 | \n", "23.387332 | \n", "26.612668 | \n", "\n", " |
21 | \n", "0.029035 | \n", "22.208373 | \n", "27.791627 | \n", "\n", " |
22 | \n", "0.032146 | \n", "20.568281 | \n", "29.431719 | \n", "\n", " |
23 | \n", "0.034634 | \n", "19.399045 | \n", "30.600955 | \n", "\n", " |
24 | \n", "0.038366 | \n", "17.797935 | \n", "32.202065 | \n", "\n", " |
25 | \n", "0.041352 | \n", "16.684379 | \n", "33.315621 | \n", "\n", " |
26 | \n", "0.045831 | \n", "15.188610 | \n", "34.811390 | \n", "\n", " |
27 | \n", "0.050310 | \n", "13.927325 | \n", "36.072675 | \n", "\n", " |
28 | \n", "0.057029 | \n", "12.331983 | \n", "37.668017 | \n", "\n", " |
29 | \n", "0.062404 | \n", "11.355820 | \n", "38.644180 | \n", "\n", " |
30 | \n", "0.070466 | \n", "10.167025 | \n", "39.832975 | \n", "\n", " |
31 | \n", "0.082559 | \n", "8.887006 | \n", "41.112994 | \n", "\n", " |
32 | \n", "0.094652 | \n", "8.148772 | \n", "41.851228 | \n", "\n", " |
33 | \n", "0.112792 | \n", "7.510122 | \n", "42.489878 | \n", "\n", " |
34 | \n", "0.140002 | \n", "7.160360 | \n", "42.839640 | \n", "\n", " |
35 | \n", "0.180816 | \n", "7.135357 | \n", "42.864643 | \n", "\n", " |
36 | \n", "0.242039 | \n", "7.151428 | \n", "42.848572 | \n", "\n", " |
37 | \n", "0.333872 | \n", "7.123879 | \n", "42.876121 | \n", "last reaction step | \n", "