Skip to main content

BITS for GAPS

CI PyPI Docs

Bayesian Information-Theoretic Sampling for hierarchical GAussian Process Surrogates.

A framework for information-theoretic sequential experimental design with Bayesian hierarchical Gaussian-process surrogates. Prior physical knowledge is encoded through priors on the GP hyperparameters; sampling is guided by maximizing the predictive differential entropy, so hyperparameter uncertainty (not just predictive variance) drives data acquisition.

Reference: K. D. Jones and A. W. Dowling, "BITS for GAPS: Bayesian Information-Theoretic Sampling for hierarchical GAussian Process Surrogates," Computers & Chemical Engineering 211 (2026) 109650. https://doi.org/10.1016/j.compchemeng.2026.109650

The paper is bundled in this repository so you can read the method alongside the code: paper/bits_for_gaps_paper.pdf. It is redistributed under CC BY 4.0 (© 2026 The Authors, published by Elsevier Ltd); the DOI above is the canonical citation.

Install

pip install bits_for_gaps

The core library is pure Python (GPflow / TensorFlow / NumPy / SciPy) with no Julia dependency. Julia + Clapeyron are only needed for the vle_distillation example, which isn't part of the PyPI package -- see "From source" below.

macOS note: set export PYTHON_JULIACALL_HANDLE_SIGNALS=yes before importing juliacall, or Julia crashes with a bus error (SIGBUS).

From source (for examples/, paper/, and development)

git clone https://github.com/dowlinglab/bits_for_gaps
cd bits_for_gaps
conda env create -f environment.yml
conda activate bits_for_gaps
pip install -e ".[dev]"          # core + test tools
# pip install -e ".[dev,vle]"    # add the Julia/Clapeyron VLE example backend

Layout

src/bits_for_gaps/   the library (algorithm)
examples/            worked examples (incl. the paper's VLE/distillation case study)
paper/               scripts + reference metrics to reproduce the published figures
tests/               unit / integration / regression tests
docs/                Sphinx documentation (ReadTheDocs)

Quick test

pytest -q

Provenance

The research code behind the paper was originally developed in a private repository over the course of the study. It was then migrated here and reorganized into an installable, tested package: the algorithm was separated from the vapor–liquid-equilibrium case study, generalized to arbitrary input dimension, and covered by a test suite. That private repository holds only the development history — nothing you need to use this package or to reproduce the paper's figures is missing from this repository. The data the figure scripts read is committed here under paper/data/ (see paper/REPRODUCTION.md).

Docs

Full docs (installation, a pure-Python quickstart, theory notes, the VLE example, reproducing the paper's figures, and the API reference): https://bits-for-gaps.readthedocs.io

To build and browse locally instead:

pip install -e ".[docs]"
sphinx-build -W docs docs/_build/html
open docs/_build/html/index.html   # or your platform's equivalent

Download files

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

Source Distribution

bits_for_gaps-0.1.2.tar.gz (33.8 kB view details)

Uploaded Source

Built Distribution

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

bits_for_gaps-0.1.2-py3-none-any.whl (35.9 kB view details)

Uploaded Python 3

File details

Details for the file bits_for_gaps-0.1.2.tar.gz.

File metadata

  • Download URL: bits_for_gaps-0.1.2.tar.gz
  • Upload date:
  • Size: 33.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for bits_for_gaps-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6c771a7aa7f51712dc86a0bd19963ed4f8a8c5101428b97bd2ade00b55bbaea9
MD5 78eaa41af6380f8bd65d8cbe1347ad55
BLAKE2b-256 d6507be574f574590133ab1756c107e677f9b90710f2d967933bc0d94306066d

See more details on using hashes here.

Provenance

The following attestation bundles were made for bits_for_gaps-0.1.2.tar.gz:

Publisher: publish.yml on dowlinglab/bits_for_gaps

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file bits_for_gaps-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: bits_for_gaps-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 35.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for bits_for_gaps-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 1afac635dda3d04508e3ec1bf04f93044c4b590169c933cd7062227a42902f5b
MD5 b4118d310986d9f6305c86898dded2f9
BLAKE2b-256 e29cdd65fb2e9c5b449af529e4c4a952b9e100dc87fe3b9dc1e27350fd5f1fef

See more details on using hashes here.

Provenance

The following attestation bundles were made for bits_for_gaps-0.1.2-py3-none-any.whl:

Publisher: publish.yml on dowlinglab/bits_for_gaps

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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