{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***Note: this is the Cooperative.ipynb notebook. The\n",
"PDF version \"Cooperative Enzyme-catalysed Reactions\"\n",
"is available [here](Cooperative.pdf).***"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introduction\n",
"\"For many enzymes, the reaction velocity is not a simple hyperbolic curve, as predicted\n",
"by the Michaelis–Menten model, but often has a sigmoidal character. This can result from cooperative effects, in which the enzyme can bind more than one substrate\n",
"molecule but the binding of one substrate molecule affects the binding of subsequent\n",
"ones\" (Keener and Sneyd, 2009), Section 1.4.4.\n",
"\n",
"This note gives a bond graph (Gawthrop and Crampin, 2014) interpretation of such cooperativity and uses the iterative properties of [BondGraphTools](https://pypi.org/project/BondGraphTools/) (Cudmore et. al., 2019) to build high-order cooperative systems. These systems are simulated to give steady-state behavior as the order of cooperativity increases.\n",
"\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Import some python code\n",
"The bond graph analysis uses a number of Python modules:"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"## Some useful imports\n",
"\n",
"import BondGraphTools as bgt\n",
"import numpy as np\n",
"import sympy as sp\n",
"import matplotlib.pyplot as plt\n",
"import IPython.display as disp\n",
"\n",
"## Stoichiometric analysis\n",
"import stoich as st\n",
"\n",
"## SVG bg representation conversion\n",
"import svgBondGraph as sbg\n",
"\n",
"## Modular bond graphs\n",
"import modularBondGraph as mbg\n",
"\n",
"## Data structure copy\n",
"import copy\n",
"\n",
"## Set quiet=False for verbose output\n",
"quiet = True"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Enzyme-catalysed reaction\n",
"The basic enzyme-catalysed reaction is given in this section. It is the basic building block of cooperative enzyme-catalysed reactions\n",
"More details are given by (Gawthrop and Crampin, 2014).\n"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'0.3.7'"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"bgt.version"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
""
],
"text/plain": [
""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## Enzyme-catalysed reaction\n",
"sbg.model('RE_abg.svg')\n",
"import RE_abg\n",
"disp.SVG('RE_abg.svg')"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\begin{align}\n",
"\\ch{A + E &<>[ r1 ] C }\\\\\n",
"\\ch{C &<>[ r2 ] B + E }\n",
"\\end{align}\n"
],
"text/plain": [
""
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"s = st.stoich(RE_abg.model(),quiet=quiet)\n",
"disp.Latex(st.sprintrl(s,chemformula=True))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Cooperative enzyme-catalysed reaction\n",
"\n",
"(Keener and Sneyd, 2009), Section 1.4.4, discusses cooperativity. This section gives a bond graph interpretation. This is done in two ways:\n",
"\n",
"1. As a graphical representation of a two-stage cooperative enzyme-catalysed reaction.\n",
"2. As a generic representation of an N-stage cooperative enzyme-catalysed reaction using [bond-graph tools](https://pypi.org/project/BondGraphTools/)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Two-stage cooperative enzyme-catalysed reaction (N=2) \n"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"data": {
"image/svg+xml": [
""
],
"text/plain": [
""
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## Two-stage cooperative enzyme-catalysed reaction (N=2)\n",
"sbg.model('Coop_abg.svg',quiet=quiet)\n",
"import Coop_abg\n",
"disp.SVG('Coop_abg.svg')"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\begin{align}\n",
"\\ch{A + E0 &<>[ r01 ] E1 }\\\\\n",
"\\ch{E1 &<>[ r02 ] B + E0 }\\\\\n",
"\\ch{A + E1 &<>[ r11 ] E2 }\\\\\n",
"\\ch{E2 &<>[ r12 ] B + E1 }\\\\\n",
"\\ch{A + E2 &<>[ r21 ] E3 }\\\\\n",
"\\ch{E3 &<>[ r22 ] B + E2 }\n",
"\\end{align}\n"
],
"text/plain": [
""
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"ss = st.stoich(Coop_abg.model(),quiet=quiet)\n",
"ssc = st.statify(ss,chemostats=['A','B'])\n",
"disp.Latex(st.sprintrl(ss,chemformula=True))\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Create cooperative enzyme-catalysed reaction of any degree N\n",
"The following code builds an N-stage cooperative enzyme-catalysed reaction using [bond-graph tools](https://pypi.org/project/BondGraphTools/).\n",
"\n",
"1. N+1 instances of the basic enzyme-catalysed reaction are created and the enzyme and complex renamed.\n",
"2. The substrate A, product B and enzymes E1-EN are unified."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"## Create cooperative enzyme-catalysed reaction of any degree N\n",
"## Optionally append a simple reaction\n",
"## Optionally use feedback inhibition\n",
"def makeCoop(N=3,quiet=True):\n",
" Coop = bgt.new(name='Coop')\n",
" for i in range(N+1):\n",
" RE = RE_abg.model()\n",
" RE.name = 'RE'+str(i)\n",
" mbg.rename(RE,{\n",
" 'E':'E'+str(i), \n",
" 'C':'E'+str(i+1),\n",
" 'r1':'r'+str(i)+'1',\n",
" 'r2':'r'+str(i)+'2'\n",
" },\n",
" quiet=quiet)\n",
" Coop.add(RE)\n",
"\n",
" ## Unify common components\n",
" unified = ['A','B']\n",
" for i in range(N): \n",
" Ei = 'E'+str(i+1)\n",
" unified.append(Ei)\n",
" print('unified =',unified)\n",
" mbg.unify(Coop,unified,quiet=quiet)\n",
"\n",
" \n",
" ## Stoichiometry\n",
" chemostats = ['A','B']\n",
" s = st.stoich(Coop,quiet=quiet)\n",
" sc = st.statify(s,chemostats=chemostats)\n",
" if not quiet:\n",
" print(st.sprint(sc,'species'))\n",
" print(st.sprint(sc,'reaction'))\n",
" return s,sc,Coop"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generate equations for $N=2$\n",
"Note that these equations are identical to those of the explicit bondgraph."
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"unified = ['A', 'B', 'E1', 'E2']\n"
]
},
{
"data": {
"text/latex": [
"\\begin{align}\n",
"\\ch{E0 + A &<>[ r01 ] E1 }\\\\\n",
"\\ch{E1 &<>[ r02 ] E0 + B }\\\\\n",
"\\ch{A + E1 &<>[ r11 ] E2 }\\\\\n",
"\\ch{E2 &<>[ r12 ] B + E1 }\\\\\n",
"\\ch{A + E2 &<>[ r21 ] E3 }\\\\\n",
"\\ch{E3 &<>[ r22 ] B + E2 }\n",
"\\end{align}\n"
],
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"### Generate equations for N=2\n",
"s,sc,Coop = makeCoop(N=2,quiet=quiet)\n",
"disp.Latex(st.sprintrl(s,chemformula=True))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Generate pathway equations for $N=2$\n",
"Pathways are generated using the approach of Gawthrop and Crampin (2014)."
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"3 pathways\n",
"0: + r01 + r02\n",
"1: + r11 + r12\n",
"2: + r21 + r22\n",
"\n"
]
},
{
"data": {
"text/latex": [
"\\begin{align}\n",
"A &\\Leftrightarrow B \\\\\n",
"A &\\Leftrightarrow B \\\\\n",
"A &\\Leftrightarrow B \n",
"\\end{align}\n"
],
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"sp = st.path(s,sc)\n",
"print(st.sprintp(sc))\n",
"disp.Latex(st.sprintrl(sp))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Steady-state properties\n",
"\n",
"The steady state properties are investigated using dynamic simulation where slowly varing exogenous quantities are used to induce quasi-steady-state behaviour. In each case, the variable is at a constant value to start with followed by a slowly increasing ramp. The response after the initial reponse is plotted to remove artefacts due to the initial transient.\n",
"\n",
"All parameters are unity except for $K_B=0.01$ (to approximate an irreversible reaction) and initial states are chosen so that the total enzyme is $e_0=1$."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Set up some parameters for simulation"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"## Set up some parameters for simulation\n",
"def setParameter(s,N,e0):\n",
" ## Set up the non-unit parameters and states\n",
" \n",
" K_E0 = 1\n",
" K_EN = 1/K_E0\n",
" K_m = K_EN/K_E0\n",
" parameter = {}\n",
"\n",
" ## Set product constant to a small value\n",
" ## to make the ECR approximately irreversible\n",
" K_B = 0.01\n",
" parameter['K_B'] = K_B\n",
" \n",
" ## Set up enzyme parameters and reaction constants\n",
" parameter['K_E0'] = K_E0\n",
" parameter['K_E'+str(N+1)] = K_EN\n",
" \n",
" ## States\n",
" ## Set total enzyme to e0\n",
" X0 = np.ones(s['n_X'])\n",
" for i in range(N+2):\n",
" Ei = 'E'+str(i)\n",
" X0[s['spec_index'][Ei]] = (e0/(N+2)) \n",
" \n",
" return parameter,X0,K_EN,K_m"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"## Compute the total enzyme\n",
"def totalE(N,dat,Feedback=False):\n",
" E_spec = []\n",
" for i in range(N+2):\n",
" Ei = 'E'+str(i)\n",
" E_spec.append(Ei)\n",
" \n",
" for spec in E_spec:\n",
" x = copy.copy(dat['X'][:,s['spec_index'][spec]])\n",
" if spec is E_spec[0]:\n",
" X = x\n",
" else:\n",
" X += x\n",
" \n",
" return X\n",
" "
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"## Compute the total flow\n",
"def totalFlow(s,N,dat):\n",
" for i in range(N+1):\n",
" r = 'r'+str(i)+'2'\n",
" Vi = copy.copy(dat['V'][:,s['reac_index'][r]])\n",
" if i is 0:\n",
" V = Vi\n",
" else:\n",
" V += Vi\n",
" return V"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"### Vary substrate concentration $x_A$"
]
},
{
"cell_type": "code",
"execution_count": 27,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"unified = ['A', 'B']\n",
"unified = ['A', 'B', 'E1']\n",
"unified = ['A', 'B', 'E1', 'E2', 'E3', 'E4', 'E5']\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"