Thermodynamic modeling of ligand titration (pH transitions) in CADET

Hi all,

I was wondering if anyone has used CADET, or CADET in conjunction with other routines, to model induced pH transitions in salt steps and/or salt gradients due to ligand titration. I remember that some work had been done in CADET to thermodynamically model pH gradients, so I am curious how this could be extended towards titration of the stationary phase itself. I have attached a paper (Pabst and Carta 2006 JChromA) describing the phenomena and how it was modeled.

Pabst and Carta - 2006 JChromA - pH transients in WCX.pdf (1.1 MB)

The problem we are looking to model is prediction of the pH profile (inside column and at outlet) for a multimodal ligand (Capto MMC) with a carboxylic acid group and its impact on the protein elution profile. I have a strange result here that we would like to predict. Here, there are multiple peaks in a single elution step for a pure protein species. The buffer was acetate 20 mM acetate pH 5.5. We theorize that the double peak behavior is seen here because of the protein acting as a buffering species in the thermodynamic equilibria and thus slowing the return of pH to its nominal value. So, we would also like to include the protein species in the reaction kinetics if possible.

Thanks for the help,

Hi Scott,

Juliane has started studying pH gradients in her PhD thesis.

Sam and Johannes have substantially improved the code since then, and we are currently preparing a publication. Maybe Johannes can give you a preview after the Easter break.


1 Like

Thanks, Eric! I will definitely look into Juliane’s thesis and would also appreciate further information on the code and/or publication.

Hi Eric,

Did this paper get published? I thought I saw a reference to a poster online, but not the paper itself.

Is there a pre-print available?

Thanks! :slight_smile:

We are still working on the paper, but you can find the basic outline in Juliane’s PhD thesis (see above).

1 Like

Since I made this post, I wrote a MATLAB routine (using ode15s) that follows the approach outlined by Pabst and Carta 2007 to simulate pH transients in columns with weakly charged ionogenic groups (e.g., carboxylic acid). Not sure if it would be helpful, but I can provide this if you are interested.


Thanks Scott - sure, if you could send that, it would be great!

Apologies for the late reply, please see the below attachment for the MATLAB script.

pH_transient_diffeq.m (7.1 KB)

I recommend that you read the Pabst and Carta 2007 paper (see below attachment), since the script directly uses the key equations and approach described in the publication.

Pabst and Carta - 2007 JChromA - pH transients in WCX modeling

Here is an example of predictions (taken from my thesis) of induced pH gradients for the Capto MMC resin using blank salt steps (protein-free) with different sodium acetate buffer concentrations. Here, the dots are the experimental pH traces recorded by the pH meter and the solid lines are model predictions.

In the Pabst and Carta 2007 paper, they describe two solution approaches—method of characteristics and numerical. I tested both of these to compare their predictive accuracy and found that the numerical approach was more accurate. It is also much more flexible because it can be used for linear gradient elution which is not possible using the method of characteristics described in the publication. However, if you would like to see the script for the method of characteristics, I can share that too.

Please let me know if you have any questions!

1 Like

Hi Eric,

I’m trying to model a CSTR which accounts for pH buffering / equilibria between buffer components.

I read parts of the thesis linked above, relevant for pH modeling. Has the outlined reaction scheme involving buffer components been incorporated in CADET?

Based on what I saw in the CADET manual, mass-action is indeed included, but the charge/ mass balances for conserved species that’s needed for pH modelling has not? I wanted to make sure I’ve understood correctly.


1 Like

Reactions cannot yet be solved in rapid equilibrium. However, the situation can be well approximated by using high rate constants. @j.schmoelder has implemented the reaction scheme in CADET and we are currently preparing a publication.

1 Like

Thanks Scott for the code! I finally got around to working with it.

I had a query about the variable named dcAdx.

To me it looks like it might refer to d[A]/dt and not d[A]/dx (where t is time, and x is the column axial dimension). I know the name doesn’t affect the math, but I wanted to make sure if I understood it right.

    for i=2:N+1
        dcAdx(i) = u/Et*(cA(i-1) - cA(i))/h;
        dcCldt(i) = u/Et*(cCl(i-1) - cCl(i))/h;
        Ka(i) = 10^-(pKa + 2*(zA-1)*(A*sqrt(cNa(i))/(1+sqrt(cNa(i)))-b*cNa(i)));
        g(i) = 10^-(zI^2*(A*sqrt(cNa(i))/(1+sqrt(cNa(i)))-b*cNa(i)));
        cH(i) = Ka(i)*(cA(i)/(cNa(i)-cCl(i)) - 1);
        pH(i) = -log10(g(i)*cH(i));
        cNa_eq = qNa(i)^2*cH(i)/((qR-qNa(i))*K);
        dqNadt(i) = k_kin*(cNa(i) - cNa_eq);
        dcNadt(i) = -(1-Et)/Et*dqNadt(i) + u/Et*(cNa(i-1) - cNa(i))/h;

Ah yes, that should be dcA/dt not dcA/dx. Good catch! Keep me posted on the progress of this work.

1 Like