Action Potential Prediction Project

ApPredict is a free open source program for prediction of action potential changes under drug-block of ion channels. The ion channel block is modelled as conductance block, and it can be used with a number of action potential models (specified using CellML), different pacing rates, and blockade of the following ion channels can be included: IKr (hERG), IKs (KCNQ1), ICaL (CaV1.2), INa (NaV1.5), Ito (Kv4.3), IK1 (KCNN4).

If you have any questions/comments, please get in touch with

A web-based portal interface to this program is now available: (feedback welcome), if you use this you can ignore all the instructions below - it’s all set up for you!

The Science

For an overview of what ApPredict is doing, why, and how well it is performing, please see the user guide which is hosted on Figshare and the ApPredict paper.

Using ApPredict


N.B. you don’t need to do any of the below to use the web portal version of ApPredict.


ApPredict requires a ‘Code User’ or ‘Code Developer’ version of Chaste to be installed and compiled. See GettingStarted for a guide on what we mean, and how to do this.

Code User: Stable Release Version

A stable version of ApPredict, compatible with the latest release of Chaste, is available either to download, or as a tag within github.

Option 1: Download

Download both:

  • the latest release of Chaste from, and
  • the corresponding release of ApPredict from

Option 2: Get from Github

To get both the release of Chaste and ApPredict do:

git clone
cd Chaste
git checkout tags/release_3.4
cd projects
git clone --recursive
cd ApPredict
git checkout tags/release_3.4

Code Developer: Development Version

Alternatively the development version can be downloaded using subversion, using the following instructions.

git clone -b develop

(as per ChasteGuides/AccessCodeRepository)

If you are not using the InstallGuides/UbuntuPackage then the hostconfig settings in Chaste/python/hostconfig will need to be updated to give the correct paths to all of Chaste’s dependencies.

then similarly in the same folder

git clone --recursive
cd Chaste/projects
ln -s ../../ApPredict
cd ..

The project can be kept up to date by simply navigating to the Chaste folder and running

git pull
cd projects/ApPredict
git pull

The page ChasteGuides/ExternalDeveloperGuide provides a guide as to the latest revision that passed all tests.


scons cl=1 b=GccOptNative exe=1 projects/ApPredict/apps/src



The executable will then display a list of command line arguments.

(N.B. you may have to add Chaste libraries under the Chaste libs folder to your LD_LIBRARY_PATH variable, along with some other dependencies, e.g. One way to find out what these should be is to run scons cl=1 b=GccOptNative exe=1 offline_mode=1 projects/ApPredict/apps/src, which will create a supercomputer script called in the Chaste source folder that contains the correct LD_LIBRARY_PATH at the bottom when you open it.)

Error Codes

When you start blocking ion channels, various funny things can happen and lead to error codes in action potential evaluation. Here is a schematic of the errors you can get back from ApPredict’s main methods.

ApPredict error codes

Release Notes

  • ApPredict is still in active development. More recent release notes are on
  • October 2017 - there are now some new error codes to get more fine-grained information out when APD evaluations fail, or there is unusual behaviour that might want to be classed separately (see above).
  • April 2017 - fa8a3a4 The LookupTableGenerator (for uncertainty quantification calculations) is now a bit better at detecting ‘No depolarization’ because it does a pre-run with sodium channel blocked and sets the threshold for an action potential to be higher than the voltage achieved here.
  • Nov 2016 - the code has moved to a github repository
    • In 2361a19 downsampling was improved to provide nicer visual plots.
  • Feb 2016 - Release 3.4 of ApPredict is available to download. Important changes since the Release 3.3 version of ApPredict are listed here:
    • In r25668:
      • New command line arguments have been added that allow the ‘saturation level’ of a dose response curve to be specified with options like --saturation-herg or --saturation-na etc.. The value(s) that follow are given as percentages, where 0% is the default (full block of the ion channel), 50% would mean an infinite amount of drug can only halve the conductance. Additionally, this allows agonists (activators) to be modelled by specifying saturation levels above 100% (in which case the IC50 is really an EC50, but interface still says IC50).
    • As of r24408: A number of additional options to:
      • Allow any CellML model to be used (when tagged with Chaste metadata - all the ones included in ApPredict/src/cellml are ready to use).
      • Allow the downsampling associated with voltage traces to be switched off (it is on as default to make online plotting fast).
      • Allow the stimulus current properties to be changed.
    • The new flags for these options can be seen by running the executable with no arguments.