Pints (Probabilistic Inference on Noisy Time-Series) is a framework for optimisation and bayesian inference problems on noisy time-series, such as arise in electrochemistry and cardiac electrophysiology.
To use a model in Pints, you need to make sure it extends the ForwardModel interface, which has just two methods:
dimension() --> Returns the dimension of the parameter space.
simulate(parameters, times) --> Returns a vector of model evaluations at
the given times, using the given parameters
If your model implements these methods - or you can write a wrapper class that does - you can start using Pints for optimisation or MCMC.
Pints comes with a number of detailed examples, hosted here on github. In addition, there is a full API documentation, hosted on readthedocs.io.
You'll need the following requirements:
- Python 2.7 or Python 3.4+
- Python libraries:
cmanumpymatplotlibscipy
These will be installed automatically if you go to the directory you downloaded pints to, and run
$ pip install .
To uninstall again, type
$ pip uninstall pints
If you'd like to contribute to Pints, please create an issue where new proposals can be discusssed. Then, make any changes on a fork of this repo on github, and send us your modifications via a pull request.
If you plan to make changes to Pints, install with:
$ pip install -e .[dev,docs]
This will
- Install all the dependencies for Pints, including the ones for documentation (docs) and development (dev).
- Tell Python to use your local pints files when you use
import pintsanywhere on your system.
To check your coding style, use
$ flake8
To run quick tests, use
$ ./run-tests.sh