The Yamamoto method

The Yamamoto method#

This example demonstrates how to estimate SMA binding parameters based on multiple gradient elution chromatograms using the Yamamoto method.

import numpy as np

from CADETProcess.processModel import ComponentSystem, StericMassAction, LumpedRateModelWithPores
from CADETProcess.tools.yamamoto import GradientExperiment, fit_parameters

from binding_model_parameters import create_column_model, create_in_silico_experimental_data

if __name__ == "__main__":
    component_system = ComponentSystem(['Salt', 'Protein'])
    column = create_column_model(component_system, final_salt_concentration=600, initial_salt_concentration=50)

    column_volume = column.length * ((column.diameter / 2) ** 2) * np.pi

    create_in_silico_experimental_data()

    exp_5cv = np.loadtxt("experimental_data/5.csv", delimiter=",")
    exp_30cv = np.loadtxt("experimental_data/30.csv", delimiter=",")
    exp_120cv = np.loadtxt("experimental_data/120.csv", delimiter=",")

    experiment_1 = GradientExperiment(exp_5cv[:, 0], exp_5cv[:, 1], exp_5cv[:, 2], 5 * column_volume)
    experiment_2 = GradientExperiment(exp_30cv[:, 0], exp_30cv[:, 1], exp_30cv[:, 2], 30 * column_volume)
    experiment_3 = GradientExperiment(exp_120cv[:, 0], exp_120cv[:, 1], exp_120cv[:, 2], 120 * column_volume)

    experiments = [experiment_1, experiment_2, experiment_3]

    for experiment in experiments:
        experiment.plot()

    yamamoto_results = fit_parameters(experiments, column)

    print('yamamoto_results.characteristic_charge =', yamamoto_results.characteristic_charge)
    print('yamamoto_results.k_eq =', yamamoto_results.k_eq)

    yamamoto_results.plot()
/home/docs/checkouts/readthedocs.org/user_builds/cadet-process/conda/v0.10.1/lib/python3.12/site-packages/PolyRound/__init__.py:1: UserWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html. The pkg_resources package is slated for removal as early as 2025-11-30. Refrain from using this package or pin to Setuptools<81.
  from pkg_resources import get_distribution, DistributionNotFound
/home/docs/checkouts/readthedocs.org/user_builds/cadet-process/conda/v0.10.1/lib/python3.12/site-packages/cadet/cadet.py:510: FutureWarning: Cadet.run_load() will be removed in a future release. Please use Cadet.run_simulation()
  warnings.warn(
/home/docs/checkouts/readthedocs.org/user_builds/cadet-process/conda/v0.10.1/lib/python3.12/site-packages/cadet/cadet.py:510: FutureWarning: Cadet.run_load() will be removed in a future release. Please use Cadet.run_simulation()
  warnings.warn(
/home/docs/checkouts/readthedocs.org/user_builds/cadet-process/conda/v0.10.1/lib/python3.12/site-packages/cadet/cadet.py:510: FutureWarning: Cadet.run_load() will be removed in a future release. Please use Cadet.run_simulation()
  warnings.warn(
yamamoto_results.characteristic_charge = [9.666831137133142]
yamamoto_results.k_eq = [0.07977612727934917]
../../_images/cc91f32e611c9efcc5d82e0ff1dc0d554acf2150d775567a97082f54b478ce77.png ../../_images/a88e516ca29bb9404ff8b7b77a69c571ca3c09f4106c3c6dac3c14e30e10961d.png ../../_images/15bd42392079d4b683e58101cf8046ee4f714a64912b719d4f75d64faa2a3def.png ../../_images/e953a36c003fa34adbec5e5aee30168ba53f7e17f59da44da3b66fbf5b2887c8.png