From 1ea0ba1e6aa9291ee5dcc324986ac04e05c62542 Mon Sep 17 00:00:00 2001 From: Helen G Scott Date: Fri, 1 Nov 2024 13:38:47 -0400 Subject: [PATCH] Run example --- demo/out/dfba_single_custom_timeseries.png | Bin 0 -> 23175 bytes demo/out/dfba_single_timeseries.png | Bin 0 -> 19565 bytes demo/out/single_dfb_custom.json | 120 ++++++++ demo/out/single_dfba.json | 106 +++++++ demo/particle_comets.ipynb | 316 +++++++++++++++------ 5 files changed, 463 insertions(+), 79 deletions(-) create mode 100644 demo/out/dfba_single_custom_timeseries.png create mode 100644 demo/out/dfba_single_timeseries.png create mode 100644 demo/out/single_dfb_custom.json create mode 100644 demo/out/single_dfba.json diff --git a/demo/out/dfba_single_custom_timeseries.png b/demo/out/dfba_single_custom_timeseries.png new file mode 100644 index 0000000000000000000000000000000000000000..63de0e04b219d78a21add7befff1c6e79345784e GIT binary patch literal 23175 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 Xnq1dPysCZ${}I%6G#9>8(BVG;yD-kn literal 0 HcmV?d00001 diff --git a/demo/out/dfba_single_timeseries.png b/demo/out/dfba_single_timeseries.png new file mode 100644 index 0000000000000000000000000000000000000000..23cff76d2899a296044c39a874e3931a55298feb GIT binary patch literal 19565 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 M)78&qol`;+0Hy$n_5c6? literal 0 HcmV?d00001 diff --git a/demo/out/single_dfb_custom.json b/demo/out/single_dfb_custom.json new file mode 100644 index 0000000..dedd6e1 --- /dev/null +++ b/demo/out/single_dfb_custom.json @@ -0,0 +1,120 @@ +{ + "state": { + "global_time": "0.0", + "dfba": { + "_type": "process", + "address": "local:DynamicFBA", + "config": { + "model_file": "/Users/helenscott/Documents/PhD/Segre-lab/GEM-repos/ecoli/iJO1366.xml", + "model": "None", + "kinetic_params": { + "Glucose": [ + "0.5", + "1.0" + ], + "Acetate": [ + "0.5", + "2.0" + ], + "CO2": [ + "0.5", + "1.0" + ] + }, + "biomass_reaction": "BIOMASS_Ec_iJO1366_WT_53p95M", + "substrate_update_reactions": { + "Glucose": "EX_glc__D_e", + "Acetate": "EX_ac_e", + "CO2": "EX_co2_e" + }, + "biomass_identifier": "Biomass", + "bounds": { + "EX_o2_e": {}, + "ATPM": {} + } + }, + "inputs": { + "substrates": { + "Glucose": [ + "fields", + "Glucose" + ], + "Acetate": [ + "fields", + "Acetate" + ], + "CO2": [ + "fields", + "CO2" + ], + "Biomass": [ + "fields", + "Biomass" + ] + } + }, + "outputs": { + "substrates": { + "Glucose": [ + "fields", + "Glucose" + ], + "Acetate": [ + "fields", + "Acetate" + ], + "CO2": [ + "fields", + "CO2" + ], + "Biomass": [ + "fields", + "Biomass" + ] + } + }, + "interval": 1.0, + "_inputs": { + "substrates": "map[positive_float]" + }, + "_outputs": { + "substrates": "map[positive_float]" + } + }, + "fields": { + "Glucose": "10.0", + "Acetate": "0.0", + "CO2": "0.0", + "Biomass": "0.1" + }, + "emitter": { + "_type": "step", + "address": "local:ram-emitter", + "config": { + "emit": { + "dfba": "any", + "fields": "any", + "global_time": "any" + } + }, + "inputs": { + "dfba": [ + "dfba" + ], + "fields": [ + "fields" + ], + "global_time": [ + "global_time" + ] + }, + "_inputs": { + "dfba": "any", + "fields": "any", + "global_time": "any" + }, + "_outputs": {}, + "outputs": {} + } + } +} \ No newline at end of file diff --git a/demo/out/single_dfba.json b/demo/out/single_dfba.json new file mode 100644 index 0000000..877daba --- /dev/null +++ b/demo/out/single_dfba.json @@ -0,0 +1,106 @@ +{ + "state": { + "global_time": "0.0", + "dfba": { + "_type": "process", + "address": "local:DynamicFBA", + "config": { + "model_file": "textbook", + "model": "None", + "kinetic_params": { + "glucose": [ + "0.5", + "1.0" + ], + "acetate": [ + "0.5", + "2.0" + ] + }, + "biomass_reaction": "Biomass_Ecoli_core", + "substrate_update_reactions": { + "glucose": "EX_glc__D_e", + "acetate": "EX_ac_e" + }, + "biomass_identifier": "biomass", + "bounds": { + "EX_o2_e": {}, + "ATPM": {} + } + }, + "inputs": { + "substrates": { + "glucose": [ + "fields", + "glucose" + ], + "acetate": [ + "fields", + "acetate" + ], + "biomass": [ + "fields", + "biomass" + ] + } + }, + "outputs": { + "substrates": { + "glucose": [ + "fields", + "glucose" + ], + "acetate": [ + "fields", + "acetate" + ], + "biomass": [ + "fields", + "biomass" + ] + } + }, + "interval": 1.0, + "_inputs": { + "substrates": "map[positive_float]" + }, + "_outputs": { + "substrates": "map[positive_float]" + } + }, + "fields": { + "glucose": "10.0", + "acetate": "0.0", + "biomass": "0.1" + }, + "emitter": { + "_type": "step", + "address": "local:ram-emitter", + "config": { + "emit": { + "dfba": "any", + "fields": "any", + "global_time": "any" + } + }, + "inputs": { + "dfba": [ + "dfba" + ], + "fields": [ + "fields" + ], + "global_time": [ + "global_time" + ] + }, + "_inputs": { + "dfba": "any", + "fields": "any", + "global_time": "any" + }, + "_outputs": {}, + "outputs": {} + } + } +} \ No newline at end of file diff --git a/demo/particle_comets.ipynb b/demo/particle_comets.ipynb index e045db9..f8e0c9b 100644 --- a/demo/particle_comets.ipynb +++ b/demo/particle_comets.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 1, + "execution_count": 17, "id": "11eeec03bc8a30ce", "metadata": { "ExecuteTime": { @@ -24,23 +24,23 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 18, "id": "968092e4-a12e-4f36-8a67-1e2e40461020", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "['Particles',\n", - " 'DynamicFBA',\n", - " 'console-emitter',\n", + "['composite',\n", " 'bounds',\n", " 'ram-emitter',\n", + " 'console-emitter',\n", + " 'DynamicFBA',\n", " 'DiffusionAdvection',\n", - " 'composite']" + " 'Particles']" ] }, - "execution_count": 2, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -65,9 +65,17 @@ "## dFBA process" ] }, + { + "cell_type": "markdown", + "id": "cfc6d1f2", + "metadata": {}, + "source": [ + "### With the default values for model/metabolites" + ] + }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 19, "id": "d1589355618d8afd", "metadata": { "ExecuteTime": { @@ -75,38 +83,129 @@ "start_time": "2024-09-12T18:22:17.424742Z" } }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Created new file: out/single_dfba.json\n", - "Simulating...\n" - ] - } - ], + "outputs": [], "source": [ "total_time = 60.0\n", "\n", - "# get dfba config\n", + "# get dfba config with all default values\n", "single_dfba_config = {\n", " 'dfba': get_single_dfba_spec(path=['fields']),\n", " 'fields': {\n", + " # How to pass the initial state of the system?\n", " 'glucose': 10,\n", " 'acetate': 0,\n", " 'biomass': 0.1\n", " }\n", - "}\n", - "\n", - "# make the simulation\n", + "}" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "id": "0286dd4f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'dfba': {'_type': 'process',\n", + " 'address': 'local:DynamicFBA',\n", + " 'config': {'model_file': 'textbook',\n", + " 'kinetic_params': {'glucose': (0.5, 1), 'acetate': (0.5, 2)},\n", + " 'biomass_reaction': 'Biomass_Ecoli_core',\n", + " 'substrate_update_reactions': {'glucose': 'EX_glc__D_e',\n", + " 'acetate': 'EX_ac_e'},\n", + " 'biomass_identifier': 'biomass',\n", + " 'bounds': {'EX_o2_e': {'lower': -2, 'upper': None},\n", + " 'ATPM': {'lower': 1, 'upper': 1}}},\n", + " 'inputs': {'substrates': {'glucose': ['fields', 'glucose'],\n", + " 'acetate': ['fields', 'acetate'],\n", + " 'biomass': ['fields', 'biomass']}},\n", + " 'outputs': {'substrates': {'glucose': ['fields', 'glucose'],\n", + " 'acetate': ['fields', 'acetate'],\n", + " 'biomass': ['fields', 'biomass']}}},\n", + " 'fields': {'glucose': 10, 'acetate': 0, 'biomass': 0.1}}" + ] + }, + "execution_count": 20, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "single_dfba_config" + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "id": "964feaf8", + "metadata": {}, + "outputs": [], + "source": [ + "# Make the simulation\n", + "# This isn't actually adding anything to the \n", "sim = Composite({\n", " 'state': single_dfba_config,\n", " 'emitter': {'mode': 'all'}\n", - "}, core=core)\n", - "\n", - "# save the document\n", - "sim.save(filename='single_dfba.json', outdir='out')\n", - "\n", + "}, core=core)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "740f505c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sim" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "a4d6e9e9", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Created new file: out/single_dfba.json\n" + ] + } + ], + "source": [ + "# Save the document\n", + "sim.save(filename='single_dfba.json', outdir='out')" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "fa576b18", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Simulating...\n" + ] + } + ], + "source": [ "# simulate\n", "print('Simulating...')\n", "sim.update({}, total_time)\n", @@ -117,7 +216,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 28, "id": "e6b3d8d3-8dcc-4315-939d-917f39a67a9a", "metadata": {}, "outputs": [ @@ -131,12 +230,14 @@ }, { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA+QAAAIjCAYAAACKx9GpAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAB3w0lEQVR4nO3dd3gU9cLF8bO76Z30BBIIEHrviBQVQUQUCzZUwIIFVESvilexXhFs2F5U7lVRUaxgRUWaiIAUQToEAqGkACG97877R8JCpAaSzCb5fp5nnt2Z2d05SUbMycz8xmIYhiEAAAAAAFCtrGYHAAAAAACgLqKQAwAAAABgAgo5AAAAAAAmoJADAAAAAGACCjkAAAAAACagkAMAAAAAYAIKOQAAAAAAJqCQAwAAAABgAgo5AAAAAAAmoJADAHAORo4cqUaNGpkdwzSu/PW7cjYAACQKOQAAx7FYLGc0LVq0yOyoJ7Rr1y6NGjVKTZo0kZeXlyIjI9WnTx89+eSTZkerFP369Sv3cwgODlbXrl313nvvyeFwVMo2nn/+ec2ZM6dSPgsAgJOxGIZhmB0CAABX8vHHH5eb//DDDzVv3jx99NFH5ZZffPHFCg4OlsPhkKenZ3VGPKmEhAR17dpV3t7euvXWW9WoUSMlJydrzZo1mjt3rgoKCip1e8XFxdX+9ffr1087duzQpEmTJEkHDhzQhx9+qLVr1+qRRx7RCy+8IKn0CPmiRYu0a9euCm/Dz89P11xzjT744INKTA4AQHluZgcAAMDV3HTTTeXmly9frnnz5h233BW9+uqrysnJ0dq1a9WwYcNy69LS0iptO7m5ufL19ZW7u3ulfWZFBAYGlvt53HnnnWrevLnefPNNPfvss6blAgCgIjhlHQCAc/DP65R37doli8Wil156SW+99ZYaN24sHx8fDRgwQHv27JFhGHr22WfVoEEDeXt764orrlB6evpxnzt37lz17t1bvr6+8vf31+DBg7Vx48bT5tmxY4caNGhwXBmXpPDw8LPazsiRI+Xn56cdO3bo0ksvlb+/v4YPH37Cr1+SHA6Hpk6dqtatW8vLy0sRERG68847dfjw4XKvW7VqlQYOHKjQ0FB5e3srLi5Ot95662m/xhPx8fFRjx49lJubqwMHDpz0dbm5uXrwwQcVExMjT09PNW/eXC+99JKOPWHQYrEoNzdXM2bMcJ4WP3LkyLPKBQDAqXCEHACAKjBz5kwVFRXp3nvvVXp6uqZMmaJrr71WF154oRYtWqRHHnlECQkJeuONN/TQQw/pvffec773o48+0ogRIzRw4EBNnjxZeXl5mjZtms4//3z99ddfpxyorGHDhvr111+1YMECXXjhhafMWJHtlJSUaODAgTr//PP10ksvycfH56Sfe+edd+qDDz7QqFGjdN999ykxMVFvvvmm/vrrLy1dulTu7u5KS0vTgAEDFBYWpkcffVRBQUHatWuXvv766zP+Hv/Tzp07ZbPZFBQUdML1hmHo8ssv18KFC3XbbbepQ4cO+vnnn/Wvf/1L+/bt06uvvur8vtx+++3q1q2bRo8eLUlq0qTJWecCAOCkDAAAcEpjxowxTva/zBEjRhgNGzZ0zicmJhqSjLCwMCMjI8O5fMKECYYko3379kZxcbFz+Q033GB4eHgYBQUFhmEYRnZ2thEUFGTccccd5baTkpJiBAYGHrf8nzZs2GB4e3sbkowOHToY999/vzFnzhwjNze33Osqsp0RI0YYkoxHH330tF//kiVLDEnGzJkzy73up59+Krd89uzZhiRj5cqVp/x6TqRv375GixYtjAMHDhgHDhwwNm/ebNx3332GJGPIkCEnzTZnzhxDkvHcc8+V+7xrrrnGsFgsRkJCgnOZr6+vMWLEiApnAwCgIjhlHQCAKjBs2DAFBgY657t37y6p9Pp0Nze3csuLioq0b98+SdK8efOUkZGhG264QQcPHnRONptN3bt318KFC0+53datW2vt2rW66aabtGvXLr322msaOnSoIiIiNH36dOfrzmY7d99992m/7i+++EKBgYG6+OKLy31u586d5efn5/zcI0exv//+exUXF5/2c/9py5YtCgsLU1hYmFq2bKk33nhDgwcPLnemwT/9+OOPstlsuu+++8otf/DBB2UYhubOnVvhHAAAnAtOWQcAoArExsaWmz9SzmNiYk64/Mj11du3b5ekk55uHhAQcNptN2vWTB999JHsdrs2bdqk77//XlOmTNHo0aMVFxen/v37V3g7bm5uatCgwWm3vX37dmVmZp7wenXp6MByffv21dVXX62nn35ar776qvr166ehQ4fqxhtvPKMR2xs1aqTp06fLYrHIy8tL8fHxJ93mEbt371Z0dLT8/f3LLW/ZsqVzPQAA1YlC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i1HWcUoJadn6cX2KflyfrC0p2c7lHjar+jUP09CO9XVhi3B5udtMTAkAAADUfIyyXrMwyjqqXNNwf913kb/uuyheOw/kaO6GFH23br+2pGQ7B4Tz93TTJW0idWXH+ureOIT7nAMAAADAGbCaHQA1R+MwP425oKl+GtdHP43rrbv6NlFUoJeyC0v0xeq9uvG/K3TeC/P1nx82acO+TNXyky8AAAAAVCOLxaI5c+ZU+H2NGjXS1KlTKz1PZeAIOc5Ki8gAPTooQA8PbK4/d6Xrm7X79MPfyUrNKtT0JYmaviRR8eF+Gtqxvi5vH62YYB+zIwMAAACAS+EIOc6J1WpRj8YhmnRVO618vL/evqmzBrWJlIebVdvTcvTiz1vVe8pCXTPtD320fLcy84rNjgwAAADUHIYhFeWaM1XwjNeffvpJ559/voKCghQSEqLLLrtMO3bscK7fu3evbrjhBgUHB8vX11ddunTRihUrnOu/+eYbderUSV5eXmrcuLGefvpplZSUSCo9yi1JV155pSwWi3N+x44duuKKKxQRESE/Pz917dpVv/76q/Mz+/Xrp927d+uBBx6QxWKRxXL08trff/9dvXv3lre3t2JiYnTfffcpNze3oj+hc8KgbqgSmfnF+mlDsub8tV/LEw85/1v2cLPqktaRurZLjM5rEiIr15sDAAAAkk4ySFhRrvR8tDmBHtsvefie8cu/+uorWSwWtWvXTjk5OZo4caJ27dqltWvXKi8vT+3bt1f9+vX1/PPPKzIyUmvWrFFMTIx69uypJUuW6LLLLtPrr7+u3r17a8eOHRo9erRGjhypJ598UgcOHFB4eLjef/99XXLJJbLZbAoLC9O6deu0fPly9erVS56envrwww/10ksvaevWrYqNjVV6errat2+v0aNH64477pAkRUZGaseOHWrfvr2ee+45DR48WAcOHNDYsWPVvn17vf/++2f09VbGoG4UclS55Mx8fbduv75avU9bU4+O1F4/yFvDujTQsC4xqh/kbWJCAAAAwHw1vZD/08GDBxUWFqb169frjz/+0EMPPaRdu3YpODj4uNf2799fF110kSZMmOBc9vHHH+vhhx/W/v37JZVeQz579mwNHTr0lNtt06aN7rrrLo0dO1ZS6dH1cePGady4cc7X3H777bLZbHrnnXecy37//Xf17dtXubm5ZzTKPaOso0aICvTW6D5NdEfvxlq/L1Ofr9qjb9bu176MfE39dbtem79d5zcN1bVdYnRxqwhuoQYAAAAc4e5TWozN2nYFbN++XRMnTtSKFSt08OBBORwOSVJSUpLWrl2rjh07nrCMS9K6deu0dOlS/ec//3Eus9vtKigoUF5ennx8TpwlJydHTz31lH744QclJyerpKRE+fn5SkpKOmXWdevW6e+//9bMmTOdywzDkMPhUGJiolq2bFmhr/1sUchRbSwWi9o1CFK7BkH696Wt9PPGFH22co+W7TykJdsPasn2gwr0dteVHetrWJcGah0daHZkAAAAwFwWyzkdpa5OQ4YMUcOGDTV9+nRFR0fL4XCoTZs2Kioqkrf3qc+IzcnJ0dNPP62rrrrquHWnOlr90EMPad68eXrppZfUtGlTeXt765prrlFRUdFpt3fnnXfqvvvuO25dbGzsKd9bmSjkMIW3h01DO9bX0I71lXQoT1+u3qMvVu9VcmaBPvhjlz74Y5fa1A/QtV1idEX7+gr0cTc7MgAAAICTOHTokLZu3arp06erd+/ekkpPAT+iXbt2+u9//6v09PQTHiXv1KmTtm7dqqZNm550G+7u7rLb7eWWLV26VCNHjtSVV14pqbRo79q1q9xrPDw8jntfp06dtGnTplNurzowyjpMFxvio/EDmuv3Ry7UjFu7aXDbKLnbLNqwL0sTv9mors//qvGfrdWapMPc2xwAAABwQfXq1VNISIjeffddJSQkaMGCBRo/frxz/Q033KDIyEgNHTpUS5cu1c6dO/XVV19p2bJlkqSJEyfqww8/1NNPP62NGzdq8+bNmjVrlh5//HHnZzRq1Ejz589XSkqKDh8+LEmKj4/X119/rbVr12rdunW68cYbnafKH/u+3377Tfv27dPBgwclSY888oj++OMPjR07VmvXrtX27dv1zTffOK87ry4UcrgMm9Wivs3C9NbwTlrxWH89OaSVWkT6q6jEoa//2qer/u8PXfbG7/psZZLyi+yn/0AAAAAA1cJqtWrWrFlavXq12rRpowceeEAvvviic72Hh4d++eUXhYeH69JLL1Xbtm31wgsvyGYrHT9q4MCB+v777/XLL7+oa9eu6tGjh1599VU1bNjQ+Rkvv/yy5s2bp5iYGHXs2FGS9Morr6hevXo677zzNGTIEA0cOFCdOnUql+2ZZ57Rrl271KRJE4WFhUkqPWK/ePFibdu2Tb1791bHjh01ceJERUdX7wB6jLIOl2YYhtbtzdTHy3fr23X7VVRS+teuAC83XdM5Rjf1iFXjMD+TUwIAAADn7lSjdsP1MMo6aj2LxaIOMUHqEBOkf1/aUl+s3qOPlycpKT1P7y1N1HtLE3V+01Dd3LOhLmoRLjcbJ30AAAAAqBko5Kgx6vl6aHSfJrr9/Mb6bfsBfbx8t+ZvSdPvCQf1e8JBRQV66cZusbquW4zC/fmLIgAAAADXRiFHjWO1WtSvebj6NQ/XnvQ8ffJnkj5buUfJmQV6ed42vTZ/uy5pE6mbezRUt7hgWSwWsyMDAAAAwHEo5KjRYoJ99MglLTSuf7zmrk/Rh8t2aU1Shr7/O1nf/52sllEBuv38OA1pHy0PN05nBwAAAOA6aCioFTzdSu9r/vU9vfT9vefrhm4x8na3aXNylh78Yp3On7xAby1MUEZekdlRAQAAAEAShRy1UJv6gZp0VTstm3ChHr6kuSICPJWWXagXf96qnpMWaOI3G7TrYK7ZMQEAAADUcRRy1FpBPh66p19TLXn4Qr1ybXu1jApQfrFdHy7brQteXqTRH67Syl3pquV3/gMAAADgoriGHLWeh5tVV3VqoCs71teyHYc0fclOLdx6QL9sStUvm1LVvkGgbu/dWIPaRHLbNAAAAADVhkKOOsNisei8pqE6r2moEtKy9b/fE/XVmn1atzdT9376l+oHeWtUr0a6rmuM/L3czY4LAAAAoJbjcCDqpKbh/pp0VTv98eiFGtc/XiG+HtqXka/nftisnpMW6PkfNystu8DsmAAAAECN0K9fP40bN+6k6xs1aqSpU6dWW56agiPkqNNC/Tw1rn8z3dW3ieb8tU///T1RCWk5eve3nfrgj126vmuM7uzbRPWDvM2OCgAAANRYK1eulK+vr9kxXA5HyAFJXu42Xd8tVr+M66P3RnZRp9ggFZU49OGy3eo7ZaEe/nKdEhmZHQAAADgrYWFh8vHxMTuGy6GQA8ewWi26sEWEvrr7PH1yR3f1ahqiEoehz1ft1UUvL9J9n/6lrSnZZscEAABAHWEYhvKK80yZKno3opKSEo0dO1aBgYEKDQ3VE0884fyMf56ynpSUpCuuuEJ+fn4KCAjQtddeq9TUVOf6p556Sh06dNB7772n2NhY+fn56Z577pHdbteUKVMUGRmp8PBw/ec//ymX4ZVXXlHbtm3l6+urmJgY3XPPPcrJyXGu3717t4YMGaJ69erJ19dXrVu31o8//ihJOnz4sIYPH66wsDB5e3srPj5e77//fkV/ZBXCKevACVgsFp3XJFTnNQnVmqTDemtBguZvSdO36/br23X7NaBVhMZe2FTtGgSZHRUAAAC1WH5Jvrp/0t2Uba+4cYV83M/8qPaMGTN022236c8//9SqVas0evRoxcbG6o477ij3OofD4SzjixcvVklJicaMGaPrrrtOixYtcr5ux44dmjt3rn766Sft2LFD11xzjXbu3KlmzZpp8eLF+uOPP3Trrbeqf//+6t699HtktVr1+uuvKy4uTjt37tQ999yjhx9+WP/3f/8nSRozZoyKior022+/ydfXV5s2bZKfn58k6YknntCmTZs0d+5chYaGKiEhQfn5+ef4XTw1CjlwGp1i6+l/I7tq4/5M/d/CHfpxQ7Lzlml9moVp7AVN1S0u2OyYAAAAgKliYmL06quvymKxqHnz5lq/fr1effXV4wr5/PnztX79eiUmJiomJkaS9OGHH6p169ZauXKlunbtKqm0uL/33nvy9/dXq1atdMEFF2jr1q368ccfZbVa1bx5c02ePFkLFy50FvJjB5Zr1KiRnnvuOd11113OQp6UlKSrr75abdu2lSQ1btzY+fqkpCR17NhRXbp0cb6/qlHIgTPUOjpQbw3vpIS0bP3foh36Zu1+/bbtgH7bdkDdGgVr7IVN1Ts+VBaLxeyoAAAAqCW83by14sYVpm27Inr06FHud+GePXvq5Zdflt1uL/e6zZs3KyYmxlnGJalVq1YKCgrS5s2bnYW8UaNG8vf3d74mIiJCNptNVqu13LK0tDTn/K+//qpJkyZpy5YtysrKUklJiQoKCpSXlycfHx/dd999uvvuu/XLL7+of//+uvrqq9WuXTtJ0t13362rr75aa9as0YABAzR06FCdd955FfoeVBTXkAMV1DTcX69c20ELH+ynG7vHysNm1Z+70nXLe39q6P/9oSXbD1T4ehsAAADgRCwWi3zcfUyZzD7Q5O7uXm7eYrGccJnD4ZAk7dq1S5dddpnatWunr776SqtXr9Zbb70lSSoqKpIk3X777dq5c6duvvlmrV+/Xl26dNEbb7whSRo0aJB2796tBx54QPv379dFF12khx56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irR69Wr179/fucxqtap///5atmyZiclQEyQmJiolJaXc/hMYGKju3buz/0CSlJmZKUkKDg6WJK1evVrFxcXl9pkWLVooNjaWfQay2+2aNWuWcnNz1bNnT/YXnNKYMWM0ePDgcvuHxL8zOLHt27crOjpajRs31vDhw5WUlCSJ/QUn9u2336pLly4aNmyYwsPD1bFjR02fPt25vjb9DkwhN9nBgwdlt9sVERFRbnlERIRSUlJMSoWa4sg+wv6DE3E4HBo3bpx69eqlNm3aSCrdZzw8PBQUFFTutewzddv69evl5+cnT09P3XXXXZo9e7ZatWrF/oKTmjVrltasWaNJkyYdt479Bv/UvXt3ffDBB/rpp580bdo0JSYmqnfv3srOzmZ/wQnt3LlT06ZNU3x8vH7++Wfdfffduu+++zRjxgxJtet3YDezAwAAqsaYMWO0YcOGctfpASfSvHlzrV27VpmZmfryyy81YsQILV682OxYcFF79uzR/fffr3nz5snLy8vsOKgBBg0a5Hzerl07de/eXQ0bNtTnn38ub29vE5PBVTkcDnXp0kXPP/+8JKljx47asGGD3n77bY0YMcLkdJWLI+QmCw0Nlc1mO24kydTUVEVGRpqUCjXFkX2E/Qf/NHbsWH3//fdauHChGjRo4FweGRmpoqIiZWRklHs9+0zd5uHhoaZNm6pz586aNGmS2rdvr9dee439BSe0evVqpaWlqVOnTnJzc5Obm5sWL16s119/XW5uboqIiGC/wSkFBQWpWbNmSkhI4N8ZnFBUVJRatWpVblnLli2dlzrUpt+BKeQm8/DwUOfOnTV//nznMofDofnz56tnz54mJkNNEBcXp8jIyHL7T1ZWllasWMH+U0cZhqGxY8dq9uzZWrBggeLi4sqt79y5s9zd3cvtM1u3blVSUhL7DJwcDocKCwvZX3BCF110kdavX6+1a9c6py5dumj48OHO5+w3OJWcnBzt2LFDUVFR/DuDE+rVq9dxt23dtm2bGjZsKKl2/Q7MKesuYPz48RoxYoS6dOmibt26aerUqcrNzdWoUaPMjgYXkJOTo4SEBOd8YmKi1q5dq+DgYMXGxmrcuHF67rnnFB8fr7i4OD3xxBOKjo7W0KFDzQsN04wZM0affPKJvvnmG/n7+zuvowoMDJS3t7cCAwN12223afz48QoODlZAQIDuvfde9ezZUz169DA5PcwwYcIEDRo0SLGxscrOztYnn3yiRYsW6eeff2Z/wQn5+/s7x6U4wtfXVyEhIc7l7Dc41kMPPaQhQ4aoYcOG2r9/v5588knZbDbdcMMN/DuDE3rggQd03nnn6fnnn9e1116rP//8U++++67effddSZLFYqk9vwObPcw7Sr3xxhtGbGys4eHhYXTr1s1Yvny52ZHgIhYuXGhIOm4aMWKEYRilt3144oknjIiICMPT09O46KKLjK1bt5obGqY50b4iyXj//fedr8nPzzfuueceo169eoaPj49x5ZVXGsnJyeaFhqluvfVWo2HDhoaHh4cRFhZmXHTRRcYvv/ziXM/+gjNx7G3PDIP9BuVdd911RlRUlOHh4WHUr1/fuO6664yEhATnevYXnMh3331ntGnTxvD09DRatGhhvPvuu+XW15bfgS2GYRgm/S0AAAAAAIA6i2vIAQAAAAAwAYUcAAAAAAATUMgBAAAAADABhRwAAAAAABNQyAEAAAAAMAGFHAAAAAAAE1DIAQAAAAAwAYUcAAAAAAATUMgBAKjDRo4cqaFDh5odAwCAOsnN7AAAAKBqWCyWU65/8skn9dprr8kwjGpKBAAAjkUhBwCglkpOTnY+/+yzzzRx4kRt3brVuczPz09+fn5mRAMAAOKUdQAAaq3IyEjnFBgYKIvFUm6Zn5/fcaes9+vXT/fee6/GjRunevXqKSIiQtOnT1dubq5GjRolf39/NW3aVHPnzi23rQ0bNmjQoEHy8/NTRESEbr75Zh08eLCav2IAAGoWCjkAAChnxowZCg0N1Z9//ql7771Xd999t4YNG6bzzjtPa9as0YABA3TzzTcrLy9PkpSRkaELL7xQHTt21KpVq/TTTz8pNTVV1157rclfCQAAro1CDgAAymnfvr0ef/xxxcfHa8KECfLy8lJoaKjuuOMOxcfHa+LEiTp06JD+/vtvSdKbb76pjh076vnnn1eLFi3UsWNHvffee1q4cKG2bdtm8lcDAIDr4hpyAABQTrt27ZzPbTabQkJC1LZtW+eyiIgISVJaWpokad26dVq4cOEJr0ffsWOHmjVrVsWJAQComSjkAACgHHd393LzFoul3LIjo7c7HA5JUk5OjoYMGaLJkycf91lRUVFVmBQAgJqNQg4AAM5Jp06d9NVXX6lRo0Zyc+NXCwAAzhTXkAMAgHMyZswYpaen64YbbtDKlSu1Y8cO/fzzzxo1apTsdrvZ8QAAcFkUcgAAcE6io6O1dOlS2e12DRgwQG3bttW4ceMUFBQkq5VfNQAAOBmLYRiG2SEAAAAAAKhr+LM1AAAAAAAmoJADAAAAAGACCjkAAAAAACagkAMAAAAAYAIKOQAAAAAAJqCQAwAAAABgAgo5AAAAAAAmoJADAAAAAGACCjkAAAAAACagkAMAAAAAYAIKOQAAAAAAJvh/1sDpXX/ky9cAAAAASUVORK5CYII=", + "image/png": "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", "text/plain": [ - "
" + "
" ] }, - "metadata": {}, + "metadata": { + "needs_background": "light" + }, "output_type": "display_data" } ], @@ -150,6 +251,111 @@ ")" ] }, + { + "cell_type": "markdown", + "id": "d9a477c5", + "metadata": {}, + "source": [ + "### With a Custom Model File and Non-Default Parameters" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "id": "7e643143", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Created new file: out/single_dfb_custom.json\n", + "Simulating...\n" + ] + } + ], + "source": [ + "# Run a dFBA process with my own model/molecule definitions\n", + "total_time = 40.0\n", + "\n", + "# Get dfba config, but set non-default values to use in the spec\n", + "custom_dfba_config = {\n", + " 'dfba': get_single_dfba_spec(\n", + " model_file='/Users/helenscott/Documents/PhD/Segre-lab/GEM-repos/ecoli/iJO1366.xml',\n", + " kinetic_params = {\n", + " 'Glucose': (0.5, 1),\n", + " 'Acetate': (0.5, 2),\n", + " 'CO2': (0.5, 1)},\n", + " biomass_reaction='BIOMASS_Ec_iJO1366_WT_53p95M',\n", + " substrate_update_reactions = {\n", + " 'Glucose': 'EX_glc__D_e',\n", + " 'Acetate': 'EX_ac_e',\n", + " 'CO2': 'EX_co2_e'},\n", + " biomass_identifier='Biomass',\n", + " mol_ids=['Glucose', 'Acetate', 'CO2', 'Biomass'],\n", + " path=['fields']),\n", + " 'fields': {\n", + " # How to pass the initial state of the system?\n", + " 'Glucose': 10,\n", + " 'Acetate': 0,\n", + " 'Biomass': 0.1,\n", + " 'CO2': 0\n", + " }\n", + "}\n", + "\n", + "# Make the simulation\n", + "sim_custom = Composite({\n", + " 'state': custom_dfba_config,\n", + " 'emitter': {'mode': 'all'}\n", + "}, core=core)\n", + "\n", + "# Save the document\n", + "sim_custom.save(filename='single_dfb_custom.json', outdir='out')\n", + "\n", + "# simulate\n", + "print('Simulating...')\n", + "sim_custom.update({}, total_time)\n", + "\n", + "# gather results\n", + "custom_dfba_results = sim_custom.gather_results()" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "id": "a0fbafbc", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "saving out/dfba_single_custom_timeseries.png\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "# Plot timeseries\n", + "plot_time_series(\n", + " custom_dfba_results,\n", + " field_names=['Glucose', 'Acetate', 'CO2', 'Biomass'],\n", + " out_dir='out',\n", + " filename='dfba_single_custom_timeseries.png',\n", + ")" + ] + }, { "cell_type": "markdown", "id": "5556837b-12b7-4f4f-9a11-fdbb2ab8615e", @@ -619,46 +825,6 @@ " skip_frames=1)" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "ba2017c0-51c8-443e-9521-50c5fa0ca436", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "4c54ec58-0bb2-4fa2-8490-ce7a08175aff", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "5ff96cf8-ecb4-4c7c-aebb-c7e3ad5a6736", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "92725785-e771-4bcc-a593-964edc1860bc", - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "c37b0e61-af14-4a1d-8137-f961a29561a5", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": 15, @@ -705,14 +871,6 @@ "## Particle-COMETS" ] }, - { - "cell_type": "code", - "execution_count": null, - "id": "5f82c824-f018-4290-b4ee-4bb8ba5a1ab2", - "metadata": {}, - "outputs": [], - "source": [] - }, { "cell_type": "code", "execution_count": 16,