{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Generating bond graph models from chemical reactions\n", "Manually creating components and connecting them can be cumbersome. An alternative method of generating bond graph models of biochemical networks is to use the Reaction Builder module in BondGraphTools. We first import this module (as well as other necessary modules)." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "from BondGraphTools import reaction_builder\n", "from BondGraphTools.reaction_builder import Reaction_Network\n", "\n", "from BondGraphTools import draw, simulate\n", "from numpy import log\n", "import matplotlib.pyplot as plt\n", "from sympy import init_printing\n", "init_printing()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We define the reactions as follows. Reaction Builder interprets a string for each reaction. Reactions can also be assigned names." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "rn_MM = Reaction_Network(name='Michaelis-Menten enzyme',temperature=310)\n", "rn_MM.add_reaction('E + S = C', name='R1')\n", "rn_MM.add_reaction('C = E + P', name='R2')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will also add chemostats to indicate that the substrate and product are held at constant concentrations." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "rn_MM.add_chemostat('S')\n", "rn_MM.add_chemostat('P')" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The `rn_MM` variable contains the necessary information about the network, including the species:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['E', 'S', 'C', 'P']" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rn_MM.species" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "the reactions:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'R1': ({'E': 1, 'S': 1}, {'C': 1}, None, None),\n", " 'R2': ({'C': 1}, {'E': 1, 'P': 1}, None, None)}" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rn_MM._reactions" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "and stoichiometry:" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAFoAAABkCAYAAAAG2CffAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFE0lEQVR4Ae2cX27UMBDGt4hnVIHEAZYbtHACtjeg3AC4Aa/tGyo3AE6A2hsAJ6jaG5QDIFFVnIDv22akNHW63sx41puMpciJ/8Qzv3jHjjPrnaOjo73ZbHaBIxXOjo+PD1MZkXaXADhdIWV+N/X2Cnk7j1sZn3HOwu3wu30R5w8SOEnkHiDtDdPboL+AfIBN0MpJAruv3XJIY9I90N1yRa7ROE3VKY59nN8UaWTgTUvK1u7RA8VbXQ0K7KLUNxzXOF7iSNoypLsHL9m8QLPnLgdVKPYR5+zVVQTI4yLboyq0nYAQAdrpIQfoAO1EwKmZ6NFOoLNmHc0U6Bdk4jQtNxyi3mVu4bGXywXNKdD+2GGU1C9MR0m6rXsH6BaMkqebAP2sUehpScUG3ruYbFk2eqDQd6phYORCEsPiNpqdIo2rhT8Q31v5asq4RB6yeYKu9gMCQBeXbROmw6WX1tZIgHZ6IgE6QDsRcGomenSAdiLg1Ez06ADtRMCpmejRAdqJgFMzbq/gog9ed6t0oIFc4tL1F7K+wHGCNDPPLRfQEJhfZqp0oGEHgHx08vyE+Ky5prwXuD7AYQLbxUZD2Bsc/LT1AQp8pzK1BMj0HrLsIl5Cplw45xclXn/htUVwAW0haMF7cOUu9W3zHOkLQGfvVocAfbs+Tp/AbhCTIevn3fy1ricNOrO3mnwJmjRodEmBSJvcF8J09JExTpfviKrbcnr3pLmDxPdu2PzExuhAk7LNor/0ds6rh4bnUjFrHt1Md0bnQEO9cJBFyjxImgyKwmxQTBv9r6kp8aAbbXGln5B9npBfejTzh4Y/UnHqgyE50A2Cf/foBv6CL5tfczdv7etNgJbBRXrM2kJbVgBI+pRcI17+e4r3xjnNxlsc73htEbJstEVDEL5aBxrox97LRaRXiDn4MX6N60vEJsETdHEnlaFEAPQGdbkOUyxswnQUU6bmGwdop6cToAO0EwGnZqJHB2gnAk7NsEfzXZ5Tm4cWWJzEGV0zfH1fThsJeo6D38aqeFODHGMKCyiz/O4YNtrpsQZoJ9Dmr+B4nd2D7FzXqG6HGS1TjW4moCEAV7uqdZDRALbSzQo0F2WWi0YQrKodZjSQWRf6mOgWNlr7JDLrB+hMUNpiAVpLMLN+gM4EpS0WoLUEM+ubzDoy29pIsWZ6tnHnnymA5vRs484/YTqcfmcBeotBV+UgY8xxsG5mNhqDTs0OMireFrpZgq7WQUZFGZUBWq1b2GjtU8isH6AzQWmLBWgtwcz6AToTlLZYgNYSzKwfoDNBaYsFaC3BzPoBOhOUtliA1hLMrB+gM0Fpi5m9glMQvKoW3cVFq+yq+pC/mPOPGWgIWXwXl1WghuRDbhfnHxPTAWFddnEZAnJVHcjusjuOCWgow9Wt1H/yzpG+aHrNKp1HnW8FegFKKUd2+cM68ycd1KAze+vkndzVoNFNBSK/NvcFDjiTDhagcwDKt7acsqMsYwE6ZZsFlvR2zS4ucq+tjtWgOT1qCKTMg6TJoLjVsDTCq0E3jZfcxUWjXzV1rUDT1aD4Li7VUBsgiAlomA+XXVwG6LduFRm0ZWxZt35vebO1DrSwj6PoLi69Wigz0FGKO/+YgW4GxaK7uCh59laH7GoHmd6bNxkmpmNVI5E/mwVop14QoAO0EwGnZqJHO4FuzzquMPp2mz3zGJG7jW7jNThdQe55n+wELTvQpMpMfo0iBaUnTT5MJ7P/A88nS8bobJ1OAAAAAElFTkSuQmCC\n", "text/latex": [ "$\\displaystyle \\left[\\begin{matrix}-1 & 1\\\\-1 & 0\\\\1 & -1\\\\0 & 1\\end{matrix}\\right]$" ], "text/plain": [ "⎡-1 1 ⎤\n", "⎢ ⎥\n", "⎢-1 0 ⎥\n", "⎢ ⎥\n", "⎢1 -1⎥\n", "⎢ ⎥\n", "⎣0 1 ⎦" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "rn_MM.stoichiometry" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We will now use this reaction network to generate a bond graph." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "model_MM_rn = rn_MM.as_network_model()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The structure of the reaction network is the same as above." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "draw(model_MM_rn)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Also note that because we did not explicitly create bond graph components for the reaction and species, they need to be found within the new model. BondGraphTools provides a universal resource identifier (URI) interface for accessing the components within a model. For example, the C:E component can be accessed using the identifier below:" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "C: E" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_MM_rn/\"C:E\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The constitutive equations also have the same linear form. The exponent below arises from the non-unity value of the $RT$ constant." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAABXsAAAAmCAYAAACVgEgUAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAXnElEQVR4Ae2d7bXctBaGJ1kpIDdUwKWDwK2A0EEgFZB0kKz8Sv6xoINABZB0wKUCQjqAWwEhHeS+j4/ko/GxPbKP5I85r9bS2Nbn1mNtSd6j8dz6+PHjwc4EzonAy5cv76o993T8Kz1fo41p/en5GrK4ThPYMoFUP9LzNWRO60/P15DFdZqACZiACZjAKQLpXJWen8pXIz6tPz2vUZfLNIG9E0h1JD1fo11p/en5GrK4ThMwgesTuCNFfqhiXneKeqLwHzthvjSBQQLqL/cV+UVI8LmOrxT2jmsd/60D8ffkMcS+U9h/dSSOvvdK/q3OPxAWna7J80j+T/nP5CnzLx0POg7mU/Q3IS1JqedrTrpOZfyqsK91bOodK1NxtAFdoX7O3ygsyjLYdqUblOVEmQ+UF1bURdtfK31kdkqWXmYqw84EjgioTw323dA/ib8nb70N5Ky3R13IFyZgAiZwYwl4Du1f96tDeO17Y7ViHw237lp399FTLaUJ5BHQmIY97XEn9b/uhAAMV70GsU4GX5rAEIHvFfFM/QhDLkbRn+Qx+uK+T/uXzjHUNoZLHTEmYXQ9KJwDDgPsGx1/0/FfBOiIsek3+VjmWD7S3yLfkFM8yoDRNHVjZSLzl8oXDcN/6DrKMtb2MVnGysS4m7b9H9UX2zSWb4xZ2lafmwAExvqu9ba/j4zpn/W2n5lDTcAETOAcCXgO7V/3e+17jr39vNpk3bXunlePdmtuNAHZjZ4IAL5xusZ2dLh9celPE7g2AQy0GHoxoLKzlG8Xovtd4X/KP8Qr8OcYoSO7dW/hdY7xtDH06hrjLr5xusbIej+EE9abr0msD9LJP5DvGnSJQ4ZobI5ZOPaWqfTI8W8dkSE6rqN8Y20/kE7+SJaQd6zMaEimPtrQ1D2WL8RFmQ66Jk/LTNfwx4D3lEJxOk/v00WgP28SgbG+a7213t4kXXBbTcAETGAqAc+h/et+1pde+07tTU6/JAHrrnV3yf7mukxgFQK3V6nVlZ4dAS3qPshjlOT1A+/l3yaN5JUgvNKBb1HxzesPdGQx+EM4Nnl1zY5ewjFU/qAjhlmum6NO+Uk51735iJOj/gdKg0EXA2e7pV3n7N5F1lYGXTdOYUNlUidlpo5rZD4o31jbh2Q5VWYqH8zizvvBfMihdIPMkFXud3leC4HcsKA8uxtK4ETftd5eHUMG9Y8uJJ7W2xuqS262CZjAzSPgOXRw3e+1781Th1212Lpr3d1Vh7WwJjCTwO2Z+ZzNBI4IaNJklyp/iIaBCOPkHzqPu0x/0jnfoGJkfCbPqwZinC4bx8+fG2NrDNA1adktjAEZw22fkfZKPtIqT2M01jnyNLtXFUadX+jYt6tXUa3rlsmitWsU5Rrj6kHljbW9VxZlGy2TcnEqG9l5PUaUeTSf0g0yUxxM2HXNz9BxcMX4e+SUjvb8Kt+9R0fpfLF/AuFeW2+vjlm70lvdR3bwPw6eXyjc33/vdAtMwARMYNsENNaOrf+89r24fe06XJeja9h4t8XVa98Iw8cqBKy7g8/sXv9W6XEu1ATWIWBj7zrcz6pWTZgYBfkTtehaI2GIi+EHXWNw/KUN0InCMEy0eWKcwnmX73sdMXSyO/e7GMdxKJ+i/pem0/mHcI2B9q7yPcXrnJ25z3Xe7NAljc6vyKIw8qc79kiKgQyP3L1tJ5FcryxjZV5ka2TBaB7fg9y8euFUPsWPMlN5GIWi4fgrXTOpx13TB53TfnzLROd2Z0hA93qw74a4ttW6tt6KhjgMjgURltIsrreqmzr5k0seqhkDfpK3MwETMAETqERA463n0Eu2sEid174pDZ9vioB193yeW9WxvP7dlHZZmK0RuLM1gSzP/gho0mTH7RN5DLIs+P4j/xXhtEbHn+UxVnJNPDtnmzid4zDCvmvOjj/YgcputU905J2/GDJSN5TvW6XFgEk8u4m/JJPCMNjymgNkaF/tQFzihspkZzJtoAzSNK9VUNho25WuVxaF43rLJELl8gdw9+UxTOvQ1Bt3Pg/mU7pTzNj1F+8FzNnpi3GocYojjN3UTJ52Z0xA93i07yreetsZQ0J3GNQ/MVtFbyUXMnE/+ZIGnfa7uMPN8sEETMAEahAIY67Xvj3rfvH22rdGp3OZRQhYd4ef2femu5LX698iWuFCzpXArRcvXmAUe6SBL74T9Fzb6naZgAlkEtB4wG7lz1kQZWZxMhMwgRUJSFcx9PJqFv7ckS91+r5AW1FCV20CJmACJmAC2yXgte92740lM4EhAl7/DpFx+E0mIL34R+3/9PZNhuC2m4AJmIAJmMDeCbDQlR969/Lem2f5TcAETMAETMAETMAETOCIgNe/Rzh8YQJXCNjYewWJA0zABEzABExgHwS00OW1NGPvDd9HQyylCZiACZiACZiACZiACWQQ8Po3A5KT3HgCs17jIOXiXaL8AQw/G/1F109uPEkDMIEzIBB0m5+CP5fnHcm/K4w/57IzARPYKAHpaHwHOYZf3pnOaxziHzFuVGqLZQL7IhDmR69993XbLK0JnCQQdNtr35OknMAEtkXA699t3Q9Lsx0C0o3mNQ6zjL2xGSrko855MbaNQRHKGR/D/T7jFrppcwmob9yam9f56hOw7tZnvNcarLt7vXOWey0CYTz12netG7BwvZ4/Fwa+o+o8f277Zll3t31/1pTOursmfde9BAH18cbYe2duZSqAb0Bxq+8eCrLwzkJ2ItpVIiC+NuhVYntTi7XuLnPnrbvLcHYtJmAC500gzFk0cvW173mT3k7rPH9u515YEhOYQsC6O4WW0+YSCOsA251ygU1MZ74TgZ1IPtvYq3K/kucPYT6cqGOJaH66irdbgIDuOa/veCXPzpb2/ofwhwr/S540bxTG+cFxh7Plwv29hrPuXgPe1KxBD627HpuacXlq/3F6EzCBTa19fTsWJOD58+at7eleY88vC3Y/V3UNAtbdm6e7lfXWz67X0MeMrOabASk3yXWMvezs9c6GXNJnkk6DJ+9rxpCL77rXCvhSaRoDsI5/6PrzkMhx58ul2w98vUEC1l2PTXTLzri8wZ5qkUxg0wS89t307akjnOfPGzt/0qHGnl/qdDiXWoyAdffG6q71tpgWuaA9E8gy9mqgxLD3vTy7gf6Wx8iL0e87+dYpHZb4+Ecx/EnMt/LkfSSP29yfPSUyfyb5/tD10asgdM1g8a2OjQGTRpxyNcqMdSZlE1SMcSiXP+Xi/uLg8azbbl2/U/g7HekPrQv5+UlDyolr+gTOcRccIouz4NK535ctXOAs9C3Gm83rbiIrZIrpLYWFsq27HmMmjb3qN2l6utJiLtGHG627NYGb8fXpiuHZrn2h4z7SMvD86fkznQ+bZxfpx4egI73PL8Rff5SZV4J117ob+gAdqLd/hp7luEsVa/X6MmjZsz3pLWQSebks+uxKgTVcIvPmny9ofyIvl1UY36bkMSch2MXADk0Mf/gfdB4Nfd2dvd8TH9L8rnT8a/ED8ul4N8mn082450HeXyVRbFcjnMIxJD3UceqEXqPMCKw4Y7Uv3uOfYYFXZfzUmwVwrrunhO87ibnmYclxx2DOictxy5a9qqFnNcqESnG9pVDrbjPmeIyZN/bShdZyNfSsRpnwqaK7C4CvwaNGmZtknIyt57r2hXuN+1mjzCp9JLnHXvvOm0POfW1PvxtrI/FruRp6VqNM+BSfQ627XvuqX43p5ljcWjpLvTV0rEaZkVFx3Y0FVzzW4FGjzIigOuPRnb0aTDHQsrOVxW76jj/O2d3ZGkF1jmE0NZYSx3tK2d2LQ/HS+IPyxGt2k36ia4zCiznVd1+VYZTG8Q7irrGSsHdEpm5M7rlldspnh3F8/UEbpbDijFUmhhIM3U90nrYVAzDhuQ523OPUcU0/cFxK5YLTuXA5btlCV+qrm9DdoD9P1OyoK+jTe4W/iSh0XlxvKTvUbd31GDN3fI1ddNGj+u1k3VWeuxIyfvmIjuHaX9zMKfOiiMtPlXFl3lXYHN1F1m/kmVOvzOOXNdY7m8NDeYozVpncqxrjY1XGgUXNtW9V+XN61pw+QrnKN7hun1tmKq/KKKWHg3KGdnjte15r0bnz4Fg+usqp+LT7LnI+V89K667KqzW+W3cvepKfocf1b0w3x+IW0dNuJXP0VnmKr8t65Loy55JGde9u/bsVxpLj5Ni4JONRY68EYcC9K6GPXm2gMAyBrTFD57i3SpcahHnIaQ3Civu6SRU+dE0n+ltHdpEedHwg/6s8BtZepzh2m1J31zEgHhTPQ0XXIcNR3UkC/mDuXbjm4ezotRS6pq6jMKU/JffkMkP9zUHlP9UJD8N9rgZjmOK4z9SN+0See9Hdud1E9n0oLT93Su8/yWDRhMVjktdxgnEOXJJ7Oniqdp6r7jKgMyagO/R1/pSwO17W0FtV1ey+52jdFYRz0KWl20DnOeUkE4vN3+Q55jr+vDPOrd08c+ZIvvlu53edM57wiyN+poWbU+ZFTn2qvKF5d6ruMnfHNUo2L9V/roxrjI+zGLc3O++k5tp3lvxb6COSYa3171Q9PCUnvcBrX6/Rc55PRp9tcoaTM9bdGuO7dfeyU/k5WSykP8VtC5eIx89Ud8ln1znr1LXWvoCZOu9OXtsU5ovMW2GcMzYuwphK7vAx4r5R3JHBTzeGhxIaEXeyNdkV3n2wI++RobRJePnBYvrLeKn8/5XHwMg7VbqK3SRTePuwF/NxVDg7iMnXGI7TuLFzpf9AvI48nNGu1kijMNpI2FH7dT0q98wyVWwrR2/bQ3wNxrT9jeTOYqd0UZnvKR/b2tP3MPOAH41exKdGdsddGAPPkQvdc9SpX5yz7vKnhF3dbHn0xJUaG627HmNiP5s7vsb8g0f1X+bJYjtUQ3kHHafMu4+V/rV8nI+Zhwm7L59+qTylzKbNyk+e3nmXsptElx+juhvSIw9rkmyn9OfMuOj4OJdx9s24SMh9jn2tCVG9rAevvfadK/9G+sgq69/A7OLOXHyO6qGSjMoZCvL86fkz9qmx+ZM0p+JjOb3HM9fdouO7AFp3z/dZcUyPlo7r1dVuoHS32LNrGAcOOk5Zp66y9oWD5Ky+/lUdxfgGmVlLI/sWGI+OjUHO6oyp5w4ffU6gWNjij4y6umaRBcijhTBh0SWQ292/oTzy8S1pNKR2H7C4SRgTu+Gx6FpHjJJ8G9B0klBJ87CmsPZGTJQ7q8zYIJUNa9reGpxjXN9R6WNHLsE4vsqir6qjsMADJleMw4rjvl0JpwDHnS8X7u+KLkvP1P+mjDlZZaZtVvlRH/nSKh1H0mSHJF0JvaVs624gLLYef45628XFGJee5EsGTdEzFoRvM4SbUib6mD3vKm3U8V7dzZBtjSRTeFRhTKMTdtcaH5cAGPoE/aL42ncJ+WfUkdVHxKXaHBqYZ61/k77Uq4cT5fT8GTqMuHn+HFCeMTYDWZYKXl13aaj4xLnxWuO7ypkyxlh3Qy8b65+O63/2XkpBB+rJ0tuQt8q6TP0ie+2LHEofdbx33h1o55rBqzPucBsdGztpizO+nXEnuobX9j22uvn8eVn8d0N25dIZcHTO7k9f2AUajSB0sj73XoHsfFzaMcG0Rt1QOe1sDNqS+7E8Mk+RO7fMUF2zS6nXUEoC6pevwZj7y2sbrjjVN2l30pUCHGAC9Qnk6llN3X2uZqJHjBc/pXpTUW8ha92Fgt1eCeTq7kF69KP8h6ShrDHSn2vFqOwyQwbm9t55V+FT59wow5aO2TwqMi45Pmaz5f5lJ+5PWGPt21/TuqG5fWSIZ9+6PbfM2PKSepgrp+fPSN/HvRLI1bNcnYBDbpmRWcnxPVdO626k7+MeCWTrWMV12eCcC1DWT/JTbE5buw9bYDw4Ni7N+PbQ3dFN/qA4jBcAa5zCMP7x7fvbi5DDVwpj0MXIi3+vawZrFn+tUxhxOd/CYegdGuzb8iqcHC3qJS9t/EI+GoA/Uxg8hlyf3Nllqmy4tpb8gUpqMeYnM5TdOsmDkr9SQGx/G+cTE9gYgWw9G5D7urrLt3X8/Cj+MuA71fM6qauW3lKFdTcB7dPdEZilu9I15mfmzL5XS2SXqXJOzbuldHfNG5PNIxWyIOOlxsdU/IPkZx35j46813mSUx7WekuvfSfJWDjxrD6SyHDdOXQpPezK6fkzuYk+3SWBtXV3qfHdurvL7mmhBwjM0lutTZZa+yL23te/azM+NTYuyvjOQEeMwWyDZqfaUx3Z/fmzPDteeWE0YRgEcSyMef0AneOgOP6Fmm8EiGexjRE4NWYOGU5ZoB/dIF0v4Z6pEtrJ4u9veWTgQTK2k3bjpsidVabqxJh+T8dT7a7CWPWyYwrjLm3/k0bKcc3OKTsT2DqBLD1TI4rrLmCkJ/y6IR3bGj1W2AN5dLaK3oa6rbuAsNsrgVzdbdsnnWK+ZK76XOd9Op1VZijn1Lw7VXdbOTd0ksUjlbcUY8pUWaXHx1TUwXPV+0GesZi1DL6vrwzmV0Stte9YnWvF5faRIYZ3JXh3/ZpVpu5Lzvp3qh5myam6PX+u1eNcbykCWXqmyrJ0IgiVW+ZBOlR6fM+S07pbqvu4nJUIZOtYlE99fsm1L9VOnXejqFs5rsYYABljI8kWY3zrxYsXfKv+SIKxuF3Mqb5/VNnRy4sV9lFh7KLtLhxH5VJ62jD5D9pGCx2ILCk3Vag8vql5lFTHwpl/I+WnpemfnyVJ8k5Ly5pXq1OZQD4B9dHd6i6tlPyMWRieml3wOjIh86XJ5HFMeRqnMoqNjbFMH01g7wSCbj3TsfkiMlwfdJy0XoCD8lSbd0P5jGt8WfwZ13txkpfxqwhj2qzyio+PkaXKPsk4pGGHxZARIRa3+DFH/sWFOlGhZC46N6m8KnpYWs4TWBxtApsnUEMnVGbx8b2GnJu/ORZwdwTUT5d8di22LpPcVebc9AYGNtda/y7JF9lVXzHGobziY+McxmoXa7ZPT+3sTcsufc7PndkJHI0knL+RYJMf3JSPhfxSi/mSctPBaH/7ugRd0+Ew9n6n8+u2qaisksnOBEoT2K3uBhD8oiEds1gAzB3HIlvrbSThowmIQJgX+aUQhkgWq7gn8nx7P9mpjJrz7mR5tpChNOPQphrj4xRc/1G70l9eTMnrtFcJFJ2bKuphUTmvYnCICeyOQA2dqDG+15BzdzfLAm+ewCLPrqXXZRXn3NI3bBG+CF2acQBRY2yczXi1nb0BMD/HxPHqBHbA8CB3XQMn5VV1krGK3CoXIy+vycBgREfhVRjXelCpJatkszOB3REorQ8q764gPJdnDGv+6FBhswxQKczScqZl+9wE9kZA+sC30+jakVP4raOAGRcqo9i8q7L4svaJPF9eY5TmFzp/K7z3T+AUtxknGYszVpnFx8dcxqHuxzpuin2u/JvpGB1BJP8u1r+15Ozg8KUJ7IZAaZ1QecXHd2CWlnM3N8iCmkCHgHSh+LosVqGyi619KVPl7XL9W4Oxyqw1Nk5iHNr26arG3tjhfDQBEzABEzABEzABEzCBEgS0yH0qvylDb4l2uQwTMAETMAETMAETMAETGCMQjb23xxI5zgRMwARMwARMwARMwAT2RMCG3j3dLctqAiZgAiZgAiZgAiZQmoCNvaWJujwTMAETMAETMAETMAETMAETMAETMAETMAETMAETWIGAjb0rQHeVJmACJmACJmACJmACJmACJmACJmACJmACJmACJlCagI29pYm6PBMwARMwARMwARMwARMwARMwARMwARMwARMwARNYgYCNvStAd5UmYAImYAImYAImYAImYAImYAImYAImYAImYAImUJqAjb2libo8EzABEzABEzABEzABEzABEzABEzABEzABEzABE1iBgI29K0B3lSZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZgAiZQmoCNvaWJujwTMAETMAETMAETMAETMAETMAETMAETMAETMAETWIHAnVDnw5cvX35M6n+i6x+Ta5+agAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAmYgAlsgIBst68kxuOuKP8HlWMgMvRHsU0AAAAASUVORK5CYII=\n", "text/latex": [ "$\\displaystyle \\left[ dx_{0} + u_{0} u_{4} x_{0} e^{\\frac{387975470350209 u_{1}}{1000000000000000000}} + u_{0} u_{5} x_{0} e^{\\frac{387975470350209 u_{3}}{1000000000000000000}} - u_{2} u_{4} x_{1} - u_{2} u_{5} x_{1}, \\ dx_{1} - u_{0} u_{4} x_{0} e^{\\frac{387975470350209 u_{1}}{1000000000000000000}} - u_{0} u_{5} x_{0} e^{\\frac{387975470350209 u_{3}}{1000000000000000000}} + u_{2} u_{4} x_{1} + u_{2} u_{5} x_{1}\\right]$" ], "text/plain": [ "⎡ 387975470350209⋅u₁ 387975470350209⋅u₃ \n", "⎢ ─────────────────── ─────────────────── \n", "⎢ 1000000000000000000 1000000000000000000 \n", "⎣dx₀ + u₀⋅u₄⋅x₀⋅ℯ + u₀⋅u₅⋅x₀⋅ℯ - u₂⋅u₄⋅x\n", "\n", " 387975470350209⋅u₁ 387975470350209\n", " ─────────────────── ────────────────\n", " 1000000000000000000 1000000000000000\n", "₁ - u₂⋅u₅⋅x₁, dx₁ - u₀⋅u₄⋅x₀⋅ℯ - u₀⋅u₅⋅x₀⋅ℯ \n", "\n", "⋅u₃ ⎤\n", "─── ⎥\n", "000 ⎥\n", " + u₂⋅u₄⋅x₁ + u₂⋅u₅⋅x₁⎦" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_MM_rn.constitutive_relations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The state and control variables are defined below:" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'x_0': (C: E, 'q_0'), 'x_1': (C: C, 'q_0')}" ] }, "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_MM_rn.state_vars" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "{'u_0': (C: E, 'k'),\n", " 'u_1': (SS: S, 'e'),\n", " 'u_2': (C: C, 'k'),\n", " 'u_3': (SS: P, 'e'),\n", " 'u_4': (R: R1, 'r'),\n", " 'u_5': (R: R2, 'r')}" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_MM_rn.control_vars" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As seen above, the parameters for each species and reaction are control variables that can be set. As before, we set the values to 1." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "(model_MM_rn/\"C:E\").set_param('k',1)\n", "(model_MM_rn/\"C:C\").set_param('k',1)\n", "(model_MM_rn/\"R:R1\").set_param('r',1)\n", "(model_MM_rn/\"R:R2\").set_param('r',1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We also set the values of the chemostats using the chemical potential equation" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [], "source": [ "R = reaction_builder.R\n", "T = 310\n", "K_S = 1\n", "K_P = 1\n", "x_S = 2\n", "x_P = 1\n", "(model_MM_rn/\"SS:S\").set_param('e',R*T*log(K_S*x_S))\n", "(model_MM_rn/\"SS:P\").set_param('e',R*T*log(K_P*x_P))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "If we now show the equations of the system, we retrieve the familiar mass action equations." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/latex": [ "$\\displaystyle \\left[ dx_{0} + 3 x_{0} - 2 x_{1}, \\ dx_{1} - 3 x_{0} + 2 x_{1}\\right]$" ], "text/plain": [ "[dx₀ + 3⋅x₀ - 2⋅x₁, dx₁ - 3⋅x₀ + 2⋅x₁]" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model_MM_rn.constitutive_relations" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "These equations can be simulated as follows." ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "t,x = simulate(model_MM_rn, timespan=(0.,3.), x0=[1,2])\n", "plt.plot(t,x)\n", "plt.xlabel('Time')\n", "plt.ylabel('Amount')\n", "plt.legend(['E','C'])\n", "plt.show()" ] } ], "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.8.8" } }, "nbformat": 4, "nbformat_minor": 2 }