Bayesian Optimization for Bioprocess Development: Data-Driven Experimental Design Beyond Traditional DOE

October 2026 17 min read Bioprocess Engineering

Key Takeaways

Contents

  1. What Is Bayesian Optimization and How Does It Work?
  2. Bayesian Optimization vs Traditional DOE: When Each Approach Wins
  3. How Many Experiments Does Bayesian Optimization Need?
  4. The Gaussian Process Surrogate: How the Model Learns from Your Data
  5. Acquisition Functions: How BO Chooses the Next Experiment
  6. Bioprocess Applications: Media, Feed Design and Process Parameters
  7. Python Tools for Bayesian Optimization in Bioprocess Development
  8. Limitations and When Not to Use Bayesian Optimization
  9. Frequently Asked Questions

Bayesian optimization bioprocess workflows replace a fixed experimental matrix with a loop: a statistical model of your process proposes the next experiment, you run it, and the model learns from the result. For process development teams short on bioreactor time, media components or analytical capacity, that adaptivity can find a better operating point in a fraction of the runs a grid or response surface design would consume. This guide explains how the method works, how many experiments it needs, where it beats classical DOE, and where it does not. If you need a conventional design first, the free DOE experiment generator builds screening and response surface matrices in seconds.

What Is Bayesian Optimization and How Does It Work?

Bayesian optimization (BO) is a sequential strategy for finding the maximum (or minimum) of an expensive black-box function. In bioprocess terms, the function is your process: factor settings such as glutamine concentration, feed rate, pH or temperature go in, and a response such as titer in g/L comes out. You cannot write that function down, each evaluation costs a bioreactor run or a deep-well plate, and the response is noisy. Those three properties are exactly what BO was designed for. Reviews of Bayesian optimization in bioprocess engineering by Gisperg et al. (2025) and Siska et al. (2026) describe it as a data-driven alternative for cases where mechanistic models are unavailable or too slow to build.

The method has two components. A surrogate model, almost always a Gaussian process (GP), predicts the response at any untested condition together with an uncertainty estimate. An acquisition function, such as Expected Improvement (EI), converts those predictions into a single score of how valuable it would be to test each candidate condition. The loop runs in four steps:

  1. Prior model. Fit the GP to the data you have: 5–10 space-filling initial experiments, historical batches, or screening results.
  2. Acquisition. Maximize EI over the factor space to pick the next experiment (or a batch of them).
  3. Experiment. Run the proposed condition and measure titer, viability or another response.
  4. Update. Add the result to the dataset, refit the GP, and check convergence. If the expected gain is negligible, stop; otherwise return to step 2.

The contrast with DOE is structural. A DOE matrix is fixed before the first run, which is what makes effects estimable and the analysis clean. In BO the design is built one batch at a time, so later experiments concentrate in promising regions and early poor regions are abandoned quickly. Figure 1 shows the loop and the difference in how runs are placed.

Bayesian Optimization vs Traditional DOE: When Each Approach Wins

Framing this as a contest is misleading, because the two methods answer different questions. DOE asks which factors matter, by how much, and do they interact? It produces a regression model with confidence intervals on every coefficient. Bayesian optimization asks where is the best condition, and where should I look next? It produces a recommendation, plus a surrogate model that is accurate near the optimum and rough elsewhere. The comparison below covers the practical differences for a process development team.

Table 1. Traditional DOE vs Bayesian optimization across eight dimensions
DimensionTraditional DOE (RSM, DSD, factorial)Bayesian optimization
Experiment planningAll runs fixed upfrontSequential or small batches, adaptive
Typical run count (3–5 factors)13–27 (DSD to full factorial)15–30 total, similar at low factor counts
Scaling with factor countGrows quickly; screening needed above ~6 factorsNear-linear; practical to ~15–20 continuous factors
Model formPolynomial (quadratic) regressionGaussian process, no assumed functional form
Interactions and curvatureExplicitly estimated with p-valuesCaptured implicitly through the kernel
Noise handlingReplicates, pure-error estimateFitted noise term; heteroscedastic models available
Regulatory and QbD fitEstablished (ICH Q8, Q9, Q11)Needs confirmatory DOE for design space
Best useScreening, effect quantification, design spaceOptimization of expensive, nonlinear, multi-factor systems

