The first major announced/labelled release since May. This new version includes a host of new features and tutorial examples, as well as being far more stable, user-friendly, and customizable. I will list some of the additions since the previous release here. There may be others that have been forgotten, however these are all included in the documentation.
Major Features
Inclusion of dosing
It is now possible to do both variance and parameter estimation in systems with dosing using the fe_factory to do the initialization and problem setup. Examples showing how this can be implemented are included:
'Ex_2_estimationfefactoryTempV.py'
'Ex_5_sim_fe_by_fe_multjumpsandinputs.py'
Pre-processing
We can now use Kipet to perform data pre-processing, including the Savitzky-Golay filter, Standard Normal Variate, and Multiplicative Scatter Correction. Examples included:
'Ex_2_estimation_filter.py'
'Ex_2_estimation_filter_deriv.py'
'Ex_2_estimation_filter_msc.py'
'Ex_2_estimation_filter_snv.py'
Inclusion of parameter estimation for problems with concentration data
Kipet can now do estimation of kinetic parameters for problems where only concentration data is provided. New examples are found in:
'Ex_7_concentration_input.py'
'Ex_7_conc_input_conf.py"
'Ex_7_conc_input_conf_k_aug.py'
Inclusion of estimability analysis for problems with concentration data.
Adding of a new class for estimability analysis, EstimabilityAnalyzer. EstimabilityAnalyzer includes new tools to perform the estimability using the method of Wu et al. (2011) for problems that have concentration data. The method first does parameter ranking using the method of Yao (2003) using scaled matrix sensitivities obtained at the initial parameter values using k_aug. After this, the list of ranked parameters is used to calculate the number of parameters to estimate using the method of Wu et al, where a sequence of parameter estimation problems is solved using the ParameterEstimator with different numbers of parameters fixed and variable. These simplified models and the extended model are compared using the mean squared error. Finally a list of which parameters should be made variable and which should be fixed is returned to the user.
Examples that show how this feature works and is used:
'Ex_8_estimability.py'
'Ex_9_estimability_with_problem_gen.py'
Minor Features
Non-reacting components / interfering components
This is done for two situations. First where the interfering species' absorbance is not known ahead of time. This example is found in:
'Ex_2_abs_not_react.py'
The second example is when the interfering component is known ahead of time. This can be shown in:
'Ex_2_abs_known_non_react.py'
setting species' absorbances easily
With this, it is now also possible to fix any species' absorbance easily using set_known_absorbing_species() function. It is possible for cases where species are reacting or not, however care should be taken in these cases, especially when using the confidence intervals as fixing these absorbances results in fewer degrees of freedom.
Adding noise to simulated data
New function add_noise_to_signal() adds random normally distributed noise to any dataframe input.
k_aug can be used for confidences
k_aug has now been integrated for providing the reduced hessian information from Ipopt output. The utility of k_aug and its preference over sIpopt is shown in a number of examples and the additional advantage that k_aug provides, that of easily providing sensitivity information is utilized in the estimability analysis examples.
Bug fixes for aspirin and Michael's examples