{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"***Note: This example is discussed in detail by \n",
" (Gawthrop and Pan, 2020) \n",
" available [here](https://arxiv.org/abs/2009.02217).***\n",
"\n",
"***Note: this is the SGLT.ipynb notebook. The\n",
"PDF version \"Sodium Glucose Symporter\"\n",
"is available [here](SGLT.pdf).***\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Introduction\n",
"The Sodium-Glucose Transport Protein 1 (SGLT1) (also known as the\n",
"\\ch{Na+}-glucose symporter \\citep[\\S~2.4.2]{KeeSne09}) was studied experimentally by\n",
"\\citet{ParSupLoo92} and explained by a biophysical model\n",
"\\citep{ParSupLoo92a}; further experiments and modelling were conducted\n",
"by \\citet{CheCoaJac95}. \\citet{EskWriLoo05} examined the kinetics of\n",
"the reverse mode using similar experiments and analysis to\n",
"\\citet{ParSupLoo92,ParSupLoo92a} but with reverse transport and\n",
"currents.\n",
"\n",
"This note looks at a bond graph based model\n",
"of SGLT1 based on the model of \\citet{EskWriLoo05}.\n",
"\n",
"The model of Figure 6B of\n",
" \\citet{EskWriLoo05} is based on the six-state\n",
"biomolecular cycle of Figure 2 of \\citet{ParSupLoo92a}. When operating\n",
"normally, sugar is transported from the outside to the inside of the\n",
"membrane driven against a possibly adverse gradient by the\n",
"concentration gradient of \\ch{Na+}. \n",
"\n",
"A similar situation is analysed in \\S~1.1 of the book by \\citet{Hil89}\n",
"and the corresponding bond graph of the biomolecular cycle is\n",
"described by \\citet{GawCra17}."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"In /home/peterg/.local/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: \n",
"The text.latex.unicode rcparam was deprecated in Matplotlib 3.0 and will be removed in 3.2.\n",
"In /home/peterg/.local/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: \n",
"The savefig.frameon rcparam was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n",
"In /home/peterg/.local/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: \n",
"The pgf.debug rcparam was deprecated in Matplotlib 3.0 and will be removed in 3.2.\n",
"In /home/peterg/.local/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: \n",
"The verbose.level rcparam was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n",
"In /home/peterg/.local/lib/python3.6/site-packages/matplotlib/mpl-data/stylelib/_classic_test.mplstyle: \n",
"The verbose.fileo rcparam was deprecated in Matplotlib 3.1 and will be removed in 3.3.\n"
]
}
],
"source": [
"## Some useful imports\n",
"import BondGraphTools as bgt\n",
"import numpy as np\n",
"import sympy as sp\n",
"import matplotlib.pyplot as plt\n",
"\n",
"## Stoichiometric analysis\n",
"import stoich as st\n",
"\n",
"## SVG\n",
"import svgBondGraph as sbg\n",
"\n",
"## Display (eg disp.SVG(), disp.\n",
"import IPython.display as disp\n",
"\n",
"quiet = True\n",
"\n",
"## Data file\n",
"import json\n",
"\n",
"## Save the figure\n",
"SaveFig = False"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"([-149.08132530120483, -128.50492880613362, -108.26396495071195, -88.92935377875138, -68.92045454545456, -49.776150054764514, -29.841182913472096, -9.930859802847777, 11.341730558597988, 30.71741511500545], [1.3909090909090907, 1.8090909090909086, 3.409090909090909, 3.6636363636363636, 4.236363636363636, 4.9818181818181815, 5.2272727272727275, 5.363636363636363, 4.863636363636363, 5.3])\n"
]
}
],
"source": [
"## Load data from Eskandari et. al. Fig 3A\n",
"## Digitised using https://apps.automeris.io/wpd/\n",
"\n",
"def loadData():\n",
" \n",
" with open('SGLT_data.json') as f:\n",
" Dict = json.load(f)\n",
" \n",
" List = Dict['datasetColl'][0]['data']\n",
"\n",
" X = []\n",
" Y = []\n",
" for item in List:\n",
" xy = item['value']\n",
" X.append(xy[0])\n",
" Y.append(xy[1])\n",
"\n",
" return X,Y\n",
"\n",
"print(loadData())"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Sodium-Glucose Symporter - zero membrane potential.\n",
"This non-electrogenic version is used to compute species and reaction parameters from the \n",
"published model values."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Bond graph"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"image/svg+xml": [
""
],
"text/plain": [
""
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## Sodium-Glucose tranporter - no E\n",
"sbg.model('SGLT_abg.svg')\n",
"import SGLT_abg\n",
"disp.SVG('SGLT_abg.svg')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Stoichiometry"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"## Stoichiometry\n",
"s0 = st.stoich(SGLT_abg.model(),quiet=quiet)\n",
"chemostats = ['Nai','Nao','Si','So']\n",
"sc0 = st.statify(s0,chemostats=chemostats)\n",
"#print(s['species'])\n",
"#disp.Latex(st.sprint(s0,'K'))\n",
"#print(st.sprints(s))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Convert parameters\n",
"The model of \\citet{EskWriLoo05} is based on rate constants. The following code converts this into the parameters required for the bond graph model."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"def Keq2K(K_eq,N,K,tol=1e-6):\n",
" ## Compute BG C parameters K_c from equilibrium constants K_eq.\n",
" ## NB K_eq must be thremodynamically consistent.\n",
" \n",
" logK_eq = np.log(K_eq)\n",
" #print(K_eq)\n",
" #print(logK_eq)\n",
" \n",
" if len(K) is not 0:\n",
" ##First check that Keq is thermodynamically consistent.\n",
" check = np.linalg.norm(K.T*logK_eq)/np.linalg.norm(logK_eq)\n",
" print(check)\n",
" \n",
" ## Transformation of mu to affinities\n",
" NN = -N.T\n",
" \n",
" ## Pseudo inverse\n",
" pNN = np.linalg.pinv(NN)\n",
" \n",
" ## BG C constants\n",
" K_c = np.exp(pNN@logK_eq)\n",
" \n",
" return K_c"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error in kappa: 1.2e-05\n",
"K_CNai = 0.149\n",
"K_CNao = 49.12\n",
"K_Ci = 0.3457\n",
"K_Co = 40.33\n",
"K_Nai = 13.93\n",
"K_Nao = 13.96\n",
"K_SCNai = 0.099\n",
"K_SCNao = 0.099\n",
"K_Si = 10.12\n",
"K_So = 10.08\n",
"r12 K_eq = 160.0000; kappa = 982183.7246\n",
"r23 K_eq = 5000.0000; kappa = 19492291.8173\n",
"r25 K_eq = 329.6703; kappa = 589.3102\n",
"r34 K_eq = 1.0000; kappa = 48730729.5432\n",
"r45 K_eq = 0.0656; kappa = 779691672.6910\n",
"r56 K_eq = 0.0022; kappa = 6475936.6454\n",
"r61 K_eq = 0.0086; kappa = 837303.6199\n"
]
}
],
"source": [
"## Set non-unit parameters using data from EskWriLoo05\n",
"def setPar(s,tol=1e-6):\n",
" \n",
" ## Extract stoichiometry\n",
" N = s['N']\n",
" Nf = s['Nf']\n",
" Nr = s['Nr']\n",
" K = s['K']\n",
" \n",
" n_V = s['n_V']\n",
" \n",
" \n",
" ## Rate constants from Fig 6.\n",
" kf = {}\n",
" kr = {}\n",
" \n",
" ## Rate constants from Fig 6.\n",
" kf['r12'] = 8e4;\n",
" kr['r12'] = 500;\n",
"\n",
" kf['r23'] = 1e5;\n",
" kr['r23'] = 20;\n",
"\n",
" kf['r34'] = 50;\n",
" kr['r34'] = 50;\n",
"\n",
" kf['r45'] = 800;\n",
" kr['r45'] = 12190;\n",
"\n",
" kf['r56'] = 10;\n",
" kr['r56'] = 4500;\n",
"\n",
" kf['r61'] = 3;\n",
" kr['r61'] = 350;\n",
"\n",
" kf['r25'] = 0.3;\n",
" kr['r25'] = 9.1e-4;\n",
"\n",
" ## Equilibrium constants.\n",
" K_eq = np.zeros(n_V)\n",
" k_f = np.zeros(n_V)\n",
" k_r = np.zeros(n_V)\n",
" for i,reac in enumerate(s['reaction']):\n",
" K_eq[i] = kf[reac]/kr[reac]\n",
" k_f[i] = kf[reac]\n",
" k_r[i] = kr[reac]\n",
" \n",
" ## Compute Ce constants from equilibrium constants\n",
" K_c = Keq2K(K_eq,N,K)\n",
" \n",
"# print(K_eq)\n",
"# print(s['n_X'], K_c.shape)\n",
" \n",
" # Forward rates induced by Cs\n",
" k_f0 = np.exp(Nf.T@np.log(K_c))\n",
" \n",
" ## Rate constants kappa (Amps)\n",
" kappa = (k_f/k_f0)*st.F()\n",
" \n",
" ## Sanity check\n",
" k_r0 = np.exp(Nr.T@np.log(K_c))\n",
" kappa_r = (k_r/k_r0)*st.F()\n",
" check = np.linalg.norm(kappa-kappa_r)\n",
" \n",
" if check>tol:\n",
" print(f'Error in kappa: {check:.2}')\n",
" \n",
" \n",
" ## Parameters\n",
" parameter = {}\n",
" \n",
" ## Ce constants\n",
" for i,spec in enumerate(s['species']):\n",
" print(f'K_{spec} = {K_c[i]:.4}')\n",
" parameter['K_'+spec] = K_c[i]\n",
" \n",
" ## Re constants\n",
" for i,reac in enumerate(s['reaction']):\n",
" print(f'{reac} K_eq = {K_eq[i]:.4f}; kappa = {kappa[i]:.4f}')\n",
" parameter['kappa_'+reac] = kappa[i]\n",
" \n",
" return parameter\n",
"\n",
"par = setPar(s0)\n",
"#print(par)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Electrogenic Sodium-Glucose Symporter\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Bond graph\n",
"The component C:E is added to express the effect of the charged \\ch{Na+} ion crossing the membrane."
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {
"scrolled": false
},
"outputs": [
{
"data": {
"image/svg+xml": [
""
],
"text/plain": [
""
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## Sodium-Glucose tranporter - electrogenic\n",
"sbg.model('ESGLT_abg.svg')\n",
"import ESGLT_abg\n",
"disp.SVG('ESGLT_abg.svg')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Stoichiometry"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"K:\n",
" [[ 0 1]\n",
" [ 1 0]\n",
" [-1 1]\n",
" [ 1 0]\n",
" [ 1 0]\n",
" [ 0 1]\n",
" [ 0 1]]\n"
]
},
{
"data": {
"text/plain": [
""
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## Stoichiometry\n",
"s = st.stoich(ESGLT_abg.model(),linear=['E'], quiet=quiet)\n",
"chemostats = ['Nai','Nao','Si','So','E']\n",
"sc = st.statify(s,chemostats=chemostats)\n",
"\n",
"disp.Latex(st.sprint(sc,'K'))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Reactions and flows"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {
"scrolled": true
},
"outputs": [
{
"data": {
"text/latex": [
"\\begin{align}\n",
"\\ch{Co + 2 Nao &<>[ r12 ] CNao + E }\\\\\n",
"\\ch{CNao + So &<>[ r23 ] SCNao }\\\\\n",
"\\ch{CNao &<>[ r25 ] CNai }\\\\\n",
"\\ch{SCNao &<>[ r34 ] SCNai }\\\\\n",
"\\ch{SCNai &<>[ r45 ] CNai + Si }\\\\\n",
"\\ch{CNai &<>[ r56 ] Ci + 2 Nai }\\\\\n",
"\\ch{Ci &<>[ r61 ] Co }\n",
"\\end{align}\n"
],
"text/plain": [
""
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## Reactions\n",
"disp.Latex(st.sprintrl(s,chemformula=True,all=True))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"data": {
"text/latex": [
"\\begin{align}\n",
"v_{r12} &= \\kappa_{r12} \\left(- K_{CNao} x_{CNao} e^{\\frac{K_{E} x_{E}}{V_{N}}} + K_{Co} K_{Nao}^{2} x_{Co} x_{Nao}^{2}\\right)\\\\\n",
"v_{r23} &= \\kappa_{r23} \\left(K_{CNao} K_{So} x_{CNao} x_{So} - K_{SCNao} x_{SCNao}\\right)\\\\\n",
"v_{r25} &= \\kappa_{r25} \\left(- K_{CNai} x_{CNai} + K_{CNao} x_{CNao}\\right)\\\\\n",
"v_{r34} &= \\kappa_{r34} \\left(- K_{SCNai} x_{SCNai} + K_{SCNao} x_{SCNao}\\right)\\\\\n",
"v_{r45} &= \\kappa_{r45} \\left(- K_{CNai} K_{Si} x_{CNai} x_{Si} + K_{SCNai} x_{SCNai}\\right)\\\\\n",
"v_{r56} &= \\kappa_{r56} \\left(K_{CNai} x_{CNai} - K_{Ci} K_{Nai}^{2} x_{Ci} x_{Nai}^{2}\\right)\\\\\n",
"v_{r61} &= \\kappa_{r61} \\left(K_{Ci} x_{Ci} e^{- \\frac{K_{E} x_{E}}{V_{N}}} - K_{Co} x_{Co}\\right)\n",
"\\end{align}\n"
],
"text/plain": [
""
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"## Flows\n",
"disp.Latex(st.sprintvl(s))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Sdet up initial conditions for simulation"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [],
"source": [
"def setX(s):\n",
" \n",
" sp = s['species']\n",
" X0 = np.zeros(s['n_X'])\n",
" X0[sp.index('So')] = 1e-6\n",
" X0[sp.index('Si')] = 1e-3\n",
" X0[sp.index('Nao')] = 1e-2\n",
" X0[sp.index('Nai')] = 0.5\n",
" \n",
"# X0 *= st.F()\n",
" \n",
" ## Normalised value\n",
" C_T = 1\n",
" others = ['Co','CNao','SCNao','Ci','CNai','SCNai']\n",
" for spec in others:\n",
" X0[sp.index(spec)] = C_T/len(others)\n",
" \n",
" #N_C = 3e6\n",
" N_C = 7.5e7\n",
" N_avo = 6.022e23\n",
" C_T_0 = N_C/N_avo\n",
" \n",
" I_0_pA = 1e12*C_T_0/C_T\n",
" \n",
" print(f'N_C = {N_C}; i_0 = {I_0_pA}pA')\n",
" \n",
" #X0 *= st.F()\n",
" \n",
" return X0,I_0_pA\n",
"\n",
"#print(setX(s))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Comparison with experimental data"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Error in kappa: 1.2e-05\n",
"K_CNai = 0.149\n",
"K_CNao = 49.12\n",
"K_Ci = 0.3457\n",
"K_Co = 40.33\n",
"K_Nai = 13.93\n",
"K_Nao = 13.96\n",
"K_SCNai = 0.099\n",
"K_SCNao = 0.099\n",
"K_Si = 10.12\n",
"K_So = 10.08\n",
"r12 K_eq = 160.0000; kappa = 982183.7246\n",
"r23 K_eq = 5000.0000; kappa = 19492291.8173\n",
"r25 K_eq = 329.6703; kappa = 589.3102\n",
"r34 K_eq = 1.0000; kappa = 48730729.5432\n",
"r45 K_eq = 0.0656; kappa = 779691672.6910\n",
"r56 K_eq = 0.0022; kappa = 6475936.6454\n",
"r61 K_eq = 0.0086; kappa = 837303.6199\n",
"N_C = 75000000.0; i_0 = 0.00012454334108269677pA\n",
"-0.17\n",
"-0.17 + 0.00022000000000000003*t\n",
"-0.17 0.05000000000000002\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"