{ "cells": [ { "cell_type": "markdown", "id": "5cbc8640", "metadata": {}, "source": [ "# **Enzyme Kinetics** \n", "\n", "### This is a re-visit of the first part of experiment `enzyme_1_a` \n", "#### An under-the-hood look at how the enzymatic reaction is internally modeled with 2 coupled elementary reactions: \n", "`E + S <-> ES` (reversible), and `ES -> E + P` (irreversible).\n", "\n", "The results are identical, because the algorithm (including the choice of adaptive variable time steps) is the same. The only difference here is that we aren't making use of the _native support_ for enzymatic reactions. \n", "\n", "Two other reactions being assumed negligible, and not included, are : \n", "1) the reverse direction of the 2nd reaction \n", "2) the non-catalyzed S <-> P reaction" ] }, { "cell_type": "markdown", "id": "604b150b-7812-4fd3-9403-69a06dd7e397", "metadata": {}, "source": [ "### THE REACTION: \n", "the enzyme `Adenosine deaminase` with the substrate `2,6-Diamino-9-β-D-deoxyribofuranosyl-9-H-purine`, \n", "and the initial concentration values choosen below, all satisfy the customary Michaelis-Menten assumptions that `[E] << [S]` and that the reaction rate constants satisfy `k1_reverse >> k2_forward` \n", "\n", "For this reaction: k1_forward = 18, k1_reverse = 100, k2_forward = 49 \n", "\n", "Source of kinetic parameters: *page 16 of \"Analysis of Enzyme Reaction Kinetics, Vol. 1\", by F. Xavier Malcata, Wiley, 2023*" ] }, { "cell_type": "markdown", "id": "c123db4f-c802-47f0-a3d3-0b857314d8e5", "metadata": {}, "source": [ "### TAGS : \"uniform compartment\", \"chemistry\", \"numerical\", \"enzymes\", \"technical\"" ] }, { "cell_type": "code", "execution_count": 1, "id": "6e9d0902-6fc9-4692-ac39-0651d08902ca", "metadata": {}, "outputs": [], "source": [ "LAST_REVISED = \"Sep. 2, 2025\"\n", "LIFE123_VERSION = \"1.0.0rc6\" # Library version this experiment is based on" ] }, { "cell_type": "code", "execution_count": 2, "id": "1e0ae9a9-9d0c-4edf-a5f2-1c589419e6cf", "metadata": {}, "outputs": [], "source": [ "#import set_path # Using MyBinder? Uncomment this before running the next cell!" ] }, { "cell_type": "code", "execution_count": 3, "id": "a29db1c7", "metadata": { "tags": [] }, "outputs": [], "source": [ "#import sys\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", "import ipynbname\n", "import pandas as pd\n", "\n", "from life123 import check_version, ChemData, UniformCompartment, GraphicLog, PlotlyHelper" ] }, { "cell_type": "code", "execution_count": 4, "id": "af15ecf0-e083-4fef-b68e-abe794dcc86e", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "OK\n" ] } ], "source": [ "check_version(LIFE123_VERSION) # To check compatibility" ] }, { "cell_type": "code", "execution_count": 5, "id": "121fdfdd", "metadata": { "tags": [] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-> Output will be LOGGED into the file 'enzyme_1_a_technical.log.htm'\n" ] } ], "source": [ "# Initialize the HTML logging (for the graphics)\n", "log_file = ipynbname.name() + \".log.htm\" # Use the notebook base filename for the log file\n", " # IN CASE OF PROBLEMS, set manually to any desired name\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": "3713fa4d-e9bb-4e33-8734-c1d4d23cf177", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "code", "execution_count": null, "id": "34d1cefc-f644-410a-9fe4-5204964742ac", "metadata": {}, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "91a729ee-ad2f-4771-bc84-49ecb9d6a851", "metadata": {}, "source": [ "# Revisit Part 1 of experiment `enzyme_1_a`, but WITHOUT making use of native support for enzymatic reactions" ] }, { "cell_type": "code", "execution_count": 6, "id": "ac9eea69-174c-43e5-9eed-443cbc5e2ba7", "metadata": {}, "outputs": [], "source": [ "chem_data = ChemData(names=[\"P\", \"ES\"], plot_colors=[\"green\", \"red\"])" ] }, { "cell_type": "code", "execution_count": 7, "id": "90f9ec41-6e1b-4558-9400-47e35ece6efc", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
| \n", " | name | \n", "label | \n", "plot_color | \n", "
|---|---|---|---|
| 0 | \n", "P | \n", "P | \n", "green | \n", "
| 1 | \n", "ES | \n", "ES | \n", "red | \n", "
| 2 | \n", "Adenosine deaminase | \n", "E | \n", "violet | \n", "
| 3 | \n", "2,6-Diamino-9-β-D-deoxyribofuranosyl-9-H-purine | \n", "S | \n", "darkturquoise | \n", "
| \n", " | SYSTEM TIME | \n", "rxn0_rate | \n", "rxn1_rate | \n", "step | \n", "
|---|---|---|---|---|
| 0 | \n", "0.000000 | \n", "360.000000 | \n", "0.000000 | \n", "0 | \n", "
| 1 | \n", "0.000500 | \n", "274.543200 | \n", "8.820000 | \n", "1 | \n", "
| 2 | \n", "0.000750 | \n", "243.269275 | \n", "12.075109 | \n", "2 | \n", "
| 3 | \n", "0.000763 | \n", "241.911753 | \n", "12.216716 | \n", "3 | \n", "
| 4 | \n", "0.000769 | \n", "241.237493 | \n", "12.287060 | \n", "4 | \n", "
| ... | \n", "... | \n", "... | \n", "... | \n", "... | \n", "
| 822 | \n", "1.468805 | \n", "0.253941 | \n", "0.285397 | \n", "822 | \n", "
| 823 | \n", "1.475832 | \n", "0.244291 | \n", "0.274566 | \n", "823 | \n", "
| 824 | \n", "1.482859 | \n", "0.235005 | \n", "0.264142 | \n", "824 | \n", "
| 825 | \n", "1.489886 | \n", "0.226068 | \n", "0.254109 | \n", "825 | \n", "
| 826 | \n", "1.496913 | \n", "0.217468 | \n", "0.244454 | \n", "826 | \n", "
827 rows × 4 columns
\n", "