Skip to main content

Experiment Concepts (BayBE)

Experiments in Catalyst are powered by BayBE, an open-source library for Bayesian experimentation and optimization.

Note about BayBE
Catalyst uses BayBE under the hood. BayBE may evolve over time. This page explains parameters in non-technical terms as they are used in Catalyst today. For the detailed technical reference that Catalyst is aligned with, see the BayBE 0.13.2

This page explains the core ideas in plain language for non–data scientists:

  • Targets – what "good" means
  • Parameters – the knobs you can turn
  • Constraints – the rules and limits on what’s allowed
  • Trials – the individual runs you perform

Use this when you want more detail than the Experiments overview, without diving into BayBE’s technical documentation.

1. Targets: What You Care About

Targets are the outcomes you want to improve or monitor.
They answer: "What does better mean in this experiment?"

In Catalyst, you define targets and typically choose whether to:

  • Maximize (bigger is better)
  • Minimize (smaller is better)
  • Match / hit a value (best is close to a chosen value)

BayBE then uses your trial results to guide optimization for those targets.

Practical example (more realistic than "cake")

In a formulation or process setting, targets might be:

  • Yield (%) — maximize
  • Impurity (ppm) — minimize
  • Viscosity (Pa·s) — match a target value (stay near a preferred operating point)

If you care about multiple outcomes, you can either:

  • choose one as the main optimization goal, or
  • combine them into a single overall score (often a "desirability" / scalarization approach), or
  • consider trade-offs (Pareto-style) depending on what your workflow supports.

2. Parameters: The Knobs You Can Turn

Parameters are the inputs you control in each trial. They define the space of possibilities BayBE can explore.

Common parameter types you may see (depending on what Catalyst exposes):

  • Continuous — any value in a range (for example, temperature between 60 and 90 °C)
  • Integer — whole numbers in a range (for example, 1–10 mixing minutes)
  • Categorical — a choice from a list (for example, solvent = A, B, or C)
  • Substance — a chemistry-aware "choice from a list," where each option represents a chemical substance (commonly represented by identifiers such as SMILES). This enables BayBE to use chemical encodings when available.

In Catalyst, for each parameter you define:

  • a name
  • a type
  • a range (numeric) or list of allowed options (categorical/substance)

Practical example

For a reaction/process experiment, parameters could be:

  • Temperature (°C) — continuous, e.g. 60–90
  • Stirring speed (rpm) — integer, e.g. 200–800
  • Solvent — categorical, e.g. Solvent_A, Solvent_B, Solvent_C
  • Ligand (chemical) — substance, e.g. a curated list of ligands represented consistently (for example by SMILES or another agreed identifier)

Each combination of these values is one candidate trial that BayBE might recommend.

When to use "Substance" vs "Categorical" (plain language)

  • Use Categorical when the option is just a label (e.g., "Vendor A / Vendor B", "Method 1 / Method 2").
  • Use Substance when the option is a chemical identity and you want BayBE to potentially leverage chemical similarity/encodings.

3. Constraints: The Rules and Limits

Constraints describe what is allowed, safe, or practical.
They prevent BayBE from suggesting trials you cannot or should not run. In BayBE terms, constraints restrict the feasible region of the search space.

Constraints commonly come from:

  • equipment/safety limits
  • material availability
  • business rules (cost, throughput)
  • domain logic ("if we use X, we must also use Y")

Two different places "limits" can live in Catalyst

(A) Single-parameter limits (usually handled as parameter ranges)

If a rule is simply "this parameter must stay within min/max", encode it in the Parameters step as the allowed range.

Examples:

  • Temperature must be between 60 and 90 °C → set the temperature range to 60–90.
  • Mixing time must be between 1 and 10 minutes → set the mixing time range to 1–10.

This keeps the search space clean and avoids redundant constraints.

(B) Multi-parameter or logic rules (handled in the Constraints step)

Use the Constraints step when a rule involves:

  • more than one parameter, or
  • logical relationships between categorical choices.

This aligns with BayBE’s constraint families and examples, including continuous linear constraints and discrete constraints such as dependency/exclusion/sum/product rules.

More suitable examples

Example 1: Dependency (if X then Y)

Rule: If catalyst = Catalyst_X, then ligand must be Ligand_L1.
This is a dependency style rule (a categorical relationship).

Example 2: Exclusion (X cannot be combined with Y)

Rule: If solvent = Solvent_A, do not allow base = Base_B.
This is an exclusion style rule.

Example 3: Sum / budget / capacity (multi-parameter numeric rule)

Rule: Total additive must stay below a limit, e.g.
additive_A + additive_B <= 0.10 (10% total)

This matches the idea of combined constraints such as sum/product constraints used to restrict feasible combinations.

Example 4: Linear constraint (continuous parameters)

Rule: A combined operating condition must stay below a safe region, e.g.
pressure + 2 * temperature <= limit

Key takeaway:

  • Use parameter ranges for simple "min/max for one parameter."
  • Use constraints for relationships and logic across parameters (dependency, exclusion, totals, linear relationships).

4. Trials: The Runs You Actually Perform

A trial is one complete run with:

  • chosen parameter values, and
  • resulting measured targets

In Catalyst, a trial is one row of data:

  • inputs = parameter settings you tried
  • outputs = measured target values

BayBE uses completed trials to update its internal model and suggest the next promising trials.

Practical example

One trial might be:

  • Parameters:
    • temperature = 75 °C
    • stir_speed = 500 rpm
    • solvent = Solvent_B
    • ligand = Ligand_L1
  • Targets:
    • yield = 82%
    • impurity = 120 ppm
    • viscosity = 1.8 Pa·s

As more trials are added, BayBE improves the quality of recommendations.

How BayBE and Catalyst Work Together

From your perspective in Catalyst:

  1. Define the problem

    • targets (what you care about)
    • parameters (what you can change)
    • constraints (what is allowed)
  2. Run trials

    • Catalyst tracks runs and results
  3. BayBE recommends

    • BayBE learns from completed trials and proposes new parameter combinations
    • This is part of the campaign-style recommend–measure loop described in BayBE.
  4. You stay in control

    • You decide what to actually run
    • You can adjust constraints as you learn (note: changing constraints changes what BayBE is allowed to explore)

Mapping to BayBE terminology (simple)

If you compare to BayBE docs, the concepts roughly map like this:

  • Targets → targets / objectives
  • Parameters → parameters / (search) space definition
  • Constraints → constraints / feasible region
  • Trials → measured observations within a campaign (the repeated recommend–measure loop is described as a campaign)

BayBE supports many additional technical options (models, acquisition functions, encodings, etc.). Catalyst can choose sensible defaults so non-specialists can run effective experiments without configuring those details.

For full technical detail, see the BayBE docs: https://emdgroup.github.io/baybe/0.13.2/

Where this fits in the Experiments docs

  • Start with Experiments Overview for the big picture of what Experiments are.
  • Use this Concepts page when you want clear explanations of targets, parameters, constraints, and trials with practical examples.
  • Check Hartmann 3D next for a concrete, hands-on example using these concepts with a standard test function.