Use DOE when you are screening a long factor list, when you must quantify main effects and interactions for a control strategy, when the factor space is small (2–3 factors), or when the output goes into a regulatory filing under ICH Q8. Use Bayesian optimization in bioprocess work when you have already narrowed to a handful of influential factors (or a large continuous space), each run costs days of bioreactor time, and the goal is the best titer rather than a complete map. The workable combination is sequential: a screening design or definitive screening design to identify the critical factors, BO to refine them, and a small confirmatory DOE around the optimum. The DOE generator handles the first and last stages.

How Many Experiments Does Bayesian Optimization Need?

The honest answer for Bayesian optimization in a realistic multi-factor bioprocess problem is 15–30 experiments: 5–10 space-filling initial experiments (Latin hypercube or Sobol sequence) to seed the surrogate, then 10–20 sequential evaluations. The headline advantage is relative to DoE and one-factor-at-a-time (OFAT) campaigns. Narayanan et al. (2025) applied iterative Bayesian experimental design to cell culture media for peripheral blood mononuclear cells and to recombinant protein production in Komagataella phaffii, and reported that it reached comparable or better outcomes with 3–30× fewer experiments than standard DoE, depending on the system and the comparison.

Figure 2 makes the pattern concrete for a three-factor media problem. The curves are an illustrative simulation (not measured data) of the best yield found versus experiments spent. OFAT climbs slowly and plateaus near 6.5 g/L after 40 runs. A 33 full factorial (27 runs) and a 13-run DSD only deliver their answer once the full matrix is run and analyzed. Bayesian optimization reaches 90% of its final value (6.75 g/L) by run 7 and finishes at 7.5 g/L by run 8, because every run after the initial 5 is placed where improvement is most likely.

Figure 2. Illustrative best-yield-found versus number of experiments for OFAT (40+ runs), 33 full factorial (27 runs), DSD (13 runs) and Bayesian optimization (8 runs) on a three-factor media problem. The dashed line marks 90% of the BO final value (6.75 g/L). Simulated for illustration; real campaigns with more factors need 15–30 BO runs.

Three practical rules set the budget for any Bayesian optimization bioprocess campaign. First, allow roughly 2–3 initial points per continuous factor with a floor of 5; existing screening or historical batch data count. Second, plan batch sizes to match your hardware: 4–8 parallel vessels per round on a micro-bioreactor platform is a typical fit for batch acquisition. Third, define a stopping rule in advance, for example EI below 1–2% of the current best for two consecutive rounds, or three rounds without a titer gain larger than the replicate standard deviation. Without a rule, Bayesian optimization campaigns drift into the diminishing-returns tail.

The Gaussian Process Surrogate: How the Model Learns from Your Data

A Gaussian process is a distribution over functions. Rather than fitting one polynomial, it keeps every smooth curve consistent with your data and summarizes them with two outputs at each untested condition x: a mean prediction μ(x) and a standard deviation σ(x). Near an observed experiment, σ is small because the data constrain the curve. Far from any experiment, σ grows back toward the prior. That built-in uncertainty is what lets the acquisition function reason about what you do not yet know.

The GP is defined by a mean function (often a constant equal to the average observed titer) and a covariance function, or kernel, that encodes how similar the response is at two conditions. The common choice is the squared-exponential (RBF) kernel:

k(x, x′) = σf² · exp( −‖x − x′‖² / 2ℓ² )

