Myokit

Software

Resources

Myokit is a python-based software package designed to simplify the
use of numerical models in the analysis of cardiac myocytes.
It was created as part of my
PhD Thesis
at
Maastricht University,
and is being developed further at the
University of Oxford.
Myokit is released as open source software under a
GPL license.

What does it do?

Myokit provides a straightforward modelling language that allows
you to write model equations without implementation details. Once
a model has been defined, single or multi-cellular simulations can
be run on your CPU or GPU.

Myokit can import models from CellML or
SBML and export to C,
matlab, python,
CUDA, OpenCL and more.
The separation of model code from engine allows you to run multiple
types of analysis without having to rework your model. Conversely,
scripted experiments set up using Myokit can be repeated for
different models with little or no modifications.

A model editing GUI is provided as well as a growing number of
tools for simulation, sensitivity
analysis, parameter estimation and
more. For a quick glance at some of the possibilities, see the
examples page.

How does it work?

Behind the scenes, Myokit takes advantage of Python's distutils module
to generate and compile simulation code on the fly. This means that,
while the experiment is set up and post-processed in high-level Python,
the actual simulation runs entirely in low-level C.

By building on the stiff-ode solver CVODE for single cell simulations
and using OpenCL for multi-cell simulations, Myokit achieves the kind
of performance usually associated with implementations in C or C++.

An example using the API

Myokit experiments are stored in an .mmt file containing

A model definition (in myokit's model definition syntax). This
contains all model equations, comments, units and the initial
values of the state variables.

A pacing protocol. This can be either
a periodic stimulus for ordinary pacing, or a more complex
protocol that mimicks patch-clamp experiments.

A plot script (in plain python). In this part, you set up the
simulation, run it and process the results.

In the example below, we're going to ignore the plot script and use
only the model and protocol: