{ "cells": [ { "cell_type": "code", "execution_count": 1, "id": "f07fa1f2-187e-4ce0-af95-31d6120977fe", "metadata": { "pycharm": { "name": "#%%\n" } }, "outputs": [], "source": [ "from mimic.utilities.utilities import set_all_seeds\n", "from mimic.utilities.utilities import plot_gMLV\n", "from mimic.model_infer import *\n", "from mimic.model_simulate import *\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from scipy.integrate import odeint" ] }, { "cell_type": "markdown", "id": "82eb9f01", "metadata": { "pycharm": { "name": "#%% md\n" } }, "source": [ "## Simulate some time course data from the gMLV\n", "\n", "The generalized Lotka-Volterra equation takes the form\n", "\n", "$$ \\frac{dX_i}{dt} = \\mu_i X_i + X_i M_{ij} X_j + X_i \\epsilon_{il} u_l $$\n", "\n", "where:\n", "- $X_i$ is the concentration of a species\n", "- $\\mu_i$ is its specific growth rate\n", "- $M_{ij}$ is the effect of the interaction of species $i$ on species $j$\n", "- $\\epsilon_{il}$ is the susceptibility to the time-dependent perturbation $u_l$\n", "\n", "here we add metabolites to the model as in Clark et al., 2021: eqs(4 & 5)\n", "\n", "$$ \\frac{dS_k}{dt} = A_{ki} X_i $$\n", "\n", "where:\n", "- $S_k$ is the concentration of a metabolite, $k$\n", "- $A_{ki}$ is the productivity of metabolite $k$, due to species $i$\n", "\n", "\n", "Notes\n", "- This model assumes metabolite production is associated with abundance: dS/dt ~ X. Some models assume dS/dt ~ dX/dt which means production is related to growth\n", "- This model is poorly defined as it can run in to problems with negative productivities\n", "- There is no influence of S on X, which can be modified in future \n" ] }, { "cell_type": "markdown", "id": "9caf246b", "metadata": {}, "source": [ "\n", "### Five species, six metabolites, single time course" ] }, { "cell_type": "code", "execution_count": 2, "id": "9d348926", "metadata": { "collapsed": false, "jupyter": { "outputs_hidden": false }, "pycharm": { "name": "#%%\n" } }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Using the following parameters for gMLV simulation: {'num_species': 5, 'num_metabolites': 6, 'num_perturbations': 0, 'mu': array([1.27853844, 0.55683415, 2.06752757, 0.86387608, 0.70448068]), 'M': array([[-0.05, 0. , 0. , 0. , 0. ],\n", " [ 0. , -0.1 , 0. , 0.05, 0. ],\n", " [ 0. , 0. , -0.15, 0. , 0. ],\n", " [ 0. , 0. , 0. , -0.01, 0. ],\n", " [ 0. , 0. , 0. , 0. , -0.2 ]]), 'beta': array([[ 0. , 0. , 0. , 0. , 0. ],\n", " [ 0. , 0. , 0. , 0. , 1. ],\n", " [ 0. , 0. , 0. , 0. , 0. ],\n", " [ 0. , 0. , 0. , 0. , 0. ],\n", " [ 0. , 0. , -0.5, 0. , 0. ],\n", " [ 0. , 0. , 0. , 0. , 0. ]]), 'epsilon': array([], shape=(5, 0), dtype=float64)}\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Simulate some microbiota and metabolites\n", "set_all_seeds(1234)\n", "\n", "# SETUP MODEL\n", "# establish size of model\n", "num_species = 5\n", "num_metabolites = 6\n", "\n", "# construct interaction matrix\n", "# TODO do this programmatically\n", "M = np.zeros((num_species, num_species))\n", "np.fill_diagonal(M, [-0.05, -0.1, -0.15, -0.01, -0.2])\n", "# M[0,2] = -0.025\n", "M[1, 3] = 0.05\n", "# M[4,0] = 0.02\n", "\n", "# construct growth rates matrix\n", "mu = np.random.lognormal(0.01, 0.5, num_species)\n", "\n", "# construct metabolite production matrix\n", "alpha = np.zeros((num_metabolites, num_species))\n", "alpha[1, 4] = 1\n", "alpha[4, 2] = -0.5\n", "\n", "# instantiate simulator\n", "simulator = sim_gMLV(num_species=num_species,\n", " num_metabolites=num_metabolites,\n", " M=M,\n", " mu=mu,\n", " beta=alpha)\n", "# simulator.print()\n", "\n", "# PRODUCE SIMULATED RESULTS\n", "# initial conditions\n", "init_species = 10 * np.ones(num_species)\n", "init_metabolites = 10 * np.ones(num_metabolites)\n", "\n", "times = np.arange(0, 5, 0.1)\n", "yobs, sobs, sy0, _, _, _ = simulator.simulate(\n", " times=times, sy0=np.hstack((init_species, init_metabolites)))\n", "\n", "# add some gaussian noise\n", "yobs = yobs + np.random.normal(loc=0, scale=0.1, size=yobs.shape)\n", "sobs = sobs + np.random.normal(loc=0, scale=0.1, size=sobs.shape)\n", "\n", "# plot simulation\n", "plot_gMLV(yobs, sobs, times)" ] }, { "cell_type": "code", "execution_count": 3, "id": "aa4f4ea2", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model parameters:\n", "Model: gMLV\n", "num_species: 5\n", "num_metabolites: 6\n", "num_perturbations: 0\n", "mu: [1.28 0.56 2.07 0.86 0.7 ]\n", "M: [[-0.05 0. 0. 0. 0. ]\n", " [ 0. -0.1 0. 0.05 0. ]\n", " [ 0. 0. -0.15 0. 0. ]\n", " [ 0. 0. 0. -0.01 0. ]\n", " [ 0. 0. 0. 0. -0.2 ]]\n", "beta: [[ 0. 0. 0. 0. 0. ]\n", " [ 0. 0. 0. 0. 1. ]\n", " [ 0. 0. 0. 0. 0. ]\n", " [ 0. 0. 0. 0. 0. ]\n", " [ 0. 0. -0.5 0. 0. ]\n", " [ 0. 0. 0. 0. 0. ]]\n", "epsilon: []\n" ] } ], "source": [ "simulator.print_parameters()" ] }, { "cell_type": "code", "execution_count": 5, "id": "30440b02", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model parameters:\n", "Model: gMLV\n", "num_species: 5\n", "num_metabolites: 6\n", "num_perturbations: 0\n", "mu: [1.28 0.56 2.07 0.86 0.7 ]\n", "M: [[-0.05 0. 0. 0. 0. ]\n", " [ 0. -0.1 0. 0.05 0. ]\n", " [ 0. 0. -0.15 0. 0. ]\n", " [ 0. 0. 0. -0.01 0. ]\n", " [ 0. 0. 0. 0. -0.2 ]]\n", "beta: [[ 0. 0. 0. 0. 0. ]\n", " [ 0. 0. 0. 0. 1. ]\n", " [ 0. 0. 0. 0. 0. ]\n", " [ 0. 0. 0. 0. 0. ]\n", " [ 0. 0. -0.5 0. 0. ]\n", " [ 0. 0. 0. 0. 0. ]]\n", "epsilon: []\n" ] } ], "source": [ "simulator.read_parameters(\"simulator_parameters.json\")\n", "simulator.print_parameters()" ] }, { "cell_type": "markdown", "id": "3cfd598c", "metadata": {}, "source": [ "### Five species, single time course, with a perturbation" ] }, { "cell_type": "code", "execution_count": 6, "id": "dc1f7937", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Model parameters:\n", "Model: gMLV\n", "num_species: 5\n", "num_metabolites: 0\n", "num_perturbations: 1\n", "mu: [1.28 0.56 2.07 0.86 0.7 ]\n", "M: [[-0.05 0. -0.03 0. 0. ]\n", " [ 0. -0.1 0. 0.05 0. ]\n", " [ 0. 0. -0.15 0. 0. ]\n", " [ 0. 0. 0. -0.01 0. ]\n", " [ 0.02 0. 0. 0. -0.2 ]]\n", "beta: None\n", "epsilon: [[ 0.]\n", " [-1.]\n", " [ 0.]\n", " [-1.]\n", " [ 0.]]\n", "Warning: Missing or None parameters for gMLV simulation. Using default values for: ['beta']\n", "Using the following parameters for gMLV simulation: {'num_species': 5, 'num_metabolites': 0, 'num_perturbations': 1, 'mu': array([1.27853844, 0.55683415, 2.06752757, 0.86387608, 0.70448068]), 'M': array([[-0.05 , 0. , -0.025, 0. , 0. ],\n", " [ 0. , -0.1 , 0. , 0.05 , 0. ],\n", " [ 0. , 0. , -0.15 , 0. , 0. ],\n", " [ 0. , 0. , 0. , -0.01 , 0. ],\n", " [ 0.02 , 0. , 0. , 0. , -0.2 ]]), 'beta': None, 'epsilon': array([[ 0.],\n", " [-1.],\n", " [ 0.],\n", " [-1.],\n", " [ 0.]])}\n" ] }, { "data": { "image/png": "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UWYpJfOPf/yDpUuXsm7dOurUqePocFzW9u3bSUpKon379oXbbDYb69atY8aMGeTl5eHp6enACF1TWa75qKioYvf38vIiPDy8wmI972repz755BMeeughPvvss0rvLi1t3BkZGWzbto2dO3fy6KOPAmZSYRgGXl5erFy5kh49ejhVzAC1atWidu3ahIaGFm5r3rw5hmFw4sQJmjRp4nQxT5kyhS5duvDPf/4TgNatWxMYGEjXrl158cUXK7yKWRbldR26fcXHx8eH9u3bEx8fX2R7fHw8nTt3dlBUrskwDB599FEWLVrE6tWriYmJcXRILu2WW27hp59+YteuXYWtQ4cODB06lF27dinpKaOyXPOdOnW6aP+VK1fSoUMHvL29KyzW88r6PrVgwQIeeOAB5s+f75CxG6WNOyQk5KLf+ZEjR9KsWTN27dpFx44dnS5mgC5dunDq1CkyMzMLtx04cAAPD49K+eOvLDFnZ2fj4VE0BTj/nmI46RKe5XYdlmoodBV1/jbAWbNmGXv37jXGjBljBAYGGkeOHHF0aC7lkUceMUJDQ401a9YYCQkJhS07O9vRoVUZuqurfFzpmn/mmWeM+++/v3D/87fRPvHEE8bevXuNWbNmOex29pLGPH/+fMPLy8t44403ilyP586dq7SYyxL3nznirq7SxpyRkWHUqVPHuPvuu409e/YYa9euNZo0aWKMGDHCaWOeM2eO4eXlZbz55pvGwYMHje+//97o0KGDccMNN1RazBkZGcbOnTuNnTt3GoAxdepUY+fOnYW34FfUdajE53dvvPGGUb9+fcPHx8e47rrrdAt2GQDFtjlz5jg6tCpDiU/5udw1P3z4cCM2NrbI/mvWrDHatWtn+Pj4GA0aNDBmzpxZyRGXLubY2Nhir8fhw4c7ddx/5ojExzBKH/O+ffuMnj17Gv7+/kadOnWMsWPHVvoffaWNefr06UaLFi0Mf39/o1atWsbQoUONEydOVFq833333WV/RyvqOrQYhpPWtERERETKmduP8RERERH3ocRHRERE3IYSHxEREXEbSnxERETEbSjxEREREbehxEdERETchhIfERERcRtKfMRh1qxZg8Vi4dy5c44ORURE3IQmMJRK0717d9q2bcu0adMAsFqtnD17lsjIyEpd4VpERNyX26/OLo7j4+NDVFSUo8MQERE3oq4uqRQPPPAAa9eu5bXXXsNisWCxWJg7d26Rrq65c+cSFhbGV199RbNmzQgICODuu+8mKyuLefPm0aBBA6pVq8Y//vEPbDZb4bmtVivjxo2jdu3aBAYG0rFjR9asWeOYJyoiIk5NFR+pFK+99hoHDhygVatWvPDCCwDs2bPnov2ys7OZPn06H3/8MRkZGQwcOJCBAwcSFhbGsmXLOHToEHfddRc33XQTgwcPBuDBBx/kyJEjfPzxx0RHR7N48WJuvfVWfvrpJ5o0aVKpz1NERJybEh+pFKGhofj4+BAQEFDYvfXLL79ctF9+fj4zZ86kUaNGANx999188MEHnD59mqCgIFq0aMHNN9/Md999x+DBgzl48CALFizgxIkTREdHA/DUU0+xfPly5syZw+TJkyvvSYqIiNNT4iNOJSAgoDDpAYiMjKRBgwYEBQUV2ZaUlATAjh07MAyDpk2bFjlPXl4e4eHhlRO0iIi4DCU+4lS8vb2LfG+xWIrdZrfbAbDb7Xh6erJ9+3Y8PT2L7PfHZElERASU+Egl8vHxKTIouTy0a9cOm81GUlISXbt2Lddzi4hI1aO7uqTSNGjQgC1btnDkyBGSk5MLqzZXo2nTpgwdOpRhw4axaNEiDh8+zNatW3nppZdYtmxZOUQtIiJViRIfqTRPPfUUnp6etGjRgpo1a3Ls2LFyOe+cOXMYNmwYTz75JM2aNeP2229ny5Yt1K1bt1zOLyIiVYdmbhYRERG3oYqPiIiIuA0lPiIiIuI2lPiIiIiI21DiIyIiIm5DiY+IiIi4DSU+IiIi4jaU+IiIiIjbUOIjIiIibkOJj4iIiLgNJT4iIiLiNpT4iIiIiNtQ4iMiIiJu4/8D8njfL+DhHEsAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "set_all_seeds(1234)\n", "\n", "# SETUP MODEL\n", "# establish size of model\n", "num_species = 5\n", "num_metabolites = 0\n", "\n", "# construct interaction matrix\n", "# TODO #49 do this programmatically\n", "M = np.zeros((num_species, num_species))\n", "np.fill_diagonal(M, [-0.05, -0.1, -0.15, -0.01, -0.2])\n", "M[0, 2] = -0.025\n", "M[1, 3] = 0.05\n", "M[4, 0] = 0.02\n", "\n", "# construct growth rates matrix\n", "mu = np.random.lognormal(0.01, 0.5, num_species)\n", "\n", "# construct perturbation matrix\n", "npert = 1\n", "epsilon = np.zeros([num_species, npert])\n", "epsilon[:, 0] = [0, -1, 0, -1, 0]\n", "\n", "# instantiate simulator\n", "simulator = sim_gMLV(num_species=num_species,\n", " num_metabolites=num_metabolites,\n", " num_perturbations=npert,\n", " M=M,\n", " mu=mu,\n", " epsilon=epsilon)\n", "simulator.print_parameters()\n", "\n", "# PRODUCE SIMULATED RESULTS\n", "# initial conditions\n", "init_species = 10 * np.ones(num_species)\n", "init_metabolites = 10 * np.ones(num_metabolites)\n", "\n", "# perturbation information encoded in a function\n", "def pert_fn(t):\n", " return np.array([1]) if 2.0 <= t < 2.2 else np.array([0])\n", "\n", "\n", "times = np.arange(0, 5, 0.1)\n", "yobs, sobs, sy0, mu, M, _ = simulator.simulate(times=times,\n", " sy0=np.hstack(\n", " (init_species, init_metabolites)),\n", " u=pert_fn)\n", "\n", "\n", "# add some gaussian noise\n", "yobs = yobs + np.random.normal(loc=0, scale=0.1, size=yobs.shape)\n", "sobs = sobs + np.random.normal(loc=0, scale=0.1, size=sobs.shape)\n", "\n", "# plot simulation\n", "plot_gMLV(yobs, sobs, times)" ] } ], "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.11.8" } }, "nbformat": 4, "nbformat_minor": 5 }