Installation

Install from PyPI

To install the latest stable version of BoolDog from PyPI, use the following command:

pip install booldog

Optionally, specify a version.

Optional dependencies

To install optional dependencies, use the following command:

pip install booldog[<optional-dependencies>]

Where <optional-dependences> is a comma-separated list of the following:

  • sbml: for SBML support (requires python-libsbml)

  • networks: for network analyses (requires networkx and igraph)

  • graphviz: for more elaborate STG visualization (requires pygraphviz)

  • biomodels: for fetching models from the BioModels database (requires requests)

Or:

  • all: for all optional dependencies

For example, to install all optional dependencies:

pip install booldog[all]

For details see the pyproject.toml file in the repository.

Install from GitHub

Install directly:

pip install git+https://github.com/NIB-SI/BoolDog.git

Download and install:

git clone https://github.com/NIB-SI/BoolDog.git
cd BoolDog
pip install .

Tests

See https://github.com/NIB-SI/BoolDog/tree/main/tests.

Uninstall

pip uninstall booldog

Known installation issues

1. pyboolnet incompatible with Apple Silicon (ARM) Macs

BoolDog depends on pyboolnet for Boolean network analysis. pyboolnet bundles precompiled, Intel-only binaries (BNetToPrime, clasp, gringo, …), which require Rosetta 2 to run on Apple Silicon (M-series) Macs. This has been confirmed via CI on GitHub’s Apple Silicon macOS runners (example run), where Rosetta 2 is present and BNetToPrime instantiation works correctly.

If you see OSError: [Errno 86] Bad CPU type in executable as soon as you instantiate a BoolDogModel, Rosetta 2 is most likely not installed on your Mac. Per Apple’s documentation linked above, it isn’t preinstalled, and normally only installs itself the first time you interactively open an Intel-based app and accept the install prompt, which never fires for a binary invoked via Python’s subprocess. Installing it manually from a Terminal should resolve this:

softwareupdate --install-rosetta --agree-to-license

Separately, even with Rosetta 2 installed, piping two of these translated binaries together (gringo | clasp, used for trap-space computation, i.e. BoolDogModel.steady_states()) can fail with a “bad input stream” parse error. In CI, this reproduces reliably on the Apple Silicon macOS runner and not on Linux or Windows runners, which run the same binaries natively (CI run). The exact mechanism is unconfirmed, and the same error has also been reported independently on a real Mac (and once under WSL) in hklarner/pyboolnet#99, with no root cause ever identified there either.

Aside from steady_states(), BoolDog is unaffected by the gringo/clasp issue: model instantiation, Boolean/continuous simulation, and I/O all work fine once Rosetta 2 is installed. Neither issue is something BoolDog can fix directly, since both are upstream pyboolnet limitations; see NIB-SI/BoolDog#6 for details and status.

Alternative installations

Google Colab

BoolDog can be used via Google Colab

Docker

A Dockerfile is provided at the repository root, building on python:3.12-slim and installing BoolDog with all optional dependencies.

git clone https://github.com/NIB-SI/BoolDog.git
cd BoolDog
docker build -t booldog .
docker run -it --rm booldog python

On an Apple Silicon (M-series) Mac, pass --platform linux/amd64 to both commands, so Docker emulates x86_64 rather than picking a native arm64 base image, for which pyboolnet has no matching binaries at all (see Docker’s multi-platform build docs):

docker build --platform linux/amd64 -t booldog .
docker run --platform linux/amd64 -it --rm booldog python