10. Advanced Elution Models#
Although we have not been explicit so far in the decomposition discussion, we have used an elution model called EGH – Exponential-Gaussian hybrid – to express each component elution. The EGH model was introduced to enable asymmetric peak fitting. It is used as the default model because it is “mathematically simple and numerically stable.” However, it is so flexible that there is a risk it can fit unrealistic decompositions. To cope with this issue, advanced models are introduced.
10.1. Preliminary Decomposition#
As an example, let us examine the best result using the default EGH model from the previous chapter. Note that the proportins [3, 1.86, 1] used below attained the minimum objective function value.
from molass import get_version
assert get_version() >= '0.6.0', "This tutorial requires molass version 0.6.0 or higher."
from molass_data import SAMPLE4
from molass.DataObjects import SecSaxsData as SSD
ssd = SSD(SAMPLE4)
trimmed_ssd = ssd.trimmed_copy()
corrected_ssd = trimmed_ssd.corrected_copy()
decomposition = corrected_ssd.quick_decomposition(proportions=[3., 1.85714286, 1.])
decomposition.plot_components(title="EGH decomposition of sample4 with proportions [3, 1.86, 1]");

10.2. Stochastic Dispersive Model#
One of the advanced models is SDM - Stochastic Dispersive Model. To use this model do as follows. Details of SDM will be described in Molass Essence.
sdm_decomposition = decomposition.optimize_with_model('SDM')
sdm_decomposition.plot_components(title="SDM decomposition of sample4 from EGH result");

10.3. Equilibrium Dispersive Model#
Another advanced models is EDM - Equilibrium Dispersive Model. To use this model do as follows. Details of SDM will be described in Molass Essence.
edm_decomposition = decomposition.optimize_with_model('EDM')
edm_decomposition.plot_components(title="EDM decomposition of sample4 from EGH result");
guess_init_params: M2= 74.57597297722981
area ratio= 0.36132973107272454
guess_init_params: M2= 134.61576060205115
area ratio= 0.35559694660498437
C:\Program Files\Python312\Lib\site-packages\molass_legacy\SecTheory\Edm.py:134: RuntimeWarning: invalid value encountered in sqrt
W = np.sqrt(np.pi*tau/RPe)
C:\Program Files\Python312\Lib\site-packages\molass_legacy\SecTheory\Edm.py:135: RuntimeWarning: invalid value encountered in sqrt
Y = xi/(2*np.sqrt(tau/RPe))
C:\Program Files\Python312\Lib\site-packages\molass_legacy\SecTheory\Edm.py:140: RuntimeWarning: overflow encountered in exp
numer = U*(expB - 1)*np.exp(-V)
guess_init_params: M2= 293.6976710792499
area ratio= 0.3521629344551637
