Skip to main content

Unit tests on multiple python versions Unit tests on multiple operating systems codecov Change-point testing code Change-point testing results binder readthedocs

What is Pints?

PINTS (Probabilistic Inference on Noisy Time-Series) is a framework for optimisation and Bayesian inference. Although it can be used as a general-purpose inference tool, it was developed specifically for models of noisy time-series, such as arise in electrochemistry and cardiac electrophysiology.

PINTS is described in this publication in JORS and can be cited using the information given in our CITATION file. More information about PINTS papers can be found in the papers directory.

Using PINTS

PINTS can work with any model that implements the pints.ForwardModel interface. This has just two methods:

n_parameters() --> Returns the dimension of the parameter space.

simulate(parameters, times) --> Returns a vector of model evaluations at
                                the given times, using the given parameters

Experimental data sets in PINTS are defined simply as lists (or arrays) of times and corresponding experimental values. If you have this kind of data, and if your model (or model wrapper) implements the two methods above, then you are ready to start using PINTS to infer parameter values using optimisation or sampling.

A brief example is shown below:

An example of using PINTS in an optimisation

(Left) A noisy experimental time series and a computational forward model. (Right) Example code for an optimisation problem. The full code can be viewed here but a friendlier, more elaborate, introduction can be found on the examples page.

Beyond time-series models, PINTS can be used on any error function or log-likelihood that takes real-valued, continuous parameters.

An overview of the methods provided by PINTS can be viewed here.

Examples and documentation

PINTS comes with a number of detailed examples, hosted here on github. In addition, there is a full API documentation, hosted on readthedocs.io.

Installing PINTS

The latest release of PINTS can be installed with pip, by opening a console and typing

$ pip install --upgrade pip
$ pip install pints

Note that you'll need Python 3.6 or newer.

If you prefer to have the latest cutting-edge version, you can instead install from the repository, by typing

$ git clone https://github.com/pints-team/pints.git
$ cd pints
$ pip install -e .[dev,docs]

To uninstall again, type:

$ pip uninstall pints

What's new in this version of PINTS?

To see what's changed in the latest release, see the CHANGELOG.

Contributing to PINTS

There are lots of ways to contribute to PINTS development, and anyone is free to join in. For example, you can report problems or make feature requests on the issues pages.

Similarly, if you want to contribute documentation or code you can tell us your idea on this page, and then provide a pull request for review. Because PINTS is a big project, we've written extensive contribution guidelines to help standardise the code — but don't worry, this will become clear during review.

License

PINTS is fully open source. For more information about its license, see LICENSE.

Get in touch

Questions, suggestions, or bug reports? Start a discussion or open an issue to let us know!

Metadata

Release files for pints 0.6.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 pints 0.6.1
File Size Uploaded
pints-0.6.1.tar.gz 217.0 kB Details

Built distribution (wheel)

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

Total release size: 507.2 kB

Release files / pints-0.6.1.tar.gz

Download URL pints-0.6.1.tar.gz
Size 217.0 kB
Tags Source
SHA-256 checksum
How to use checksums
012e6010b273b357d9d2ac7030fb323a3343f9e7753d64cf7d2e9fa720ac26d8
BLAKE2b-256 checksum
How to use checksums
cc372b8c9d653216a7de78c274165c6e77478d481ac863e6613bed630667a93d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release files / pints-0.6.1-py3-none-any.whl

Download URL pints-0.6.1-py3-none-any.whl
Size 290.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
879a9cfc4076ecc1b04e995cad61ae123f774737f30509e8e4916fa26d370289
BLAKE2b-256 checksum
How to use checksums
1288c3498e9c511d1763ee4412c7ac2d9f42a711f1eac4f7d72b06cc20c10672
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Mar 6, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.6.1 This release

2 release files

0.6.0

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

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