Here σf² is the signal variance (how far the response can wander from its mean, in (g/L)²) and ℓ is the length scale (how far you must move in a factor before the titer is effectively unrelated). With separate length scales per factor, the fitted values double as sensitivity measures: a short ℓ for pH and a long one for temperature says titer reacts sharply to pH. In practice the Matérn 5/2 kernel is often preferred for biological responses because it assumes slightly less smoothness than RBF. Hyperparameters are fitted by maximizing the marginal likelihood.

Bioprocess data are noisy, so a Bayesian optimization surrogate adds an observation-noise term (the nugget or jitter) to the kernel diagonal. This stops the surrogate from threading through every noisy titer and lets it estimate replicate variability itself. Figure 3 shows a one-dimensional example: glutamine concentration versus titer with five observed experiments, computed live in your browser with an RBF kernel. The blue band is the 95% credible interval, which pinches at each observation and widens between them. The amber curve is Expected Improvement, and its peak marks where the next experiment should go.

Figure 3. Gaussian process surrogate for glutamine concentration (mM) versus titer (g/L) with five observed experiments (teal). The blue line is the GP mean, the shaded band the 95% interval, and the amber area the Expected Improvement acquisition function (right axis). The coral diamond marks the EI maximum, the proposed next experiment. Illustrative data.

Acquisition Functions: How BO Chooses the Next Experiment

The acquisition function turns the surrogate into a decision. It must resolve the central trade-off in sequential experimentation: exploitation (test where the model predicts a high titer) against exploration (test where the model is uncertain and a surprise may be hiding). Three functions cover most use:

Real Bayesian optimization campaigns in bioprocess development run vessels in parallel, so one point per round wastes capacity. Batch acquisition such as q-EI (qLogEI in current BoTorch) proposes q points jointly, accounting for the information the other points will provide so the batch does not collapse onto one location. For multiple objectives, for example titer versus a charge-variant or aggregate limit, qNEHVI (noisy expected hypervolume improvement) maximizes the volume of the Pareto front. Hard limits, such as a maximum osmolality, can be passed as constraints rather than folded into a score. The BoTorch framework (Balandat et al., 2020) implements all of these using Monte-Carlo acquisition estimates.

Bioprocess Applications: Media Optimization, Feed Design and Process Parameters

Media and feed optimization is the strongest fit for Bayesian optimization in bioprocess development, because the factor count is high (10–30 components), the response surface is nonlinear, and a screening DOE would be impractically large. In the Narayanan et al. study, the iterative Bayesian design tuned multi-component media for primary cell culture and for K. phaffii protein production while using a fraction of the experiments of a DoE baseline. For CHO mAb processes, reported media and feed gains from algorithmic optimization are typically 20–40% in titer, for example 4.0 g/L moving to roughly 5.0–5.6 g/L, with gains often larger on a poor starting formulation. See our guide to media optimization with DOE for the classical baseline.

Fed-batch feed design suits BO because the factors are continuous and coupled: feed start time, exponential rate constant (μset, in h−1), glucose setpoint and induction OD. Sketch a profile with the fed-batch calculator, then let Bayesian optimization tune its four or five parameters against measured titer. For process parameters (pH, temperature shift timing, dissolved oxygen setpoint, agitation), the factor count is small, so the edge of Bayesian optimization is mostly sequential efficiency; combine it with other machine learning methods when historical data exist.

Table 2. Key published sources on Bayesian optimization in bioprocess engineering
SourceScopeKey finding or contribution
Narayanan et al., Nat. Commun. 2025Cell culture media (PBMC) and K. phaffii protein productionIterative Bayesian design reached target performance with 3–30× fewer experiments than DoE
Gisperg et al., Biotechnol. Bioeng. 2025Review of BO across bioprocess engineeringMaps current applications, common surrogate and acquisition choices, and open gaps
Siska et al., Biotechnol. Bioeng. 2026Practitioner guide, 26 pagesStep-by-step guidance on kernels, noise, constraints, batches and software
Balandat et al., NeurIPS 2020BoTorch frameworkMonte-Carlo acquisition functions with batch, noisy and multi-objective support

