Skip to main content

Probabilistic Inference in Noisy Time-Series

Project description

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!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pints-0.6.0.tar.gz (217.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pints-0.6.0-py3-none-any.whl (290.2 kB view details)

Uploaded Python 3

File details

Details for the file pints-0.6.0.tar.gz.

File metadata

  • Download URL: pints-0.6.0.tar.gz
  • Upload date:
  • Size: 217.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for pints-0.6.0.tar.gz
Algorithm Hash digest
SHA256 7e00bc1b92b52030b0373205079ec4db045f1120cff0be43b597335e3a78ef5a
MD5 5dfdebe06f928ce139ff289280991e70
BLAKE2b-256 49e4e50c164579995edad1b2ec48a6b02ba653c4083870f8428e0198f127ff9e

See more details on using hashes here.

File details

Details for the file pints-0.6.0-py3-none-any.whl.

File metadata

  • Download URL: pints-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 290.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for pints-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 59b4f2250f7733513db52b54c72540ae73d7954c324bf1beb165735e543a3a5c
MD5 ef658a9af4d4115df6dc453e9ee7531f
BLAKE2b-256 77ef9edb72bef35126c06d8671834141166bf0cf675a04795339ec13ab4cbb9e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page