Skip to main content

BoolForge

BoolForge is a Python toolbox for generating, sampling, and analyzing Boolean functions and Boolean networks, with a particular emphasis on canalization and the uniform random generation of functions with prescribed structure.

While many existing tools focus on simulation and dynamical analysis, BoolForge emphasizes controlled generation and analysis of Boolean functions and networks, enabling systematic studies of canalization, robustness, and ensemble properties.

The package provides tools for:

  • random sampling of Boolean functions with prescribed canalizing structure,
  • generation of Boolean networks with controlled update rules and wiring diagrams,
  • analysis of canalization, activity, sensitivity, and related structural measures,
  • interoperability with other Boolean network software and model formats.

BoolForge is designed for researchers working with regulatory networks, discrete dynamical systems, and random Boolean network ensembles in systems biology and network science.


Installation

Stable release (recommended)

Install the latest stable version from PyPI:

pip install boolforge

BoolForge requires Python 3.10 or later.


Development version

To install the latest development version directly from GitHub:

pip install git+https://github.com/ckadelka/BoolForge

Optional dependencies (extended functionality)

BoolForge is fully usable with its core dependencies, but some features rely on optional packages that can be installed via extras.

Performance acceleration

Some internal routines are automatically accelerated if numba is available. Exact asynchronous attractor computation requires numba.

To enable numba acceleration:

pip install boolforge[speed]

When numba is not installed, BoolForge transparently falls back to pure-Python implementations.


Plotting and visualization

Plotting of wiring diagrams and network structure requires matplotlib.

To enable plotting:

pip install boolforge[plot]

CANA integration

Some methods interface with the CANA package for advanced canalization measures.

To enable CANA-based functionality:

pip install boolforge[cana]

Symbolic logic and expression minimization

Symbolic representations and logical expression minimization rely on PyEDA.

To enable symbolic functionality:

pip install boolforge[symbolic]

Biological model retrieval

The retrival and loading of hundreds of published biological Boolean network models relies on the requests package for web access.

To enable biological model retrieval:

pip install boolforge[bio]

All optional features

To install BoolForge with all optional dependencies:

pip install boolforge[all]

Compatibility and interoperability

BoolForge supports import and export of Boolean network representations used by other software packages.

In particular, BoolForge supports the .bnet format commonly used by pyboolnet, without requiring pyboolnet itself to be installed.

BoolForge also supports conversion to and from the format used by CANA.


Documentation

Full documentation, including tutorials and API reference, is available at:

https://kadelkalab.github.io/BoolForge/


Citation

If you use BoolForge in your research, please cite the accompanying application note:

Kadelka, C., & Coberly, B. (2025).
BoolForge: Controlled Generation and Analysis of Boolean Functions and Networks.
arXiv:2509.02496.
https://arxiv.org/abs/2509.02496

A machine-readable citation file (CITATION.cff) is included in the repository and can be used directly by GitHub, Zenodo, and reference managers.


License

BoolForge is released under the MIT License.

Metadata

Release files for boolforge 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for boolforge 1.0.2
File Size Uploaded
boolforge-1.0.2.tar.gz 112.0 kB Details

Built distribution (wheel)

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

Total release size: 246.0 kB

Release files / boolforge-1.0.2.tar.gz

Download URL boolforge-1.0.2.tar.gz
Size 112.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3d674dade0aabcf0c4c26ab4dbb6846351a594671b939b802ec41bf0b9a14242
BLAKE2b-256 checksum
How to use checksums
8cd04ffe2b9096fafaba57c0623e722b8fc14e35dfc1c98ad73b0e9d87e652c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release files / boolforge-1.0.2-py3-none-any.whl

Download URL boolforge-1.0.2-py3-none-any.whl
Size 134.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
977cb9be40ee3107daf56cda56e0848855e1500732a5f8b4068b10fccfd75497
BLAKE2b-256 checksum
How to use checksums
33c75dfac145553bace225ca6e8ca6a2fadf348de2ef95aabf4d87bae0ebab62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

1.0.2 This release

2 release files

1.0.1

2 release files

1.0.0

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