Protein A affinity help and simulation error


I am new to using CADET and was wondering if anyone has any experience modeling Protein A affinity chromatography for purifying mAb’s. Currently I am using the Langmuir isotherm and have input parameters from a paper evaluating the praesto AP protein A resin. I am not sure how to account for elution kinetics in the CADET interface for a Langmuir isotherm. Should I add another component such as salt and try to find kinetics for that elution process? Also my simulation is encountering an error and I am not sure what it means, i have pasted the error code below. Any help would be much appreciated.

cadet-cs: error while loading shared libraries: cannot open shared object file: No such file or directory


Hey Kal,
welcome to the forum! :slight_smile:

First, your runtime error should be fixed by setting the environment variables $PATH and LD_LIBRARY_PATH.

e.g. (assuming CADET is running on some POSIX system):

export PATH=$HOME/cadet/bin:$PATH

If you want this to be permanent, you can add them to you your .bashrc file or use some environment manager like environment modules.

I will also update the installation instructions, I thought it was already in there.

Regarding your protein question, I’m not entirely sure I understand what you mean, but I will try. The multicomponent Langmuir isotherm treats all components individually and they do not interact directly with each other, but they do compete for adsorption sites. The kinetics are controlled by the MCL_KA and MCL_KD parameters. If salt adsorbs, it would be another component which competes with the proteins for binding sites. However, this model does not consider a net neutral charge on the surface which means that it is not suited for ion exchange chromatography. I assume, what you are looking for is the ‘steric mass action’ model (Steric Mass Action — CADET) which enforces a net neutral charge on the surface. You can find an introductory example here.

Hope this helps!


Edit: clarified some aspects of the Langmuir isotherm.

Hi Kal,

The Langmuir isotherm is often used for affinity chromatography. since it assumes isocratic conditions, elution can be tricky to model. Step elution is relatively simple to describe by switching to a second set of binding parameters at some point in time. In CADET, this can be implemented using sections. Gradient elution is more complex and requires to gradually change the parameters of the Langmuir model. This can be implemented, e.g., through the external function dependency in CADET. The SMA model would be another option, even though it is designe for a different purpose, i.e. ion exchange chromatography. I hope this helps.


Thank you for the quick response Jo.
I’m running the simulation in the web app, so not sure if this error fix is applicable in my case. Should I try running it in python?

I see. Can you please share the simulation with us so we can have a look? (Each simulation gets a unique hashtag so you can share the URL.) I tried to run a simple case this morning and didn’t seem to have any problems.

In general, installing CADET on your own system is also always a good idea since it will enable you to make use of all CADET features (multi unit operation, chemical reactions, dynamic flow rates, etc.).

For installation instructions, see here.

yes its Job #: 2882 under my username kkelch70

we just had a look, and apparently CADET version 2 was selected and that does not seem to work anymore. If you chose version 3, then it does compute.

thank you for the help I really appreciate it!

1 Like

Hello Eric,

I have switched over to using CADET on MATLAB, and currently struggling on how to implement different kinetics in a different sections for the Langmuir model. I took the BreakthroughLangmuirSingle.m example as a template and have added three sections. I am confused because the sections only let you change the concentration of a component with the constant, linear, square etc. inputs, not the kinetics of a single component. Is there some sort of example showing how to change the Ka from section one (loading) to a different ka (elution). Any help would be appreciated.


The adsorption model parameters cannot vary between sections. If you really want to do that, you’ll have to use external functions to modify the values.

Otherwise, I’d suggest to have a look at the Mobile Phase Modulator Langmuir adsorption model.

The binding parameters can be defined as third order polynomials of external functions. A different extarenal function can be sued for each parameter. For example, the forward rate constant (k_{\mathrm{fwd}}) is a function of temperature (T):


The polynomial coefficients (k_{\mathrm{fwd},i}) are specified in CADET. They do not vary over time. The temperature (T) is provided as external function. It can be an arbitrary function of time (t).

By setting k_{\mathrm{fwd},0}=0, k_{\mathrm{fwd},2}=0, k_{\mathrm{fwd},3}=0 and k_{\mathrm{fwd},1}=1, the rate constant is equal to the externally provided value:


As temperature is just an example, the external function can denote any effect or property. In Kal’s example it would be a piecewise constant function.