{ "cells": [ { "cell_type": "code", "execution_count": 2, "metadata": { "collapsed": true }, "outputs": [], "source": [ "%matplotlib inline\n", "import matplotlib.pyplot as plt\n", "import numpy as np\n", "from scipy.integrate import odeint\n", "import seaborn as sns\n", "sns.set(\n", " style='white'\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## General equation\n", "$$\n", "\\frac{dS}{dt} = \\nu - \\sum_{i=1}^{n}{N_i J_i^S(S)} \\\\\n", "\\frac{dN_i}{dt} = cJ_i^{ATP}(S)N_i - d N_i\n", "$$\n", "\n", "\n", "- $\\nu$ resource production rate\n", "- $J_i^S(S)$ resource consumption rate of strain $i$\n", "- $J_i^{ATP}(S)$ ATP production rate of strain $i$\n", "- $c$ porportion between ATP production and growth rate\n", "- $d$ death rate" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Single strain\n", "\n", "$$\n", "\\frac{dS}{dt} = \\nu - N_1 J^S(S) \\\\\n", "\\frac{dN_1}{dt} = cJ_1^{ATP}(S)N_1 - d N_1\n", "$$\n", "\n", "When $\\nu,d>0$, the equilibrium ($dS/dt=dN_1/dt=0$) solved by: \n", "$$\n", "J_1^{ATP}(S^*)=\\frac{d}{c} \\\\\n", "N_1^* = \\frac{J_1^{ATP}(S^*)}{J^S(S^*)} \\frac{\\nu c }{d}\n", "$$\n", "for any choice of $J_1^S, J_1^{ATP}$.\n", "\n", "For $\\nu=0, d>0$, $S,N_1\\to 0$.\n", "\n", "For $\\nu>0, d=0$, $N_1\\to \\infty$.\n", "\n", "For $\\nu=d=0$, if we assume that \n", "\n", "then the model resolved to a logistic model:\n", "$$\n", "\\frac{dN}{dt} = \\frac{m}{K} N \\Big(1-\\frac{N}{K}\\Big)\n", "$$\n", "where $K=\\frac{c}{m}S^m(0)+N(0)$. \n", "\n", "If \n", "$$\n", "J^S(S)=S^m \\\\\n", "J_1^{ATP}(S) = S\n", "$$\n", "\n", "then we get:\n", "$$\n", "\\frac{dN}{dt} = \\frac{1}{m K} N \\Big(1-\\frac{N}{K}\\Big)\n", "$$\n", "with $K=mcS(0)+N(0)$." ] }, { "cell_type": "code", "execution_count": 46, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def JS(S):\n", " return S/(1 + S) # respiration\n", "def JATP(S):\n", " return 32 * JS(S) # respiration\n", "\n", "def dydt(y, t, nu, c, d):\n", " S, N = y\n", " dS = nu - N * JS(S)\n", " dN = c * JATP(S) * N - d * N\n", " return [dS, dN]\n", "\n", "t = np.linspace(0, 20, 1000)\n", "nu, c, d = 5, 1, 10\n", "S0, N0 = 0.1, 0.1\n", "\n", "y = odeint(dydt, y0=(S0, N0), t=t, args=(nu, c, d))\n", "if d > 0:\n", " K = nu * c/d * JATP(y[-1,0]) / JS(y[-1,0])\n", "# elif nu == 0:\n", "# K = c/m * S0**m + N0\n", "elif nu > 0:\n", " K = np.inf\n", " \n", "red, blue = sns.color_palette('Set1', 2)\n", "fig, ax = plt.subplots(1, 2, sharex=True, sharey=False, figsize=(10,4))\n", "ax[0].plot(t, y[:,0], color=red, label='S')\n", "ax[1].plot(t, y[:,1], color=blue, label='N1')\n", "ax[1].axhline(y=K, color='k', ls='-.')\n", "ax[0].set(\n", " xlabel='time',\n", " ylabel='concentration',\n", " title='resource'\n", ")\n", "ax[1].set(\n", " xlabel='time',\n", " title='population'\n", ")\n", "# plt.legend()\n", "sns.despine()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Two types: respirator and fermentor\n", "\n", "$$\n", "\\frac{dS}{dt} = \\nu - \\frac{S}{1 + S} N_1 - \\frac{100S}{100 + S} N_2 \\\\\n", "\\frac{dN_1}{dt} = N_1 \\Big(32c \\frac{S}{1+S} - d\\Big) \\\\\n", "\\frac{dN_1}{dt} = N_2 \\Big(32c \\frac{S}{1+S} + 2c \\Big(\\frac{100S}{100 + S} - \\frac{S}{1 + S}\\Big) - d \\Big)\n", "$$" ] }, { "cell_type": "code", "execution_count": 107, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "def J1S(S): # respiration\n", " return S/(1 + S) \n", "def J2S(S): # fermentation\n", " return 100*S/(100 + S) \n", "def J1ATP(S): # respiration\n", " return 32 * J1S(S) \n", "def J2ATP(S): # fermentation\n", " return 32 * J1S(S) + 2*(J2S(S) - J1S(S)) \n", "\n", "def dydt(y, t, nu, c, d):\n", " S, N1, N2 = y\n", " dS = nu - N1 * J1S(S) - N2 * J2S(S)\n", " dN1 = c * J1ATP(S) * N1 - d * N1\n", " dN2 = c * J2ATP(S) * N2 - d * N2\n", " return [dS, dN1, dN2]\n", "\n", "t = np.linspace(0, 12, 100)\n", "nu, c, d = 0, 0.3, 0\n", "S0, N10, N20 = 0.2, 0.01, 0.01\n", "\n", "y = odeint(dydt, y0=(S0, N10, N20), t=t, args=(nu, c, d))\n", " \n", "red, blue, green = sns.color_palette('Set1', 3)\n", "fig, ax = plt.subplots(1, 2, sharex=True, sharey=False, figsize=(10,4))\n", "ax[0].plot(t, y[:,0], color=red, label='S')\n", "ax[1].plot(t, y[:,1], color=blue, label='N1')\n", "ax[1].plot(t, y[:,2], color=green, label='N2')\n", "ax[0].set(\n", " xlabel='time',\n", " ylabel='concentration',\n", " title='resource'\n", ")\n", "ax[1].set(\n", " xlabel='time',\n", " title='population'\n", ")\n", "ax[1].legend(loc='lower right')\n", "sns.despine()" ] }, { "cell_type": "code", "execution_count": 106, "metadata": { "collapsed": false }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig,ax = plt.subplots(1, 2, sharex=True)\n", "S = y[:,0]\n", "ax[0].plot(S, J1S(S), color=blue)\n", "ax[0].plot(S, J2S(S), ls='--', color=green)\n", "ax[1].plot(S, J1ATP(S)/J1S(S), color=blue)\n", "ax[1].plot(S, J2ATP(S)/J2S(S), ls='--', color=green)\n", "ax[0].set(\n", " xlabel='S',\n", " ylabel='rate', \n", ")\n", "ax[1].set(\n", " xlabel='S',\n", " ylabel='yield',\n", " ylim=((J2ATP(S)/J2S(S)).min()*0.9, (J2ATP(S)/J2S(S)).max()*1.1)\n", ")\n", "sns.despine()" ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "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.4.4" } }, "nbformat": 4, "nbformat_minor": 0 }