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:
- Clone the repository.
- 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). - 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)
| File | Size | Uploaded | |
|---|---|---|---|
| ionbench-1.0.1.tar.gz | 985.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|