Skip to content


Repository files navigation

Four ways to fit an ion current model

This repository contains all data, code, figures, and animations for the paper "Four ways to fit an ion current model", by Clerx, Beattie, Gavaghan, and Mirams.

Supporting materials


The code requires Python (either 2.7 or 3.3+) and two dependencies: PINTS and Myokit. Myokit can be installed using pip install myokit (or pip3 install myokit for some python 3 environments), or following the instructions on PINTS can be installed using pip install pints. Matplotlib is required to regenerate the figures, and one of the supplementary figures also requires Seaborn.

To get everything in one go, use pip install -r requirements.txt.


  • data: all experimental data
  • method-1: scripts to run method 1
  • method-2: scripts to run method 2
  • method-3: scripts to run method 3
  • method-4: scripts to run method 4
  • models-and-protocols: the Myokit models and protocols used in the study
  • python: shared Python scripts, the most important bits of code live here
  • surface: scripts to perform surface mapping
  • surface-ap-fit: scripts to fit to the validation signal, only ever used for surface mapping
  • validation: scripts that post-process results from methods 1-4 and assess their performance

Data source

This project uses the sine wave data from Beattie 2018, see:

For the publication, see:

Beattie, K. A., Hill, A. P., Bardenet, R., Cui, Y., Vandenberg, J. I., Gavaghan, D. J., de Boer, T. P. & Mirams, G. R. Sinusoidal voltage protocols for rapid characterisation of ion channel kinetics. J. Physiol. 596, 1813–1828 (2018).