where \(C\) and \(C_{F}\) are the outlet and feed concentrations in mg
mL-1, respectively, erf is the error
function, \(x\) is the loaded mass in mg per mL resin, \(k_{s}\) is the
binding capacity in mg per mL resin, and \(\sigma\) is an empirical
dimensionless constant.
New yields were obtained with this
model with the same amount of adsorbed product as in the original
scenario with 100% capacity. In other words, we studied how the yield
was affected by reduced binding capacity at constant amount of adsorbed
product in the capture step. Loss of binding capacity does not affect
the yield for low load volumes (see Figure 4), but the yield decreases
at load volumes of 35 and 45 mL for the 80% and 90% capacity
scenarios, respectively. It is not possible to obtain the same amount of
adsorbed product in these scenarios with capacity loss by loading more
product, which is why yields are not shown in these cases at higher load
volumes. For example, at a load volume of 40 mL, where the resin
utilization is around 83%, it would not be possible to maintain the
amount of adsorbed product if the capacity decreased 20%, as the
maximum attainable amount of adsorbed product would be 80% of the
original resin capacity, but the desired amount would be 83% of the
original resin capacity.
The design criterion was to maintain product output with the loading
controller while taking a loss of resin capacity into account. Thus, the
feasible load volumes are those that are lower than 35 or 45 mL,
depending on whether a capacity loss of 20% or 10% is assumed, to
ensure constant amount of adsorbed product in the capture step and
therefore constant product output. A 10% loss in resin capacity was
assumed in this study in the design of the PCC operation. The load
volume was therefore set at 45 mL, which corresponds to a cycle load
volume of 36 mL. The cycle time is then 95 min with a load flow rate of
0.38 mL min-1. This fulfills the constraint of the
minimum cycle time, which was 79 min.
Continuous virus inactivation
In the downstream process we used previously (Löfgren et al., 2018),
virus inactivation was performed at low pH after the capture step. In
the present study, it was performed before the capture step to allow
continuous flow through the virus inactivation reactor, as the inlet
stream to the capture step is continuous, but not the outlet stream.
Since the input to the capture column must have neutral pH, virus
inactivation at low pH would involve two subsequent dilution steps to
decrease and then increase the pH. This would require an extra pump and
an extra mixer, and the total volume to be treated by the capture column
would be higher. For this reason, solvent/detergent virus inactivation,
based on the process presented by Martins et al. (2019), was used
instead. Performing virus inactivation before the capture step allowed
the detergent to be removed from the product in two consecutive steps.
The continuous virus inactivation reactor was designed to ensure a
minimum product residence time of 60 min. The mean residence time is
given by dividing the void volume by the flow rate. The design void
volume was calculated by multiplying the residence time by the loading
flow rate (0.38 mL min-1) and adding an extra 20% to
account for dispersion. The void fraction was assumed to be 0.36, as
estimated by de Klerk (2003) for a packed bed with a high column to
particle diameter ratio. Then, the total reactor volume was 76.0 mL, and
the height was 378 mm. An experiment was run with supernatant to check
the residence time distribution and validate the design. It was found
that 99.8% of the product remained in the reactor for more than 60 min,
which is higher than the 99% suggested by Martins et al. (2019). The
mean residence time was 75.5 min, and the ratio between the residence
times at 50% and 1% of the cumulative residence time distribution
curves was 1.16; 1 being the ideal value, i.e. equal residence time for
all the molecules. This value is similar to that obtained by Martins et
al. (2019) in a small-scale packed-bed reactor. A portion of the product
(4%) resided in the reactor for more than 100 min. In low-pH virus
inactivation, such a long residence time could have led to the risk of
the formation of aggregates; however, such a risk has not been reported
in a solvent/detergent virus inactivation process.
Column design
The column design was based on the approach described by us previously
(Gomis-Fons et al., 2019), where it was shown that several constraints
must be fulfilled for the integration of the columns. One of these is
related to the column capacities, i.e., the polishing column must have
sufficient capacity to handle the product eluted from the capture
column. As it was desirable to keep the scale of the process as small as
possible, the capture column volume was set to the minimum possible, 1
mL, and the polishing column volume was calculated based on its capacity
and the amount of product per cycle. The concentration of the
supernatant diluted with the detergent was 0.74 mg
mL-1, and the volume loaded in a column was 45 mL, as
mentioned above. Therefore, the maximum amount of product loaded on the
polishing column per cycle was 33.3 mg. The capacity of that column was
approximately 10 mg per mL column, thus leading to a minimum column
volume of 3.3 mL. Due to the limited availability of volumes in
prepacked columns, a 5 mL column was chosen.
Another constraint that must fulfilled for the successful integration of
the columns is related to the residence times, i.e., the residence time
in the columns must be equal to, or longer than, a certain reference
value in each phase, which, in this case, was obtained from our previous
study (Löfgren et al., 2018). Therefore, the residence time was set
equal to the reference value in all the phases, except for the loading
phase of the polishing step. In this phase, the flow rate, which is
directly related to the residence time, is given by the flow rate in the
elution phase of the capture step (0.55 mL min-1) plus
the flow rate of the conditioning stream (0.88 mL
min-1). The load flow rate was thus 1.43 mL
min-1, and the residence time was 3.5 min, which was
longer than the reference value for this phase, of 2 min.
Process control
Control software
The ÄKTA pure systems were controlled by external software called Orbit
(Nilsson et al., 2017). The software is written in the general-purpose,
object-oriented scripting language Python 3.7. Orbit sends instructions
to UNICORN sequentially, and UNICORN forwards them to the ÄKTA system.
Separate Orbit programs were used for each system. Synchronization
between and within the systems was achieved through event flags. For
example, the system in which the polishing step is performed sends a
flag when this column is ready to be loaded, and the other system sends
another flag when the elution phase is about to start in the capture
step; the elution phase starts when both systems have sent their
respective flags. (Further details on the control of multi-system setups
by Orbit can be found in Gomis-Fons, Andersson, et al., 2020). The
control strategies were implemented in the Orbit programs, for which
process data, such as the cycle load volume or the UV absorbance, was
monitored online.
Loading control
As the feed concentration and flow rate from a bioreactor can vary over
time, a real-time iterative learning controller was implemented to adapt
the system to these changes (Figure 5). The aim was that the same amount
of product would be purified in the downstream process for every PCC
cycle, i.e. to maintain a constant product output. The cycle load volume
was modified to control the amount of product purified in a cycle. For
example, if the concentration was lower than the nominal value used in
the design, the product output would be lower. In order to correct for
this, the volume loaded onto the capture step would be increased by
extending the PCC cycle, so that the product output became higher in the
next cycle. The control software Orbit tracked the loading flow rate,
which allowed obtaining the right PCC cycle time to achieve the desired
cycle load volume.
Iterative learning control is an approach to minimize the difference
between the desired value and the measured value in systems that operate
in a repetitive mode (Longman, 2000). Control was based on the so-called
previous cycle learning scheme (Ouyang & Pipatpaibul, 2010; Xu, Heng
Lee, & Zhang, 2004), since only the signals from the previous iteration
are used to obtain the control signal for the next iteration (see Figure
5). A learning control law was used to update the control signal, as
shown in Eq. (2). In this learning control law, the control signal at
iteration \(k\) (\(u_{k}\)) depends on the control signal at the
previous iteration (\(u_{k-1}\)), the tracking error between the
reference (\(y_{\text{ref}}\)) and the output signal at the previous
iteration (\(y_{k-1}\)), and the controller gain (\(K\)).