An integrated software environment for multi-algorithm, multi-timescale, multi-spatial-representation simulation of various cellular phenomena
Clone or download

E-Cell System version 4

Build Status CircleCI Build status Documentation Status PyPI License: GPL v2 Codacy Badge Slack Status

What is E-Cell System?

E-Cell System is a software platform for modeling, simulation and analysis of complex, heterogeneous and multi-scale systems like a cell.

E-Cell4 accepts multi-algorithms, multi-timescales and multi-spatial-representations as its central feature.


Try online

You can try this package online from the following links:


  • Code fragments that depend on ffmpeg will not work with Azure Notebooks. If you use movie export, please try Binder instead.
  • If you use Binder, please go down to tutorials or examples.
  • If you use Azure Notebooks, please go down to readthedocs/tutorials or readthedocs/examples.


Please see Basically you can install E-Cell4 on any OS just by running

pip install ecell

Note about Windows

In Windows environment, all commands should be executed from Anaconda Prompt (Not from Command Prompt or PowerShell. You can run Anaconda Prompt from Windows Start Menu). This in particular solves the problem of failing to load the DLL used from E-Cell4.


Please see tutorials.


Please see examples.

Simple examples

Here are two extremely simple examples, See for more details on running E-Cell4.

Python 2.7.6 (default, Mar 22 2014, 22:59:56)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from ecell4.core import *
>>> sp = Species("A.B.C")
>>> print sp.serial()

Binding and unbinding reactions

%matplotlib inline
from ecell4 import *

with reaction_rules():
    A + B == C | (0.01, 0.3)

run_simulation(100, {'A': 60, 'B': 60})


Diffusion on a spherical surface

%matplotlib inline
from ecell4 import *

with species_attributes():
    A | {'D': '1', 'location': 'M'}

surface = Sphere(ones() * 0.5, 0.5).surface()
obs = FixedIntervalTrajectoryObserver(1e-4)
    0.4, y0={'A': 10}, structures={'M': surface},
    solver='spatiocyte', observers=obs, return_type=None)

viz.plot_trajectory(obs, interactive=False)



If this package contributes to a project which leads to a scientific publication, I would appreciate a citation.


Licensing terms

This product is licensed under the terms of the GNU General Public License v2, See NOTICE for the software included in this product.

  • Copyright (c) 2010-, RIKEN

All rights reserved.