Created
January 5, 2016 10:36
-
-
Save kozo2/2fef26389a28f4e6b444 to your computer and use it in GitHub Desktop.
ecell4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "cells": [ | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "# 1. Brief Tour of E-Cell4 Simulations\n", | |
| "\n", | |
| "First of all, you have to load the E-Cell4 library:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 18, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "%matplotlib inline\n", | |
| "from ecell4 import *" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## 1.1. Quick Demostration\n", | |
| "\n", | |
| "There are three fundamental components consisting of E-Cell System version 4, which are `Model`, `World`, and `Simulator`. These components describe concepts in simulation.\n", | |
| "\n", | |
| "* `Model` describes a problem to simulate as its name suggests. \n", | |
| "* `World` describes a state, e.g. an initial state and a state at a time-point. \n", | |
| "* `Simulator` describes a solver.\n", | |
| "\n", | |
| "`Model` is independent from solvers. Every solver can share a single `Model` instance. Each alogrithm has a corresponding pair of `World` and `Simulator` (these pairs are capsulized into `Factory` class). `World` is not necessarily needed to be bound to `Model` and `Simulator`, but `Simulator` needs both `Model` and `World`.\n", | |
| "\n", | |
| "Before running a simulation, you have to make a `Model`. E-Cell4 supports multiple ways to buld a `Model` (See [2. How to Build a Model](2. How to Build a Model.ipynb)). Here, we explain the simplest way using the `with` statement with `reaction_rules`:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 19, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stdout", | |
| "output_type": "stream", | |
| "text": [ | |
| "<ecell4.core.NetworkModel object at 0x038FF9F0>\n" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "with reaction_rules():\n", | |
| " A + B > C | 0.01 # equivalent to create_binding_reaction_rule\n", | |
| " C > A + B | 0.3 # equivalent to create_unbinding_reaction_rule\n", | |
| "\n", | |
| "m1 = get_model()\n", | |
| "print(m1)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Please remember to write parentheses `()` after `reaction_rules`. Here, a `Model` with two `ReactionRule`s named `m` was built. Lines in the `with` block describe `ReactionRule`s, a binding and unbinding reaction respectively. A kinetic rate for the mass action reaction is defined after a separator `|`, i.e. `0.01` or `0.3`. In the form of ordinary differential equations, this model can be described as:\n", | |
| "\n", | |
| "$$[\\mathrm{A}]'=[\\mathrm{B}]'=-[\\mathrm{C}]=-0.01[\\mathrm{A}][\\mathrm{B}]+0.3[\\mathrm{C}]$$" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "For more compact description, `A + B == C | (0.01, 0.3)` is also acceptable.\n", | |
| "\n", | |
| "E-Cell4 has a simple interface to run simulations with the given model, `run_simulation`. This enables for you to run simulations without instanciate `World` and `Simulator` by yourself. To solve this model, you have to give a volume, an initial value for each `Species` and duration of time:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 20, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "c:\\python35\\lib\\site-packages\\matplotlib\\__init__.py:892: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n", | |
| " warnings.warn(self.msg_depr % (key, alt_key))\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x5be6c30>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "run_simulation(10.0, model=m1, y0={'A': 60, 'B': 60}, volume=1.0)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "To switch simulation algorithm, you only need to give the type of solver (`ode` is used as a default) as follows:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 21, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "c:\\python35\\lib\\site-packages\\matplotlib\\__init__.py:892: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n", | |
| " warnings.warn(self.msg_depr % (key, alt_key))\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x5b92e30>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "run_simulation(10.0, model=m1, y0={'A': 60, 'B': 60}, solver='gillespie')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "## 1.2. Spatial Simulation and Visualization\n", | |
| "\n", | |
| "E-Cell4 now supports multiple spatial algorithms, `egfrd`, `spatiocyte` and `meso`. In addition to the model used in non-spatial solvers (`ode` and `gillespie`), these spatial solvers need extra information about each `Species`, i.e. a diffusion coefficient and radius.\n", | |
| "\n", | |
| "The `with` statement with `species_attributes` is available to describe these properties:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 22, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "with species_attributes():\n", | |
| " A | B | C | {'radius': '0.005', 'D': '1'} # 'D' is for the diffusion coefficient\n", | |
| "\n", | |
| "with reaction_rules():\n", | |
| " A + B == C | (0.01, 0.3)\n", | |
| "\n", | |
| "m2 = get_model()" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Even though the properties indicate a floating number, each attribute must be given as a string.\n", | |
| "\n", | |
| "Now you can run a spatial simulation in the same way as above (`egfrd` would need long time to simulate):" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 23, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "name": "stderr", | |
| "output_type": "stream", | |
| "text": [ | |
| "c:\\python35\\lib\\site-packages\\matplotlib\\__init__.py:892: UserWarning: axes.color_cycle is deprecated and replaced with axes.prop_cycle; please use the latter.\n", | |
| " warnings.warn(self.msg_depr % (key, alt_key))\n" | |
| ] | |
| }, | |
| { | |
| "data": { | |
| "image/png": "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\n", | |
| "text/plain": [ | |
| "<matplotlib.figure.Figure at 0x5bf5190>" | |
| ] | |
| }, | |
| "metadata": {}, | |
| "output_type": "display_data" | |
| } | |
| ], | |
| "source": [ | |
| "run_simulation(10.0, model=m2, y0={'A': 60, 'B': 60}, solver='meso')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Structure (e.g. membrane, cytoplasm and nucleus) is only supported by `spatiocyte` and `meso` now. For the simulation, `location` that each species belongs to must be specified in its attribute first." | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 24, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "with species_attributes():\n", | |
| " A | {'D': '1', 'location': 'S'} # 'S' is a name of the structure\n", | |
| "\n", | |
| "m3 = get_model() # with no reactions" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "E-Cell4 supports primitive shapes as a structure like `Sphere`:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 25, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "sphere = Sphere(Real3(0.5, 0.5, 0.5), 0.48) # a center position and radius" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "E-Cell4 provides various kinds of `Observer`s, which log the state during a simulation. Two observers are declared to log positions of molecules. `FixedIntervalTrajectoryObserver` logs a trajectory of a molecule, and `FixedIntervalHDF5Observer` saves `World` to a HDF5 file at the given interval:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 26, | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "obs1 = FixedIntervalTrajectoryObserver(1e-3)\n", | |
| "obs2 = FixedIntervalHDF5Observer(0.1, 'test%02d.h5')" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Then, `run_simulation` accepts structures and observers as arguments `structure` and `observers` respectively (see also `help(run_simulation)`):" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": 27, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [ | |
| { | |
| "ename": "RuntimeError", | |
| "evalue": "save(const std::string) is not supported by this space class", | |
| "output_type": "error", | |
| "traceback": [ | |
| "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", | |
| "\u001b[1;31mRuntimeError\u001b[0m Traceback (most recent call last)", | |
| "\u001b[1;32m<ipython-input-27-183eb186bbd1>\u001b[0m in \u001b[0;36m<module>\u001b[1;34m()\u001b[0m\n\u001b[0;32m 1\u001b[0m run_simulation(1.0, model=m3, y0={'A': 60}, structures={'S': sphere},\n\u001b[1;32m----> 2\u001b[1;33m solver='spatiocyte', observers=(obs1, obs2), return_type=None)\n\u001b[0m", | |
| "\u001b[1;32mc:\\python35\\lib\\site-packages\\ecell4\\util\\simulation.py\u001b[0m in \u001b[0;36mrun_simulation\u001b[1;34m(t, y0, volume, model, solver, factory, is_netfree, species_list, without_reset, return_type, opt_args, opt_kwargs, structures, observers)\u001b[0m\n\u001b[0;32m 167\u001b[0m \u001b[0mobservers\u001b[0m \u001b[1;33m=\u001b[0m \u001b[1;33m(\u001b[0m\u001b[0mobs\u001b[0m\u001b[1;33m,\u001b[0m \u001b[1;33m)\u001b[0m \u001b[1;33m+\u001b[0m \u001b[0mtuple\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mobservers\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 168\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m--> 169\u001b[1;33m \u001b[0msim\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mrun\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mt\u001b[0m\u001b[1;33m[\u001b[0m\u001b[1;33m-\u001b[0m\u001b[1;36m1\u001b[0m\u001b[1;33m]\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mobservers\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 170\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 171\u001b[0m \u001b[1;32mif\u001b[0m \u001b[0mreturn_type\u001b[0m \u001b[1;33m==\u001b[0m \u001b[1;34m'matplotlib'\u001b[0m\u001b[1;33m:\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n", | |
| "\u001b[1;32mlib\\ecell4\\spatiocyte.pyx\u001b[0m in \u001b[0;36mecell4.spatiocyte.SpatiocyteSimulator.run (lib/ecell4\\spatiocyte.cpp:11191)\u001b[1;34m()\u001b[0m\n", | |
| "\u001b[1;31mRuntimeError\u001b[0m: save(const std::string) is not supported by this space class" | |
| ] | |
| } | |
| ], | |
| "source": [ | |
| "run_simulation(1.0, model=m3, y0={'A': 60}, structures={'S': sphere},\n", | |
| " solver='spatiocyte', observers=(obs1, obs2), return_type=None)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "E-Cell4 also provides visualizations including an interactive visualization on IPython Notebook like `viz.plot_world`. `viz.plot_world` plots positions of molecules in 3D. In addition, by using `load_world`, you can easily restore the state of `World` from a HDF5 file:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# viz.plot_world(load_world('test00.h5'), species_list=['A'])\n", | |
| "viz.plot_world(load_world('test00.h5'), species_list=['A'], interactive=False)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": {}, | |
| "source": [ | |
| "Also for `FixedIntervalTrajectoryObserver`, `viz.plot_trajectory` plots trajectories in the interactive way:" | |
| ] | |
| }, | |
| { | |
| "cell_type": "code", | |
| "execution_count": null, | |
| "metadata": { | |
| "collapsed": false | |
| }, | |
| "outputs": [], | |
| "source": [ | |
| "# viz.plot_trajectory(obs1)\n", | |
| "viz.plot_trajectory(obs1, interactive=False)" | |
| ] | |
| }, | |
| { | |
| "cell_type": "markdown", | |
| "metadata": { | |
| "collapsed": true | |
| }, | |
| "source": [ | |
| "For more details, see [5. How to Log and Visualize Simulations](5. How to Log and Visualize Simulations.ipynb)." | |
| ] | |
| } | |
| ], | |
| "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.5.1" | |
| } | |
| }, | |
| "nbformat": 4, | |
| "nbformat_minor": 0 | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment