A software platform for modeling, simulation and analysis of complex, heterogeneous and multi-scale systems like the cell. E-Cell has multi-algorithm, multi-timescale and multi-spatial-representation as its central feature.

# ecell4

This provides pure Python libraries (Miscellaneous utility functions) for E-Cell System version 4.

## Try online

You can try this package online with Google Colaboratory. Please refer to the https://github.com/ecell/ecell4_docs

## Quick Start

Here are 3 extremely simple examples, See https://github.com/ecell/ecell4_docs or http://ecell4.readthedocs.org for more details.

``````(base) root@5e5b25d2363d:~# python
Python 3.7.3 (default, Mar 27 2019, 22:11:17)
[GCC 7.3.0] :: Anaconda, Inc. on linux
>>> from ecell4_base.core import *
>>> sp = Species("A.B.C")
>>> sp.serial()
'A.B.C'
>>>
``````

### Binding and unbinding reactions

Run this with Jupyter Notebook

```%matplotlib inline
from ecell4 import *

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

run_simulation(10, {'A': 60, 'B': 60})
```

### Diffusion on a spherical surface

Run this with Jupyter Notebook

```%matplotlib inline
from ecell4_base.core import *
from ecell4 import *

with species_attributes():
M | {'dimension': 2}
A | {'D': 1.0, 'location': 'M'}

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

viz.plot_trajectory(obs, interactive=False)
```