KarrLab/wc_sim

View on GitHub
examples/jupyter_examples/Example simulation run.ipynb

Summary

Maintainability
Test Coverage
{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Simulate a wc_lang model with wc_sim"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### setup Python environment"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import tempfile\n",
    "\n",
    "import matplotlib.pyplot as plt\n",
    "# allow embedded plots in the notebook\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### import Simulation and RunResults"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "from wc_sim.multialgorithm.simulation import Simulation\n",
    "from wc_sim.multialgorithm.run_results import RunResults"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### select a toy model "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "steady_rate_model_filename = os.path.join(os.getcwd(), '../../tests/multialgorithm/fixtures',\n",
    "                                              '2_species_1_reaction.xlsx')\n",
    "reactant_rate_model_filename = os.path.join(os.getcwd(), '../../tests/multialgorithm/fixtures',\n",
    "                              '2_species_1_reaction_with_rates_given_by_reactant_population.xlsx')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### create and run simulation"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Simulated 1652 events\n",
      "Saved checkpoints and run results in '/tmp/tmp1i5hj5xg/2018-05-28-17-25-24'\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/usr/local/lib/python3.6/site-packages/pandas/core/generic.py:1471 \u001b[1;31mPerformanceWarning\u001b[0m: \n",
      "your performance may suffer as PyTables will pickle object types that it cannot\n",
      "map directly to c-types [inferred_type->bytes,key->values] [items->None]\n",
      "\n",
      "/usr/local/lib/python3.6/site-packages/pandas/core/generic.py:1471 \u001b[1;31mPerformanceWarning\u001b[0m: \n",
      "your performance may suffer as PyTables will pickle object types that it cannot\n",
      "map directly to c-types [inferred_type->mixed,key->values] [items->None]\n",
      "\n"
     ]
    }
   ],
   "source": [
    "results_dir = tempfile.mkdtemp()\n",
    "simulation = Simulation(reactant_rate_model_filename)\n",
    "num_events, results_dir = simulation.run(end_time=100, results_dir=results_dir, checkpoint_period=10)\n",
    "run_results = RunResults(results_dir)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RunResults contains: {'random_states', 'aggregate_states', 'metadata', 'populations'}\n",
      "       spec_type_1[c]  spec_type_0[c]\n",
      "0.0               0.0          2000.0\n",
      "10.0            300.0          1700.0\n",
      "20.0            555.0          1445.0\n",
      "30.0            788.0          1212.0\n",
      "40.0            956.0          1044.0\n",
      "50.0           1115.0           885.0\n",
      "60.0           1269.0           731.0\n",
      "70.0           1383.0           617.0\n",
      "80.0           1482.0           518.0\n",
      "90.0           1572.0           428.0\n",
      "100.0          1642.0           358.0\n",
      "compartment              c                            \n",
      "property              name          mass        volume\n",
      "0.0          compartment c  3.321078e-20  1.000000e-22\n",
      "10.0         compartment c  3.321078e-20  1.000000e-22\n",
      "20.0         compartment c  3.321078e-20  1.000000e-22\n",
      "30.0         compartment c  3.321078e-20  1.000000e-22\n",
      "40.0         compartment c  3.321078e-20  1.000000e-22\n",
      "50.0         compartment c  3.321078e-20  1.000000e-22\n",
      "60.0         compartment c  3.321078e-20  1.000000e-22\n",
      "70.0         compartment c  3.321078e-20  1.000000e-22\n",
      "80.0         compartment c  3.321078e-20  1.000000e-22\n",
      "90.0         compartment c  3.321078e-20  1.000000e-22\n",
      "100.0        compartment c  3.321078e-20  1.000000e-22\n",
      "author        {'name': 'Unknown name', 'email': 'Unknown ema...\n",
      "model         {'url': 'https://github.com/KarrLab/wc_sim.git...\n",
      "run           {'start_time': 2018-05-28 17:25:24.951885, 'ru...\n",
      "simulation    {'time_init': 0.0, 'max_time': 100.0, 'time_st...\n",
      "dtype: object\n"
     ]
    }
   ],
   "source": [
    "print('RunResults contains:', RunResults.COMPONENTS)\n",
    "for component in ['populations', 'aggregate_states', 'metadata']:\n",
    "    print(run_results.get(component))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "axes = run_results.get('populations').plot()"
   ]
  }
 ],
 "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.6.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}