Everything covered so far can be done in code, but not every team has a data scientist. DOE Generator Pro extends the free generator with Bayesian optimization, a QbD report, D-optimal designs and split-plot designs for hard-to-change factors such as temperature, so one tool carries a campaign from screening through refinement to documentation.

Python Tools for Bayesian Optimization in Bioprocess Development

The ecosystem for Bayesian optimization in bioprocess development has consolidated around BoTorch and Ax, both maintained by Meta. BoTorch is the research-grade library built on PyTorch and GPyTorch; Ax is the higher-level wrapper that manages experiments, mixed parameter types and trial storage. Table 3 compares the realistic options. GPyOpt is no longer maintained and should not be adopted for new work.

Table 3. Python tools for Bayesian optimization in bioprocess work
ToolStrengthsLimitationsBest for
BoTorchqEI/qNEHVI, noisy and constrained BO, GPU-capable, fully customizableNeeds PyTorch fluencyCustom campaigns, multi-objective work
AxWraps BoTorch; categorical and ordinal factors, experiment tracking, UIHeavier install, more abstractionPractitioner teams, media with categorical choices
scikit-optimizeSimple scikit-learn style APIWeak batch and noise support; check maintenance statusQuick single-objective trials
OptunaEasy API, pruning, good for hyperparametersDefault sampler is not a GP; less sample-efficient for 15–30 run budgetsLarger, cheaper evaluation budgets

Worked Example: 5-Step BO Workflow for CHO Media Optimization

  1. Define the space. Choose 5 continuous factors with bounds, e.g. glucose feed 2–8 g/L/day, glutamine 2–10 mM, Fe-citrate 0.05–0.5 mM, cysteine 0.5–3 mM, and osmolality cap 380 mOsm/kg as a constraint.
  2. Seed the model. Generate 10 Sobol points, run them in a 24-vessel micro-bioreactor platform with 2 center-point replicates, and record day-14 titer (baseline 4.0 g/L, replicate SD 0.15 g/L).
  3. Fit and propose. Fit a GP with a Matérn 5/2 kernel and fitted noise, then maximize qLogEI for a batch of 6 conditions.
  4. Run and update. Execute the 6 vessels, append the titers, refit, and repeat. Three rounds (18 runs) brings the total to 28 experiments.
  5. Confirm. Stop when EI falls below 2% of the best titer (here 5.4 g/L, a 35% gain), then run a 3-factor CCD around the optimum to quantify robustness.
import torch from botorch.models import SingleTaskGP from botorch.models.transforms import Normalize, Standardize from botorch.fit import fit_gpytorch_mll from gpytorch.mlls import ExactMarginalLogLikelihood from botorch.acquisition import qLogExpectedImprovement from botorch.optim import optimize_acqf # train_X: n x 4 factor settings, train_Y: n x 1 titers (g/L) bounds = torch.tensor([[2.0, 2.0, 0.05, 0.5], [8.0, 10.0, 0.5, 3.0]], dtype=torch.double) model = SingleTaskGP(train_X, train_Y, input_transform=Normalize(d=4, bounds=bounds), outcome_transform=Standardize(m=1)) fit_gpytorch_mll(ExactMarginalLogLikelihood(model.likelihood, model)) acq = qLogExpectedImprovement(model, best_f=train_Y.max()) next_batch, _ = optimize_acqf(acq, bounds=bounds, q=6, num_restarts=10, raw_samples=256)

Limitations and When Not to Use Bayesian Optimization

Frequently Asked Questions

Is Bayesian optimization better than DOE for bioprocess development?

