Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add MMC isotherm by Nfor 2010 #191

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
131 changes: 131 additions & 0 deletions doc/interface/binding/mmc_nfor.rst
@@ -0,0 +1,131 @@
.. _mmc_nfor_config:

MMC Nfor 2010
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Group /input/model/unit_XXX/adsorption – ADSORPTION_MODEL = MMC_NFOR**

For information on model equations, refer to :ref:`_mmc_nfor_model`.


``IS_KINETIC``
Selects kinetic or quasi-stationary adsorption mode: 1 = kinetic, 0 =
quasi-stationary. If a single value is given, the mode is set for all
bound states. Otherwise, the adsorption mode is set for each bound
state separately.

=================== ========================= =======================
**Type:** int **Range:** {0,1} **Length:** 1/NTOTALBND
=================== ========================= =======================

``MMCNFOR_KA``
Adsorption rate constant

**Unit:** :math:`m_{MP}^{3}~m_{SP}^{-3}~s^{-1}`

=================== ========================= =========================================
**Type:** double **Range:** :math:`\ge 0` **Length:** NCOMP
=================== ========================= =========================================

``MMCNFOR_KD``
Desorption rate constant

**Unit:** :math:`s^{-1}`

=================== ========================= =========================================
**Type:** double **Range:** :math:`\ge 0` **Length:** NCOMP
=================== ========================= =========================================

``MMCNFOR_KP``
Protein-salt interaction factor (dependence of activity of solved protein from salt concentration)

**Unit:** :math:`s^{-1}`

=================== ========================= =========================================
**Type:** double **Range:** :math:`\ge 0` **Length:** NCOMP
=================== ========================= =========================================

``MMCNFOR_KS``
Protein-protein interaction factor (dependence of activity of solved protein from protein concentration)

**Unit:** :math:`s^{-1}`

=================== ========================= =========================================
**Type:** double **Range:** :math:`\ge 0` **Length:** NCOMP
=================== ========================= =========================================

``MMCNFOR_NU``
Characteristic charges of the protein; The number of sites
:math:`\nu` that the protein interacts with on the resin surface

**Unit: [-]**

=================== ========================= =========================================
**Type:** double **Range:** :math:`\ge 0` **Length:** NCOMP
=================== ========================= =========================================


``MMCNFOR_N``
Number of hydrophobic ligands occupied during binding

**Unit: [-]**

=================== ========================= =========================================
**Type:** double **Range:** :math:`\ge 0` **Length:** NCOMP
=================== ========================= =========================================


``MMCNFOR_SIGMA``
Steric factors for ionic binding of the protein; The number of sites :math:`\sigma` on
the surface that are shielded by the protein and prevented from
exchange with the salt counterions in solution

**Unit: [-]**

=================== ========================= =========================================
**Type:** double **Range:** :math:`\ge 0` **Length:** NCOMP
=================== ========================= =========================================

``MMCNFOR_S``
Steric factor for hydrophobic binding of the protein;; The number of sites :math:`\sigma` on
the surface that are shielded by the protein and prevented from
exchange with the salt counterions in solution

**Unit: [-]**

=================== ========================= =========================================
**Type:** double **Range:** :math:`\ge 0` **Length:** NCOMP
=================== ========================= =========================================


``SMA_LAMBDA``
Stationary phase capacity (monovalent salt counterions); The total
number of binding sites available on the resin surface

**Unit:** :math:`mol~m_{SP}^{-3}`

=================== ========================= =========================================
**Type:** double **Range:** :math:`\ge 0` **Length:** 1
=================== ========================= =========================================

``SMA_REFC0``
Reference liquid phase concentration (optional, defaults to
:math:`1.0`)


**Unit:** :math:`mol~m_{MP}^{-3}`

=================== ========================= =========================================
**Type:** double **Range:** :math:`\gt 0` **Length:** 1
=================== ========================= =========================================

``SMA_REFQ``
Reference solid phase concentration (optional, defaults to
:math:`1.0`)


**Unit:** :math:`mol~m_{SP}^{-3}`

=================== ========================= =========================================
**Type:** double **Range:** :math:`\gt 0` **Length:** 1
=================== ========================= =========================================
@@ -1,4 +1,4 @@
.. _hic_water_on_hydrophobic_surfaces_model:
.. _mmc_nfor_model:

