Skip to content

BoFire

BoFire is a Python framework for experimental design and Bayesian optimization, supporting mixed variables, constraints, molecular representations and iterative candidate selection.

Catalog updated ·

Overview

BoFire—Bayesian Optimization Framework Intended for Real Experiments—is a Python toolkit for defining experimental search spaces and selecting subsequent experiments. Its README identifies reaction, formulation, digital twin and closed-loop optimization as intended application areas. It supports both single- and multi-objective Bayesian optimization, with BoTorch providing the underlying Bayesian optimization foundation. It is a framework for constructing optimization workflows rather than a standalone predictive model.

A problem is represented through input features, output features, objectives and optional constraints collected in a Domain. The documented variable types include continuous, discrete and categorical parameters. Objectives are defined separately from outputs, allowing minimization, maximization or movement toward a target. Experimental records combine candidate input values with measured or evaluated outputs; strategies consume those records and return proposed candidate settings. The README illustrates this workflow with SoboStrategy, qLogEI and an iterative tell/ask loop around Himmelblau's function.

Chemistry-specific support includes molecular encodings and kernels, with the README attributing the implemented molecular kernels to GAUCHE. Serializable definitions of problems, strategies and surrogates support integration into RESTful workflows. An additional LLMStrategy proposes candidates using a problem description and previous experiments as language-model context.

The example evaluates a mathematical function; executing physical experiments and supplying their results remain separate workflow steps. Optional dependency groups distinguish optimization, cheminformatics and LLM functionality. The project's versioning policy allows breaking public API changes in BIGRELEASE and MAJOR releases, so integrations should be checked against the selected release.

Key Features

  • Represents mixed continuous, discrete and categorical parameter spaces, with objectives defined separately from output features.
  • Supports single- and multi-objective Bayesian optimization, including minimization, maximization and target-oriented objectives.
  • Provides specific and generic constraints, black-box output constraints, constrained sampling and constraint-respecting experimental designs.
  • Includes chemical encodings and molecular kernels for optimization involving molecular species.
  • Serializes problem definitions, optimization strategies and surrogates for use in RESTful integrations.
  • Offers `LLMStrategy` for proposing candidates from a written problem description and prior experiments, alongside the documented `tell`/`ask` optimization workflow.

Use Cases

  • Intended evaluation: formulate a reaction optimization campaign with continuous operating conditions and categorical choices, then assess proposed candidates against recorded experimental outcomes.
  • Intended evaluation: explore constrained formulation designs and compare single-objective versus multi-objective strategies for the chosen measured properties.
  • Intended evaluation: assess molecular encodings and kernels for candidate selection over molecular species using a representative experimental dataset.
  • Intended evaluation: integrate serialized optimization definitions into a closed-loop service that passes measured results to a strategy and retrieves subsequent candidates.

How to Use

  1. Consult the installation guide and choose dependencies for the intended workflow. The README distinguishes basic Bayesian optimization from optional cheminformatics and LLM functionality; verify requirements for the release you select.
  2. Follow the README example to define input features and bounds, output features and objectives. Combine these in a Domain, adding constraints appropriate to your problem.
  3. Prepare initial candidates and obtain their measured or simulated outputs. Keep input and output identifiers consistent so the resulting experimental records match the domain definition.
  4. Select an optimization strategy. The example uses SoboStrategy with qLogEI; provide existing experiments through tell, retrieve candidates through ask, evaluate them externally and return their results.
  5. For service integration, read the data models and functionals guide. Evaluate serialization and the optimization loop on representative data before connecting it to a laboratory workflow.

Related resources

BayBE

Open Source

BayBE is a Python toolbox for Bayesian experimental design that recommends parameter configurations from defined search spaces, objectives and measurements, including chemistry-aware and multi-target workflows.

Open sourcePython

Lab Automation · Process Optimization

Gryffin

Open Source

Gryffin is a Python Bayesian optimization framework for categorical and mixed experimental design spaces, with batch recommendations and physicochemical descriptor support.

Open sourcePython

Lab Automation · Process Optimization

Olympus

Open Source

Olympus is a Python framework for benchmarking noisy optimization and experiment planning, with mixed parameter domains, experimental benchmarks, analytical test functions and a shared planner interface.

Open sourcePython

Lab Automation · Process Optimization

Phoenics

Open Source

Phoenics combines Bayesian optimization with Bayesian kernel density estimation to recommend experimental or computational parameters, supporting sequential, batch and multi-objective workflows.

Open sourcePython

Lab Automation · Process Optimization

Summit

Open Source

Summit is a Python toolkit for chemical reaction optimisation, combining optimisation strategies, simulated reaction benchmarks and closed-loop workflows for evaluating experimental conditions.

Open sourcePython

Lab Automation · Process Optimization

Benchling MCP (longevity-genie) is a Python MCP server that connects AI clients to Benchling notebook entries, biological sequences, projects, and entity search using API credentials.

Open sourcePython

Lab Automation · Scientific Data

Related guides

Skills

AI Skills for Chemistry: What They Are and How They Work

Understand chemistry AI Skills as reusable procedure modules: what SKILL.md contains, how hosts load instructions, how Skills differ from MCP and agents, and how to select, combine, and evaluate them without confusing guidance with scientific validation.

Workflows

AI for Computational Chemistry Workflows

Build evidence-aware computational chemistry workflows with AI Skills for structure preparation, phonons, gas-phase ignition, CALPHAD equilibrium, and reactive-MD analysis—while keeping real inputs, execution dependencies, and scientific validation explicit.