Difference between Cadet-match and inverse fittings in CADET-Process

Hi All,

I am curious to know the difference between Cadet-match and inverse fittings in CADET-Process.
I am looking to fit the multiple gradient experiments (at different salt gradient only) which has multiple components (salts, proteins, and impurities). Looking forward to being used simple model (Lumper pore mode). Want to estimate the adsorption isotherm parameters (e.g., SMA) using inverse fitting method? (is it possible?). Please recommend any existing tutorial or anything in CADET-Process or what should be the ideal approach?

Also, I want to know what is dev version of CADET-Process and how to upgrade it?


CADET-Match vs CADET-Process Optimization

Both CADET-Match and CADET-Process allow you to use genetic algorithms and gradient-based minimization to estimate parameters.

The main user-facing difference is (in my opinion) the interface to the CADET-Core simulator. CADET-Match uses the old CADET-Python interface while CADET-Process is the new interface we recommend users to use. This is a personal opinion and @j.schmoelder and @w.heymann could also share their perspective.

Some differences I can think of the top of my head are: CADET-Match includes smoothing processing steps. CADET-Process allows for more flexible optimizations including optimizing already calibrated processes for e.g. productivity. CADET-Process is also currently being extended to include Bayesian Optimization.

My recommendation would be to use CADET-Process.

CADET-Process dev branch

The dev “version” of CADET-Process refers to the dev branch on GitHub.
You can install it using

pip install git+https://github.com/fau-advanced-separations/CADET-Process.git@dev


pip install --upgrade --no-deps --force-reinstall git+https://github.com/fau-advanced-separations/CADET-Process.git@dev

Fitting SMA binding parameters with CADET-Process

That’s definitely possible. We have an example that currently lives in the dev branch and will be included in the next release that will be soon™.
The python code can be found here. I’ll update it this evening to include a parameter transformation for using kEq and kKin instead of kA and kD, which we would generally recommend.

My recommended approach is to fit column porosity and dispersion on non-pore-penetrating tracer experiments (Micromer particles or Dextran). Then fit particle porosity and film diffusion on tracer experiments using your target protein during non-interacting (high salt) conditions. Finally estimate sma binding (kEq and nu on gradient elutions or kEq, kKin, nu & sigma on gradient elutions and breakthrough curves). When it comes to the practicality of fitting SMA parameters, the Yamamoto method (which is included in CADET-Process) can be used to generate good starting values to include in the x0 of your optimization run. Thereafter, for now, the UNSGA_3 is a good, stable optimization algorithm.


I am very excited for the BayesOpt addition! I don’t think that other available chromatography modeling softwares have this as an option.

Hi @ronald.jaepel thanks for the detailed explanation.
Hey @alters me too, waiting for BayesOpt. Do you know any tentative date of releasing?


CADET-Process v0.9.0 contains Bayesian Optimization.


Is this the current version or when is it launching?

It’s the current version. It has the Ax/BoTorch optimization interface for which you’ll need to install additional dependencies.
The Bayesian optimizers are:

  • GPEI for single objective problems
  • NEHVI for multi-objective problems with less than 8 objectives (performs best for less than 4 objectives, see here)
  • qNParEGO for multi-objective problems with many objectives (still a PR, you can install it with pip install git+https://github.com/fau-advanced-separations/CADET-Process.git@feature/add_qNParEGO_Ax_interface
1 Like