Skip to main content

ionBench

A benchmarking tool for comparing different parameter optimization algorithms for ion channel models.

Project Structure

The tree structure of this project is outlined below.

├───docs
├───ionbench
├───scipts
│   ├───text
│   └───figures
└───test

The docs directory contains information and guides on how to use the benchmarker problems and the optimisation algorithms.

The ionbench directory contains the majority of the code, including the benchmarker and problems classes and the different optimisation algorithms. This is what is installed using pip.

The scripts directory contains scripts for generating figures, tables and data for the paper.

The test directory contains unit tests for ensuring changes do not break previous functionality.

Installation

Installing ionBench package

The ionBench package can be installed from PyPI using pip.

pip install ionbench

Note that ionBench uses myokit to do its simulations, which relies on CVODES (from Sundials). For Linux and macOS users a working installation of CVODES is required. For Windows users, CVODES should be automatically installed with myokit.

Getting the scripts and results

The scripts are results from ionBench are available in this repo. If you also want access to these, you should:

  1. Clone the repository.
  2. Install ionBench locally using pip (navigate to the the root directory of the repo and run pip install -e .) or install ionBench from PyPI (pip install ionbench).
  3. Navigate to the scripts directory and run the scripts you are interested in.

Getting Started

If you want to use ionBench, check out the introduction.md and tutorial.ipynb in the docs directory.

Workflow

The intended workflow for using the benchmarker is to generate a benchmarker object, set up the optimisers modification and apply it to the benchmarker, and pass the benchmarker into the optimisation algorithm to evaluate. All optimisers should accept a single benchmarker as input with all other inputs being optional.

import ionbench

bm = ionbench.problems.staircase.HH()
modification = ionbench.optimisers.pints_optimisers.cmaes_pints.get_modification()
modification.apply(bm)
optimisedParameters = ionbench.optimisers.scipy_optimisers.nelderMead_scipy.run(bm)

Metadata

Release files for ionbench 1.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ionbench 1.0.1
File Size Uploaded
ionbench-1.0.1.tar.gz 985.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ionbench 1.0.1
File Interpreter ABI Platform
ionbench-1.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 2.0 MB

Release files / ionbench-1.0.1.tar.gz

Download URL ionbench-1.0.1.tar.gz
Size 985.6 kB
Tags Source
SHA-256 checksum
How to use checksums
36cbe8ba56b2acba31ad7fd85920004879cb6ccb33f9350e8323411d1be1ac71
BLAKE2b-256 checksum
How to use checksums
e0efd89a50bfcfe2eaff6ed7fe5020f977e8fee20d97dd57db1f4c76bac436ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.10

Release files / ionbench-1.0.1-py3-none-any.whl

Download URL ionbench-1.0.1-py3-none-any.whl
Size 1.0 MB
Tags Python 3
SHA-256 checksum
How to use checksums
cbeec663116b27ae13c2313d624d9dc87377fb79a9e133b8ec6b633883cb3275
BLAKE2b-256 checksum
How to use checksums
104b6074081275cb333367e4cbefe66a0416a61ad9e98e25288f157bfe2c6cf2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.12.10

Release history Release notifications | RSS feed

This release

1.0.1 This release

2 release files

1.0.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

2 release files

0.4.2

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page