Neither is better in general. DOE is stronger for screening many factors, quantifying effects and interactions, and regulatory documentation. Bayesian optimization is stronger when you want the best operating point and each experiment is expensive, because it concentrates runs where the model expects improvement. Narayanan et al. (2025) reported that Bayesian optimization reached target performance with 3–30× fewer experiments than DoE in media development. Most mature programs use DOE to screen, then Bayesian optimization to refine.

How many initial experiments does Bayesian optimization need?

Plan 5–10 space-filling initial experiments, for example a Latin hypercube or Sobol design, followed by 10–20 sequential experiments, for 15–30 runs in total. A common rule of thumb is at least 2–3 initial points per continuous factor, with a floor of 5. Existing historical or screening data can replace part of the initial design. Stop when the expected improvement falls below about 1–2% of the current best value for two consecutive iterations.

Can Bayesian optimization handle noisy bioprocess data?

Yes. The Gaussian process includes an observation-noise (nugget or jitter) term that is fitted from the data, so the surrogate does not interpolate through noisy titers. When replicate variance changes across the design space, for example at high feed rates or extreme pH, use a heteroscedastic noise model. Noisy variants of the acquisition functions, such as noisy expected improvement, account for uncertainty in the current best value. Include 2–3 replicated center points so the noise level is identifiable.

What Python library should I use for Bayesian optimization in bioprocess?

Ax with BoTorch is the recommended choice for most bioprocess teams. BoTorch, maintained by Meta and built on PyTorch and GPyTorch, supports batch acquisition, noisy observations, constraints and multi-objective optimization. Ax wraps BoTorch with a practitioner-friendly interface for mixed continuous and categorical factors. Scikit-optimize and Optuna are simpler but less capable for batches and noise. GPyOpt is no longer maintained and should be avoided for new work.

Can I use Bayesian optimization for regulatory QbD submissions?

Use it to find the operating region, not to define the design space on its own. ICH Q8(R2) expects a design space supported by scientific understanding of how parameters and attributes relate, and Bayesian optimization concentrates data near the optimum, leaving the edges sparsely sampled. Run a confirmatory DOE, such as a response surface or edge-of-failure study, around the Bayesian optimum to quantify effects, interactions and robustness. Document the model, priors, acquisition function and stopping rule in the development report.

DOE Experiment Generator

Build screening, DSD, CCD and Box-Behnken matrices for the DOE stages around your Bayesian optimization campaign, then export the run sheet to CSV.

Open DOE generator →

Fed-Batch Feed Strategy Calculator

Generate exponential, linear and constant feed profiles to use as the starting point and parameter bounds for feed optimization.

Open fed-batch calculator →

Related Tools

References

  1. Narayanan H, Hinckley JA, Barry R, Dang B, Wolffe LA, Atari A, Tseng YY, Love JC. (2025). Accelerating cell culture media development using Bayesian optimization-based iterative experimental design. Nature Communications, 16, 6055. DOI: 10.1038/s41467-025-61113-5
  2. Gisperg F, Klausser R, Elshazly M, Kopp J, Přáda Brichtová E, Spadiut O. (2025). Bayesian Optimization in Bioprocess Engineering: Where Do We Stand Today? Biotechnology and Bioengineering, 122(6), 1313–1325. DOI: 10.1002/bit.28960
  3. Siska M, Pajak E, Rosenthal K, del Rio Chanona A, von Lieres E, Helleckes LM. (2026). A Guide to Bayesian Optimization in Bioprocess Engineering. Biotechnology and Bioengineering, 123(4), 805–830. DOI: 10.1002/bit.70129
  4. Balandat M, Karrer B, Jiang DR, Daulton S, Letham B, Wilson AG, Bakshy E. (2020). BoTorch: A Framework for Efficient Monte-Carlo Bayesian Optimization. Advances in Neural Information Processing Systems, 33. arXiv:1910.06403
  5. ICH (2009). Q8(R2) Pharmaceutical Development. International Council for Harmonisation of Technical Requirements for Pharmaceuticals for Human Use.

Resources & Further Reading