{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Study of update time sensitivity, for the cell fate model" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This Jupyter notebook implements all the analyses presented in the manuscript by Stoll et al (2019), which can be dowloaded from bioRxiv.org [URL].\n", "\n", "There are two options to run this notebook.\n", "\n", "1) With the corresponding docker image \n", "\n", "An image was created where all necessary files are available. Launch the docker application on your desktop. On a terminal, type:\n", "\n", " docker run -p 8888:8888 -d colomoto/colomoto-docker:next \n", "\n", "Then, on your favorite navigator, open: http://localhost:8888 The notebook can be found in the folder: usecases/UpPMaBoSS.\n", "\n", "2) By creating a conda environment locally \n", "\n", "We suggest to download miniconda3 and create an environment named umb with the following command:\n", "\n", " conda create -n umb -c colomoto -c potassco pymaboss notebook seaborn ginsim-python\n", "\n", "To launch this environment, you need to activate it with the following command before launching the jupyter notebook: \n", "\n", " conda activate umb\n", " jupyter notebook\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In this notebook, we study the cell population behavior when varying the parameter value related to the time step (max_time in the cfg file), where the chosen values have to be smaller than the first extremum. \n", "\n", "\n", "The model used as an example in this notebook is a logical model of the cell fate decision process in response to death receptor activation (TNF and FasL). The logical model was adapted for our purposes from Calzone et al. (2010, PLoS Comp Biol.).\n", "\n", "The full analysis of the population model and the effect of TNF can be found in the notebook \"CellFateModel_uppmaboss.ipynb\". In this notebook, the focus is on the appropriate choice of parameters to perform appropriate in silico simulations: we explore the effect of varying the time step (max_time) on the response to TNF treatment at the level of the cell population.\n", "\n", "The files needed for running this example are:\n", "\n", "- CellFateModel_uppmaboss.bnd;\n", "- CellFateModel_uppmaboss.cfg;\n", "- CellFateModel_uppmaboss.upp." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Set up working environment\n", "import matplotlib.pyplot as plt\n", "from matplotlib.patches import Rectangle\n", "import pandas as pd\n", "import numpy as np\n", "import os\n", "\n", "import maboss\n", "import subprocess\n", "\n", "# Shortcut to save figures with a common pattern and format\n", "def save_figure(figure, title):\n", " figure.savefig(\"figure_%s.pdf\" % title, bbox_inches=\"tight\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Simulation of the wild type model with TNF activation" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MaBoSS run for finding first transient effect" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "A first simulation of the logical model is done using MaBoSS and for the length of the whole treatment: 48 hours. \n", "The purpose here is to see how the population behaves without population updates and find the correct time window during which the first events occur (first extremum)." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Set up the example files\n", "bnd_file =\"CellFateModel_uppmaboss.bnd\"\n", "cfg_WT = \"CellFateModel_uppmaboss.cfg\"\n", "upp_file = \"CellFateModel_uppmaboss.upp\"\n", "workdir = \"WT\"\n", "\n", "# Load the Wild-Type model\n", "model_WT = maboss.load(bnd_file, cfg_WT)\n", "model_48h = maboss.copy_and_update_parameters(model_WT, {'max_time':48})\n", "\n", "model_48h.network.set_output(('Death','Division','NFkB'))\n", "run_48h = model_48h.run()\n", "\n", "run_48h.get_states_probtraj().plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## UpPMaBoSS runs, with different values of time steps" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "According to the results of the WT simulation, we choose to consider the Time Step <= 1, because the first local extremum is around time = 1 hour.\n", "\n", "No matter what the max_time is, the total simulation time is 48 hours. Thus, for each max_time, the number of time steps must be adapted. To assess the cell population response with respect to different values for the max_time, we perform UpPMaBoSS simulations for the four cases:\n", "\n", " if max_time is 1, then the number of steps is 48 (black curve)\n", " if max_time is 1/2, then the number of steps is 96 (red curve)\n", " if max_time is 1/3, then the number of steps is 144 (blue curve)\n", " if max_time is 1/4, then the number of steps is 192 (green curve)\n", "\n", "Since we are simulating four cases, four subfolders will be created.\n", "\n", "The population ratio for each case will be plotted." ] }, { "cell_type": "code", "execution_count": 3, "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Simulations for time step: 1.0\n", "Simulations for time step: 0.5\n", "Simulations for time step: 0.3333333333333333\n", "Simulations for time step: 0.25\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "max_time = model_WT.param[\"max_time\"]\n", "time_tick = model_WT.param[\"time_tick\"]\n", "\n", "ratios = {1: \"black\", 2:\"red\", 3:\"blue\", 4:\"green\"}\n", "fig, ax = plt.subplots()\n", "for ratio,color in ratios.items():\n", " print(\"Simulations for time step:\", str(1/ratio))\n", " # Update the max step and time tick based on the WT model\n", " params = {\n", " 'max_time': \"%g\" % (max_time/ratio),\n", " \"time_tick\": \"%g\" % (time_tick/ratio)\n", " }\n", " step_model = maboss.copy_and_update_parameters(model_WT, params)\n", "\n", " # Run UpPMaBoSS on the modified setup\n", " rwd = \"%s_R%s\" % (workdir, ratio)\n", " uppModel_step = maboss.UpdatePopulation(step_model, upp_file)\n", " \n", " \n", " uppModel_step.setStepNumber(48*ratio)\n", " \n", " run_step = uppModel_step.run(rwd)\n", " pop_ratios = run_step.get_population_ratios()\n", " #pop_ratios = pop_ratios[1:]\n", " time_steps = []\n", " pop_ratio_steps = []\n", " for step, pop_ratio in pop_ratios.items():\n", " time_steps.append(int(step)*max_time)\n", " pop_ratio_steps.append(float(pop_ratio))\n", " ax.plot(time_steps,pop_ratio_steps,'k.-',label='Time Step = '+str(1/ratio),c=color)\n", "\n", "\n", "ax.legend(loc='upper right',prop={'size':8})\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The asymptotic behavior of the cell population is robust, but the time to reach the asymptotic behavior varies. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Simulation of the wild type model with no TNF" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## MaBoSS run for finding first transient effect" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The same simulations are performed in the case when TNF is not activate (corresponding to \"No Pulse TNF\" described in the main text).\n", "\n", "We perform these simulations on this second situation because the population grows faster than when TNF is ON." ] }, { "cell_type": "code", "execution_count": 4, "metadata": { "scrolled": true }, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "#Create a model for 48h with no TNF\n", "\n", "model_48h_noTNF = maboss.copy_and_update_parameters(model_WT, {'max_time':48})\n", "model_48h_noTNF.network.set_istate('TNF',[1,0])\n", "\n", "for name in \"mcIAP mXIAP mROS NonACD Apoptosis Survival TNF ATP FADD cIAP FASL TNFR DISC_TNF DISC_FAS RIP1 RIP1ub RIP1K IKK CASP8 BAX BCL2 ROS MPT MOMP SMAC Cyt_c XIAP apoptosome CASP3 cFLIP\".split(' '):\n", " model_48h_noTNF.network[name].is_internal = True\n", "\n", "model_48h_noTNF.network.set_output(('Death','Division','NFkB'))\n", "run_48h_noTNF = model_48h_noTNF.run()\n", "\n", "run_48h_noTNF.get_states_probtraj().plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The simulation shows that the asymptotic solution is reached very fast and the window of variation is very small (between 0.2 and 0.3). Note that NFkB is not shown because it is always at 0. We select the same time step as the simulations for TNF ON: Time Step <= 1." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## UpPMaBoSS runs, with different values of update time\n", "\n", "Similarly, we explore values for the four cases:\n", "\n", "- if max_time is 1, then the number of steps is 48 (black curve)\n", "- if max_time is 1/2, then the number of steps is 96 (red curve)\n", "- if max_time is 1/3, then the number of steps is 144 (blue curve)\n", "- if max_time is 1/4, then the number of steps is 192 (green curve)\n", "\n", "Since we are simulating four cases, four subfolders will be created.\n", "\n", "The population ratio for each case will be plotted." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Simulations for time step: 1.0\n", "Simulations for time step: 0.5\n", "Simulations for time step: 0.3333333333333333\n", "Simulations for time step: 0.25\n" ] }, { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "model_WT_noTNF = model_WT.copy()\n", "model_WT_noTNF.network.set_istate('TNF',[1.0,0.0])\n", "ratios = {1: \"black\", 2:\"red\", 3:\"blue\", 4:\"green\"}\n", "fig, ax = plt.subplots()\n", "\n", "upp_sims = []\n", "\n", "for ratio,color in ratios.items():\n", " print(\"Simulations for time step:\", str(1/ratio))\n", " # Update the max step and time tick based on the WT model\n", " params = {\n", " 'max_time': \"%g\" % (max_time/ratio),\n", " \"time_tick\": \"%g\" % (time_tick/ratio)\n", " }\n", " step_model_noTNF = maboss.copy_and_update_parameters(model_WT_noTNF, params)\n", "\n", " \n", " # Run UpPMaBoSS on the modified setup\n", " rwd = \"%s_noTNF_R%s\" % (workdir, ratio)\n", " #uppModel_step_noTNF = maboss.UpdatePopulation(step_model_noTNF, step_upp_file)\n", " uppModel_step_noTNF = maboss.UpdatePopulation(step_model_noTNF, upp_file)\n", " uppModel_step_noTNF.setStepNumber(48*ratio)\n", " \n", " run_step_noTNF = uppModel_step_noTNF.run(rwd)\n", " upp_sims.append(run_step_noTNF)\n", " \n", " \n", " pop_ratios = run_step_noTNF.get_population_ratios()\n", " #pop_ratios = pop_ratios[1:]\n", "\n", " time_steps = []\n", " pop_ratio_steps = []\n", " for step, pop_ratio in pop_ratios.items():\n", " time_steps.append(int(step)*max_time)\n", " pop_ratio_steps.append(float(pop_ratio))\n", " ax.plot(time_steps,pop_ratio_steps,'k.-',label='Time Step = '+str(1/ratio),c=color)\n", "\n", "\n", "ax.legend(loc='upper right',prop={'size':8})\n", "plt.show()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The different time step values show very little differences. \n", "\n", "A plot of the behavior between time = 0 and time = 10 is shown below." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "fig, ax = plt.subplots()\n", "for i, (ratio,color) in enumerate(ratios.items()):\n", " pop_ratios = upp_sims[i].get_population_ratios()\n", " pop_ratios = pop_ratios[1:]\n", " \n", " time_steps = []\n", " pop_ratio_steps = []\n", " for step, pop_ratio in pop_ratios.items():\n", " time_steps.append(int(step)*max_time)\n", " pop_ratio_steps.append(float(pop_ratio))\n", " ax.plot(time_steps,pop_ratio_steps,'k.-',label='Time Step = '+str(1/ratio),c=color)\n", "plt.xlim(0,10)\n", "ax.legend(loc='upper right',prop={'size':8})\n", "plt.show()\n" ] } ], "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.7.5" } }, "nbformat": 4, "nbformat_minor": 2 }