I want to simulate pH effect using SMA model in linear gradient simulation. I am not able to find any option to add pH in load wash elute model in cadet python or cadet process. Please advice this or suggest any other isotherm model to incorporate pH effect.
you can use the generalized ion exchange isotherm, which assumes that the the first component represents salt, and the second component represents another non-binding modifier (e.g., pH).
It’s available in CADET-Process as the GeneralizedIonExchange binding model with this parameter interface or in CADET-Python as the GENERALIZED_ION_EXCHANGE binding model with this parameter interface
Thanks Ronald for quick response.
To fit the Generalized ion exchange isotherm, We need to estimate the parameters of the isotherm model.
How to estimate the parameters of the generalized ion exchange isotherm model?
Any help is appreciated. Thanks
Then, when defining the optimization variables, you need to include the pH dependent parameters, like so:
optimization_problem.add_variable(
name='characteristic_charge_linear',
parameter_path='flow_sheet.column.binding_model.characteristic_charge_linear',
lb=1, ub=50,
transform='auto',
indices=[2] # modify only the protein (component index 2) parameter
)
for the linear dependence of the characteristic charge on the pH. This can be done for your desired sub-set of model parameters. My recommendation would be to use 1 less pH dependent dimension than pH datapoints you have. So if you have data for 3 pH values, use 2 degrees of freedom (x & x_lin) per parameter (nu & ka).
It’s also highly advisable to use parameter dependencies to optimize keq instead of ka & kd as described here
Thanks Ronald for reply. Sorry for late response, I was busy with other work.
When I was add three components in component_system(), I am getting error in the following line:
process.add_event(‘grad_end’, ‘flow_sheet.inlet.c’, c_post_gradient_wash, t_gradient_end).
Please find the error:
Traceback (most recent call last):
File ~\AppData\Local\anaconda3\Lib\site-packages\spyder_kernels\py3compat.py:356 in compat_exec
exec(code, globals, locals)
File d:\chromatography_parameter_estimation\cadet-process-dev11\gradient_complete_giec.py:136
process = create_process(cv)
File d:\chromatography_parameter_estimation\cadet-process-dev11\gradient_complete_giec.py:65 in create_process
process.add_event('grad_end', 'flow_sheet.inlet.c', c_post_gradient_wash, t_gradient_end)
File D:\Chromatography_Parameter_Estimation\CADET-Process-dev11\CADETProcess\dynamicEvents\event.py:166 in add_event
evt = Event(name, self, parameter_path, state, time=time, indices=indices)
File D:\Chromatography_Parameter_Estimation\CADET-Process-dev11\CADETProcess\dynamicEvents\event.py:881 in __init__
self.state = state
File D:\Chromatography_Parameter_Estimation\CADET-Process-dev11\CADETProcess\dynamicEvents\event.py:1208 in state
raise e
File D:\Chromatography_Parameter_Estimation\CADET-Process-dev11\CADETProcess\dynamicEvents\event.py:1206 in state
_ = self.full_state
File D:\Chromatography_Parameter_Estimation\CADET-Process-dev11\CADETProcess\dynamicEvents\event.py:1295 in full_state
self.set_value(new_value)
File D:\Chromatography_Parameter_Estimation\CADET-Process-dev11\CADETProcess\dynamicEvents\event.py:1334 in set_value
setattr(self.performer_obj, self.parameter_sequence[-1], state)
File D:\Chromatography_Parameter_Estimation\CADET-Process-dev11\CADETProcess\dataStructure\dataStructure.py:477 in frozensetattr
object.__setattr__(self, key, value)
File D:\Chromatography_Parameter_Estimation\CADET-Process-dev11\CADETProcess\dataStructure\parameter.py:170 in __set__
value = self._prepare(instance, value, recursive=True)
File D:\Chromatography_Parameter_Estimation\CADET-Process-dev11\CADETProcess\dataStructure\parameter.py:1578 in _prepare
value = self.fill_values(dims, value)
File D:\Chromatography_Parameter_Estimation\CADET-Process-dev11\CADETProcess\dataStructure\parameter.py:1540 in fill_values
raise ValueError("Number of entries does not match")
ValueError: Number of entries does not match