Bioprocess Optimization Problem
Description
Consider a fed-batch process of E. coli growing on glucose and acetate. We want to optimize the glucose feed to maximize cellular concentration in the end of the batch. However, instead of using Monod equation to represent cellular growth, we will use a more detailed model that uses the microrganism's metabolic network, namely flux balance analysis (FBA), so we can better represent growth on both substrates. Flux balance analysis (FBA) is essentially an optimization problem that calculates the flow of metabolites (internal or external cellular products) through a metabolic network[1], in which the objective function is usually set to maximize cellular growth. FBA was originally proposed for steady state analysis, but it has been adapted to model dynamic processes as well[2].
For this case study, we consider a simplified metabolic network with 4 overall reactions (only external metabolites are considered), as shown in [2], to model cellular growth.
The feed in this batch process contains only glucose, but acetate can be produced by the cell and is available in the medium initially. The rate of glucose uptake is limited by the Michaelis-Menten equation and availability of oxigen in the medium is limited by mass transport from the gas phase. Given a fixed amount of glucose to be added to the bioreactor, we want to find a feed flow profile that maximizes biomass concentration in the end of the process. Mathematically, this problem is formulated as
where $D = F/V$(feed flow rate divided by the volume of the bioreactor) is the dilution rate, $z_i$ is the concentration of the $i^\text{th}$ metabolite in the bioreactor, $z_\text{glu,f}$ is the glucose concentration in the feed, Glu$_\text{total}$ is the total amount o glucose to be fed to the bioreactor during the process, $v_r$ is the rate of reaction $r \in \mathcal{R}$, A is the stoichiometry matrix (superscript $i$ means the row corresponding to metabolite $i$), $kLa$ is the mass transfer coefficient for oxygen, $x$ is biomass concentration in the bioreactor, $v_\text{glu,max}$ and $K_m$ are parameters for the Michaelis-Menten equation, and $v_{\text{O}_2,\text{max}}$ is the maximum rate for oxygen consumption.
Implementation
We considered two scenarios for this implementation, file fed_batch.jl implements the dynamic FBA model with constant $D = \text{Glu}_\text{total}/z_\text{glu,f}\text{NFE}$, where NFE is the number os finite elements in the time discretization and file fed_batch_opt.jl implements the bilevel optimization just described. The latter is reformulated as an MPCC problem and solved. Orthogonal collocation with 3 collocation points and 77 finite elements was implemented. In both cases, the required values used are
$A^\text{glu} = [\begin{array}{cccc}0 & -9.46 & -9.84 & -19.23\end{array}]$,
$A^{\text{O}_2} = [\begin{array}{cccc} -35 & -12.92 & -12.73 & 0\end{array}]$,
$A^\text{Ac} = [\begin{array}{cccc} -39.43 & 0 & 1.24 & 12.12\end{array}]$,
$x_0 = 0.001$ g/L,
$z_{\text{glu},0} = 1$ mmol/L,
$z_{\text{O}_2,0} = 0.21$ mmol/L,
$z_{\text{Ac},0} = 0.4$ mmol/L,
$v_{i,0} = 0$,
$t_0 = 0$,
$t_\text{end} = 11$ h,
$kLa = 7.5$ h$^{-1}$,
$v_{\text{O}_2,\text{max}} = 15$ mmol/gDW.h,
$v_\text{glu,max} = 10$ mmol/gDW.h,
$K_m = 0.015$ mmol/L,
$z_\text{glu,f} = 5$ mmol/L.