HIC Water on Hydrophobic Surfaces
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Expand Down
39 changes: 39 additions & 0 deletions doc/modelling/binding/mmc_nfor.rst
@@ -0,0 +1,39 @@
.. _hic_water_on_hydrophobic_surfaces_model:

MMC Nfor 2010
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This model implements the mixed mode chromatography isotherm described by Nfor et al 2010 :cite:`Nfor2010`.

.. math::

\begin{aligned}
\frac{\mathrm{d}q_i}{\mathrm{d}t} &= k_{a,i} c_{p,i} \widetilde{\gamma_i} \left[ \Lambda - \sum_j\left( \nu_j + \sigma_j \right) q_j \right]^{\nu_i}\left[ \Lambda - \sum_j\left( n_j + s_j \right) q_j \right]^{n_i} - k_{d,i} q_i c_{s}^{\nu_i} \\
c_s &= c_{p,0}\\
\widetilde{\gamma_i} &= e^{K_{p,i}c_{p,i} + K_{s,i}c_{s}}
\end{aligned}

where :math:`c_{p,0}` and :math:`q_0` denote the salt concentrations in the liquid and solid phase of the beads, respectively.
The number of free binding sites

.. math::

\begin{aligned}
\bar{q}_0 = \Lambda - \sum_{j=1}^{N_{\text{comp}} - 1} \left( \nu_j + \sigma_j \right) q_j = q_0 - \sum_{j=1}^{N_{\text{comp}} - 1} \sigma_j q_j
\end{aligned}

is calculated from the number of bound counter ions :math:`q_0` by taking steric shielding into account.
In turn, the number of bound counter ions :math:`q_0` (electro-neutrality condition) is given by

.. math::

\begin{aligned}
q_0 = \Lambda - \sum_{j=1}^{N_{\text{comp}} - 1} \nu_j q_j,
\end{aligned}

which also compensates for the missing equation for :math:`\frac{\mathrm{d} q_0}{\mathrm{d}t}`.

The concept of reference concentrations (:math:`c_{\text{ref}}` and :math:`q_{\text{ref}}`) is explained in the respective paragraph in Section�:ref:`reference_concentrations`.


For more information on model parameters required to define in CADET file format, see :ref:`hic_water_on_hydrophobic_surfaces_config`.
2 changes: 2 additions & 0 deletions src/libcadet/BindingModelFactory.cpp
Expand Up @@ -44,6 +44,7 @@ namespace cadet
void registerBiLangmuirLDFModel(std::unordered_map<std::string, std::function<model::IBindingModel* ()>>& bindings);
void registerHICWaterOnHydrophobicSurfacesModel(std::unordered_map<std::string, std::function<model::IBindingModel*()>>& bindings);
void registerHICConstantWaterActivityModel(std::unordered_map<std::string, std::function<model::IBindingModel*()>>& bindings);
void registerMMCNforModel(std::unordered_map<std::string, std::function<model::IBindingModel*()>>& bindings);
}
}

Expand Down Expand Up @@ -73,6 +74,7 @@ namespace cadet
model::binding::registerBiLangmuirLDFModel(_bindingModels);
model::binding::registerHICWaterOnHydrophobicSurfacesModel(_bindingModels);
model::binding::registerHICConstantWaterActivityModel(_bindingModels);
model::binding::registerMMCNforModel(_bindingModels);
registerModel<model::SimplifiedMultiStateStericMassActionBinding>();
}

Expand Down
1 change: 1 addition & 0 deletions src/libcadet/CMakeLists.txt
Expand Up @@ -100,6 +100,7 @@ set(LIBCADET_BINDINGMODEL_SOURCES
${CMAKE_SOURCE_DIR}/src/libcadet/model/binding/BiLangmuirLDFBinding.cpp
${CMAKE_SOURCE_DIR}/src/libcadet/model/binding/HICWaterOnHydrophobicSurfacesBinding.cpp
${CMAKE_SOURCE_DIR}/src/libcadet/model/binding/HICConstantWaterActivityBinding.cpp
${CMAKE_SOURCE_DIR}/src/libcadet/model/binding/MMCNfor.cpp
)

# LIBCADET_REACTIONMODEL_SOURCES holds all source files of reaction models
Expand Down