From 91a5834dd701211f929fd25419dc34561ce3b4e7 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Fri, 14 Feb 2025 09:15:20 +0100 Subject: Initialize dev docs --- docs/dev/articles/FOCUS_D.html | 338 ++ .../articles/FOCUS_D_files/figure-html/plot-1.png | Bin 0 -> 80361 bytes .../FOCUS_D_files/figure-html/plot_2-1.png | Bin 0 -> 25051 bytes docs/dev/articles/FOCUS_L.html | 894 ++++ .../figure-html/unnamed-chunk-10-1.png | Bin 0 -> 42974 bytes .../figure-html/unnamed-chunk-12-1.png | Bin 0 -> 83736 bytes .../figure-html/unnamed-chunk-13-1.png | Bin 0 -> 33606 bytes .../figure-html/unnamed-chunk-15-1.png | Bin 0 -> 58683 bytes .../figure-html/unnamed-chunk-4-1.png | Bin 0 -> 36066 bytes .../figure-html/unnamed-chunk-5-1.png | Bin 0 -> 22386 bytes .../figure-html/unnamed-chunk-6-1.png | Bin 0 -> 36579 bytes .../figure-html/unnamed-chunk-8-1.png | Bin 0 -> 41775 bytes .../figure-html/unnamed-chunk-9-1.png | Bin 0 -> 41403 bytes docs/dev/articles/index.html | 114 + docs/dev/articles/mkin.html | 414 ++ .../mkin_files/figure-html/unnamed-chunk-2-1.png | Bin 0 -> 91109 bytes docs/dev/articles/prebuilt/2022_cyan_pathway.html | 5397 ++++++++++++++++++++ .../figure-html/unnamed-chunk-13-1.png | Bin 0 -> 352828 bytes .../figure-html/unnamed-chunk-14-1.png | Bin 0 -> 358040 bytes .../figure-html/unnamed-chunk-15-1.png | Bin 0 -> 358363 bytes .../figure-html/unnamed-chunk-20-1.png | Bin 0 -> 372544 bytes .../figure-html/unnamed-chunk-21-1.png | Bin 0 -> 364943 bytes .../figure-html/unnamed-chunk-22-1.png | Bin 0 -> 367124 bytes .../figure-html/unnamed-chunk-7-1.png | Bin 0 -> 367815 bytes .../figure-html/unnamed-chunk-8-1.png | Bin 0 -> 367124 bytes docs/dev/articles/prebuilt/2022_dmta_parent.html | 2166 ++++++++ .../figure-html/convergence-saem-dfop-const-1.png | Bin 0 -> 174831 bytes .../figure-html/convergence-saem-dfop-tc-1.png | Bin 0 -> 150241 bytes .../convergence-saem-dfop-tc-no-ranef-k2-1.png | Bin 0 -> 163652 bytes .../figure-html/convergence-saem-fomc-const-1.png | Bin 0 -> 134868 bytes .../figure-html/convergence-saem-fomc-tc-1.png | Bin 0 -> 133755 bytes .../figure-html/convergence-saem-hs-const-1.png | Bin 0 -> 176784 bytes .../figure-html/convergence-saem-hs-tc-1.png | Bin 0 -> 138687 bytes .../figure-html/convergence-saem-sfo-const-1.png | Bin 0 -> 96920 bytes .../figure-html/convergence-saem-sfo-tc-1.png | Bin 0 -> 87496 bytes .../figure-html/multistart-full-par-1.png | Bin 0 -> 89747 bytes .../figure-html/multistart-reduced-par-1.png | Bin 0 -> 85433 bytes .../multistart-reduced-par-llquant-1.png | Bin 0 -> 71921 bytes .../plot-saem-dfop-tc-no-ranef-k2-1.png | Bin 0 -> 158350 bytes docs/dev/articles/prebuilt/2022_dmta_pathway.html | 2002 ++++++++ .../saem-sforb-path-1-tc-reduced-convergence-1.png | Bin 0 -> 211998 bytes .../figure-html/unnamed-chunk-2-1.png | Bin 0 -> 133547 bytes .../figure-html/unnamed-chunk-3-1.png | Bin 0 -> 391774 bytes .../figure-html/unnamed-chunk-4-1.png | Bin 0 -> 391056 bytes .../figure-html/unnamed-chunk-6-1.png | Bin 0 -> 386367 bytes .../figure-html/unnamed-chunk-7-1.png | Bin 0 -> 388971 bytes .../figure-html/unnamed-chunk-8-1.png | Bin 0 -> 391774 bytes .../articles/prebuilt/2023_mesotrione_parent.html | 2500 +++++++++ .../figure-html/unnamed-chunk-14-1.png | Bin 0 -> 209282 bytes .../figure-html/unnamed-chunk-19-1.png | Bin 0 -> 205377 bytes .../figure-html/unnamed-chunk-25-1.png | Bin 0 -> 208189 bytes .../figure-html/unnamed-chunk-30-1.png | Bin 0 -> 206155 bytes .../figure-html/unnamed-chunk-8-1.png | Bin 0 -> 202743 bytes docs/dev/articles/twa.html | 181 + docs/dev/articles/web_only/FOCUS_Z.html | 446 ++ .../figure-html/FOCUS_2006_Z_fits_1-1.png | Bin 0 -> 67444 bytes .../figure-html/FOCUS_2006_Z_fits_10-1.png | Bin 0 -> 107009 bytes .../figure-html/FOCUS_2006_Z_fits_11-1.png | Bin 0 -> 106098 bytes .../figure-html/FOCUS_2006_Z_fits_11a-1.png | Bin 0 -> 76831 bytes .../figure-html/FOCUS_2006_Z_fits_11b-1.png | Bin 0 -> 37494 bytes .../figure-html/FOCUS_2006_Z_fits_2-1.png | Bin 0 -> 67444 bytes .../figure-html/FOCUS_2006_Z_fits_3-1.png | Bin 0 -> 67259 bytes .../figure-html/FOCUS_2006_Z_fits_5-1.png | Bin 0 -> 81751 bytes .../figure-html/FOCUS_2006_Z_fits_6-1.png | Bin 0 -> 106406 bytes .../figure-html/FOCUS_2006_Z_fits_7-1.png | Bin 0 -> 105359 bytes .../figure-html/FOCUS_2006_Z_fits_9-1.png | Bin 0 -> 89110 bytes docs/dev/articles/web_only/NAFTA_examples.html | 1049 ++++ .../NAFTA_examples_files/figure-html/p10-1.png | Bin 0 -> 81542 bytes .../NAFTA_examples_files/figure-html/p11-1.png | Bin 0 -> 77600 bytes .../NAFTA_examples_files/figure-html/p12a-1.png | Bin 0 -> 83512 bytes .../NAFTA_examples_files/figure-html/p12b-1.png | Bin 0 -> 71409 bytes .../NAFTA_examples_files/figure-html/p13-1.png | Bin 0 -> 78613 bytes .../NAFTA_examples_files/figure-html/p14-1.png | Bin 0 -> 81557 bytes .../NAFTA_examples_files/figure-html/p15a-1.png | Bin 0 -> 77580 bytes .../NAFTA_examples_files/figure-html/p15b-1.png | Bin 0 -> 79748 bytes .../NAFTA_examples_files/figure-html/p16-1.png | Bin 0 -> 94540 bytes .../NAFTA_examples_files/figure-html/p5a-1.png | Bin 0 -> 83061 bytes .../NAFTA_examples_files/figure-html/p5b-1.png | Bin 0 -> 81186 bytes .../NAFTA_examples_files/figure-html/p6-1.png | Bin 0 -> 83142 bytes .../NAFTA_examples_files/figure-html/p7-1.png | Bin 0 -> 102934 bytes .../NAFTA_examples_files/figure-html/p8-1.png | Bin 0 -> 93632 bytes .../NAFTA_examples_files/figure-html/p9a-1.png | Bin 0 -> 78782 bytes .../NAFTA_examples_files/figure-html/p9b-1.png | Bin 0 -> 76883 bytes docs/dev/articles/web_only/benchmarks.html | 1133 ++++ docs/dev/articles/web_only/compiled_models.html | 231 + docs/dev/articles/web_only/dimethenamid_2018.html | 651 +++ .../figure-html/f_parent_mkin_dfop_const-1.png | Bin 0 -> 57786 bytes .../f_parent_mkin_dfop_const_test-1.png | Bin 0 -> 57786 bytes .../figure-html/f_parent_mkin_dfop_tc_test-1.png | Bin 0 -> 59146 bytes .../figure-html/f_parent_mkin_sfo_const-1.png | Bin 0 -> 55982 bytes .../figure-html/f_parent_saemix_dfop_const-1.png | Bin 0 -> 36337 bytes .../figure-html/f_parent_saemix_dfop_tc-1.png | Bin 0 -> 29343 bytes .../figure-html/f_parent_saemix_sfo_const-1.png | Bin 0 -> 32949 bytes .../figure-html/f_parent_saemix_sfo_tc-1.png | Bin 0 -> 28538 bytes .../figure-html/plot_parent_nlme-1.png | Bin 0 -> 59209 bytes docs/dev/articles/web_only/multistart.html | 179 + .../figure-html/unnamed-chunk-3-1.png | Bin 0 -> 62571 bytes .../figure-html/unnamed-chunk-4-1.png | Bin 0 -> 53560 bytes .../figure-html/unnamed-chunk-5-1.png | Bin 0 -> 22804 bytes docs/dev/articles/web_only/saem_benchmarks.html | 789 +++ 100 files changed, 18484 insertions(+) create mode 100644 docs/dev/articles/FOCUS_D.html create mode 100644 docs/dev/articles/FOCUS_D_files/figure-html/plot-1.png create mode 100644 docs/dev/articles/FOCUS_D_files/figure-html/plot_2-1.png create mode 100644 docs/dev/articles/FOCUS_L.html create mode 100644 docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png create mode 100644 docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png create mode 100644 docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png create mode 100644 docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png create mode 100644 docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png create mode 100644 docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png create mode 100644 docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png create mode 100644 docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png create mode 100644 docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png create mode 100644 docs/dev/articles/index.html create mode 100644 docs/dev/articles/mkin.html create mode 100644 docs/dev/articles/mkin_files/figure-html/unnamed-chunk-2-1.png create mode 100644 docs/dev/articles/prebuilt/2022_cyan_pathway.html create mode 100644 docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-13-1.png create mode 100644 docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-14-1.png create mode 100644 docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-15-1.png create mode 100644 docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-20-1.png create mode 100644 docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-21-1.png create mode 100644 docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-22-1.png create mode 100644 docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-7-1.png create mode 100644 docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-8-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent.html create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-const-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-tc-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-tc-no-ranef-k2-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-fomc-const-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-fomc-tc-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-hs-const-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-hs-tc-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-sfo-const-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-sfo-tc-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-full-par-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-reduced-par-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-reduced-par-llquant-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/plot-saem-dfop-tc-no-ranef-k2-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_pathway.html create mode 100644 docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/saem-sforb-path-1-tc-reduced-convergence-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-2-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-3-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-4-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-6-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-7-1.png create mode 100644 docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-8-1.png create mode 100644 docs/dev/articles/prebuilt/2023_mesotrione_parent.html create mode 100644 docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-14-1.png create mode 100644 docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-19-1.png create mode 100644 docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-25-1.png create mode 100644 docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-30-1.png create mode 100644 docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-8-1.png create mode 100644 docs/dev/articles/twa.html create mode 100644 docs/dev/articles/web_only/FOCUS_Z.html create mode 100644 docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_1-1.png create mode 100644 docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_10-1.png create mode 100644 docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11-1.png create mode 100644 docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11a-1.png create mode 100644 docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11b-1.png create mode 100644 docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_2-1.png create mode 100644 docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_3-1.png create mode 100644 docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_5-1.png create mode 100644 docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_6-1.png create mode 100644 docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_7-1.png create mode 100644 docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_9-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples.html create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p10-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p11-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p12a-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p12b-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p13-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p14-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p15a-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p15b-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p16-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p5a-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p5b-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p6-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p7-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p8-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p9a-1.png create mode 100644 docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p9b-1.png create mode 100644 docs/dev/articles/web_only/benchmarks.html create mode 100644 docs/dev/articles/web_only/compiled_models.html create mode 100644 docs/dev/articles/web_only/dimethenamid_2018.html create mode 100644 docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_const-1.png create mode 100644 docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_const_test-1.png create mode 100644 docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_tc_test-1.png create mode 100644 docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_sfo_const-1.png create mode 100644 docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_dfop_const-1.png create mode 100644 docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_dfop_tc-1.png create mode 100644 docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_sfo_const-1.png create mode 100644 docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_sfo_tc-1.png create mode 100644 docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/plot_parent_nlme-1.png create mode 100644 docs/dev/articles/web_only/multistart.html create mode 100644 docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-3-1.png create mode 100644 docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-4-1.png create mode 100644 docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-5-1.png create mode 100644 docs/dev/articles/web_only/saem_benchmarks.html (limited to 'docs/dev/articles') diff --git a/docs/dev/articles/FOCUS_D.html b/docs/dev/articles/FOCUS_D.html new file mode 100644 index 00000000..a21ed6d4 --- /dev/null +++ b/docs/dev/articles/FOCUS_D.html @@ -0,0 +1,338 @@ + + + + + + + +Example evaluation of FOCUS Example Dataset D • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +

This is just a very simple vignette showing how to fit a degradation +model for a parent compound with one transformation product using +mkin. After loading the library we look at the data. We +have observed concentrations in the column named value at +the times specified in column time for the two observed +variables named parent and m1.

+
+library(mkin, quietly = TRUE)
+print(FOCUS_2006_D)
+
##      name time  value
+## 1  parent    0  99.46
+## 2  parent    0 102.04
+## 3  parent    1  93.50
+## 4  parent    1  92.50
+## 5  parent    3  63.23
+## 6  parent    3  68.99
+## 7  parent    7  52.32
+## 8  parent    7  55.13
+## 9  parent   14  27.27
+## 10 parent   14  26.64
+## 11 parent   21  11.50
+## 12 parent   21  11.64
+## 13 parent   35   2.85
+## 14 parent   35   2.91
+## 15 parent   50   0.69
+## 16 parent   50   0.63
+## 17 parent   75   0.05
+## 18 parent   75   0.06
+## 19 parent  100     NA
+## 20 parent  100     NA
+## 21 parent  120     NA
+## 22 parent  120     NA
+## 23     m1    0   0.00
+## 24     m1    0   0.00
+## 25     m1    1   4.84
+## 26     m1    1   5.64
+## 27     m1    3  12.91
+## 28     m1    3  12.96
+## 29     m1    7  22.97
+## 30     m1    7  24.47
+## 31     m1   14  41.69
+## 32     m1   14  33.21
+## 33     m1   21  44.37
+## 34     m1   21  46.44
+## 35     m1   35  41.22
+## 36     m1   35  37.95
+## 37     m1   50  41.19
+## 38     m1   50  40.01
+## 39     m1   75  40.09
+## 40     m1   75  33.85
+## 41     m1  100  31.04
+## 42     m1  100  33.13
+## 43     m1  120  25.15
+## 44     m1  120  33.31
+

Next we specify the degradation model: The parent compound degrades +with simple first-order kinetics (SFO) to one metabolite named m1, which +also degrades with SFO kinetics.

+

The call to mkinmod returns a degradation model. The differential +equations represented in R code can be found in the character vector +$diffs of the mkinmod object. If a C compiler +(gcc) is installed and functional, the differential equation model will +be compiled from auto-generated C code.

+
+SFO_SFO <- mkinmod(parent = mkinsub("SFO", "m1"), m1 = mkinsub("SFO"))
+
## Temporary DLL for differentials generated and loaded
+
+print(SFO_SFO$diffs)
+
##                                                    parent 
+##                          "d_parent = - k_parent * parent" 
+##                                                        m1 
+## "d_m1 = + f_parent_to_m1 * k_parent * parent - k_m1 * m1"
+

We do the fitting without progress report +(quiet = TRUE).

+
+fit <- mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE)
+
## Warning in mkinfit(SFO_SFO, FOCUS_2006_D, quiet = TRUE): Observations with
+## value of zero were removed from the data
+

A plot of the fit including a residual plot for both observed +variables is obtained using the plot_sep method for +mkinfit objects, which shows separate graphs for all +compounds and their residuals.

+
+plot_sep(fit, lpos = c("topright", "bottomright"))
+

+

Confidence intervals for the parameter estimates are obtained using +the mkinparplot function.

+ +

+

A comprehensive report of the results is obtained using the +summary method for mkinfit objects.

+
+summary(fit)
+
## mkin version used for fitting:    1.2.10 
+## R version used for fitting:       4.4.2 
+## Date of fit:     Fri Feb 14 08:59:09 2025 
+## Date of summary: Fri Feb 14 08:59:09 2025 
+## 
+## Equations:
+## d_parent/dt = - k_parent * parent
+## d_m1/dt = + f_parent_to_m1 * k_parent * parent - k_m1 * m1
+## 
+## Model predictions using solution type analytical 
+## 
+## Fitted using 401 model solutions performed in 0.053 s
+## 
+## Error model: Constant variance 
+## 
+## Error model algorithm: OLS 
+## 
+## Starting values for parameters to be optimised:
+##                   value   type
+## parent_0       100.7500  state
+## k_parent         0.1000 deparm
+## k_m1             0.1001 deparm
+## f_parent_to_m1   0.5000 deparm
+## 
+## Starting values for the transformed parameters actually optimised:
+##                      value lower upper
+## parent_0        100.750000  -Inf   Inf
+## log_k_parent     -2.302585  -Inf   Inf
+## log_k_m1         -2.301586  -Inf   Inf
+## f_parent_qlogis   0.000000  -Inf   Inf
+## 
+## Fixed parameter values:
+##      value  type
+## m1_0     0 state
+## 
+## 
+## Warning(s): 
+## Observations with value of zero were removed from the data
+## 
+## Results:
+## 
+##        AIC      BIC    logLik
+##   204.4486 212.6365 -97.22429
+## 
+## Optimised, transformed parameters with symmetric confidence intervals:
+##                 Estimate Std. Error   Lower    Upper
+## parent_0        99.60000    1.57000 96.4000 102.8000
+## log_k_parent    -2.31600    0.04087 -2.3990  -2.2330
+## log_k_m1        -5.24700    0.13320 -5.5180  -4.9770
+## f_parent_qlogis  0.05792    0.08926 -0.1237   0.2395
+## sigma            3.12600    0.35850  2.3960   3.8550
+## 
+## Parameter correlation:
+##                   parent_0 log_k_parent   log_k_m1 f_parent_qlogis      sigma
+## parent_0         1.000e+00    5.174e-01 -1.688e-01      -5.471e-01 -1.172e-06
+## log_k_parent     5.174e-01    1.000e+00 -3.263e-01      -5.426e-01 -8.479e-07
+## log_k_m1        -1.688e-01   -3.263e-01  1.000e+00       7.478e-01  8.211e-07
+## f_parent_qlogis -5.471e-01   -5.426e-01  7.478e-01       1.000e+00  1.305e-06
+## sigma           -1.172e-06   -8.479e-07  8.211e-07       1.305e-06  1.000e+00
+## 
+## Backtransformed parameters:
+## Confidence intervals for internally transformed parameters are asymmetric.
+## t-test (unrealistically) based on the assumption of normal distribution
+## for estimators of untransformed parameters.
+##                 Estimate t value    Pr(>t)     Lower     Upper
+## parent_0       99.600000  63.430 2.298e-36 96.400000 1.028e+02
+## k_parent        0.098700  24.470 4.955e-23  0.090820 1.073e-01
+## k_m1            0.005261   7.510 6.165e-09  0.004012 6.898e-03
+## f_parent_to_m1  0.514500  23.070 3.104e-22  0.469100 5.596e-01
+## sigma           3.126000   8.718 2.235e-10  2.396000 3.855e+00
+## 
+## FOCUS Chi2 error levels in percent:
+##          err.min n.optim df
+## All data   6.398       4 15
+## parent     6.459       2  7
+## m1         4.690       2  8
+## 
+## Resulting formation fractions:
+##                 ff
+## parent_m1   0.5145
+## parent_sink 0.4855
+## 
+## Estimated disappearance times:
+##           DT50   DT90
+## parent   7.023  23.33
+## m1     131.761 437.70
+## 
+## Data:
+##  time variable observed predicted   residual
+##     0   parent    99.46  99.59848 -1.385e-01
+##     0   parent   102.04  99.59848  2.442e+00
+##     1   parent    93.50  90.23787  3.262e+00
+##     1   parent    92.50  90.23787  2.262e+00
+##     3   parent    63.23  74.07319 -1.084e+01
+##     3   parent    68.99  74.07319 -5.083e+00
+##     7   parent    52.32  49.91207  2.408e+00
+##     7   parent    55.13  49.91207  5.218e+00
+##    14   parent    27.27  25.01258  2.257e+00
+##    14   parent    26.64  25.01258  1.627e+00
+##    21   parent    11.50  12.53462 -1.035e+00
+##    21   parent    11.64  12.53462 -8.946e-01
+##    35   parent     2.85   3.14787 -2.979e-01
+##    35   parent     2.91   3.14787 -2.379e-01
+##    50   parent     0.69   0.71624 -2.624e-02
+##    50   parent     0.63   0.71624 -8.624e-02
+##    75   parent     0.05   0.06074 -1.074e-02
+##    75   parent     0.06   0.06074 -7.382e-04
+##     1       m1     4.84   4.80296  3.704e-02
+##     1       m1     5.64   4.80296  8.370e-01
+##     3       m1    12.91  13.02400 -1.140e-01
+##     3       m1    12.96  13.02400 -6.400e-02
+##     7       m1    22.97  25.04476 -2.075e+00
+##     7       m1    24.47  25.04476 -5.748e-01
+##    14       m1    41.69  36.69003  5.000e+00
+##    14       m1    33.21  36.69003 -3.480e+00
+##    21       m1    44.37  41.65310  2.717e+00
+##    21       m1    46.44  41.65310  4.787e+00
+##    35       m1    41.22  43.31313 -2.093e+00
+##    35       m1    37.95  43.31313 -5.363e+00
+##    50       m1    41.19  41.21832 -2.832e-02
+##    50       m1    40.01  41.21832 -1.208e+00
+##    75       m1    40.09  36.44704  3.643e+00
+##    75       m1    33.85  36.44704 -2.597e+00
+##   100       m1    31.04  31.98162 -9.416e-01
+##   100       m1    33.13  31.98162  1.148e+00
+##   120       m1    25.15  28.78984 -3.640e+00
+##   120       m1    33.31  28.78984  4.520e+00
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/FOCUS_D_files/figure-html/plot-1.png b/docs/dev/articles/FOCUS_D_files/figure-html/plot-1.png new file mode 100644 index 00000000..c0832a1a Binary files /dev/null and b/docs/dev/articles/FOCUS_D_files/figure-html/plot-1.png differ diff --git a/docs/dev/articles/FOCUS_D_files/figure-html/plot_2-1.png b/docs/dev/articles/FOCUS_D_files/figure-html/plot_2-1.png new file mode 100644 index 00000000..02cfcfb4 Binary files /dev/null and b/docs/dev/articles/FOCUS_D_files/figure-html/plot_2-1.png differ diff --git a/docs/dev/articles/FOCUS_L.html b/docs/dev/articles/FOCUS_L.html new file mode 100644 index 00000000..badf4822 --- /dev/null +++ b/docs/dev/articles/FOCUS_L.html @@ -0,0 +1,894 @@ + + + + + + + +Example evaluation of FOCUS Laboratory Data L1 to L3 • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +
+

Laboratory Data L1 +

+

The following code defines example dataset L1 from the FOCUS kinetics +report, p. 284:

+
+library("mkin", quietly = TRUE)
+FOCUS_2006_L1 = data.frame(
+  t = rep(c(0, 1, 2, 3, 5, 7, 14, 21, 30), each = 2),
+  parent = c(88.3, 91.4, 85.6, 84.5, 78.9, 77.6,
+             72.0, 71.9, 50.3, 59.4, 47.0, 45.1,
+             27.7, 27.3, 10.0, 10.4, 2.9, 4.0))
+FOCUS_2006_L1_mkin <- mkin_wide_to_long(FOCUS_2006_L1)
+

Here we use the assumptions of simple first order (SFO), the case of +declining rate constant over time (FOMC) and the case of two different +phases of the kinetics (DFOP). For a more detailed discussion of the +models, please see the FOCUS kinetics report.

+

Since mkin version 0.9-32 (July 2014), we can use shorthand notation +like "SFO" for parent only degradation models. The +following two lines fit the model and produce the summary report of the +model fit. This covers the numerical analysis given in the FOCUS +report.

+
+m.L1.SFO <- mkinfit("SFO", FOCUS_2006_L1_mkin, quiet = TRUE)
+summary(m.L1.SFO)
+
## mkin version used for fitting:    1.2.10 
+## R version used for fitting:       4.4.2 
+## Date of fit:     Fri Feb 14 08:59:11 2025 
+## Date of summary: Fri Feb 14 08:59:11 2025 
+## 
+## Equations:
+## d_parent/dt = - k_parent * parent
+## 
+## Model predictions using solution type analytical 
+## 
+## Fitted using 133 model solutions performed in 0.01 s
+## 
+## Error model: Constant variance 
+## 
+## Error model algorithm: OLS 
+## 
+## Starting values for parameters to be optimised:
+##          value   type
+## parent_0 89.85  state
+## k_parent  0.10 deparm
+## 
+## Starting values for the transformed parameters actually optimised:
+##                  value lower upper
+## parent_0     89.850000  -Inf   Inf
+## log_k_parent -2.302585  -Inf   Inf
+## 
+## Fixed parameter values:
+## None
+## 
+## Results:
+## 
+##        AIC     BIC    logLik
+##   93.88778 96.5589 -43.94389
+## 
+## Optimised, transformed parameters with symmetric confidence intervals:
+##              Estimate Std. Error  Lower  Upper
+## parent_0       92.470    1.28200 89.740 95.200
+## log_k_parent   -2.347    0.03763 -2.428 -2.267
+## sigma           2.780    0.46330  1.792  3.767
+## 
+## Parameter correlation:
+##                parent_0 log_k_parent      sigma
+## parent_0      1.000e+00    6.186e-01 -1.516e-09
+## log_k_parent  6.186e-01    1.000e+00 -3.124e-09
+## sigma        -1.516e-09   -3.124e-09  1.000e+00
+## 
+## Backtransformed parameters:
+## Confidence intervals for internally transformed parameters are asymmetric.
+## t-test (unrealistically) based on the assumption of normal distribution
+## for estimators of untransformed parameters.
+##          Estimate t value    Pr(>t)    Lower   Upper
+## parent_0 92.47000   72.13 8.824e-21 89.74000 95.2000
+## k_parent  0.09561   26.57 2.487e-14  0.08824  0.1036
+## sigma     2.78000    6.00 1.216e-05  1.79200  3.7670
+## 
+## FOCUS Chi2 error levels in percent:
+##          err.min n.optim df
+## All data   3.424       2  7
+## parent     3.424       2  7
+## 
+## Estimated disappearance times:
+##         DT50  DT90
+## parent 7.249 24.08
+## 
+## Data:
+##  time variable observed predicted residual
+##     0   parent     88.3    92.471  -4.1710
+##     0   parent     91.4    92.471  -1.0710
+##     1   parent     85.6    84.039   1.5610
+##     1   parent     84.5    84.039   0.4610
+##     2   parent     78.9    76.376   2.5241
+##     2   parent     77.6    76.376   1.2241
+##     3   parent     72.0    69.412   2.5884
+##     3   parent     71.9    69.412   2.4884
+##     5   parent     50.3    57.330  -7.0301
+##     5   parent     59.4    57.330   2.0699
+##     7   parent     47.0    47.352  -0.3515
+##     7   parent     45.1    47.352  -2.2515
+##    14   parent     27.7    24.247   3.4528
+##    14   parent     27.3    24.247   3.0528
+##    21   parent     10.0    12.416  -2.4163
+##    21   parent     10.4    12.416  -2.0163
+##    30   parent      2.9     5.251  -2.3513
+##    30   parent      4.0     5.251  -1.2513
+

A plot of the fit is obtained with the plot function for mkinfit +objects.

+
+plot(m.L1.SFO, show_errmin = TRUE, main = "FOCUS L1 - SFO")
+

+

The residual plot can be easily obtained by

+
+mkinresplot(m.L1.SFO, ylab = "Observed", xlab = "Time")
+

+

For comparison, the FOMC model is fitted as well, and the +χ2\chi^2 +error level is checked.

+
+m.L1.FOMC <- mkinfit("FOMC", FOCUS_2006_L1_mkin, quiet=TRUE)
+
## Warning in mkinfit("FOMC", FOCUS_2006_L1_mkin, quiet = TRUE): Optimisation did not converge:
+## false convergence (8)
+
+plot(m.L1.FOMC, show_errmin = TRUE, main = "FOCUS L1 - FOMC")
+

+
+summary(m.L1.FOMC, data = FALSE)
+
## Warning in sqrt(diag(covar)): NaNs produced
+
## Warning in cov2cor(ans$covar): diag(V) had non-positive or NA entries; the
+## non-finite result may be dubious
+
## mkin version used for fitting:    1.2.10 
+## R version used for fitting:       4.4.2 
+## Date of fit:     Fri Feb 14 08:59:11 2025 
+## Date of summary: Fri Feb 14 08:59:11 2025 
+## 
+## Equations:
+## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
+## 
+## Model predictions using solution type analytical 
+## 
+## Fitted using 342 model solutions performed in 0.023 s
+## 
+## Error model: Constant variance 
+## 
+## Error model algorithm: OLS 
+## 
+## Starting values for parameters to be optimised:
+##          value   type
+## parent_0 89.85  state
+## alpha     1.00 deparm
+## beta     10.00 deparm
+## 
+## Starting values for the transformed parameters actually optimised:
+##               value lower upper
+## parent_0  89.850000  -Inf   Inf
+## log_alpha  0.000000  -Inf   Inf
+## log_beta   2.302585  -Inf   Inf
+## 
+## Fixed parameter values:
+## None
+## 
+## 
+## Warning(s): 
+## Optimisation did not converge:
+## false convergence (8)
+## 
+## Results:
+## 
+##        AIC      BIC    logLik
+##   95.88782 99.44931 -43.94391
+## 
+## Optimised, transformed parameters with symmetric confidence intervals:
+##           Estimate Std. Error  Lower  Upper
+## parent_0     92.47     1.2820 89.720 95.220
+## log_alpha    13.20        NaN    NaN    NaN
+## log_beta     15.54        NaN    NaN    NaN
+## sigma         2.78     0.4607  1.792  3.768
+## 
+## Parameter correlation:
+##           parent_0 log_alpha log_beta    sigma
+## parent_0  1.000000       NaN      NaN 0.000603
+## log_alpha      NaN         1      NaN      NaN
+## log_beta       NaN       NaN        1      NaN
+## sigma     0.000603       NaN      NaN 1.000000
+## 
+## Backtransformed parameters:
+## Confidence intervals for internally transformed parameters are asymmetric.
+## t-test (unrealistically) based on the assumption of normal distribution
+## for estimators of untransformed parameters.
+##           Estimate t value Pr(>t)  Lower  Upper
+## parent_0 9.247e+01      NA     NA 89.720 95.220
+## alpha    5.386e+05      NA     NA     NA     NA
+## beta     5.633e+06      NA     NA     NA     NA
+## sigma    2.780e+00      NA     NA  1.792  3.768
+## 
+## FOCUS Chi2 error levels in percent:
+##          err.min n.optim df
+## All data   3.619       3  6
+## parent     3.619       3  6
+## 
+## Estimated disappearance times:
+##         DT50  DT90 DT50back
+## parent 7.249 24.08    7.249
+

We get a warning that the default optimisation algorithm +Port did not converge, which is an indication that the +model is overparameterised, i.e. contains too many parameters +that are ill-defined as a consequence.

+

And in fact, due to the higher number of parameters, and the lower +number of degrees of freedom of the fit, the +χ2\chi^2 +error level is actually higher for the FOMC model (3.6%) than for the +SFO model (3.4%). Additionally, the parameters log_alpha +and log_beta internally fitted in the model have excessive +confidence intervals, that span more than 25 orders of magnitude (!) +when backtransformed to the scale of alpha and +beta. Also, the t-test for significant difference from zero +does not indicate such a significant difference, with p-values greater +than 0.1, and finally, the parameter correlation of +log_alpha and log_beta is 1.000, clearly +indicating that the model is overparameterised.

+

The +χ2\chi^2 +error levels reported in Appendix 3 and Appendix 7 to the FOCUS kinetics +report are rounded to integer percentages and partly deviate by one +percentage point from the results calculated by mkin. The reason for +this is not known. However, mkin gives the same +χ2\chi^2 +error levels as the kinfit package and the calculation routines of the +kinfit package have been extensively compared to the results obtained by +the KinGUI software, as documented in the kinfit package vignette. +KinGUI was the first widely used standard package in this field. Also, +the calculation of +χ2\chi^2 +error levels was compared with KinGUII, CAKE and DegKin manager in a +project sponsored by the German Umweltbundesamt (Ranke 2014).

+
+
+

Laboratory Data L2 +

+

The following code defines example dataset L2 from the FOCUS kinetics +report, p. 287:

+
+FOCUS_2006_L2 = data.frame(
+  t = rep(c(0, 1, 3, 7, 14, 28), each = 2),
+  parent = c(96.1, 91.8, 41.4, 38.7,
+             19.3, 22.3, 4.6, 4.6,
+             2.6, 1.2, 0.3, 0.6))
+FOCUS_2006_L2_mkin <- mkin_wide_to_long(FOCUS_2006_L2)
+
+

SFO fit for L2 +

+

Again, the SFO model is fitted and the result is plotted. The +residual plot can be obtained simply by adding the argument +show_residuals to the plot command.

+
+m.L2.SFO <- mkinfit("SFO", FOCUS_2006_L2_mkin, quiet=TRUE)
+plot(m.L2.SFO, show_residuals = TRUE, show_errmin = TRUE,
+     main = "FOCUS L2 - SFO")
+

+

The +χ2\chi^2 +error level of 14% suggests that the model does not fit very well. This +is also obvious from the plots of the fit, in which we have included the +residual plot.

+

In the FOCUS kinetics report, it is stated that there is no apparent +systematic error observed from the residual plot up to the measured DT90 +(approximately at day 5), and there is an underestimation beyond that +point.

+

We may add that it is difficult to judge the random nature of the +residuals just from the three samplings at days 0, 1 and 3. Also, it is +not clear a priori why a consistent underestimation after the +approximate DT90 should be irrelevant. However, this can be rationalised +by the fact that the FOCUS fate models generally only implement SFO +kinetics.

+
+
+

FOMC fit for L2 +

+

For comparison, the FOMC model is fitted as well, and the +χ2\chi^2 +error level is checked.

+
+m.L2.FOMC <- mkinfit("FOMC", FOCUS_2006_L2_mkin, quiet = TRUE)
+plot(m.L2.FOMC, show_residuals = TRUE,
+     main = "FOCUS L2 - FOMC")
+

+
+summary(m.L2.FOMC, data = FALSE)
+
## mkin version used for fitting:    1.2.10 
+## R version used for fitting:       4.4.2 
+## Date of fit:     Fri Feb 14 08:59:12 2025 
+## Date of summary: Fri Feb 14 08:59:12 2025 
+## 
+## Equations:
+## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
+## 
+## Model predictions using solution type analytical 
+## 
+## Fitted using 239 model solutions performed in 0.015 s
+## 
+## Error model: Constant variance 
+## 
+## Error model algorithm: OLS 
+## 
+## Starting values for parameters to be optimised:
+##          value   type
+## parent_0 93.95  state
+## alpha     1.00 deparm
+## beta     10.00 deparm
+## 
+## Starting values for the transformed parameters actually optimised:
+##               value lower upper
+## parent_0  93.950000  -Inf   Inf
+## log_alpha  0.000000  -Inf   Inf
+## log_beta   2.302585  -Inf   Inf
+## 
+## Fixed parameter values:
+## None
+## 
+## Results:
+## 
+##        AIC      BIC    logLik
+##   61.78966 63.72928 -26.89483
+## 
+## Optimised, transformed parameters with symmetric confidence intervals:
+##           Estimate Std. Error    Lower   Upper
+## parent_0   93.7700     1.6130 90.05000 97.4900
+## log_alpha   0.3180     0.1559 -0.04149  0.6776
+## log_beta    0.2102     0.2493 -0.36460  0.7850
+## sigma       2.2760     0.4645  1.20500  3.3470
+## 
+## Parameter correlation:
+##             parent_0  log_alpha   log_beta      sigma
+## parent_0   1.000e+00 -1.151e-01 -2.085e-01 -7.436e-09
+## log_alpha -1.151e-01  1.000e+00  9.741e-01 -1.617e-07
+## log_beta  -2.085e-01  9.741e-01  1.000e+00 -1.386e-07
+## sigma     -7.436e-09 -1.617e-07 -1.386e-07  1.000e+00
+## 
+## Backtransformed parameters:
+## Confidence intervals for internally transformed parameters are asymmetric.
+## t-test (unrealistically) based on the assumption of normal distribution
+## for estimators of untransformed parameters.
+##          Estimate t value    Pr(>t)   Lower  Upper
+## parent_0   93.770  58.120 4.267e-12 90.0500 97.490
+## alpha       1.374   6.414 1.030e-04  0.9594  1.969
+## beta        1.234   4.012 1.942e-03  0.6945  2.192
+## sigma       2.276   4.899 5.977e-04  1.2050  3.347
+## 
+## FOCUS Chi2 error levels in percent:
+##          err.min n.optim df
+## All data   6.205       3  3
+## parent     6.205       3  3
+## 
+## Estimated disappearance times:
+##          DT50  DT90 DT50back
+## parent 0.8092 5.356    1.612
+

The error level at which the +χ2\chi^2 +test passes is much lower in this case. Therefore, the FOMC model +provides a better description of the data, as less experimental error +has to be assumed in order to explain the data.

+
+
+

DFOP fit for L2 +

+

Fitting the four parameter DFOP model further reduces the +χ2\chi^2 +error level.

+
+m.L2.DFOP <- mkinfit("DFOP", FOCUS_2006_L2_mkin, quiet = TRUE)
+plot(m.L2.DFOP, show_residuals = TRUE, show_errmin = TRUE,
+     main = "FOCUS L2 - DFOP")
+

+
+summary(m.L2.DFOP, data = FALSE)
+
## mkin version used for fitting:    1.2.10 
+## R version used for fitting:       4.4.2 
+## Date of fit:     Fri Feb 14 08:59:12 2025 
+## Date of summary: Fri Feb 14 08:59:12 2025 
+## 
+## Equations:
+## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+##            time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+##            * parent
+## 
+## Model predictions using solution type analytical 
+## 
+## Fitted using 581 model solutions performed in 0.042 s
+## 
+## Error model: Constant variance 
+## 
+## Error model algorithm: OLS 
+## 
+## Starting values for parameters to be optimised:
+##          value   type
+## parent_0 93.95  state
+## k1        0.10 deparm
+## k2        0.01 deparm
+## g         0.50 deparm
+## 
+## Starting values for the transformed parameters actually optimised:
+##              value lower upper
+## parent_0 93.950000  -Inf   Inf
+## log_k1   -2.302585  -Inf   Inf
+## log_k2   -4.605170  -Inf   Inf
+## g_qlogis  0.000000  -Inf   Inf
+## 
+## Fixed parameter values:
+## None
+## 
+## Results:
+## 
+##        AIC      BIC    logLik
+##   52.36695 54.79148 -21.18347
+## 
+## Optimised, transformed parameters with symmetric confidence intervals:
+##          Estimate Std. Error      Lower     Upper
+## parent_0   93.950  9.998e-01    91.5900   96.3100
+## log_k1      3.113  1.849e+03 -4369.0000 4375.0000
+## log_k2     -1.088  6.285e-02    -1.2370   -0.9394
+## g_qlogis   -0.399  9.946e-02    -0.6342   -0.1638
+## sigma       1.414  2.886e-01     0.7314    2.0960
+## 
+## Parameter correlation:
+##            parent_0     log_k1     log_k2   g_qlogis      sigma
+## parent_0  1.000e+00  6.763e-07 -8.944e-10  2.665e-01 -1.083e-09
+## log_k1    6.763e-07  1.000e+00  1.112e-04 -2.187e-04 -1.027e-05
+## log_k2   -8.944e-10  1.112e-04  1.000e+00 -7.903e-01  9.464e-09
+## g_qlogis  2.665e-01 -2.187e-04 -7.903e-01  1.000e+00 -1.532e-08
+## sigma    -1.083e-09 -1.027e-05  9.464e-09 -1.532e-08  1.000e+00
+## 
+## Backtransformed parameters:
+## Confidence intervals for internally transformed parameters are asymmetric.
+## t-test (unrealistically) based on the assumption of normal distribution
+## for estimators of untransformed parameters.
+##          Estimate   t value    Pr(>t)   Lower   Upper
+## parent_0  93.9500 9.397e+01 2.036e-12 91.5900 96.3100
+## k1        22.4900 5.533e-04 4.998e-01  0.0000     Inf
+## k2         0.3369 1.591e+01 4.697e-07  0.2904  0.3909
+## g          0.4016 1.680e+01 3.238e-07  0.3466  0.4591
+## sigma      1.4140 4.899e+00 8.776e-04  0.7314  2.0960
+## 
+## FOCUS Chi2 error levels in percent:
+##          err.min n.optim df
+## All data    2.53       4  2
+## parent      2.53       4  2
+## 
+## Estimated disappearance times:
+##          DT50  DT90 DT50back DT50_k1 DT50_k2
+## parent 0.5335 5.311    1.599 0.03083   2.058
+

Here, the DFOP model is clearly the best-fit model for dataset L2 +based on the chi^2 error level criterion.

+
+
+
+

Laboratory Data L3 +

+

The following code defines example dataset L3 from the FOCUS kinetics +report, p. 290.

+
+FOCUS_2006_L3 = data.frame(
+  t = c(0, 3, 7, 14, 30, 60, 91, 120),
+  parent = c(97.8, 60, 51, 43, 35, 22, 15, 12))
+FOCUS_2006_L3_mkin <- mkin_wide_to_long(FOCUS_2006_L3)
+
+

Fit multiple models +

+

As of mkin version 0.9-39 (June 2015), we can fit several models to +one or more datasets in one call to the function mmkin. The +datasets have to be passed in a list, in this case a named list holding +only the L3 dataset prepared above.

+
+# Only use one core here, not to offend the CRAN checks
+mm.L3 <- mmkin(c("SFO", "FOMC", "DFOP"), cores = 1,
+               list("FOCUS L3" = FOCUS_2006_L3_mkin), quiet = TRUE)
+plot(mm.L3)
+

+

The +χ2\chi^2 +error level of 21% as well as the plot suggest that the SFO model does +not fit very well. The FOMC model performs better, with an error level +at which the +χ2\chi^2 +test passes of 7%. Fitting the four parameter DFOP model further reduces +the +χ2\chi^2 +error level considerably.

+
+
+

Accessing mmkin objects +

+

The objects returned by mmkin are arranged like a matrix, with models +as a row index and datasets as a column index.

+

We can extract the summary and plot for e.g. the DFOP fit, +using square brackets for indexing which will result in the use of the +summary and plot functions working on mkinfit objects.

+
+summary(mm.L3[["DFOP", 1]])
+
## mkin version used for fitting:    1.2.10 
+## R version used for fitting:       4.4.2 
+## Date of fit:     Fri Feb 14 08:59:12 2025 
+## Date of summary: Fri Feb 14 08:59:12 2025 
+## 
+## Equations:
+## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+##            time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+##            * parent
+## 
+## Model predictions using solution type analytical 
+## 
+## Fitted using 376 model solutions performed in 0.024 s
+## 
+## Error model: Constant variance 
+## 
+## Error model algorithm: OLS 
+## 
+## Starting values for parameters to be optimised:
+##          value   type
+## parent_0 97.80  state
+## k1        0.10 deparm
+## k2        0.01 deparm
+## g         0.50 deparm
+## 
+## Starting values for the transformed parameters actually optimised:
+##              value lower upper
+## parent_0 97.800000  -Inf   Inf
+## log_k1   -2.302585  -Inf   Inf
+## log_k2   -4.605170  -Inf   Inf
+## g_qlogis  0.000000  -Inf   Inf
+## 
+## Fixed parameter values:
+## None
+## 
+## Results:
+## 
+##        AIC      BIC    logLik
+##   32.97732 33.37453 -11.48866
+## 
+## Optimised, transformed parameters with symmetric confidence intervals:
+##          Estimate Std. Error   Lower      Upper
+## parent_0  97.7500    1.01900 94.5000 101.000000
+## log_k1    -0.6612    0.10050 -0.9812  -0.341300
+## log_k2    -4.2860    0.04322 -4.4230  -4.148000
+## g_qlogis  -0.1739    0.05270 -0.3416  -0.006142
+## sigma      1.0170    0.25430  0.2079   1.827000
+## 
+## Parameter correlation:
+##            parent_0     log_k1     log_k2   g_qlogis      sigma
+## parent_0  1.000e+00  1.732e-01  2.282e-02  4.009e-01 -9.696e-08
+## log_k1    1.732e-01  1.000e+00  4.945e-01 -5.809e-01  7.148e-07
+## log_k2    2.282e-02  4.945e-01  1.000e+00 -6.812e-01  1.022e-06
+## g_qlogis  4.009e-01 -5.809e-01 -6.812e-01  1.000e+00 -7.930e-07
+## sigma    -9.696e-08  7.148e-07  1.022e-06 -7.930e-07  1.000e+00
+## 
+## Backtransformed parameters:
+## Confidence intervals for internally transformed parameters are asymmetric.
+## t-test (unrealistically) based on the assumption of normal distribution
+## for estimators of untransformed parameters.
+##          Estimate t value    Pr(>t)    Lower     Upper
+## parent_0 97.75000  95.960 1.248e-06 94.50000 101.00000
+## k1        0.51620   9.947 1.081e-03  0.37490   0.71090
+## k2        0.01376  23.140 8.840e-05  0.01199   0.01579
+## g         0.45660  34.920 2.581e-05  0.41540   0.49850
+## sigma     1.01700   4.000 1.400e-02  0.20790   1.82700
+## 
+## FOCUS Chi2 error levels in percent:
+##          err.min n.optim df
+## All data   2.225       4  4
+## parent     2.225       4  4
+## 
+## Estimated disappearance times:
+##         DT50 DT90 DT50back DT50_k1 DT50_k2
+## parent 7.464  123    37.03   1.343   50.37
+## 
+## Data:
+##  time variable observed predicted residual
+##     0   parent     97.8     97.75  0.05396
+##     3   parent     60.0     60.45 -0.44933
+##     7   parent     51.0     49.44  1.56338
+##    14   parent     43.0     43.84 -0.83632
+##    30   parent     35.0     35.15 -0.14707
+##    60   parent     22.0     23.26 -1.25919
+##    91   parent     15.0     15.18 -0.18181
+##   120   parent     12.0     10.19  1.81395
+
+plot(mm.L3[["DFOP", 1]], show_errmin = TRUE)
+

+

Here, a look to the model plot, the confidence intervals of the +parameters and the correlation matrix suggest that the parameter +estimates are reliable, and the DFOP model can be used as the best-fit +model based on the +χ2\chi^2 +error level criterion for laboratory data L3.

+

This is also an example where the standard t-test for the parameter +g_ilr is misleading, as it tests for a significant +difference from zero. In this case, zero appears to be the correct value +for this parameter, and the confidence interval for the backtransformed +parameter g is quite narrow.

+
+
+
+

Laboratory Data L4 +

+

The following code defines example dataset L4 from the FOCUS kinetics +report, p. 293:

+
+FOCUS_2006_L4 = data.frame(
+  t = c(0, 3, 7, 14, 30, 60, 91, 120),
+  parent = c(96.6, 96.3, 94.3, 88.8, 74.9, 59.9, 53.5, 49.0))
+FOCUS_2006_L4_mkin <- mkin_wide_to_long(FOCUS_2006_L4)
+

Fits of the SFO and FOMC models, plots and summaries are produced +below:

+
+# Only use one core here, not to offend the CRAN checks
+mm.L4 <- mmkin(c("SFO", "FOMC"), cores = 1,
+               list("FOCUS L4" = FOCUS_2006_L4_mkin),
+               quiet = TRUE)
+plot(mm.L4)
+

+

The +χ2\chi^2 +error level of 3.3% as well as the plot suggest that the SFO model fits +very well. The error level at which the +χ2\chi^2 +test passes is slightly lower for the FOMC model. However, the +difference appears negligible.

+
+summary(mm.L4[["SFO", 1]], data = FALSE)
+
## mkin version used for fitting:    1.2.10 
+## R version used for fitting:       4.4.2 
+## Date of fit:     Fri Feb 14 08:59:13 2025 
+## Date of summary: Fri Feb 14 08:59:13 2025 
+## 
+## Equations:
+## d_parent/dt = - k_parent * parent
+## 
+## Model predictions using solution type analytical 
+## 
+## Fitted using 142 model solutions performed in 0.01 s
+## 
+## Error model: Constant variance 
+## 
+## Error model algorithm: OLS 
+## 
+## Starting values for parameters to be optimised:
+##          value   type
+## parent_0  96.6  state
+## k_parent   0.1 deparm
+## 
+## Starting values for the transformed parameters actually optimised:
+##                  value lower upper
+## parent_0     96.600000  -Inf   Inf
+## log_k_parent -2.302585  -Inf   Inf
+## 
+## Fixed parameter values:
+## None
+## 
+## Results:
+## 
+##        AIC      BIC    logLik
+##   47.12133 47.35966 -20.56067
+## 
+## Optimised, transformed parameters with symmetric confidence intervals:
+##              Estimate Std. Error  Lower   Upper
+## parent_0       96.440    1.69900 92.070 100.800
+## log_k_parent   -5.030    0.07059 -5.211  -4.848
+## sigma           3.162    0.79050  1.130   5.194
+## 
+## Parameter correlation:
+##               parent_0 log_k_parent     sigma
+## parent_0     1.000e+00    5.938e-01 3.430e-07
+## log_k_parent 5.938e-01    1.000e+00 5.885e-07
+## sigma        3.430e-07    5.885e-07 1.000e+00
+## 
+## Backtransformed parameters:
+## Confidence intervals for internally transformed parameters are asymmetric.
+## t-test (unrealistically) based on the assumption of normal distribution
+## for estimators of untransformed parameters.
+##           Estimate t value    Pr(>t)     Lower     Upper
+## parent_0 96.440000   56.77 1.604e-08 92.070000 1.008e+02
+## k_parent  0.006541   14.17 1.578e-05  0.005455 7.842e-03
+## sigma     3.162000    4.00 5.162e-03  1.130000 5.194e+00
+## 
+## FOCUS Chi2 error levels in percent:
+##          err.min n.optim df
+## All data   3.287       2  6
+## parent     3.287       2  6
+## 
+## Estimated disappearance times:
+##        DT50 DT90
+## parent  106  352
+
+summary(mm.L4[["FOMC", 1]], data = FALSE)
+
## mkin version used for fitting:    1.2.10 
+## R version used for fitting:       4.4.2 
+## Date of fit:     Fri Feb 14 08:59:13 2025 
+## Date of summary: Fri Feb 14 08:59:13 2025 
+## 
+## Equations:
+## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent
+## 
+## Model predictions using solution type analytical 
+## 
+## Fitted using 224 model solutions performed in 0.013 s
+## 
+## Error model: Constant variance 
+## 
+## Error model algorithm: OLS 
+## 
+## Starting values for parameters to be optimised:
+##          value   type
+## parent_0  96.6  state
+## alpha      1.0 deparm
+## beta      10.0 deparm
+## 
+## Starting values for the transformed parameters actually optimised:
+##               value lower upper
+## parent_0  96.600000  -Inf   Inf
+## log_alpha  0.000000  -Inf   Inf
+## log_beta   2.302585  -Inf   Inf
+## 
+## Fixed parameter values:
+## None
+## 
+## Results:
+## 
+##        AIC      BIC    logLik
+##   40.37255 40.69032 -16.18628
+## 
+## Optimised, transformed parameters with symmetric confidence intervals:
+##           Estimate Std. Error   Lower    Upper
+## parent_0   99.1400     1.2670 95.6300 102.7000
+## log_alpha  -0.3506     0.2616 -1.0770   0.3756
+## log_beta    4.1740     0.3938  3.0810   5.2670
+## sigma       1.8300     0.4575  0.5598   3.1000
+## 
+## Parameter correlation:
+##             parent_0  log_alpha   log_beta      sigma
+## parent_0   1.000e+00 -4.696e-01 -5.543e-01 -2.447e-07
+## log_alpha -4.696e-01  1.000e+00  9.889e-01  2.198e-08
+## log_beta  -5.543e-01  9.889e-01  1.000e+00  4.923e-08
+## sigma     -2.447e-07  2.198e-08  4.923e-08  1.000e+00
+## 
+## Backtransformed parameters:
+## Confidence intervals for internally transformed parameters are asymmetric.
+## t-test (unrealistically) based on the assumption of normal distribution
+## for estimators of untransformed parameters.
+##          Estimate t value    Pr(>t)   Lower   Upper
+## parent_0  99.1400  78.250 7.993e-08 95.6300 102.700
+## alpha      0.7042   3.823 9.365e-03  0.3407   1.456
+## beta      64.9800   2.540 3.201e-02 21.7800 193.900
+## sigma      1.8300   4.000 8.065e-03  0.5598   3.100
+## 
+## FOCUS Chi2 error levels in percent:
+##          err.min n.optim df
+## All data   2.029       3  5
+## parent     2.029       3  5
+## 
+## Estimated disappearance times:
+##         DT50 DT90 DT50back
+## parent 108.9 1644    494.9
+
+
+

References +

+
+
+Ranke, Johannes. 2014. Prüfung und +Validierung von Modellierungssoftware als Alternative zu ModelMaker +4.0.” Umweltbundesamt Projektnummer 27452. +
+
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png new file mode 100644 index 00000000..c732be75 Binary files /dev/null and b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-10-1.png differ diff --git a/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png new file mode 100644 index 00000000..daa488a3 Binary files /dev/null and b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-12-1.png differ diff --git a/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png new file mode 100644 index 00000000..5caea744 Binary files /dev/null and b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-13-1.png differ diff --git a/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png new file mode 100644 index 00000000..0dc9d57d Binary files /dev/null and b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-15-1.png differ diff --git a/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png new file mode 100644 index 00000000..13344b25 Binary files /dev/null and b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-4-1.png differ diff --git a/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png new file mode 100644 index 00000000..ec234b6e Binary files /dev/null and b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-5-1.png differ diff --git a/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png new file mode 100644 index 00000000..dfeb7907 Binary files /dev/null and b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-6-1.png differ diff --git a/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png new file mode 100644 index 00000000..d3551b47 Binary files /dev/null and b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-8-1.png differ diff --git a/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png new file mode 100644 index 00000000..5f8afc00 Binary files /dev/null and b/docs/dev/articles/FOCUS_L_files/figure-html/unnamed-chunk-9-1.png differ diff --git a/docs/dev/articles/index.html b/docs/dev/articles/index.html new file mode 100644 index 00000000..be336fcb --- /dev/null +++ b/docs/dev/articles/index.html @@ -0,0 +1,114 @@ + +Articles • mkin + Skip to contents + + +
+ + + +
+ + + +
+ + + + + + + diff --git a/docs/dev/articles/mkin.html b/docs/dev/articles/mkin.html new file mode 100644 index 00000000..30b2182f --- /dev/null +++ b/docs/dev/articles/mkin.html @@ -0,0 +1,414 @@ + + + + + + + +Short introduction to mkin • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +

Wissenschaftlicher Berater, Kronacher +Str. 12, 79639 Grenzach-Wyhlen, Germany
Privatdozent at the +University of Freiburg

+
+

Abstract +

+

In the regulatory evaluation of chemical substances like plant +protection products (pesticides), biocides and other chemicals, +degradation data play an important role. For the evaluation of pesticide +degradation experiments, detailed guidance has been developed, based on +nonlinear optimisation. The R add-on package +mkin implements fitting some of the models recommended in +this guidance from within R and calculates some statistical measures for +data series within one or more compartments, for parent and +metabolites.

+
+library("mkin", quietly = TRUE)
+# Define the kinetic model
+m_SFO_SFO_SFO <- mkinmod(parent = mkinsub("SFO", "M1"),
+                         M1 = mkinsub("SFO", "M2"),
+                         M2 = mkinsub("SFO"),
+                         use_of_ff = "max", quiet = TRUE)
+
+
+# Produce model predictions using some arbitrary parameters
+sampling_times = c(0, 1, 3, 7, 14, 28, 60, 90, 120)
+d_SFO_SFO_SFO <- mkinpredict(m_SFO_SFO_SFO,
+  c(k_parent = 0.03,
+    f_parent_to_M1 = 0.5, k_M1 = log(2)/100,
+    f_M1_to_M2 = 0.9, k_M2 = log(2)/50),
+  c(parent = 100, M1 = 0, M2 = 0),
+  sampling_times)
+
+# Generate a dataset by adding normally distributed errors with
+# standard deviation 3, for two replicates at each sampling time
+d_SFO_SFO_SFO_err <- add_err(d_SFO_SFO_SFO, reps = 2,
+                             sdfunc = function(x) 3,
+                             n = 1, seed = 123456789 )
+
+# Fit the model to the dataset
+f_SFO_SFO_SFO <- mkinfit(m_SFO_SFO_SFO, d_SFO_SFO_SFO_err[[1]], quiet = TRUE)
+
+# Plot the results separately for parent and metabolites
+plot_sep(f_SFO_SFO_SFO, lpos = c("topright", "bottomright", "bottomright"))
+

+
+
+

Background +

+

The mkin package (J. Ranke +2021) implements the approach to degradation kinetics recommended +in the kinetics report provided by the FOrum for Co-ordination of +pesticide fate models and their USe (FOCUS Work +Group on Degradation Kinetics 2006, 2014). It covers data series +describing the decline of one compound, data series with transformation +products (commonly termed metabolites) and data series for more than one +compartment. It is possible to include back reactions. Therefore, +equilibrium reactions and equilibrium partitioning can be specified, +although this often leads to an overparameterisation of the model.

+

When the first mkin code was published in 2010, the most +commonly used tools for fitting more complex kinetic degradation models +to experimental data were KinGUI (Schäfer et al. +2007), a MATLAB based tool with a graphical user interface that +was specifically tailored to the task and included some output as +proposed by the FOCUS Kinetics Workgroup, and ModelMaker, a general +purpose compartment based tool providing infrastructure for fitting +dynamic simulation models based on differential equations to data.

+

The ‘mkin’ code was first uploaded to the BerliOS development +platform. When this was taken down, the version control history was +imported into the R-Forge site (see e.g. the +initial commit on 11 May 2010), where the code is still being +updated.

+

At that time, the R package FME (Flexible Modelling +Environment) (Soetaert and Petzoldt 2010) +was already available, and provided a good basis for developing a +package specifically tailored to the task. The remaining challenge was +to make it as easy as possible for the users (including the author of +this vignette) to specify the system of differential equations and to +include the output requested by the FOCUS guidance, such as the +χ2\chi^2 +error level as defined in this guidance.

+

Also, mkin introduced using analytical solutions for +parent only kinetics for improved optimization speed. Later, Eigenvalue +based solutions were introduced to mkin for the case of +linear differential equations (i.e. where the FOMC or DFOP +models were not used for the parent compound), greatly improving the +optimization speed for these cases. This, has become somehow obsolete, +as the use of compiled code described below gives even faster execution +times.

+

The possibility to specify back-reactions and a biphasic model +(SFORB) for metabolites were present in mkin from the very +beginning.

+
+

Derived software tools +

+

Soon after the publication of mkin, two derived tools +were published, namely KinGUII (developed at Bayer Crop Science) and +CAKE (commissioned to Tessella by Syngenta), which added a graphical +user interface (GUI), and added fitting by iteratively reweighted least +squares (IRLS) and characterisation of likely parameter distributions by +Markov Chain Monte Carlo (MCMC) sampling.

+

CAKE focuses on a smooth use experience, sacrificing some flexibility +in the model definition, originally allowing only two primary +metabolites in parallel. The current version 3.4 of CAKE released in May +2020 uses a scheme for up to six metabolites in a flexible arrangement +and supports biphasic modelling of metabolites, but does not support +back-reactions (non-instantaneous equilibria).

+

KinGUI offers an even more flexible widget for specifying complex +kinetic models. Back-reactions (non-instantaneous equilibria) were +supported early on, but until 2014, only simple first-order models could +be specified for transformation products. Starting with KinGUII version +2.1, biphasic modelling of metabolites was also available in +KinGUII.

+

A further graphical user interface (GUI) that has recently been +brought to a decent degree of maturity is the browser based GUI named +gmkin. Please see its documentation page and manual +for further information.

+

A comparison of scope, usability and numerical results obtained with +these tools has been recently been published by Johannes Ranke, Wöltjen, and Meinecke +(2018).

+
+
+
+

Unique features +

+

Currently, the main unique features available in mkin +are

+
    +
  • the speed +increase by using compiled code when a compiler is present,
  • +
  • parallel model fitting on multicore machines using the mmkin +function,
  • +
  • the estimation of parameter confidence intervals based on +transformed parameters (see below) and
  • +
  • the possibility to use the two-component +error model +
  • +
+

The iteratively reweighted least squares fitting of different +variances for each variable as introduced by Gao +et al. (2011) has been available in mkin since version +0.9-22. With release +0.9.49.5, the IRLS algorithm has been complemented by direct or +step-wise maximisation of the likelihood function, which makes it +possible not only to fit the variance by variable error model but also a +two-component +error model inspired by error models developed in analytical +chemistry (Johannes Ranke and Meinecke +2019).

+
+
+

Internal parameter transformations +

+

For rate constants, the log transformation is used, as proposed by +Bates and Watts (1988, 77, 149). +Approximate intervals are constructed for the transformed rate constants +(compare Bates and Watts 1988, 135), +i.e. for their logarithms. Confidence intervals for the rate +constants are then obtained using the appropriate backtransformation +using the exponential function.

+

In the first version of mkin allowing for specifying +models using formation fractions, a home-made reparameterisation was +used in order to ensure that the sum of formation fractions would not +exceed unity.

+

This method is still used in the current version of KinGUII (v2.1 +from April 2014), with a modification that allows for fixing the pathway +to sink to zero. CAKE uses penalties in the objective function in order +to enforce this constraint.

+

In 2012, an alternative reparameterisation of the formation fractions +was proposed together with René Lehmann (J. Ranke +and Lehmann 2012), based on isometric logratio transformation +(ILR). The aim was to improve the validity of the linear approximation +of the objective function during the parameter estimation procedure as +well as in the subsequent calculation of parameter confidence intervals. +In the current version of mkin, a logit transformation is used for +parameters that are bound between 0 and 1, such as the g parameter of +the DFOP model.

+
+

Confidence intervals based on transformed parameters +

+

In the first attempt at providing improved parameter confidence +intervals introduced to mkin in 2013, confidence intervals +obtained from FME on the transformed parameters were simply all +backtransformed one by one to yield asymmetric confidence intervals for +the backtransformed parameters.

+

However, while there is a 1:1 relation between the rate constants in +the model and the transformed parameters fitted in the model, the +parameters obtained by the isometric logratio transformation are +calculated from the set of formation fractions that quantify the paths +to each of the compounds formed from a specific parent compound, and no +such 1:1 relation exists.

+

Therefore, parameter confidence intervals for formation fractions +obtained with this method only appear valid for the case of a single +transformation product, where currently the logit transformation is used +for the formation fraction.

+

The confidence intervals obtained by backtransformation for the cases +where a 1:1 relation between transformed and original parameter exist +are considered by the author of this vignette to be more accurate than +those obtained using a re-estimation of the Hessian matrix after +backtransformation, as implemented in the FME package.

+
+
+

Parameter t-test based on untransformed parameters +

+

The standard output of many nonlinear regression software packages +includes the results from a test for significant difference from zero +for all parameters. Such a test is also recommended to check the +validity of rate constants in the FOCUS guidance (FOCUS Work Group on Degradation Kinetics 2014, +96ff).

+

It has been argued that the precondition for this test, i.e. +normal distribution of the estimator for the parameters, is not +fulfilled in the case of nonlinear regression (J. +Ranke and Lehmann 2015). However, this test is commonly used by +industry, consultants and national authorities in order to decide on the +reliability of parameter estimates, based on the FOCUS guidance +mentioned above. Therefore, the results of this one-sided t-test are +included in the summary output from mkin.

+

As it is not reasonable to test for significant difference of the +transformed parameters (e.g. +log(k)log(k)) +from zero, the t-test is calculated based on the model definition before +parameter transformation, i.e. in a similar way as in packages +that do not apply such an internal parameter transformation. A note is +included in the mkin output, pointing to the fact that the +t-test is based on the unjustified assumption of normal distribution of +the parameter estimators.

+
+
+
+

References +

+ +
+
+Bates, D., and D. Watts. 1988. Nonlinear Regression and Its +Applications. Wiley-Interscience. +
+
+FOCUS Work Group on Degradation Kinetics. 2006. Guidance Document on +Estimating Persistence and Degradation Kinetics from Environmental Fate +Studies on Pesticides in EU Registration. Report of the FOCUS Work Group +on Degradation Kinetics. http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics. +
+
+———. 2014. Generic Guidance for Estimating Persistence and +Degradation Kinetics from Environmental Fate Studies on Pesticides in EU +Registration. 1.1 ed. http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics. +
+
+Gao, Z., J. W. Green, J. Vanderborght, and W. Schmitt. 2011. +“Improving Uncertainty Analysis in Kinetic Evaluations Using +Iteratively Reweighted Least Squares.” Journal. Environmental +Science and Technology 45: 4429–37. +
+
+Ranke, J. 2021. mkin‘: +Kinetic Evaluation of Chemical Degradation Data. https://CRAN.R-project.org/package=mkin. +
+
+Ranke, J., and R. Lehmann. 2012. “Parameter Reliability in Kinetic +Evaluation of Environmental Metabolism Data - Assessment and the +Influence of Model Specification.” In SETAC World 20-24 +May. Berlin. https://jrwb.de/posters/Poster_SETAC_2012_Kinetic_parameter_uncertainty_model_parameterization_Lehmann_Ranke.pdf. +
+
+———. 2015. “To t-Test or Not to t-Test, That Is the +Question.” In XV Symposium on Pesticide Chemistry 2-4 +September 2015. Piacenza. https://jrwb.de/posters/piacenza_2015.pdf. +
+
+Ranke, Johannes, and Stefan Meinecke. 2019. “Error Models for the +Kinetic Evaluation of Chemical Degradation Data.” +Environments 6 (12). https://doi.org/10.3390/environments6120124. +
+
+Ranke, Johannes, Janina Wöltjen, and Stefan Meinecke. 2018. +“Comparison of Software Tools for Kinetic Evaluation of Chemical +Degradation Data.” Environmental Sciences Europe 30 (1): +17. https://doi.org/10.1186/s12302-018-0145-1. +
+
+Schäfer, D., B. Mikolasch, P. Rainbird, and B. Harvey. 2007. +KinGUI: A New Kinetic Software Tool for Evaluations +According to FOCUS Degradation Kinetics.” In +Proceedings of the XIII Symposium Pesticide Chemistry, edited +by Del Re A. A. M., Capri E., Fragoulis G., and Trevisan M., 916–23. +Piacenza. +
+
+Soetaert, Karline, and Thomas Petzoldt. 2010. “Inverse Modelling, +Sensitivity and Monte Carlo Analysis in R Using Package +FME.” Journal of Statistical Software 33 +(3): 1–28. https://doi.org/10.18637/jss.v033.i03. +
+
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/mkin_files/figure-html/unnamed-chunk-2-1.png b/docs/dev/articles/mkin_files/figure-html/unnamed-chunk-2-1.png new file mode 100644 index 00000000..65c1a613 Binary files /dev/null and b/docs/dev/articles/mkin_files/figure-html/unnamed-chunk-2-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_cyan_pathway.html b/docs/dev/articles/prebuilt/2022_cyan_pathway.html new file mode 100644 index 00000000..b93e5e7e --- /dev/null +++ b/docs/dev/articles/prebuilt/2022_cyan_pathway.html @@ -0,0 +1,5397 @@ + + + + + + + +Testing hierarchical pathway kinetics with residue data on cyantraniliprole • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +
+

Introduction +

+

The purpose of this document is to test demonstrate how nonlinear +hierarchical models (NLHM) based on the parent degradation models SFO, +FOMC, DFOP and HS, with serial formation of two or more metabolites can +be fitted with the mkin package.

+

It was assembled in the course of work package 1.2 of Project Number +173340 (Application of nonlinear hierarchical models to the kinetic +evaluation of chemical degradation data) of the German Environment +Agency carried out in 2022 and 2023.

+

The mkin package is used in version 1.2.10 which is currently under +development. The newly introduced functionality that is used here is a +simplification of excluding random effects for a set of fits based on a +related set of fits with a reduced model, and the documentation of the +starting parameters of the fit, so that all starting parameters of +saem fits are now listed in the summary. The +saemix package is used as a backend for fitting the NLHM, +but is also loaded to make the convergence plot function available.

+

This document is processed with the knitr package, which +also provides the kable function that is used to improve +the display of tabular data in R markdown documents. For parallel +processing, the parallel package is used.

+
+library(mkin)
+library(knitr)
+library(saemix)
+library(parallel)
+n_cores <- detectCores()
+
+# We need to start a new cluster after defining a compiled model that is
+# saved as a DLL to the user directory, therefore we define a function
+# This is used again after defining the pathway model
+start_cluster <- function(n_cores) {
+  if (Sys.info()["sysname"] == "Windows") {
+    ret <- makePSOCKcluster(n_cores)
+  } else {
+    ret <- makeForkCluster(n_cores)
+  }
+  return(ret)
+}
+cl <- start_cluster(n_cores)
+
+

Test data +

+

The example data are taken from the final addendum to the DAR from +2014 and are distributed with the mkin package. Residue data and time +step normalisation factors are read in using the function +read_spreadsheet from the mkin package. This function also +performs the time step normalisation.

+
+data_file <- system.file(
+  "testdata", "cyantraniliprole_soil_efsa_2014.xlsx",
+  package = "mkin")
+cyan_ds <- read_spreadsheet(data_file, parent_only = FALSE)
+

The following tables show the covariate data and the 5 datasets that +were read in from the spreadsheet file.

+
+pH <- attr(cyan_ds, "covariates")
+kable(pH, caption = "Covariate data")
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Covariate data
pH
Nambsheim7.90
Tama6.20
Gross-Umstadt7.04
Sassafras4.62
Lleida8.05
+
+for (ds_name in names(cyan_ds)) {
+  print(
+    kable(mkin_long_to_wide(cyan_ds[[ds_name]]),
+      caption = paste("Dataset", ds_name),
+      booktabs = TRUE, row.names = FALSE))
+    cat("\n\\clearpage\n")
+}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Nambsheim
timecyanJCZ38J9C38JSE76J9Z38
0.000000105.79NANANANA
3.21042477.267.9211.945.589.12
7.49098857.1315.4616.5812.5911.74
17.12225937.7415.9813.3626.0510.77
23.54310531.476.0514.4934.714.96
43.87578816.746.077.5740.386.52
67.4188938.8510.346.3930.718.90
107.0141165.199.611.9520.4112.93
129.4870803.456.181.3621.786.99
195.8358322.159.130.9516.297.69
254.6935961.926.920.2013.577.16
321.0423482.267.02NA11.128.66
383.110535NA5.05NA10.645.56
0.000000105.57NANANANA
3.21042478.8812.7711.945.479.12
7.49098859.9415.2716.5813.6011.74
17.12225939.6714.2613.3629.4410.77
23.54310530.2116.0714.4935.904.96
43.87578818.069.447.5742.306.52
67.4188938.545.786.3934.708.90
107.0141167.264.541.9523.3312.93
129.4870803.604.221.3623.566.99
195.8358322.843.050.9516.217.69
254.6935962.002.900.2015.537.16
321.0423481.790.94NA9.808.66
383.110535NA1.82NA9.495.56
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Tama
timecyanJCZ38J9Z38JSE76
0.000000106.14NANANA
2.40083393.476.462.85NA
5.60194388.3910.864.653.85
12.80444272.2911.974.9111.24
17.60610865.7913.116.6313.79
32.81138253.1611.248.9023.40
50.41749044.0111.349.9829.56
80.02776133.238.8211.3135.63
96.83359140.685.948.3229.09
146.45080320.654.498.7236.88
190.46607217.714.6611.1040.97
240.08328414.862.2711.6240.11
286.49938612.02NA10.7342.58
0.000000109.11NANANA
2.40083396.845.522.042.02
5.60194385.299.652.994.39
12.80444273.6812.485.0511.47
17.60610864.8912.446.2915.00
32.81138252.2710.867.6523.30
50.41749042.6110.549.3731.06
80.02776134.2910.029.0437.87
96.83359130.506.348.1433.97
146.45080319.216.298.5226.15
190.46607217.555.819.8932.08
240.08328413.225.9910.7940.66
286.49938611.096.058.8242.90
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Gross-Umstadt
timecyanJCZ38J9Z38JSE76
0.0000000103.03NANANA
2.101468187.854.793.260.62
4.903425577.358.059.891.32
10.507340469.339.7412.324.74
21.014680755.6514.5713.599.84
31.522021149.0314.6616.7112.32
42.029361541.8615.9713.6415.53
63.044042234.8818.2014.1222.02
84.058723028.2615.6414.0625.60
0.0000000104.05NANANA
2.101468185.252.687.320.69
4.903425577.227.288.371.45
10.507340465.2310.7310.934.74
21.014680757.7812.2914.809.05
31.522021154.8314.0512.0111.05
42.029361545.1712.1217.8915.71
63.044042234.8312.9015.8622.52
84.058723026.5914.2814.9128.48
0.0000000104.62NANANA
0.814522597.21NA4.00NA
1.900552589.643.595.24NA
4.072612587.904.109.58NA
8.145225186.905.969.45NA
12.217837674.747.8315.035.33
16.290450274.138.8414.415.10
24.435675365.2611.8418.336.71
32.580900457.7012.7419.939.74
0.0000000101.94NANANA
0.814522599.94NANANA
1.900552594.87NA4.56NA
4.072612586.966.756.90NA
8.145225180.5110.687.432.58
12.217837678.3810.359.463.69
16.290450270.0513.739.277.18
24.435675361.2812.5713.2813.19
32.580900452.8512.6712.9513.69
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Sassafras
timecyanJCZ38J9Z38JSE76
0.000000102.17NANANA
2.21671995.491.110.100.83
5.17234383.356.432.893.30
11.08359378.1810.005.590.81
22.16718670.4417.214.231.09
33.25077968.0020.455.861.17
44.33437159.6424.643.172.72
66.50155750.7327.506.191.27
88.66874245.6532.775.694.54
0.000000100.43NANANA
2.21671995.343.210.140.46
5.17234384.385.734.750.62
11.08359378.5011.893.990.73
22.16718671.1717.284.390.66
33.25077959.4118.7311.852.65
44.33437164.5722.935.132.01
66.50155749.0833.395.673.63
88.66874240.4139.605.936.17
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Lleida
timecyanJCZ38J9Z38JSE76
0.000000102.71NANANA
2.82105179.115.708.070.97
6.58245170.037.1711.314.72
14.10525350.9310.2514.849.95
28.21050533.4310.4014.8224.06
42.31575824.699.7516.3829.38
56.42101022.9910.0615.5129.25
84.63151614.635.6314.7431.04
112.84202112.434.1713.5333.28
0.00000099.31NANANA
2.82105182.076.555.601.12
6.58245170.657.618.013.21
14.10525353.5211.4810.8212.24
28.21050535.6011.1915.4323.53
42.31575834.2611.0913.2627.42
56.42101021.794.8018.3030.20
84.63151614.066.3016.3532.32
112.84202111.515.5712.6432.51
+
+
+
+

Parent only evaluations +

+

As the pathway fits have very long run times, evaluations of the +parent data are performed first, in order to determine for each +hierarchical parent degradation model which random effects on the +degradation model parameters are ill-defined.

+
+cyan_sep_const <- mmkin(c("SFO", "FOMC", "DFOP", "SFORB", "HS"),
+  cyan_ds, quiet = TRUE, cores = n_cores)
+cyan_sep_tc <- update(cyan_sep_const, error_model = "tc")
+cyan_saem_full <- mhmkin(list(cyan_sep_const, cyan_sep_tc))
+status(cyan_saem_full) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
SFOOKOK
FOMCOKOK
DFOPOKOK
SFORBOKOK
HSOKOK
+

All fits converged successfully.

+
+illparms(cyan_saem_full) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
SFOsd(cyan_0)sd(cyan_0)
FOMCsd(log_beta)sd(cyan_0)
DFOPsd(cyan_0)sd(cyan_0), sd(log_k1)
SFORBsd(cyan_free_0)sd(cyan_free_0), sd(log_k_cyan_free_bound)
HSsd(cyan_0)sd(cyan_0)
+

In almost all models, the random effect for the initial concentration +of the parent compound is ill-defined. For the biexponential models DFOP +and SFORB, the random effect of one additional parameter is ill-defined +when the two-component error model is used.

+
+anova(cyan_saem_full) |> kable(digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
SFO const5833.9832.0-412.0
SFO tc6831.6829.3-409.8
FOMC const7709.1706.4-347.6
FOMC tc8689.2686.1-336.6
DFOP const9703.0699.5-342.5
SFORB const9701.3697.8-341.7
HS const9718.6715.1-350.3
DFOP tc10703.1699.2-341.6
SFORB tc10700.0696.1-340.0
HS tc10716.7712.8-348.3
+

Model comparison based on AIC and BIC indicates that the +two-component error model is preferable for all parent models with the +exception of DFOP. The lowest AIC and BIC values are are obtained with +the FOMC model, followed by SFORB and DFOP.

+ +
+
+

Pathway fits +

+
+

Evaluations with pathway established previously +

+

To test the technical feasibility of coupling the relevant parent +degradation models with different transformation pathway models, a list +of mkinmod models is set up below. As in the EU evaluation, +parallel formation of metabolites JCZ38 and J9Z38 and secondary +formation of metabolite JSE76 from JCZ38 is used.

+
+if (!dir.exists("cyan_dlls")) dir.create("cyan_dlls")
+cyan_path_1 <- list(
+  sfo_path_1 = mkinmod(
+    cyan = mkinsub("SFO", c("JCZ38", "J9Z38")),
+    JCZ38 = mkinsub("SFO", "JSE76"),
+    J9Z38 = mkinsub("SFO"),
+    JSE76 = mkinsub("SFO"), quiet = TRUE,
+    name = "sfo_path_1", dll_dir = "cyan_dlls", overwrite = TRUE),
+  fomc_path_1 = mkinmod(
+    cyan = mkinsub("FOMC", c("JCZ38", "J9Z38")),
+    JCZ38 = mkinsub("SFO", "JSE76"),
+    J9Z38 = mkinsub("SFO"),
+    JSE76 = mkinsub("SFO"), quiet = TRUE,
+    name = "fomc_path_1", dll_dir = "cyan_dlls", overwrite = TRUE),
+  dfop_path_1 = mkinmod(
+    cyan = mkinsub("DFOP", c("JCZ38", "J9Z38")),
+    JCZ38 = mkinsub("SFO", "JSE76"),
+    J9Z38 = mkinsub("SFO"),
+    JSE76 = mkinsub("SFO"), quiet = TRUE,
+    name = "dfop_path_1", dll_dir = "cyan_dlls", overwrite = TRUE),
+  sforb_path_1 = mkinmod(
+    cyan = mkinsub("SFORB", c("JCZ38", "J9Z38")),
+    JCZ38 = mkinsub("SFO", "JSE76"),
+    J9Z38 = mkinsub("SFO"),
+    JSE76 = mkinsub("SFO"), quiet = TRUE,
+    name = "sforb_path_1", dll_dir = "cyan_dlls", overwrite = TRUE),
+  hs_path_1 = mkinmod(
+    cyan = mkinsub("HS", c("JCZ38", "J9Z38")),
+    JCZ38 = mkinsub("SFO", "JSE76"),
+    J9Z38 = mkinsub("SFO"),
+    JSE76 = mkinsub("SFO"), quiet = TRUE,
+    name = "hs_path_1", dll_dir = "cyan_dlls", overwrite = TRUE)
+)
+cl_path_1 <- start_cluster(n_cores)
+

To obtain suitable starting values for the NLHM fits, separate +pathway fits are performed for all datasets.

+
+f_sep_1_const <- mmkin(
+  cyan_path_1,
+  cyan_ds,
+  error_model = "const",
+  cluster = cl_path_1,
+  quiet = TRUE)
+status(f_sep_1_const) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NambsheimTamaGross-UmstadtSassafrasLleida
sfo_path_1OKOKOKCOK
fomc_path_1OKOKOKOKOK
dfop_path_1OKOKOKOKOK
sforb_path_1OKOKOKOKOK
hs_path_1CCCCC
+
+f_sep_1_tc <- update(f_sep_1_const, error_model = "tc")
+status(f_sep_1_tc) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NambsheimTamaGross-UmstadtSassafrasLleida
sfo_path_1OKOKOKOKOK
fomc_path_1OKOKOKOKOK
dfop_path_1OKOKOKOKOK
sforb_path_1OKOKOKOKOK
hs_path_1COKCOKC
+

Most separate fits converged successfully. The biggest convergence +problems are seen when using the HS model with constant variance.

+

For the hierarchical pathway fits, those random effects that could +not be quantified in the corresponding parent data analyses are +excluded.

+

In the code below, the output of the illparms function +for the parent only fits is used as an argument +no_random_effect to the mhmkin function. The +possibility to do so was introduced in mkin version 1.2.2 +which is currently under development.

+
+f_saem_1 <- mhmkin(list(f_sep_1_const, f_sep_1_tc),
+  no_random_effect = illparms(cyan_saem_full),
+  cluster = cl_path_1)
+
+status(f_saem_1) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
sfo_path_1FOFth, FO
fomc_path_1OKFth, FO
dfop_path_1Fth, FOFth, FO
sforb_path_1Fth, FOFth, FO
hs_path_1FOE
+

The status information from the individual fits shows that all fits +completed successfully. The matrix entries Fth and FO indicate that the +Fisher Information Matrix could not be inverted for the fixed effects +(theta) and the random effects (Omega), respectively. For the affected +fits, ill-defined parameters cannot be determined using the +illparms function, because it relies on the Fisher +Information Matrix.

+
+illparms(f_saem_1) |> kable()
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
sfo_path_1NANA
fomc_path_1sd(log_k_J9Z38), sd(f_cyan_ilr_2), +sd(f_JCZ38_qlogis)NA
dfop_path_1NANA
sforb_path_1NANA
hs_path_1NAE
+

The model comparisons below suggest that the pathway fits using DFOP +or SFORB for the parent compound provide the best fit.

+
+anova(f_saem_1[, "const"]) |> kable(digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
sfo_path_1 const162693.02686.8-1330.5
fomc_path_1 const182427.92420.9-1196.0
dfop_path_1 const202403.22395.4-1181.6
sforb_path_1 const202401.42393.6-1180.7
hs_path_1 const202427.22419.4-1193.6
+
+anova(f_saem_1[1:4, ]) |> kable(digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
sfo_path_1 const162693.02686.8-1330.5
sfo_path_1 tc172657.62651.0-1311.8
fomc_path_1 const182427.92420.9-1196.0
fomc_path_1 tc192423.62416.2-1192.8
dfop_path_1 const202403.22395.4-1181.6
sforb_path_1 const202401.42393.6-1180.7
dfop_path_1 tc202398.02390.1-1179.0
sforb_path_1 tc202399.92392.1-1180.0
+

For these two parent model, successful fits are shown below. Plots of +the fits with the other parent models are shown in the Appendix.

+
+plot(f_saem_1[["dfop_path_1", "tc"]])
+
+DFOP pathway fit with two-component error

+DFOP pathway fit with two-component error +

+
+
+plot(f_saem_1[["sforb_path_1", "tc"]])
+
+SFORB pathway fit with two-component error

+SFORB pathway fit with two-component error +

+
+

A closer graphical analysis of these Figures shows that the residues +of transformation product JCZ38 in the soils Tama and Nambsheim observed +at later time points are strongly and systematically underestimated.

+
+stopCluster(cl_path_1)
+
+
+

Alternative pathway fits +

+

To improve the fit for JCZ38, a back-reaction from JSE76 to JCZ38 was +introduced in an alternative version of the transformation pathway, in +analogy to the back-reaction from K5A78 to K5A77. Both pairs of +transformation products are pairs of an organic acid with its +corresponding amide (Addendum 2014, p. 109). As FOMC provided the best +fit for the parent, and the biexponential models DFOP and SFORB provided +the best initial pathway fits, these three parent models are used in the +alternative pathway fits.

+
+cyan_path_2 <- list(
+  fomc_path_2 = mkinmod(
+    cyan = mkinsub("FOMC", c("JCZ38", "J9Z38")),
+    JCZ38 = mkinsub("SFO", "JSE76"),
+    J9Z38 = mkinsub("SFO"),
+    JSE76 = mkinsub("SFO", "JCZ38"),
+    name = "fomc_path_2", quiet = TRUE,
+    dll_dir = "cyan_dlls",
+    overwrite = TRUE
+  ),
+  dfop_path_2 = mkinmod(
+    cyan = mkinsub("DFOP", c("JCZ38", "J9Z38")),
+    JCZ38 = mkinsub("SFO", "JSE76"),
+    J9Z38 = mkinsub("SFO"),
+    JSE76 = mkinsub("SFO", "JCZ38"),
+    name = "dfop_path_2", quiet = TRUE,
+    dll_dir = "cyan_dlls",
+    overwrite = TRUE
+  ),
+  sforb_path_2 = mkinmod(
+    cyan = mkinsub("SFORB", c("JCZ38", "J9Z38")),
+    JCZ38 = mkinsub("SFO", "JSE76"),
+    J9Z38 = mkinsub("SFO"),
+    JSE76 = mkinsub("SFO", "JCZ38"),
+    name = "sforb_path_2", quiet = TRUE,
+    dll_dir = "cyan_dlls",
+    overwrite = TRUE
+  )
+)
+
+cl_path_2 <- start_cluster(n_cores)
+f_sep_2_const <- mmkin(
+  cyan_path_2,
+  cyan_ds,
+  error_model = "const",
+  cluster = cl_path_2,
+  quiet = TRUE)
+
+status(f_sep_2_const) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NambsheimTamaGross-UmstadtSassafrasLleida
fomc_path_2OKOKOKCOK
dfop_path_2OKOKOKCOK
sforb_path_2OKOKOKOKOK
+

Using constant variance, separate fits converge with the exception of +the fits to the Sassafras soil data.

+
+f_sep_2_tc <- update(f_sep_2_const, error_model = "tc")
+status(f_sep_2_tc) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NambsheimTamaGross-UmstadtSassafrasLleida
fomc_path_2OKOKOKCOK
dfop_path_2OKCOKCOK
sforb_path_2OKOKOKCOK
+

Using the two-component error model, all separate fits converge with +the exception of the alternative pathway fit with DFOP used for the +parent and the Sassafras dataset.

+
+f_saem_2 <- mhmkin(list(f_sep_2_const, f_sep_2_tc),
+  no_random_effect = illparms(cyan_saem_full[2:4, ]),
+  cluster = cl_path_2)
+
+status(f_saem_2) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + +
consttc
fomc_path_2EOK
dfop_path_2OKOK
sforb_path_2OKOK
+

The hierarchical fits for the alternative pathway completed +successfully, with the exception of the model using FOMC for the parent +compound and constant variance as the error model.

+
+illparms(f_saem_2) |> kable()
+ +++++ + + + + + + + + + + + + + + + + + + + + + + +
consttc
fomc_path_2Esd(f_JSE76_qlogis)
dfop_path_2sd(f_JCZ38_qlogis), sd(f_JSE76_qlogis)sd(f_JCZ38_qlogis), sd(f_JSE76_qlogis)
sforb_path_2sd(f_JCZ38_qlogis), sd(f_JSE76_qlogis)sd(f_JCZ38_qlogis), sd(f_JSE76_qlogis)
+

In all biphasic fits (DFOP or SFORB for the parent compound), the +random effects for the formation fractions for the pathways from JCZ38 +to JSE76, and for the reverse pathway from JSE76 to JCZ38 are +ill-defined.

+
+anova(f_saem_2[, "tc"]) |> kable(digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
fomc_path_2 tc212249.02240.8-1103.5
dfop_path_2 tc222234.42225.8-1095.2
sforb_path_2 tc222239.72231.1-1097.9
+
+anova(f_saem_2[2:3,]) |> kable(digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
dfop_path_2 const222288.42279.8-1122.2
sforb_path_2 const222283.32274.7-1119.7
dfop_path_2 tc222234.42225.8-1095.2
sforb_path_2 tc222239.72231.1-1097.9
+

The variants using the biexponential models DFOP and SFORB for the +parent compound and the two-component error model give the lowest AIC +and BIC values and are plotted below. Compared with the original +pathway, the AIC and BIC values indicate a large improvement. This is +confirmed by the plots, which show that the metabolite JCZ38 is fitted +much better with this model.

+
+plot(f_saem_2[["fomc_path_2", "tc"]])
+
+FOMC pathway fit with two-component error, alternative pathway

+FOMC pathway fit with two-component error, alternative pathway +

+
+
+plot(f_saem_2[["dfop_path_2", "tc"]])
+
+DFOP pathway fit with two-component error, alternative pathway

+DFOP pathway fit with two-component error, alternative pathway +

+
+
+plot(f_saem_2[["sforb_path_2", "tc"]])
+
+SFORB pathway fit with two-component error, alternative pathway

+SFORB pathway fit with two-component error, alternative pathway +

+
+
+
+

Refinement of alternative pathway fits +

+

All ill-defined random effects that were identified in the parent +only fits and in the above pathway fits, are excluded for the final +evaluations below. For this purpose, a list of character vectors is +created below that can be indexed by row and column indices, and which +contains the degradation parameter names for which random effects should +be excluded for each of the hierarchical fits contained in +f_saem_2.

+
+no_ranef <- matrix(list(), nrow = 3, ncol = 2, dimnames = dimnames(f_saem_2))
+no_ranef[["fomc_path_2", "const"]] <- c("log_beta", "f_JCZ38_qlogis", "f_JSE76_qlogis")
+no_ranef[["fomc_path_2", "tc"]] <- c("cyan_0", "f_JCZ38_qlogis", "f_JSE76_qlogis")
+no_ranef[["dfop_path_2", "const"]] <- c("cyan_0", "f_JCZ38_qlogis", "f_JSE76_qlogis")
+no_ranef[["dfop_path_2", "tc"]] <- c("cyan_0", "log_k1", "f_JCZ38_qlogis", "f_JSE76_qlogis")
+no_ranef[["sforb_path_2", "const"]] <- c("cyan_free_0",
+  "f_JCZ38_qlogis", "f_JSE76_qlogis")
+no_ranef[["sforb_path_2", "tc"]] <- c("cyan_free_0", "log_k_cyan_free_bound",
+  "f_JCZ38_qlogis", "f_JSE76_qlogis")
+clusterExport(cl_path_2, "no_ranef")
+
+f_saem_3 <- update(f_saem_2,
+  no_random_effect = no_ranef,
+  cluster = cl_path_2)
+
+status(f_saem_3) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + +
consttc
fomc_path_2EFth
dfop_path_2FthFth
sforb_path_2FthFth
+

With the exception of the FOMC pathway fit with constant variance, +all updated fits completed successfully. However, the Fisher Information +Matrix for the fixed effects (Fth) could not be inverted, so no +confidence intervals for the optimised parameters are available.

+
+illparms(f_saem_3) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + +
consttc
fomc_path_2E
dfop_path_2
sforb_path_2
+
+anova(f_saem_3[, "tc"]) |> kable(digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
fomc_path_2 tc192249.12241.6-1105.5
dfop_path_2 tc202237.32229.5-1098.6
sforb_path_2 tc202241.32233.5-1100.7
+
+anova(f_saem_3[2:3,]) |> kable(digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
dfop_path_2 const202282.22274.4-1121.1
sforb_path_2 const202279.72271.9-1119.9
dfop_path_2 tc202237.32229.5-1098.6
sforb_path_2 tc202241.32233.5-1100.7
+

While the AIC and BIC values of the best fit (DFOP pathway fit with +two-component error) are lower than in the previous fits with the +alternative pathway, the practical value of these refined evaluations is +limited as no confidence intervals are obtained.

+
+stopCluster(cl_path_2)
+
+
+
+

Conclusion +

+

It was demonstrated that a relatively complex transformation pathway +with parallel formation of two primary metabolites and one secondary +metabolite can be fitted even if the data in the individual datasets are +quite different and partly only cover the formation phase.

+

The run times of the pathway fits were several hours, limiting the +practical feasibility of iterative refinements based on ill-defined +parameters and of alternative checks of parameter identifiability based +on multistart runs.

+
+
+

Acknowledgements +

+

The helpful comments by Janina Wöltjen of the German Environment +Agency are gratefully acknowledged.

+
+
+

Appendix +

+
+

Plots of fits that were not refined further +

+
+plot(f_saem_1[["sfo_path_1", "tc"]])
+
+SFO pathway fit with two-component error

+SFO pathway fit with two-component error +

+
+
+plot(f_saem_1[["fomc_path_1", "tc"]])
+
+FOMC pathway fit with two-component error

+FOMC pathway fit with two-component error +

+
+
+plot(f_saem_1[["sforb_path_1", "tc"]])
+
+HS pathway fit with two-component error

+HS pathway fit with two-component error +

+
+
+
+

Hierarchical fit listings +

+
+

Pathway 1 +

+ +Hierarchical SFO path 1 fit with constant variance + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:42:26 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - k_cyan * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * k_cyan * cyan - k_JCZ38 * JCZ38
+d_J9Z38/dt = + f_cyan_to_J9Z38 * k_cyan * cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 437.151 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+        cyan_0     log_k_cyan    log_k_JCZ38    log_k_J9Z38    log_k_JSE76 
+       95.3304        -3.8459        -3.1305        -5.0678        -5.3196 
+  f_cyan_ilr_1   f_cyan_ilr_2 f_JCZ38_qlogis 
+        0.8158        23.5335        11.8774 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_cyan log_k_JCZ38 log_k_J9Z38 log_k_JSE76
+cyan_0          4.797     0.0000       0.000       0.000      0.0000
+log_k_cyan      0.000     0.9619       0.000       0.000      0.0000
+log_k_JCZ38     0.000     0.0000       2.139       0.000      0.0000
+log_k_J9Z38     0.000     0.0000       0.000       1.639      0.0000
+log_k_JSE76     0.000     0.0000       0.000       0.000      0.7894
+f_cyan_ilr_1    0.000     0.0000       0.000       0.000      0.0000
+f_cyan_ilr_2    0.000     0.0000       0.000       0.000      0.0000
+f_JCZ38_qlogis  0.000     0.0000       0.000       0.000      0.0000
+               f_cyan_ilr_1 f_cyan_ilr_2 f_JCZ38_qlogis
+cyan_0               0.0000        0.000           0.00
+log_k_cyan           0.0000        0.000           0.00
+log_k_JCZ38          0.0000        0.000           0.00
+log_k_J9Z38          0.0000        0.000           0.00
+log_k_JSE76          0.0000        0.000           0.00
+f_cyan_ilr_1         0.7714        0.000           0.00
+f_cyan_ilr_2         0.0000        9.247           0.00
+f_JCZ38_qlogis       0.0000        0.000          16.61
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2693 2687  -1331
+
+Optimised parameters:
+                     est.      lower      upper
+cyan_0            95.1279  9.354e+01  9.671e+01
+log_k_cyan        -3.8527 -4.367e+00 -3.338e+00
+log_k_JCZ38       -3.0381 -4.187e+00 -1.889e+00
+log_k_J9Z38       -5.0095 -5.623e+00 -4.396e+00
+log_k_JSE76       -5.3357 -6.025e+00 -4.646e+00
+f_cyan_ilr_1       0.8050  5.174e-01  1.093e+00
+f_cyan_ilr_2      12.4820 -1.050e+06  1.051e+06
+f_JCZ38_qlogis     1.2912  3.561e-01  2.226e+00
+a.1                4.8393         NA         NA
+SD.log_k_cyan      0.5840         NA         NA
+SD.log_k_JCZ38     1.2740         NA         NA
+SD.log_k_J9Z38     0.3172         NA         NA
+SD.log_k_JSE76     0.5677         NA         NA
+SD.f_cyan_ilr_1    0.2623         NA         NA
+SD.f_cyan_ilr_2    1.3724         NA         NA
+SD.f_JCZ38_qlogis  0.1464         NA         NA
+
+Correlation is not available
+
+Random effects:
+                    est. lower upper
+SD.log_k_cyan     0.5840    NA    NA
+SD.log_k_JCZ38    1.2740    NA    NA
+SD.log_k_J9Z38    0.3172    NA    NA
+SD.log_k_JSE76    0.5677    NA    NA
+SD.f_cyan_ilr_1   0.2623    NA    NA
+SD.f_cyan_ilr_2   1.3724    NA    NA
+SD.f_JCZ38_qlogis 0.1464    NA    NA
+
+Variance model:
+     est. lower upper
+a.1 4.839    NA    NA
+
+Backtransformed parameters:
+                      est.     lower     upper
+cyan_0           95.127935 93.542456 96.713413
+k_cyan            0.021221  0.012687  0.035497
+k_JCZ38           0.047924  0.015189  0.151213
+k_J9Z38           0.006674  0.003612  0.012332
+k_JSE76           0.004817  0.002417  0.009601
+f_cyan_to_JCZ38   0.757402        NA        NA
+f_cyan_to_J9Z38   0.242597        NA        NA
+f_JCZ38_to_JSE76  0.784347  0.588098  0.902582
+
+Resulting formation fractions:
+                   ff
+cyan_JCZ38  7.574e-01
+cyan_J9Z38  2.426e-01
+cyan_sink   9.839e-08
+JCZ38_JSE76 7.843e-01
+JCZ38_sink  2.157e-01
+
+Estimated disappearance times:
+        DT50   DT90
+cyan   32.66 108.50
+JCZ38  14.46  48.05
+J9Z38 103.86 345.00
+JSE76 143.91 478.04
+
+
+

+ +Hierarchical SFO path 1 fit with two-component error + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:42:06 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - k_cyan * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * k_cyan * cyan - k_JCZ38 * JCZ38
+d_J9Z38/dt = + f_cyan_to_J9Z38 * k_cyan * cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 417.143 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+        cyan_0     log_k_cyan    log_k_JCZ38    log_k_J9Z38    log_k_JSE76 
+       96.0039        -3.8907        -3.1276        -5.0069        -4.9367 
+  f_cyan_ilr_1   f_cyan_ilr_2 f_JCZ38_qlogis 
+        0.7937        22.3422        17.8932 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_cyan log_k_JCZ38 log_k_J9Z38 log_k_JSE76
+cyan_0          4.859      0.000        0.00        0.00      0.0000
+log_k_cyan      0.000      0.962        0.00        0.00      0.0000
+log_k_JCZ38     0.000      0.000        2.04        0.00      0.0000
+log_k_J9Z38     0.000      0.000        0.00        1.72      0.0000
+log_k_JSE76     0.000      0.000        0.00        0.00      0.9076
+f_cyan_ilr_1    0.000      0.000        0.00        0.00      0.0000
+f_cyan_ilr_2    0.000      0.000        0.00        0.00      0.0000
+f_JCZ38_qlogis  0.000      0.000        0.00        0.00      0.0000
+               f_cyan_ilr_1 f_cyan_ilr_2 f_JCZ38_qlogis
+cyan_0               0.0000        0.000           0.00
+log_k_cyan           0.0000        0.000           0.00
+log_k_JCZ38          0.0000        0.000           0.00
+log_k_J9Z38          0.0000        0.000           0.00
+log_k_JSE76          0.0000        0.000           0.00
+f_cyan_ilr_1         0.7598        0.000           0.00
+f_cyan_ilr_2         0.0000        8.939           0.00
+f_JCZ38_qlogis       0.0000        0.000          14.49
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2658 2651  -1312
+
+Optimised parameters:
+                      est. lower upper
+cyan_0            94.81681    NA    NA
+log_k_cyan        -3.91558    NA    NA
+log_k_JCZ38       -3.12715    NA    NA
+log_k_J9Z38       -5.04840    NA    NA
+log_k_JSE76       -5.10443    NA    NA
+f_cyan_ilr_1       0.80760    NA    NA
+f_cyan_ilr_2      48.66960    NA    NA
+f_JCZ38_qlogis     3.03397    NA    NA
+a.1                3.93879    NA    NA
+b.1                0.08057    NA    NA
+SD.log_k_cyan      0.58921    NA    NA
+SD.log_k_JCZ38     1.29813    NA    NA
+SD.log_k_J9Z38     0.68372    NA    NA
+SD.log_k_JSE76     0.35128    NA    NA
+SD.f_cyan_ilr_1    0.38352    NA    NA
+SD.f_cyan_ilr_2    4.98884    NA    NA
+SD.f_JCZ38_qlogis  1.75636    NA    NA
+
+Correlation is not available
+
+Random effects:
+                    est. lower upper
+SD.log_k_cyan     0.5892    NA    NA
+SD.log_k_JCZ38    1.2981    NA    NA
+SD.log_k_J9Z38    0.6837    NA    NA
+SD.log_k_JSE76    0.3513    NA    NA
+SD.f_cyan_ilr_1   0.3835    NA    NA
+SD.f_cyan_ilr_2   4.9888    NA    NA
+SD.f_JCZ38_qlogis 1.7564    NA    NA
+
+Variance model:
+       est. lower upper
+a.1 3.93879    NA    NA
+b.1 0.08057    NA    NA
+
+Backtransformed parameters:
+                     est. lower upper
+cyan_0           94.81681    NA    NA
+k_cyan            0.01993    NA    NA
+k_JCZ38           0.04384    NA    NA
+k_J9Z38           0.00642    NA    NA
+k_JSE76           0.00607    NA    NA
+f_cyan_to_JCZ38   0.75807    NA    NA
+f_cyan_to_J9Z38   0.24193    NA    NA
+f_JCZ38_to_JSE76  0.95409    NA    NA
+
+Resulting formation fractions:
+                 ff
+cyan_JCZ38  0.75807
+cyan_J9Z38  0.24193
+cyan_sink   0.00000
+JCZ38_JSE76 0.95409
+JCZ38_sink  0.04591
+
+Estimated disappearance times:
+        DT50   DT90
+cyan   34.78 115.54
+JCZ38  15.81  52.52
+J9Z38 107.97 358.68
+JSE76 114.20 379.35
+
+
+

+ +Hierarchical FOMC path 1 fit with constant variance + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:42:57 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - (alpha/beta) * 1/((time/beta) + 1) * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * (alpha/beta) * 1/((time/beta) + 1) *
+           cyan - k_JCZ38 * JCZ38
+d_J9Z38/dt = + f_cyan_to_J9Z38 * (alpha/beta) * 1/((time/beta) + 1) *
+           cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 468.609 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+        cyan_0    log_k_JCZ38    log_k_J9Z38    log_k_JSE76   f_cyan_ilr_1 
+      101.2314        -3.3680        -5.1108        -5.9416         0.7144 
+  f_cyan_ilr_2 f_JCZ38_qlogis      log_alpha       log_beta 
+        7.0229        14.9234        -0.1791         2.9811 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_JCZ38 log_k_J9Z38 log_k_JSE76 f_cyan_ilr_1
+cyan_0          5.416       0.000         0.0       0.000       0.0000
+log_k_JCZ38     0.000       2.439         0.0       0.000       0.0000
+log_k_J9Z38     0.000       0.000         1.7       0.000       0.0000
+log_k_JSE76     0.000       0.000         0.0       1.856       0.0000
+f_cyan_ilr_1    0.000       0.000         0.0       0.000       0.7164
+f_cyan_ilr_2    0.000       0.000         0.0       0.000       0.0000
+f_JCZ38_qlogis  0.000       0.000         0.0       0.000       0.0000
+log_alpha       0.000       0.000         0.0       0.000       0.0000
+log_beta        0.000       0.000         0.0       0.000       0.0000
+               f_cyan_ilr_2 f_JCZ38_qlogis log_alpha log_beta
+cyan_0                 0.00           0.00    0.0000   0.0000
+log_k_JCZ38            0.00           0.00    0.0000   0.0000
+log_k_J9Z38            0.00           0.00    0.0000   0.0000
+log_k_JSE76            0.00           0.00    0.0000   0.0000
+f_cyan_ilr_1           0.00           0.00    0.0000   0.0000
+f_cyan_ilr_2          11.57           0.00    0.0000   0.0000
+f_JCZ38_qlogis         0.00          18.81    0.0000   0.0000
+log_alpha              0.00           0.00    0.4144   0.0000
+log_beta               0.00           0.00    0.0000   0.5077
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2428 2421  -1196
+
+Optimised parameters:
+                      est.    lower    upper
+cyan_0            101.1664 98.51265 103.8202
+log_k_JCZ38        -3.3883 -4.78250  -1.9941
+log_k_J9Z38        -5.3087 -5.91564  -4.7017
+log_k_JSE76        -6.1313 -7.30061  -4.9619
+f_cyan_ilr_1        0.7456  0.43782   1.0534
+f_cyan_ilr_2        0.8181  0.24956   1.3866
+f_JCZ38_qlogis      2.0467  0.61165   3.4817
+log_alpha          -0.2391 -0.62806   0.1499
+log_beta            2.8739  2.67664   3.0711
+a.1                 3.4160  3.17960   3.6525
+SD.cyan_0           2.4355  0.40399   4.4671
+SD.log_k_JCZ38      1.5654  0.57311   2.5576
+SD.log_k_J9Z38      0.4645 -0.06533   0.9943
+SD.log_k_JSE76      0.9841  0.10738   1.8609
+SD.f_cyan_ilr_1     0.3285  0.10546   0.5515
+SD.f_cyan_ilr_2     0.2276 -0.38711   0.8424
+SD.f_JCZ38_qlogis   0.8340 -0.20970   1.8777
+SD.log_alpha        0.4250  0.16017   0.6898
+
+Correlation: 
+               cyan_0  l__JCZ3 l__J9Z3 l__JSE7 f_cy__1 f_cy__2 f_JCZ38 log_lph
+log_k_JCZ38    -0.0159                                                        
+log_k_J9Z38    -0.0546  0.0080                                                
+log_k_JSE76    -0.0337  0.0016  0.0074                                        
+f_cyan_ilr_1   -0.0095  0.0194 -0.1573  0.0003                                
+f_cyan_ilr_2   -0.2733  0.0799  0.3059  0.0263  0.0125                        
+f_JCZ38_qlogis  0.0755 -0.0783 -0.0516  0.1222 -0.1155 -0.5231                
+log_alpha      -0.0567  0.0120  0.0351  0.0189  0.0040  0.0829 -0.0502        
+log_beta       -0.2980  0.0461  0.1382  0.0758  0.0209  0.4079 -0.2053  0.2759
+
+Random effects:
+                    est.    lower  upper
+SD.cyan_0         2.4355  0.40399 4.4671
+SD.log_k_JCZ38    1.5654  0.57311 2.5576
+SD.log_k_J9Z38    0.4645 -0.06533 0.9943
+SD.log_k_JSE76    0.9841  0.10738 1.8609
+SD.f_cyan_ilr_1   0.3285  0.10546 0.5515
+SD.f_cyan_ilr_2   0.2276 -0.38711 0.8424
+SD.f_JCZ38_qlogis 0.8340 -0.20970 1.8777
+SD.log_alpha      0.4250  0.16017 0.6898
+
+Variance model:
+     est. lower upper
+a.1 3.416  3.18 3.652
+
+Backtransformed parameters:
+                      est.     lower     upper
+cyan_0           1.012e+02 9.851e+01 103.82023
+k_JCZ38          3.377e-02 8.375e-03   0.13614
+k_J9Z38          4.948e-03 2.697e-03   0.00908
+k_JSE76          2.174e-03 6.751e-04   0.00700
+f_cyan_to_JCZ38  6.389e-01        NA        NA
+f_cyan_to_J9Z38  2.226e-01        NA        NA
+f_JCZ38_to_JSE76 8.856e-01 6.483e-01   0.97016
+alpha            7.873e-01 5.336e-01   1.16166
+beta             1.771e+01 1.454e+01  21.56509
+
+Resulting formation fractions:
+                ff
+cyan_JCZ38  0.6389
+cyan_J9Z38  0.2226
+cyan_sink   0.1385
+JCZ38_JSE76 0.8856
+JCZ38_sink  0.1144
+
+Estimated disappearance times:
+        DT50    DT90 DT50back
+cyan   25.00  312.06    93.94
+JCZ38  20.53   68.19       NA
+J9Z38 140.07  465.32       NA
+JSE76 318.86 1059.22       NA
+
+
+

+ +Hierarchical FOMC path 1 fit with two-component error + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:42:50 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - (alpha/beta) * 1/((time/beta) + 1) * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * (alpha/beta) * 1/((time/beta) + 1) *
+           cyan - k_JCZ38 * JCZ38
+d_J9Z38/dt = + f_cyan_to_J9Z38 * (alpha/beta) * 1/((time/beta) + 1) *
+           cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 460.309 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+        cyan_0    log_k_JCZ38    log_k_J9Z38    log_k_JSE76   f_cyan_ilr_1 
+     101.13294       -3.32499       -5.09097       -5.93566        0.71359 
+  f_cyan_ilr_2 f_JCZ38_qlogis      log_alpha       log_beta 
+      10.30315       14.62272       -0.09633        3.10634 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_JCZ38 log_k_J9Z38 log_k_JSE76 f_cyan_ilr_1
+cyan_0          5.649       0.000        0.00        0.00       0.0000
+log_k_JCZ38     0.000       2.319        0.00        0.00       0.0000
+log_k_J9Z38     0.000       0.000        1.73        0.00       0.0000
+log_k_JSE76     0.000       0.000        0.00        1.86       0.0000
+f_cyan_ilr_1    0.000       0.000        0.00        0.00       0.7183
+f_cyan_ilr_2    0.000       0.000        0.00        0.00       0.0000
+f_JCZ38_qlogis  0.000       0.000        0.00        0.00       0.0000
+log_alpha       0.000       0.000        0.00        0.00       0.0000
+log_beta        0.000       0.000        0.00        0.00       0.0000
+               f_cyan_ilr_2 f_JCZ38_qlogis log_alpha log_beta
+cyan_0                 0.00           0.00    0.0000   0.0000
+log_k_JCZ38            0.00           0.00    0.0000   0.0000
+log_k_J9Z38            0.00           0.00    0.0000   0.0000
+log_k_JSE76            0.00           0.00    0.0000   0.0000
+f_cyan_ilr_1           0.00           0.00    0.0000   0.0000
+f_cyan_ilr_2          12.85           0.00    0.0000   0.0000
+f_JCZ38_qlogis         0.00          18.54    0.0000   0.0000
+log_alpha              0.00           0.00    0.3142   0.0000
+log_beta               0.00           0.00    0.0000   0.7333
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2424 2416  -1193
+
+Optimised parameters:
+                       est. lower upper
+cyan_0            100.65667    NA    NA
+log_k_JCZ38        -3.45782    NA    NA
+log_k_J9Z38        -5.23476    NA    NA
+log_k_JSE76        -5.71827    NA    NA
+f_cyan_ilr_1        0.68389    NA    NA
+f_cyan_ilr_2        0.61027    NA    NA
+f_JCZ38_qlogis    116.27482    NA    NA
+log_alpha          -0.14484    NA    NA
+log_beta            3.03220    NA    NA
+a.1                 3.11051    NA    NA
+b.1                 0.04508    NA    NA
+SD.log_k_JCZ38      1.39961    NA    NA
+SD.log_k_J9Z38      0.57920    NA    NA
+SD.log_k_JSE76      0.68364    NA    NA
+SD.f_cyan_ilr_1     0.31477    NA    NA
+SD.f_cyan_ilr_2     0.37716    NA    NA
+SD.f_JCZ38_qlogis   5.52695    NA    NA
+SD.log_alpha        0.22823    NA    NA
+SD.log_beta         0.39161    NA    NA
+
+Correlation is not available
+
+Random effects:
+                    est. lower upper
+SD.log_k_JCZ38    1.3996    NA    NA
+SD.log_k_J9Z38    0.5792    NA    NA
+SD.log_k_JSE76    0.6836    NA    NA
+SD.f_cyan_ilr_1   0.3148    NA    NA
+SD.f_cyan_ilr_2   0.3772    NA    NA
+SD.f_JCZ38_qlogis 5.5270    NA    NA
+SD.log_alpha      0.2282    NA    NA
+SD.log_beta       0.3916    NA    NA
+
+Variance model:
+       est. lower upper
+a.1 3.11051    NA    NA
+b.1 0.04508    NA    NA
+
+Backtransformed parameters:
+                      est. lower upper
+cyan_0           1.007e+02    NA    NA
+k_JCZ38          3.150e-02    NA    NA
+k_J9Z38          5.328e-03    NA    NA
+k_JSE76          3.285e-03    NA    NA
+f_cyan_to_JCZ38  5.980e-01    NA    NA
+f_cyan_to_J9Z38  2.273e-01    NA    NA
+f_JCZ38_to_JSE76 1.000e+00    NA    NA
+alpha            8.652e-01    NA    NA
+beta             2.074e+01    NA    NA
+
+Resulting formation fractions:
+                ff
+cyan_JCZ38  0.5980
+cyan_J9Z38  0.2273
+cyan_sink   0.1746
+JCZ38_JSE76 1.0000
+JCZ38_sink  0.0000
+
+Estimated disappearance times:
+        DT50  DT90 DT50back
+cyan   25.48 276.2    83.15
+JCZ38  22.01  73.1       NA
+J9Z38 130.09 432.2       NA
+JSE76 210.98 700.9       NA
+
+
+

+ +Hierarchical DFOP path 1 fit with constant variance + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:43:33 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+           time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+           * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_JCZ38 * JCZ38
+d_J9Z38/dt = + f_cyan_to_J9Z38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 504.014 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+        cyan_0    log_k_JCZ38    log_k_J9Z38    log_k_JSE76   f_cyan_ilr_1 
+      102.0643        -3.4008        -5.0024        -5.8612         0.6855 
+  f_cyan_ilr_2 f_JCZ38_qlogis         log_k1         log_k2       g_qlogis 
+        1.2366        13.6901        -1.8641        -4.5063        -0.6468 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_JCZ38 log_k_J9Z38 log_k_JSE76 f_cyan_ilr_1
+cyan_0          4.466       0.000       0.000       0.000       0.0000
+log_k_JCZ38     0.000       2.382       0.000       0.000       0.0000
+log_k_J9Z38     0.000       0.000       1.595       0.000       0.0000
+log_k_JSE76     0.000       0.000       0.000       1.245       0.0000
+f_cyan_ilr_1    0.000       0.000       0.000       0.000       0.6852
+f_cyan_ilr_2    0.000       0.000       0.000       0.000       0.0000
+f_JCZ38_qlogis  0.000       0.000       0.000       0.000       0.0000
+log_k1          0.000       0.000       0.000       0.000       0.0000
+log_k2          0.000       0.000       0.000       0.000       0.0000
+g_qlogis        0.000       0.000       0.000       0.000       0.0000
+               f_cyan_ilr_2 f_JCZ38_qlogis log_k1 log_k2 g_qlogis
+cyan_0                 0.00           0.00 0.0000 0.0000    0.000
+log_k_JCZ38            0.00           0.00 0.0000 0.0000    0.000
+log_k_J9Z38            0.00           0.00 0.0000 0.0000    0.000
+log_k_JSE76            0.00           0.00 0.0000 0.0000    0.000
+f_cyan_ilr_1           0.00           0.00 0.0000 0.0000    0.000
+f_cyan_ilr_2           1.28           0.00 0.0000 0.0000    0.000
+f_JCZ38_qlogis         0.00          16.08 0.0000 0.0000    0.000
+log_k1                 0.00           0.00 0.9866 0.0000    0.000
+log_k2                 0.00           0.00 0.0000 0.5953    0.000
+g_qlogis               0.00           0.00 0.0000 0.0000    1.583
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2403 2395  -1182
+
+Optimised parameters:
+                      est. lower upper
+cyan_0            102.5565    NA    NA
+log_k_JCZ38        -3.4729    NA    NA
+log_k_J9Z38        -5.1533    NA    NA
+log_k_JSE76        -5.6669    NA    NA
+f_cyan_ilr_1        0.6665    NA    NA
+f_cyan_ilr_2        0.5191    NA    NA
+f_JCZ38_qlogis     37.0113    NA    NA
+log_k1             -1.8497    NA    NA
+log_k2             -4.4931    NA    NA
+g_qlogis           -0.6383    NA    NA
+a.1                 3.2397    NA    NA
+SD.log_k_JCZ38      1.4286    NA    NA
+SD.log_k_J9Z38      0.5312    NA    NA
+SD.log_k_JSE76      0.6627    NA    NA
+SD.f_cyan_ilr_1     0.3013    NA    NA
+SD.f_cyan_ilr_2     0.2980    NA    NA
+SD.f_JCZ38_qlogis   0.1637    NA    NA
+SD.log_k1           0.5069    NA    NA
+SD.log_k2           0.3828    NA    NA
+SD.g_qlogis         0.8641    NA    NA
+
+Correlation is not available
+
+Random effects:
+                    est. lower upper
+SD.log_k_JCZ38    1.4286    NA    NA
+SD.log_k_J9Z38    0.5312    NA    NA
+SD.log_k_JSE76    0.6627    NA    NA
+SD.f_cyan_ilr_1   0.3013    NA    NA
+SD.f_cyan_ilr_2   0.2980    NA    NA
+SD.f_JCZ38_qlogis 0.1637    NA    NA
+SD.log_k1         0.5069    NA    NA
+SD.log_k2         0.3828    NA    NA
+SD.g_qlogis       0.8641    NA    NA
+
+Variance model:
+    est. lower upper
+a.1 3.24    NA    NA
+
+Backtransformed parameters:
+                      est. lower upper
+cyan_0           1.026e+02    NA    NA
+k_JCZ38          3.103e-02    NA    NA
+k_J9Z38          5.780e-03    NA    NA
+k_JSE76          3.459e-03    NA    NA
+f_cyan_to_JCZ38  5.813e-01    NA    NA
+f_cyan_to_J9Z38  2.265e-01    NA    NA
+f_JCZ38_to_JSE76 1.000e+00    NA    NA
+k1               1.573e-01    NA    NA
+k2               1.119e-02    NA    NA
+g                3.456e-01    NA    NA
+
+Resulting formation fractions:
+                ff
+cyan_JCZ38  0.5813
+cyan_J9Z38  0.2265
+cyan_sink   0.1922
+JCZ38_JSE76 1.0000
+JCZ38_sink  0.0000
+
+Estimated disappearance times:
+        DT50   DT90 DT50back DT50_k1 DT50_k2
+cyan   25.23 167.94    50.55   4.407   61.97
+JCZ38  22.34  74.22       NA      NA      NA
+J9Z38 119.92 398.36       NA      NA      NA
+JSE76 200.41 665.76       NA      NA      NA
+
+
+

+ +Hierarchical DFOP path 1 fit with two-component error + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:46:07 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+           time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+           * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_JCZ38 * JCZ38
+d_J9Z38/dt = + f_cyan_to_J9Z38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 658.043 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+        cyan_0    log_k_JCZ38    log_k_J9Z38    log_k_JSE76   f_cyan_ilr_1 
+      101.3964        -3.3626        -4.9792        -5.8727         0.6814 
+  f_cyan_ilr_2 f_JCZ38_qlogis         log_k1         log_k2       g_qlogis 
+        6.8713        13.6901        -1.9222        -4.5035        -0.7172 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_JCZ38 log_k_J9Z38 log_k_JSE76 f_cyan_ilr_1
+cyan_0          5.317       0.000       0.000       0.000       0.0000
+log_k_JCZ38     0.000       2.272       0.000       0.000       0.0000
+log_k_J9Z38     0.000       0.000       1.633       0.000       0.0000
+log_k_JSE76     0.000       0.000       0.000       1.271       0.0000
+f_cyan_ilr_1    0.000       0.000       0.000       0.000       0.6839
+f_cyan_ilr_2    0.000       0.000       0.000       0.000       0.0000
+f_JCZ38_qlogis  0.000       0.000       0.000       0.000       0.0000
+log_k1          0.000       0.000       0.000       0.000       0.0000
+log_k2          0.000       0.000       0.000       0.000       0.0000
+g_qlogis        0.000       0.000       0.000       0.000       0.0000
+               f_cyan_ilr_2 f_JCZ38_qlogis log_k1 log_k2 g_qlogis
+cyan_0                 0.00           0.00 0.0000 0.0000    0.000
+log_k_JCZ38            0.00           0.00 0.0000 0.0000    0.000
+log_k_J9Z38            0.00           0.00 0.0000 0.0000    0.000
+log_k_JSE76            0.00           0.00 0.0000 0.0000    0.000
+f_cyan_ilr_1           0.00           0.00 0.0000 0.0000    0.000
+f_cyan_ilr_2          11.95           0.00 0.0000 0.0000    0.000
+f_JCZ38_qlogis         0.00          16.08 0.0000 0.0000    0.000
+log_k1                 0.00           0.00 0.9496 0.0000    0.000
+log_k2                 0.00           0.00 0.0000 0.5846    0.000
+g_qlogis               0.00           0.00 0.0000 0.0000    1.719
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2398 2390  -1179
+
+Optimised parameters:
+                       est. lower upper
+cyan_0            100.69709    NA    NA
+log_k_JCZ38        -3.46669    NA    NA
+log_k_J9Z38        -5.05076    NA    NA
+log_k_JSE76        -5.55558    NA    NA
+f_cyan_ilr_1        0.66045    NA    NA
+f_cyan_ilr_2        0.84275    NA    NA
+f_JCZ38_qlogis     64.22404    NA    NA
+log_k1             -2.17715    NA    NA
+log_k2             -4.55002    NA    NA
+g_qlogis           -0.55920    NA    NA
+a.1                 2.95785    NA    NA
+b.1                 0.04456    NA    NA
+SD.log_k_JCZ38      1.39881    NA    NA
+SD.log_k_J9Z38      0.67788    NA    NA
+SD.log_k_JSE76      0.52603    NA    NA
+SD.f_cyan_ilr_1     0.32490    NA    NA
+SD.f_cyan_ilr_2     0.53923    NA    NA
+SD.f_JCZ38_qlogis   2.75576    NA    NA
+SD.log_k2           0.30694    NA    NA
+SD.g_qlogis         0.83619    NA    NA
+
+Correlation is not available
+
+Random effects:
+                    est. lower upper
+SD.log_k_JCZ38    1.3988    NA    NA
+SD.log_k_J9Z38    0.6779    NA    NA
+SD.log_k_JSE76    0.5260    NA    NA
+SD.f_cyan_ilr_1   0.3249    NA    NA
+SD.f_cyan_ilr_2   0.5392    NA    NA
+SD.f_JCZ38_qlogis 2.7558    NA    NA
+SD.log_k2         0.3069    NA    NA
+SD.g_qlogis       0.8362    NA    NA
+
+Variance model:
+       est. lower upper
+a.1 2.95785    NA    NA
+b.1 0.04456    NA    NA
+
+Backtransformed parameters:
+                      est. lower upper
+cyan_0           1.007e+02    NA    NA
+k_JCZ38          3.122e-02    NA    NA
+k_J9Z38          6.404e-03    NA    NA
+k_JSE76          3.866e-03    NA    NA
+f_cyan_to_JCZ38  6.187e-01    NA    NA
+f_cyan_to_J9Z38  2.431e-01    NA    NA
+f_JCZ38_to_JSE76 1.000e+00    NA    NA
+k1               1.134e-01    NA    NA
+k2               1.057e-02    NA    NA
+g                3.637e-01    NA    NA
+
+Resulting formation fractions:
+                ff
+cyan_JCZ38  0.6187
+cyan_J9Z38  0.2431
+cyan_sink   0.1382
+JCZ38_JSE76 1.0000
+JCZ38_sink  0.0000
+
+Estimated disappearance times:
+        DT50   DT90 DT50back DT50_k1 DT50_k2
+cyan   26.35 175.12    52.72   6.114    65.6
+JCZ38  22.20  73.75       NA      NA      NA
+J9Z38 108.23 359.53       NA      NA      NA
+JSE76 179.30 595.62       NA      NA      NA
+
+
+

+ +Hierarchical SFORB path 1 fit with constant variance + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:43:36 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan_free/dt = - k_cyan_free * cyan_free - k_cyan_free_bound *
+           cyan_free + k_cyan_bound_free * cyan_bound
+d_cyan_bound/dt = + k_cyan_free_bound * cyan_free - k_cyan_bound_free *
+           cyan_bound
+d_JCZ38/dt = + f_cyan_free_to_JCZ38 * k_cyan_free * cyan_free - k_JCZ38
+           * JCZ38
+d_J9Z38/dt = + f_cyan_free_to_J9Z38 * k_cyan_free * cyan_free - k_J9Z38
+           * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 507.042 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+          cyan_free_0       log_k_cyan_free log_k_cyan_free_bound 
+             102.0643               -2.8987               -2.7077 
+log_k_cyan_bound_free           log_k_JCZ38           log_k_J9Z38 
+              -3.4717               -3.4008               -5.0024 
+          log_k_JSE76          f_cyan_ilr_1          f_cyan_ilr_2 
+              -5.8613                0.6855                1.2366 
+       f_JCZ38_qlogis 
+              13.7395 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+                      cyan_free_0 log_k_cyan_free log_k_cyan_free_bound
+cyan_free_0                 4.466          0.0000                 0.000
+log_k_cyan_free             0.000          0.6158                 0.000
+log_k_cyan_free_bound       0.000          0.0000                 1.463
+log_k_cyan_bound_free       0.000          0.0000                 0.000
+log_k_JCZ38                 0.000          0.0000                 0.000
+log_k_J9Z38                 0.000          0.0000                 0.000
+log_k_JSE76                 0.000          0.0000                 0.000
+f_cyan_ilr_1                0.000          0.0000                 0.000
+f_cyan_ilr_2                0.000          0.0000                 0.000
+f_JCZ38_qlogis              0.000          0.0000                 0.000
+                      log_k_cyan_bound_free log_k_JCZ38 log_k_J9Z38 log_k_JSE76
+cyan_free_0                           0.000       0.000       0.000       0.000
+log_k_cyan_free                       0.000       0.000       0.000       0.000
+log_k_cyan_free_bound                 0.000       0.000       0.000       0.000
+log_k_cyan_bound_free                 1.058       0.000       0.000       0.000
+log_k_JCZ38                           0.000       2.382       0.000       0.000
+log_k_J9Z38                           0.000       0.000       1.595       0.000
+log_k_JSE76                           0.000       0.000       0.000       1.245
+f_cyan_ilr_1                          0.000       0.000       0.000       0.000
+f_cyan_ilr_2                          0.000       0.000       0.000       0.000
+f_JCZ38_qlogis                        0.000       0.000       0.000       0.000
+                      f_cyan_ilr_1 f_cyan_ilr_2 f_JCZ38_qlogis
+cyan_free_0                 0.0000         0.00           0.00
+log_k_cyan_free             0.0000         0.00           0.00
+log_k_cyan_free_bound       0.0000         0.00           0.00
+log_k_cyan_bound_free       0.0000         0.00           0.00
+log_k_JCZ38                 0.0000         0.00           0.00
+log_k_J9Z38                 0.0000         0.00           0.00
+log_k_JSE76                 0.0000         0.00           0.00
+f_cyan_ilr_1                0.6852         0.00           0.00
+f_cyan_ilr_2                0.0000         1.28           0.00
+f_JCZ38_qlogis              0.0000         0.00          16.13
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2401 2394  -1181
+
+Optimised parameters:
+                             est. lower upper
+cyan_free_0              102.8136    NA    NA
+log_k_cyan_free           -2.7935    NA    NA
+log_k_cyan_free_bound     -2.5440    NA    NA
+log_k_cyan_bound_free     -3.4303    NA    NA
+log_k_JCZ38               -3.5010    NA    NA
+log_k_J9Z38               -5.1226    NA    NA
+log_k_JSE76               -5.6314    NA    NA
+f_cyan_ilr_1               0.6609    NA    NA
+f_cyan_ilr_2               0.5085    NA    NA
+f_JCZ38_qlogis            44.0153    NA    NA
+a.1                        3.2318    NA    NA
+SD.log_k_cyan_free         0.3211    NA    NA
+SD.log_k_cyan_free_bound   0.8408    NA    NA
+SD.log_k_cyan_bound_free   0.5724    NA    NA
+SD.log_k_JCZ38             1.4925    NA    NA
+SD.log_k_J9Z38             0.5816    NA    NA
+SD.log_k_JSE76             0.6037    NA    NA
+SD.f_cyan_ilr_1            0.3115    NA    NA
+SD.f_cyan_ilr_2            0.3436    NA    NA
+SD.f_JCZ38_qlogis          4.8937    NA    NA
+
+Correlation is not available
+
+Random effects:
+                           est. lower upper
+SD.log_k_cyan_free       0.3211    NA    NA
+SD.log_k_cyan_free_bound 0.8408    NA    NA
+SD.log_k_cyan_bound_free 0.5724    NA    NA
+SD.log_k_JCZ38           1.4925    NA    NA
+SD.log_k_J9Z38           0.5816    NA    NA
+SD.log_k_JSE76           0.6037    NA    NA
+SD.f_cyan_ilr_1          0.3115    NA    NA
+SD.f_cyan_ilr_2          0.3436    NA    NA
+SD.f_JCZ38_qlogis        4.8937    NA    NA
+
+Variance model:
+     est. lower upper
+a.1 3.232    NA    NA
+
+Backtransformed parameters:
+                          est. lower upper
+cyan_free_0          1.028e+02    NA    NA
+k_cyan_free          6.120e-02    NA    NA
+k_cyan_free_bound    7.855e-02    NA    NA
+k_cyan_bound_free    3.238e-02    NA    NA
+k_JCZ38              3.017e-02    NA    NA
+k_J9Z38              5.961e-03    NA    NA
+k_JSE76              3.584e-03    NA    NA
+f_cyan_free_to_JCZ38 5.784e-01    NA    NA
+f_cyan_free_to_J9Z38 2.271e-01    NA    NA
+f_JCZ38_to_JSE76     1.000e+00    NA    NA
+
+Estimated Eigenvalues of SFORB model(s):
+cyan_b1 cyan_b2  cyan_g 
+0.15973 0.01241 0.33124 
+
+Resulting formation fractions:
+                    ff
+cyan_free_JCZ38 0.5784
+cyan_free_J9Z38 0.2271
+cyan_free_sink  0.1945
+cyan_free       1.0000
+JCZ38_JSE76     1.0000
+JCZ38_sink      0.0000
+
+Estimated disappearance times:
+        DT50   DT90 DT50back DT50_cyan_b1 DT50_cyan_b2
+cyan   24.51 153.18    46.11         4.34        55.87
+JCZ38  22.98  76.33       NA           NA           NA
+J9Z38 116.28 386.29       NA           NA           NA
+JSE76 193.42 642.53       NA           NA           NA
+
+
+

+ +Hierarchical SFORB path 1 fit with two-component error + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:46:14 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan_free/dt = - k_cyan_free * cyan_free - k_cyan_free_bound *
+           cyan_free + k_cyan_bound_free * cyan_bound
+d_cyan_bound/dt = + k_cyan_free_bound * cyan_free - k_cyan_bound_free *
+           cyan_bound
+d_JCZ38/dt = + f_cyan_free_to_JCZ38 * k_cyan_free * cyan_free - k_JCZ38
+           * JCZ38
+d_J9Z38/dt = + f_cyan_free_to_J9Z38 * k_cyan_free * cyan_free - k_J9Z38
+           * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 664.11 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+          cyan_free_0       log_k_cyan_free log_k_cyan_free_bound 
+             101.3964               -2.9881               -2.7949 
+log_k_cyan_bound_free           log_k_JCZ38           log_k_J9Z38 
+              -3.4376               -3.3626               -4.9792 
+          log_k_JSE76          f_cyan_ilr_1          f_cyan_ilr_2 
+              -5.8727                0.6814                6.7399 
+       f_JCZ38_qlogis 
+              13.7395 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+                      cyan_free_0 log_k_cyan_free log_k_cyan_free_bound
+cyan_free_0                 5.317          0.0000                 0.000
+log_k_cyan_free             0.000          0.7301                 0.000
+log_k_cyan_free_bound       0.000          0.0000                 1.384
+log_k_cyan_bound_free       0.000          0.0000                 0.000
+log_k_JCZ38                 0.000          0.0000                 0.000
+log_k_J9Z38                 0.000          0.0000                 0.000
+log_k_JSE76                 0.000          0.0000                 0.000
+f_cyan_ilr_1                0.000          0.0000                 0.000
+f_cyan_ilr_2                0.000          0.0000                 0.000
+f_JCZ38_qlogis              0.000          0.0000                 0.000
+                      log_k_cyan_bound_free log_k_JCZ38 log_k_J9Z38 log_k_JSE76
+cyan_free_0                           0.000       0.000       0.000       0.000
+log_k_cyan_free                       0.000       0.000       0.000       0.000
+log_k_cyan_free_bound                 0.000       0.000       0.000       0.000
+log_k_cyan_bound_free                 1.109       0.000       0.000       0.000
+log_k_JCZ38                           0.000       2.272       0.000       0.000
+log_k_J9Z38                           0.000       0.000       1.633       0.000
+log_k_JSE76                           0.000       0.000       0.000       1.271
+f_cyan_ilr_1                          0.000       0.000       0.000       0.000
+f_cyan_ilr_2                          0.000       0.000       0.000       0.000
+f_JCZ38_qlogis                        0.000       0.000       0.000       0.000
+                      f_cyan_ilr_1 f_cyan_ilr_2 f_JCZ38_qlogis
+cyan_free_0                 0.0000         0.00           0.00
+log_k_cyan_free             0.0000         0.00           0.00
+log_k_cyan_free_bound       0.0000         0.00           0.00
+log_k_cyan_bound_free       0.0000         0.00           0.00
+log_k_JCZ38                 0.0000         0.00           0.00
+log_k_J9Z38                 0.0000         0.00           0.00
+log_k_JSE76                 0.0000         0.00           0.00
+f_cyan_ilr_1                0.6838         0.00           0.00
+f_cyan_ilr_2                0.0000        11.69           0.00
+f_JCZ38_qlogis              0.0000         0.00          16.13
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2400 2392  -1180
+
+Optimised parameters:
+                              est. lower upper
+cyan_free_0              100.56004    NA    NA
+log_k_cyan_free           -3.12657    NA    NA
+log_k_cyan_free_bound     -3.16825    NA    NA
+log_k_cyan_bound_free     -3.66003    NA    NA
+log_k_JCZ38               -3.47278    NA    NA
+log_k_J9Z38               -5.06823    NA    NA
+log_k_JSE76               -5.54327    NA    NA
+f_cyan_ilr_1               0.66631    NA    NA
+f_cyan_ilr_2               0.82898    NA    NA
+f_JCZ38_qlogis            38.31115    NA    NA
+a.1                        2.98352    NA    NA
+b.1                        0.04388    NA    NA
+SD.log_k_cyan_free         0.49145    NA    NA
+SD.log_k_cyan_bound_free   0.27347    NA    NA
+SD.log_k_JCZ38             1.41193    NA    NA
+SD.log_k_J9Z38             0.66073    NA    NA
+SD.log_k_JSE76             0.55885    NA    NA
+SD.f_cyan_ilr_1            0.33020    NA    NA
+SD.f_cyan_ilr_2            0.51367    NA    NA
+SD.f_JCZ38_qlogis          5.52122    NA    NA
+
+Correlation is not available
+
+Random effects:
+                           est. lower upper
+SD.log_k_cyan_free       0.4914    NA    NA
+SD.log_k_cyan_bound_free 0.2735    NA    NA
+SD.log_k_JCZ38           1.4119    NA    NA
+SD.log_k_J9Z38           0.6607    NA    NA
+SD.log_k_JSE76           0.5589    NA    NA
+SD.f_cyan_ilr_1          0.3302    NA    NA
+SD.f_cyan_ilr_2          0.5137    NA    NA
+SD.f_JCZ38_qlogis        5.5212    NA    NA
+
+Variance model:
+       est. lower upper
+a.1 2.98352    NA    NA
+b.1 0.04388    NA    NA
+
+Backtransformed parameters:
+                          est. lower upper
+cyan_free_0          1.006e+02    NA    NA
+k_cyan_free          4.387e-02    NA    NA
+k_cyan_free_bound    4.208e-02    NA    NA
+k_cyan_bound_free    2.573e-02    NA    NA
+k_JCZ38              3.103e-02    NA    NA
+k_J9Z38              6.294e-03    NA    NA
+k_JSE76              3.914e-03    NA    NA
+f_cyan_free_to_JCZ38 6.188e-01    NA    NA
+f_cyan_free_to_J9Z38 2.412e-01    NA    NA
+f_JCZ38_to_JSE76     1.000e+00    NA    NA
+
+Estimated Eigenvalues of SFORB model(s):
+cyan_b1 cyan_b2  cyan_g 
+0.10044 0.01124 0.36580 
+
+Resulting formation fractions:
+                    ff
+cyan_free_JCZ38 0.6188
+cyan_free_J9Z38 0.2412
+cyan_free_sink  0.1400
+cyan_free       1.0000
+JCZ38_JSE76     1.0000
+JCZ38_sink      0.0000
+
+Estimated disappearance times:
+        DT50  DT90 DT50back DT50_cyan_b1 DT50_cyan_b2
+cyan   26.05 164.4    49.48        6.901        61.67
+JCZ38  22.34  74.2       NA           NA           NA
+J9Z38 110.14 365.9       NA           NA           NA
+JSE76 177.11 588.3       NA           NA           NA
+
+
+

+ +Hierarchical HS path 1 fit with constant variance + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:43:42 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - ifelse(time <= tb, k1, k2) * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * ifelse(time <= tb, k1, k2) * cyan -
+           k_JCZ38 * JCZ38
+d_J9Z38/dt = + f_cyan_to_J9Z38 * ifelse(time <= tb, k1, k2) * cyan -
+           k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 512.818 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+        cyan_0    log_k_JCZ38    log_k_J9Z38    log_k_JSE76   f_cyan_ilr_1 
+      102.8845        -3.4495        -4.9355        -5.6040         0.6468 
+  f_cyan_ilr_2 f_JCZ38_qlogis         log_k1         log_k2         log_tb 
+        1.2396         9.7220        -2.9079        -4.1810         1.7813 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_JCZ38 log_k_J9Z38 log_k_JSE76 f_cyan_ilr_1
+cyan_0          5.406        0.00        0.00       0.000       0.0000
+log_k_JCZ38     0.000        2.33        0.00       0.000       0.0000
+log_k_J9Z38     0.000        0.00        1.59       0.000       0.0000
+log_k_JSE76     0.000        0.00        0.00       1.013       0.0000
+f_cyan_ilr_1    0.000        0.00        0.00       0.000       0.6367
+f_cyan_ilr_2    0.000        0.00        0.00       0.000       0.0000
+f_JCZ38_qlogis  0.000        0.00        0.00       0.000       0.0000
+log_k1          0.000        0.00        0.00       0.000       0.0000
+log_k2          0.000        0.00        0.00       0.000       0.0000
+log_tb          0.000        0.00        0.00       0.000       0.0000
+               f_cyan_ilr_2 f_JCZ38_qlogis log_k1 log_k2 log_tb
+cyan_0                0.000           0.00 0.0000 0.0000 0.0000
+log_k_JCZ38           0.000           0.00 0.0000 0.0000 0.0000
+log_k_J9Z38           0.000           0.00 0.0000 0.0000 0.0000
+log_k_JSE76           0.000           0.00 0.0000 0.0000 0.0000
+f_cyan_ilr_1          0.000           0.00 0.0000 0.0000 0.0000
+f_cyan_ilr_2          2.038           0.00 0.0000 0.0000 0.0000
+f_JCZ38_qlogis        0.000          10.33 0.0000 0.0000 0.0000
+log_k1                0.000           0.00 0.7006 0.0000 0.0000
+log_k2                0.000           0.00 0.0000 0.8928 0.0000
+log_tb                0.000           0.00 0.0000 0.0000 0.6773
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2427 2419  -1194
+
+Optimised parameters:
+                      est.      lower      upper
+cyan_0            101.9660  1.005e+02  1.035e+02
+log_k_JCZ38        -3.4698 -4.716e+00 -2.224e+00
+log_k_J9Z38        -5.0947 -5.740e+00 -4.450e+00
+log_k_JSE76        -5.5977 -6.321e+00 -4.875e+00
+f_cyan_ilr_1        0.6595  3.734e-01  9.456e-01
+f_cyan_ilr_2        0.5905  1.664e-01  1.015e+00
+f_JCZ38_qlogis     25.8627 -4.224e+05  4.225e+05
+log_k1             -3.0884 -3.453e+00 -2.723e+00
+log_k2             -4.3877 -4.778e+00 -3.998e+00
+log_tb              2.3057  1.715e+00  2.896e+00
+a.1                 3.3228         NA         NA
+SD.log_k_JCZ38      1.4071         NA         NA
+SD.log_k_J9Z38      0.5774         NA         NA
+SD.log_k_JSE76      0.6214         NA         NA
+SD.f_cyan_ilr_1     0.3058         NA         NA
+SD.f_cyan_ilr_2     0.3470         NA         NA
+SD.f_JCZ38_qlogis   0.0644         NA         NA
+SD.log_k1           0.3994         NA         NA
+SD.log_k2           0.4373         NA         NA
+SD.log_tb           0.6419         NA         NA
+
+Correlation is not available
+
+Random effects:
+                    est. lower upper
+SD.log_k_JCZ38    1.4071    NA    NA
+SD.log_k_J9Z38    0.5774    NA    NA
+SD.log_k_JSE76    0.6214    NA    NA
+SD.f_cyan_ilr_1   0.3058    NA    NA
+SD.f_cyan_ilr_2   0.3470    NA    NA
+SD.f_JCZ38_qlogis 0.0644    NA    NA
+SD.log_k1         0.3994    NA    NA
+SD.log_k2         0.4373    NA    NA
+SD.log_tb         0.6419    NA    NA
+
+Variance model:
+     est. lower upper
+a.1 3.323    NA    NA
+
+Backtransformed parameters:
+                      est.     lower     upper
+cyan_0           1.020e+02 1.005e+02 1.035e+02
+k_JCZ38          3.112e-02 8.951e-03 1.082e-01
+k_J9Z38          6.129e-03 3.216e-03 1.168e-02
+k_JSE76          3.706e-03 1.798e-03 7.639e-03
+f_cyan_to_JCZ38  5.890e-01        NA        NA
+f_cyan_to_J9Z38  2.318e-01        NA        NA
+f_JCZ38_to_JSE76 1.000e+00 0.000e+00 1.000e+00
+k1               4.558e-02 3.164e-02 6.565e-02
+k2               1.243e-02 8.417e-03 1.835e-02
+tb               1.003e+01 5.557e+00 1.811e+01
+
+Resulting formation fractions:
+                   ff
+cyan_JCZ38  5.890e-01
+cyan_J9Z38  2.318e-01
+cyan_sink   1.793e-01
+JCZ38_JSE76 1.000e+00
+JCZ38_sink  5.861e-12
+
+Estimated disappearance times:
+        DT50   DT90 DT50back DT50_k1 DT50_k2
+cyan   29.02 158.51    47.72   15.21   55.77
+JCZ38  22.27  73.98       NA      NA      NA
+J9Z38 113.09 375.69       NA      NA      NA
+JSE76 187.01 621.23       NA      NA      NA
+
+
+

+
+
+

Pathway 2 +

+ +Hierarchical FOMC path 2 fit with two-component error + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:54:36 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - (alpha/beta) * 1/((time/beta) + 1) * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * (alpha/beta) * 1/((time/beta) + 1) *
+           cyan - k_JCZ38 * JCZ38 + f_JSE76_to_JCZ38 * k_JSE76 * JSE76
+d_J9Z38/dt = + f_cyan_to_J9Z38 * (alpha/beta) * 1/((time/beta) + 1) *
+           cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 491.928 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+        cyan_0    log_k_JCZ38    log_k_J9Z38    log_k_JSE76   f_cyan_ilr_1 
+      102.4477        -1.8631        -5.1087        -2.5114         0.6826 
+  f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis      log_alpha       log_beta 
+        4.7944        15.9616        13.1566        -0.1564         2.9781 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_JCZ38 log_k_J9Z38 log_k_JSE76 f_cyan_ilr_1
+cyan_0          7.701       0.000       0.000       0.000       0.0000
+log_k_JCZ38     0.000       1.448       0.000       0.000       0.0000
+log_k_J9Z38     0.000       0.000       1.724       0.000       0.0000
+log_k_JSE76     0.000       0.000       0.000       3.659       0.0000
+f_cyan_ilr_1    0.000       0.000       0.000       0.000       0.6356
+f_cyan_ilr_2    0.000       0.000       0.000       0.000       0.0000
+f_JCZ38_qlogis  0.000       0.000       0.000       0.000       0.0000
+f_JSE76_qlogis  0.000       0.000       0.000       0.000       0.0000
+log_alpha       0.000       0.000       0.000       0.000       0.0000
+log_beta        0.000       0.000       0.000       0.000       0.0000
+               f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis log_alpha log_beta
+cyan_0                 0.00           0.00           0.00    0.0000   0.0000
+log_k_JCZ38            0.00           0.00           0.00    0.0000   0.0000
+log_k_J9Z38            0.00           0.00           0.00    0.0000   0.0000
+log_k_JSE76            0.00           0.00           0.00    0.0000   0.0000
+f_cyan_ilr_1           0.00           0.00           0.00    0.0000   0.0000
+f_cyan_ilr_2          10.32           0.00           0.00    0.0000   0.0000
+f_JCZ38_qlogis         0.00          12.23           0.00    0.0000   0.0000
+f_JSE76_qlogis         0.00           0.00          14.99    0.0000   0.0000
+log_alpha              0.00           0.00           0.00    0.3924   0.0000
+log_beta               0.00           0.00           0.00    0.0000   0.5639
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2249 2241  -1104
+
+Optimised parameters:
+                       est.      lower     upper
+cyan_0            101.55265  9.920e+01  103.9059
+log_k_JCZ38        -2.32302 -2.832e+00   -1.8142
+log_k_J9Z38        -5.13082 -5.942e+00   -4.3199
+log_k_JSE76        -3.01756 -4.262e+00   -1.7736
+f_cyan_ilr_1        0.70850  3.657e-01    1.0513
+f_cyan_ilr_2        0.95775  2.612e-01    1.6543
+f_JCZ38_qlogis      3.86105  9.248e-01    6.7973
+f_JSE76_qlogis      7.51583 -1.120e+02  127.0392
+log_alpha          -0.15308 -4.508e-01    0.1446
+log_beta            2.99165  2.711e+00    3.2720
+a.1                 2.04034  1.843e+00    2.2382
+b.1                 0.06924  5.749e-02    0.0810
+SD.log_k_JCZ38      0.50818  1.390e-01    0.8774
+SD.log_k_J9Z38      0.86597  2.652e-01    1.4667
+SD.log_k_JSE76      1.38092  4.864e-01    2.2754
+SD.f_cyan_ilr_1     0.38204  1.354e-01    0.6286
+SD.f_cyan_ilr_2     0.55129  7.198e-02    1.0306
+SD.f_JCZ38_qlogis   1.88457  1.711e-02    3.7520
+SD.f_JSE76_qlogis   2.64018 -2.450e+03 2454.9447
+SD.log_alpha        0.31860  1.047e-01    0.5325
+SD.log_beta         0.24195  1.273e-02    0.4712
+
+Correlation: 
+               cyan_0  l__JCZ3 l__J9Z3 l__JSE7 f_cy__1 f_cy__2 f_JCZ38 f_JSE76
+log_k_JCZ38    -0.0235                                                        
+log_k_J9Z38    -0.0442  0.0047                                                
+log_k_JSE76    -0.0023  0.0966  0.0006                                        
+f_cyan_ilr_1   -0.0032  0.0070 -0.0536 -0.0001                                
+f_cyan_ilr_2   -0.5189  0.0452  0.1152  0.0013 -0.0304                        
+f_JCZ38_qlogis  0.1088 -0.0848 -0.0240  0.0040 -0.0384 -0.2303                
+f_JSE76_qlogis -0.0545  0.1315  0.0195  0.0020  0.0252  0.1737 -0.5939        
+log_alpha      -0.0445  0.0056  0.0261  0.0019 -0.0055  0.0586 -0.0239 -0.0284
+log_beta       -0.2388  0.0163  0.0566  0.0040 -0.0078  0.2183 -0.0714 -0.0332
+               log_lph
+log_k_JCZ38           
+log_k_J9Z38           
+log_k_JSE76           
+f_cyan_ilr_1          
+f_cyan_ilr_2          
+f_JCZ38_qlogis        
+f_JSE76_qlogis        
+log_alpha             
+log_beta        0.2135
+
+Random effects:
+                    est.      lower     upper
+SD.log_k_JCZ38    0.5082  1.390e-01    0.8774
+SD.log_k_J9Z38    0.8660  2.652e-01    1.4667
+SD.log_k_JSE76    1.3809  4.864e-01    2.2754
+SD.f_cyan_ilr_1   0.3820  1.354e-01    0.6286
+SD.f_cyan_ilr_2   0.5513  7.198e-02    1.0306
+SD.f_JCZ38_qlogis 1.8846  1.711e-02    3.7520
+SD.f_JSE76_qlogis 2.6402 -2.450e+03 2454.9447
+SD.log_alpha      0.3186  1.047e-01    0.5325
+SD.log_beta       0.2420  1.273e-02    0.4712
+
+Variance model:
+       est.   lower upper
+a.1 2.04034 1.84252 2.238
+b.1 0.06924 0.05749 0.081
+
+Backtransformed parameters:
+                      est.     lower    upper
+cyan_0           1.016e+02 9.920e+01 103.9059
+k_JCZ38          9.798e-02 5.890e-02   0.1630
+k_J9Z38          5.912e-03 2.627e-03   0.0133
+k_JSE76          4.892e-02 1.410e-02   0.1697
+f_cyan_to_JCZ38  6.432e-01        NA       NA
+f_cyan_to_J9Z38  2.362e-01        NA       NA
+f_JCZ38_to_JSE76 9.794e-01 7.160e-01   0.9989
+f_JSE76_to_JCZ38 9.995e-01 2.268e-49   1.0000
+alpha            8.581e-01 6.371e-01   1.1556
+beta             1.992e+01 1.505e+01  26.3646
+
+Resulting formation fractions:
+                   ff
+cyan_JCZ38  0.6432301
+cyan_J9Z38  0.2361657
+cyan_sink   0.1206042
+JCZ38_JSE76 0.9793879
+JCZ38_sink  0.0206121
+JSE76_JCZ38 0.9994559
+JSE76_sink  0.0005441
+
+Estimated disappearance times:
+         DT50   DT90 DT50back
+cyan   24.759 271.61    81.76
+JCZ38   7.075  23.50       NA
+J9Z38 117.249 389.49       NA
+JSE76  14.169  47.07       NA
+
+
+

+ +Hierarchical DFOP path 2 fit with constant variance + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:55:32 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+           time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+           * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_JCZ38 * JCZ38 +
+           f_JSE76_to_JCZ38 * k_JSE76 * JSE76
+d_J9Z38/dt = + f_cyan_to_J9Z38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 548.554 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+        cyan_0    log_k_JCZ38    log_k_J9Z38    log_k_JSE76   f_cyan_ilr_1 
+      102.4380        -2.3107        -5.3123        -3.7120         0.6757 
+  f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis         log_k1         log_k2 
+        1.1439        13.1194        12.3492        -1.9317        -4.4557 
+      g_qlogis 
+       -0.5644 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_JCZ38 log_k_J9Z38 log_k_JSE76 f_cyan_ilr_1
+cyan_0          4.591      0.0000       0.000         0.0       0.0000
+log_k_JCZ38     0.000      0.7966       0.000         0.0       0.0000
+log_k_J9Z38     0.000      0.0000       1.561         0.0       0.0000
+log_k_JSE76     0.000      0.0000       0.000         0.8       0.0000
+f_cyan_ilr_1    0.000      0.0000       0.000         0.0       0.6349
+f_cyan_ilr_2    0.000      0.0000       0.000         0.0       0.0000
+f_JCZ38_qlogis  0.000      0.0000       0.000         0.0       0.0000
+f_JSE76_qlogis  0.000      0.0000       0.000         0.0       0.0000
+log_k1          0.000      0.0000       0.000         0.0       0.0000
+log_k2          0.000      0.0000       0.000         0.0       0.0000
+g_qlogis        0.000      0.0000       0.000         0.0       0.0000
+               f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis log_k1 log_k2
+cyan_0                0.000           0.00           0.00  0.000 0.0000
+log_k_JCZ38           0.000           0.00           0.00  0.000 0.0000
+log_k_J9Z38           0.000           0.00           0.00  0.000 0.0000
+log_k_JSE76           0.000           0.00           0.00  0.000 0.0000
+f_cyan_ilr_1          0.000           0.00           0.00  0.000 0.0000
+f_cyan_ilr_2          1.797           0.00           0.00  0.000 0.0000
+f_JCZ38_qlogis        0.000          13.86           0.00  0.000 0.0000
+f_JSE76_qlogis        0.000           0.00          13.91  0.000 0.0000
+log_k1                0.000           0.00           0.00  1.106 0.0000
+log_k2                0.000           0.00           0.00  0.000 0.6141
+g_qlogis              0.000           0.00           0.00  0.000 0.0000
+               g_qlogis
+cyan_0            0.000
+log_k_JCZ38       0.000
+log_k_J9Z38       0.000
+log_k_JSE76       0.000
+f_cyan_ilr_1      0.000
+f_cyan_ilr_2      0.000
+f_JCZ38_qlogis    0.000
+f_JSE76_qlogis    0.000
+log_k1            0.000
+log_k2            0.000
+g_qlogis          1.595
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2288 2280  -1122
+
+Optimised parameters:
+                      est.      lower      upper
+cyan_0            102.7204  1.014e+02  1.040e+02
+log_k_JCZ38        -2.8925 -4.044e+00 -1.741e+00
+log_k_J9Z38        -5.1430 -5.828e+00 -4.457e+00
+log_k_JSE76        -3.5577 -4.174e+00 -2.941e+00
+f_cyan_ilr_1        0.6929  3.788e-01  1.007e+00
+f_cyan_ilr_2        0.6066  5.342e-02  1.160e+00
+f_JCZ38_qlogis      9.8071 -2.819e+03  2.838e+03
+f_JSE76_qlogis      2.2229  5.684e-01  3.877e+00
+log_k1             -1.9339 -2.609e+00 -1.258e+00
+log_k2             -4.4709 -4.935e+00 -4.007e+00
+g_qlogis           -0.4987 -1.373e+00  3.757e-01
+a.1                 2.7368  2.545e+00  2.928e+00
+SD.log_k_JCZ38      1.2747  4.577e-01  2.092e+00
+SD.log_k_J9Z38      0.6758  1.418e-01  1.210e+00
+SD.log_k_JSE76      0.5869  1.169e-01  1.057e+00
+SD.f_cyan_ilr_1     0.3392  1.161e-01  5.622e-01
+SD.f_cyan_ilr_2     0.4200  8.501e-02  7.550e-01
+SD.f_JCZ38_qlogis   0.8511 -1.137e+06  1.137e+06
+SD.f_JSE76_qlogis   0.3767 -5.238e-01  1.277e+00
+SD.log_k1           0.7475  2.601e-01  1.235e+00
+SD.log_k2           0.5179  1.837e-01  8.521e-01
+SD.g_qlogis         0.9817  3.553e-01  1.608e+00
+
+Correlation: 
+               cyan_0  l__JCZ3 l__J9Z3 l__JSE7 f_cy__1 f_cy__2 f_JCZ38 f_JSE76
+log_k_JCZ38    -0.0351                                                        
+log_k_J9Z38    -0.0541  0.0043                                                
+log_k_JSE76    -0.0078  0.0900 -0.0014                                        
+f_cyan_ilr_1   -0.0249  0.0268 -0.0962  0.0000                                
+f_cyan_ilr_2   -0.3560  0.0848  0.1545 -0.0022  0.0463                        
+f_JCZ38_qlogis  0.2005 -0.1226 -0.0347  0.0514 -0.1840 -0.5906                
+f_JSE76_qlogis -0.1638  0.1307  0.0266  0.0001  0.1645  0.5181 -0.9297        
+log_k1          0.0881 -0.0071  0.0005 -0.0070 -0.0064 -0.0346  0.0316 -0.0341
+log_k2          0.0238 -0.0003  0.0082 -0.0022 -0.0017 -0.0017 -0.0002 -0.0076
+g_qlogis        0.0198 -0.0002 -0.0109  0.0034  0.0017 -0.0176  0.0044  0.0051
+               log_k1  log_k2 
+log_k_JCZ38                   
+log_k_J9Z38                   
+log_k_JSE76                   
+f_cyan_ilr_1                  
+f_cyan_ilr_2                  
+f_JCZ38_qlogis                
+f_JSE76_qlogis                
+log_k1                        
+log_k2          0.0276        
+g_qlogis       -0.0283 -0.0309
+
+Random effects:
+                    est.      lower     upper
+SD.log_k_JCZ38    1.2747  4.577e-01 2.092e+00
+SD.log_k_J9Z38    0.6758  1.418e-01 1.210e+00
+SD.log_k_JSE76    0.5869  1.169e-01 1.057e+00
+SD.f_cyan_ilr_1   0.3392  1.161e-01 5.622e-01
+SD.f_cyan_ilr_2   0.4200  8.501e-02 7.550e-01
+SD.f_JCZ38_qlogis 0.8511 -1.137e+06 1.137e+06
+SD.f_JSE76_qlogis 0.3767 -5.238e-01 1.277e+00
+SD.log_k1         0.7475  2.601e-01 1.235e+00
+SD.log_k2         0.5179  1.837e-01 8.521e-01
+SD.g_qlogis       0.9817  3.553e-01 1.608e+00
+
+Variance model:
+     est. lower upper
+a.1 2.737 2.545 2.928
+
+Backtransformed parameters:
+                      est.     lower     upper
+cyan_0           102.72037 1.014e+02 104.00464
+k_JCZ38            0.05544 1.752e-02   0.17539
+k_J9Z38            0.00584 2.942e-03   0.01159
+k_JSE76            0.02850 1.539e-02   0.05279
+f_cyan_to_JCZ38    0.59995        NA        NA
+f_cyan_to_J9Z38    0.22519        NA        NA
+f_JCZ38_to_JSE76   0.99994 0.000e+00   1.00000
+f_JSE76_to_JCZ38   0.90229 6.384e-01   0.97971
+k1                 0.14459 7.357e-02   0.28414
+k2                 0.01144 7.192e-03   0.01819
+g                  0.37784 2.021e-01   0.59284
+
+Resulting formation fractions:
+                   ff
+cyan_JCZ38  5.999e-01
+cyan_J9Z38  2.252e-01
+cyan_sink   1.749e-01
+JCZ38_JSE76 9.999e-01
+JCZ38_sink  5.506e-05
+JSE76_JCZ38 9.023e-01
+JSE76_sink  9.771e-02
+
+Estimated disappearance times:
+        DT50   DT90 DT50back DT50_k1 DT50_k2
+cyan   21.93 159.83    48.11   4.794    60.6
+JCZ38  12.50  41.53       NA      NA      NA
+J9Z38 118.69 394.27       NA      NA      NA
+JSE76  24.32  80.78       NA      NA      NA
+
+
+

+ +Hierarchical DFOP path 2 fit with two-component error + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:57:56 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+           time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+           * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_JCZ38 * JCZ38 +
+           f_JSE76_to_JCZ38 * k_JSE76 * JSE76
+d_J9Z38/dt = + f_cyan_to_J9Z38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 691.67 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+        cyan_0    log_k_JCZ38    log_k_J9Z38    log_k_JSE76   f_cyan_ilr_1 
+      101.7393        -1.4493        -5.0118        -2.1269         0.6720 
+  f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis         log_k1         log_k2 
+        7.3362        13.4423        13.2659        -2.0061        -4.5527 
+      g_qlogis 
+       -0.5806 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_JCZ38 log_k_J9Z38 log_k_JSE76 f_cyan_ilr_1
+cyan_0          5.604        0.00       0.000       0.000       0.0000
+log_k_JCZ38     0.000        2.77       0.000       0.000       0.0000
+log_k_J9Z38     0.000        0.00       1.662       0.000       0.0000
+log_k_JSE76     0.000        0.00       0.000       5.021       0.0000
+f_cyan_ilr_1    0.000        0.00       0.000       0.000       0.6519
+f_cyan_ilr_2    0.000        0.00       0.000       0.000       0.0000
+f_JCZ38_qlogis  0.000        0.00       0.000       0.000       0.0000
+f_JSE76_qlogis  0.000        0.00       0.000       0.000       0.0000
+log_k1          0.000        0.00       0.000       0.000       0.0000
+log_k2          0.000        0.00       0.000       0.000       0.0000
+g_qlogis        0.000        0.00       0.000       0.000       0.0000
+               f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis log_k1 log_k2
+cyan_0                 0.00           0.00           0.00 0.0000 0.0000
+log_k_JCZ38            0.00           0.00           0.00 0.0000 0.0000
+log_k_J9Z38            0.00           0.00           0.00 0.0000 0.0000
+log_k_JSE76            0.00           0.00           0.00 0.0000 0.0000
+f_cyan_ilr_1           0.00           0.00           0.00 0.0000 0.0000
+f_cyan_ilr_2          13.37           0.00           0.00 0.0000 0.0000
+f_JCZ38_qlogis         0.00          14.21           0.00 0.0000 0.0000
+f_JSE76_qlogis         0.00           0.00          14.58 0.0000 0.0000
+log_k1                 0.00           0.00           0.00 0.8453 0.0000
+log_k2                 0.00           0.00           0.00 0.0000 0.5969
+g_qlogis               0.00           0.00           0.00 0.0000 0.0000
+               g_qlogis
+cyan_0             0.00
+log_k_JCZ38        0.00
+log_k_J9Z38        0.00
+log_k_JSE76        0.00
+f_cyan_ilr_1       0.00
+f_cyan_ilr_2       0.00
+f_JCZ38_qlogis     0.00
+f_JSE76_qlogis     0.00
+log_k1             0.00
+log_k2             0.00
+g_qlogis           1.69
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2234 2226  -1095
+
+Optimised parameters:
+                       est.     lower     upper
+cyan_0            101.25496  99.14662 103.36331
+log_k_JCZ38        -2.55593  -3.32972  -1.78215
+log_k_J9Z38        -5.07103  -5.85423  -4.28783
+log_k_JSE76        -3.25468  -4.17577  -2.33360
+f_cyan_ilr_1        0.70139   0.35924   1.04355
+f_cyan_ilr_2        1.07712   0.17789   1.97636
+f_JCZ38_qlogis      3.57483   0.05990   7.08976
+f_JSE76_qlogis      4.54884  -7.25628  16.35395
+log_k1             -2.38201  -2.51639  -2.24763
+log_k2             -4.66741  -4.91865  -4.41617
+g_qlogis           -0.28446  -1.14192   0.57300
+a.1                 2.05925   1.86481   2.25369
+b.1                 0.06172   0.05062   0.07282
+SD.log_k_JCZ38      0.81137   0.25296   1.36977
+SD.log_k_J9Z38      0.83542   0.25395   1.41689
+SD.log_k_JSE76      0.97903   0.30100   1.65707
+SD.f_cyan_ilr_1     0.37878   0.13374   0.62382
+SD.f_cyan_ilr_2     0.67274   0.10102   1.24446
+SD.f_JCZ38_qlogis   1.35327  -0.42359   3.13012
+SD.f_JSE76_qlogis   1.43956 -19.14972  22.02884
+SD.log_k2           0.25329   0.07521   0.43138
+SD.g_qlogis         0.95167   0.35149   1.55184
+
+Correlation: 
+               cyan_0  l__JCZ3 l__J9Z3 l__JSE7 f_cy__1 f_cy__2 f_JCZ38 f_JSE76
+log_k_JCZ38    -0.0265                                                        
+log_k_J9Z38    -0.0392  0.0024                                                
+log_k_JSE76     0.0011  0.1220 -0.0016                                        
+f_cyan_ilr_1   -0.0161  0.0217 -0.0552  0.0034                                
+f_cyan_ilr_2   -0.4718  0.0829  0.1102  0.0042  0.0095                        
+f_JCZ38_qlogis  0.1609 -0.1318 -0.0277  0.0081 -0.1040 -0.4559                
+f_JSE76_qlogis -0.1289  0.1494  0.0219  0.0012  0.1004  0.4309 -0.8543        
+log_k1          0.2618 -0.0739 -0.0167 -0.0148 -0.0444 -0.2768  0.3518 -0.3818
+log_k2          0.0603 -0.0217  0.0174 -0.0058 -0.0197 -0.0533  0.0923 -0.1281
+g_qlogis        0.0362  0.0115 -0.0111  0.0040  0.0095 -0.0116 -0.0439  0.0651
+               log_k1  log_k2 
+log_k_JCZ38                   
+log_k_J9Z38                   
+log_k_JSE76                   
+f_cyan_ilr_1                  
+f_cyan_ilr_2                  
+f_JCZ38_qlogis                
+f_JSE76_qlogis                
+log_k1                        
+log_k2          0.3269        
+g_qlogis       -0.1656 -0.0928
+
+Random effects:
+                    est.     lower   upper
+SD.log_k_JCZ38    0.8114   0.25296  1.3698
+SD.log_k_J9Z38    0.8354   0.25395  1.4169
+SD.log_k_JSE76    0.9790   0.30100  1.6571
+SD.f_cyan_ilr_1   0.3788   0.13374  0.6238
+SD.f_cyan_ilr_2   0.6727   0.10102  1.2445
+SD.f_JCZ38_qlogis 1.3533  -0.42359  3.1301
+SD.f_JSE76_qlogis 1.4396 -19.14972 22.0288
+SD.log_k2         0.2533   0.07521  0.4314
+SD.g_qlogis       0.9517   0.35149  1.5518
+
+Variance model:
+       est.   lower   upper
+a.1 2.05925 1.86481 2.25369
+b.1 0.06172 0.05062 0.07282
+
+Backtransformed parameters:
+                      est.     lower     upper
+cyan_0           1.013e+02 9.915e+01 103.36331
+k_JCZ38          7.762e-02 3.580e-02   0.16828
+k_J9Z38          6.276e-03 2.868e-03   0.01373
+k_JSE76          3.859e-02 1.536e-02   0.09695
+f_cyan_to_JCZ38  6.520e-01        NA        NA
+f_cyan_to_J9Z38  2.418e-01        NA        NA
+f_JCZ38_to_JSE76 9.727e-01 5.150e-01   0.99917
+f_JSE76_to_JCZ38 9.895e-01 7.052e-04   1.00000
+k1               9.236e-02 8.075e-02   0.10565
+k2               9.397e-03 7.309e-03   0.01208
+g                4.294e-01 2.420e-01   0.63945
+
+Resulting formation fractions:
+                 ff
+cyan_JCZ38  0.65203
+cyan_J9Z38  0.24181
+cyan_sink   0.10616
+JCZ38_JSE76 0.97274
+JCZ38_sink  0.02726
+JSE76_JCZ38 0.98953
+JSE76_sink  0.01047
+
+Estimated disappearance times:
+        DT50   DT90 DT50back DT50_k1 DT50_k2
+cyan   24.26 185.34    55.79   7.504   73.77
+JCZ38   8.93  29.66       NA      NA      NA
+J9Z38 110.45 366.89       NA      NA      NA
+JSE76  17.96  59.66       NA      NA      NA
+
+
+

+ +Hierarchical SFORB path 2 fit with constant variance + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:55:26 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan_free/dt = - k_cyan_free * cyan_free - k_cyan_free_bound *
+           cyan_free + k_cyan_bound_free * cyan_bound
+d_cyan_bound/dt = + k_cyan_free_bound * cyan_free - k_cyan_bound_free *
+           cyan_bound
+d_JCZ38/dt = + f_cyan_free_to_JCZ38 * k_cyan_free * cyan_free - k_JCZ38
+           * JCZ38 + f_JSE76_to_JCZ38 * k_JSE76 * JSE76
+d_J9Z38/dt = + f_cyan_free_to_J9Z38 * k_cyan_free * cyan_free - k_J9Z38
+           * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 542.162 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+          cyan_free_0       log_k_cyan_free log_k_cyan_free_bound 
+             102.4395               -2.7673               -2.8942 
+log_k_cyan_bound_free           log_k_JCZ38           log_k_J9Z38 
+              -3.6201               -2.3107               -5.3123 
+          log_k_JSE76          f_cyan_ilr_1          f_cyan_ilr_2 
+              -3.7120                0.6754                1.1448 
+       f_JCZ38_qlogis        f_JSE76_qlogis 
+              14.8408               15.4734 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+                      cyan_free_0 log_k_cyan_free log_k_cyan_free_bound
+cyan_free_0                 4.589          0.0000                  0.00
+log_k_cyan_free             0.000          0.4849                  0.00
+log_k_cyan_free_bound       0.000          0.0000                  1.62
+log_k_cyan_bound_free       0.000          0.0000                  0.00
+log_k_JCZ38                 0.000          0.0000                  0.00
+log_k_J9Z38                 0.000          0.0000                  0.00
+log_k_JSE76                 0.000          0.0000                  0.00
+f_cyan_ilr_1                0.000          0.0000                  0.00
+f_cyan_ilr_2                0.000          0.0000                  0.00
+f_JCZ38_qlogis              0.000          0.0000                  0.00
+f_JSE76_qlogis              0.000          0.0000                  0.00
+                      log_k_cyan_bound_free log_k_JCZ38 log_k_J9Z38 log_k_JSE76
+cyan_free_0                           0.000      0.0000       0.000         0.0
+log_k_cyan_free                       0.000      0.0000       0.000         0.0
+log_k_cyan_free_bound                 0.000      0.0000       0.000         0.0
+log_k_cyan_bound_free                 1.197      0.0000       0.000         0.0
+log_k_JCZ38                           0.000      0.7966       0.000         0.0
+log_k_J9Z38                           0.000      0.0000       1.561         0.0
+log_k_JSE76                           0.000      0.0000       0.000         0.8
+f_cyan_ilr_1                          0.000      0.0000       0.000         0.0
+f_cyan_ilr_2                          0.000      0.0000       0.000         0.0
+f_JCZ38_qlogis                        0.000      0.0000       0.000         0.0
+f_JSE76_qlogis                        0.000      0.0000       0.000         0.0
+                      f_cyan_ilr_1 f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis
+cyan_free_0                 0.0000        0.000            0.0           0.00
+log_k_cyan_free             0.0000        0.000            0.0           0.00
+log_k_cyan_free_bound       0.0000        0.000            0.0           0.00
+log_k_cyan_bound_free       0.0000        0.000            0.0           0.00
+log_k_JCZ38                 0.0000        0.000            0.0           0.00
+log_k_J9Z38                 0.0000        0.000            0.0           0.00
+log_k_JSE76                 0.0000        0.000            0.0           0.00
+f_cyan_ilr_1                0.6349        0.000            0.0           0.00
+f_cyan_ilr_2                0.0000        1.797            0.0           0.00
+f_JCZ38_qlogis              0.0000        0.000           15.6           0.00
+f_JSE76_qlogis              0.0000        0.000            0.0          17.52
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2283 2275  -1120
+
+Optimised parameters:
+                             est.     lower    upper
+cyan_free_0              102.6517 101.40815 103.8952
+log_k_cyan_free           -2.8729  -3.18649  -2.5593
+log_k_cyan_free_bound     -2.7803  -3.60525  -1.9552
+log_k_cyan_bound_free     -3.5845  -4.16644  -3.0026
+log_k_JCZ38               -2.3411  -2.89698  -1.7852
+log_k_J9Z38               -5.2487  -6.01271  -4.4847
+log_k_JSE76               -3.0259  -4.28274  -1.7690
+f_cyan_ilr_1               0.7289   0.38214   1.0756
+f_cyan_ilr_2               0.6891   0.18277   1.1954
+f_JCZ38_qlogis             4.2162   0.47015   7.9622
+f_JSE76_qlogis             5.8911 -20.19088  31.9730
+a.1                        2.7159   2.52587   2.9060
+SD.log_k_cyan_free         0.3354   0.10979   0.5610
+SD.log_k_cyan_free_bound   0.9061   0.30969   1.5025
+SD.log_k_cyan_bound_free   0.6376   0.21229   1.0628
+SD.log_k_JCZ38             0.5499   0.14533   0.9545
+SD.log_k_J9Z38             0.7457   0.15106   1.3404
+SD.log_k_JSE76             1.3822   0.47329   2.2912
+SD.f_cyan_ilr_1            0.3820   0.13280   0.6313
+SD.f_cyan_ilr_2            0.4317   0.06803   0.7953
+SD.f_JCZ38_qlogis          1.8258  -0.25423   3.9059
+SD.f_JSE76_qlogis          2.2348 -83.33679  87.8065
+
+Correlation: 
+                      cyn_f_0 lg_k_c_ lg_k_cyn_f_ lg_k_cyn_b_ l__JCZ3 l__J9Z3
+log_k_cyan_free        0.1944                                                
+log_k_cyan_free_bound  0.0815  0.0814                                        
+log_k_cyan_bound_free  0.0106  0.0426  0.0585                                
+log_k_JCZ38           -0.0231 -0.0106 -0.0089     -0.0051                    
+log_k_J9Z38           -0.0457 -0.0108  0.0019      0.0129      0.0032        
+log_k_JSE76           -0.0054 -0.0024 -0.0017     -0.0005      0.1108  0.0009
+f_cyan_ilr_1           0.0051 -0.0005 -0.0035     -0.0056      0.0131 -0.0967
+f_cyan_ilr_2          -0.3182 -0.0771 -0.0309     -0.0038      0.0680  0.1643
+f_JCZ38_qlogis         0.0834  0.0369  0.0302      0.0172     -0.1145 -0.0204
+f_JSE76_qlogis        -0.0553 -0.0365 -0.0441     -0.0414      0.1579  0.0175
+                      l__JSE7 f_cy__1 f_cy__2 f_JCZ38
+log_k_cyan_free                                      
+log_k_cyan_free_bound                                
+log_k_cyan_bound_free                                
+log_k_JCZ38                                          
+log_k_J9Z38                                          
+log_k_JSE76                                          
+f_cyan_ilr_1          -0.0002                        
+f_cyan_ilr_2           0.0020 -0.0415                
+f_JCZ38_qlogis         0.0052 -0.0665 -0.3437        
+f_JSE76_qlogis         0.0066  0.0635  0.3491 -0.7487
+
+Random effects:
+                           est.     lower   upper
+SD.log_k_cyan_free       0.3354   0.10979  0.5610
+SD.log_k_cyan_free_bound 0.9061   0.30969  1.5025
+SD.log_k_cyan_bound_free 0.6376   0.21229  1.0628
+SD.log_k_JCZ38           0.5499   0.14533  0.9545
+SD.log_k_J9Z38           0.7457   0.15106  1.3404
+SD.log_k_JSE76           1.3822   0.47329  2.2912
+SD.f_cyan_ilr_1          0.3820   0.13280  0.6313
+SD.f_cyan_ilr_2          0.4317   0.06803  0.7953
+SD.f_JCZ38_qlogis        1.8258  -0.25423  3.9059
+SD.f_JSE76_qlogis        2.2348 -83.33679 87.8065
+
+Variance model:
+     est. lower upper
+a.1 2.716 2.526 2.906
+
+Backtransformed parameters:
+                          est.     lower     upper
+cyan_free_0          1.027e+02 1.014e+02 103.89517
+k_cyan_free          5.654e-02 4.132e-02   0.07736
+k_cyan_free_bound    6.202e-02 2.718e-02   0.14153
+k_cyan_bound_free    2.775e-02 1.551e-02   0.04966
+k_JCZ38              9.622e-02 5.519e-02   0.16777
+k_J9Z38              5.254e-03 2.447e-03   0.01128
+k_JSE76              4.852e-02 1.380e-02   0.17051
+f_cyan_free_to_JCZ38 6.197e-01 5.643e-01   0.84429
+f_cyan_free_to_J9Z38 2.211e-01 5.643e-01   0.84429
+f_JCZ38_to_JSE76     9.855e-01 6.154e-01   0.99965
+f_JSE76_to_JCZ38     9.972e-01 1.703e-09   1.00000
+
+Estimated Eigenvalues of SFORB model(s):
+cyan_b1 cyan_b2  cyan_g 
+0.13466 0.01165 0.36490 
+
+Resulting formation fractions:
+                      ff
+cyan_free_JCZ38 0.619745
+cyan_free_J9Z38 0.221083
+cyan_free_sink  0.159172
+cyan_free       1.000000
+JCZ38_JSE76     0.985460
+JCZ38_sink      0.014540
+JSE76_JCZ38     0.997244
+JSE76_sink      0.002756
+
+Estimated disappearance times:
+         DT50   DT90 DT50back DT50_cyan_b1 DT50_cyan_b2
+cyan   23.293 158.67    47.77        5.147         59.5
+JCZ38   7.203  23.93       NA           NA           NA
+J9Z38 131.918 438.22       NA           NA           NA
+JSE76  14.287  47.46       NA           NA           NA
+
+
+

+ +Hierarchical SFORB path 2 fit with two-component error + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 07:58:06 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan_free/dt = - k_cyan_free * cyan_free - k_cyan_free_bound *
+           cyan_free + k_cyan_bound_free * cyan_bound
+d_cyan_bound/dt = + k_cyan_free_bound * cyan_free - k_cyan_bound_free *
+           cyan_bound
+d_JCZ38/dt = + f_cyan_free_to_JCZ38 * k_cyan_free * cyan_free - k_JCZ38
+           * JCZ38 + f_JSE76_to_JCZ38 * k_JSE76 * JSE76
+d_J9Z38/dt = + f_cyan_free_to_J9Z38 * k_cyan_free * cyan_free - k_J9Z38
+           * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 701.582 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+          cyan_free_0       log_k_cyan_free log_k_cyan_free_bound 
+             101.7511               -2.8370               -3.0162 
+log_k_cyan_bound_free           log_k_JCZ38           log_k_J9Z38 
+              -3.6600               -2.2988               -5.3129 
+          log_k_JSE76          f_cyan_ilr_1          f_cyan_ilr_2 
+              -3.6991                0.6722                4.8596 
+       f_JCZ38_qlogis        f_JSE76_qlogis 
+              13.4678               14.2149 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+                      cyan_free_0 log_k_cyan_free log_k_cyan_free_bound
+cyan_free_0                 5.629           0.000                 0.000
+log_k_cyan_free             0.000           0.446                 0.000
+log_k_cyan_free_bound       0.000           0.000                 1.449
+log_k_cyan_bound_free       0.000           0.000                 0.000
+log_k_JCZ38                 0.000           0.000                 0.000
+log_k_J9Z38                 0.000           0.000                 0.000
+log_k_JSE76                 0.000           0.000                 0.000
+f_cyan_ilr_1                0.000           0.000                 0.000
+f_cyan_ilr_2                0.000           0.000                 0.000
+f_JCZ38_qlogis              0.000           0.000                 0.000
+f_JSE76_qlogis              0.000           0.000                 0.000
+                      log_k_cyan_bound_free log_k_JCZ38 log_k_J9Z38 log_k_JSE76
+cyan_free_0                           0.000      0.0000       0.000      0.0000
+log_k_cyan_free                       0.000      0.0000       0.000      0.0000
+log_k_cyan_free_bound                 0.000      0.0000       0.000      0.0000
+log_k_cyan_bound_free                 1.213      0.0000       0.000      0.0000
+log_k_JCZ38                           0.000      0.7801       0.000      0.0000
+log_k_J9Z38                           0.000      0.0000       1.575      0.0000
+log_k_JSE76                           0.000      0.0000       0.000      0.8078
+f_cyan_ilr_1                          0.000      0.0000       0.000      0.0000
+f_cyan_ilr_2                          0.000      0.0000       0.000      0.0000
+f_JCZ38_qlogis                        0.000      0.0000       0.000      0.0000
+f_JSE76_qlogis                        0.000      0.0000       0.000      0.0000
+                      f_cyan_ilr_1 f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis
+cyan_free_0                 0.0000        0.000           0.00           0.00
+log_k_cyan_free             0.0000        0.000           0.00           0.00
+log_k_cyan_free_bound       0.0000        0.000           0.00           0.00
+log_k_cyan_bound_free       0.0000        0.000           0.00           0.00
+log_k_JCZ38                 0.0000        0.000           0.00           0.00
+log_k_J9Z38                 0.0000        0.000           0.00           0.00
+log_k_JSE76                 0.0000        0.000           0.00           0.00
+f_cyan_ilr_1                0.6518        0.000           0.00           0.00
+f_cyan_ilr_2                0.0000        9.981           0.00           0.00
+f_JCZ38_qlogis              0.0000        0.000          14.26           0.00
+f_JSE76_qlogis              0.0000        0.000           0.00          16.17
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2240 2231  -1098
+
+Optimised parameters:
+                              est.      lower      upper
+cyan_free_0              100.73014  9.873e+01  1.027e+02
+log_k_cyan_free           -3.19634 -3.641e+00 -2.752e+00
+log_k_cyan_free_bound     -3.43533 -3.674e+00 -3.197e+00
+log_k_cyan_bound_free     -3.83282 -4.163e+00 -3.503e+00
+log_k_JCZ38               -2.51065 -3.225e+00 -1.796e+00
+log_k_J9Z38               -5.02539 -5.825e+00 -4.226e+00
+log_k_JSE76               -3.24777 -4.163e+00 -2.333e+00
+f_cyan_ilr_1               0.70640  3.562e-01  1.057e+00
+f_cyan_ilr_2               1.42704  3.170e-01  2.537e+00
+f_JCZ38_qlogis             2.84779  1.042e+00  4.654e+00
+f_JSE76_qlogis             8.63674 -6.407e+02  6.580e+02
+a.1                        2.07082  1.877e+00  2.265e+00
+b.1                        0.06227  5.098e-02  7.355e-02
+SD.log_k_cyan_free         0.49674  1.865e-01  8.069e-01
+SD.log_k_cyan_bound_free   0.28537  6.809e-02  5.027e-01
+SD.log_k_JCZ38             0.74846  2.305e-01  1.266e+00
+SD.log_k_J9Z38             0.86077  2.713e-01  1.450e+00
+SD.log_k_JSE76             0.97613  3.030e-01  1.649e+00
+SD.f_cyan_ilr_1            0.38994  1.382e-01  6.417e-01
+SD.f_cyan_ilr_2            0.82869  3.917e-02  1.618e+00
+SD.f_JCZ38_qlogis          1.05000 -2.808e-02  2.128e+00
+SD.f_JSE76_qlogis          0.44681 -3.985e+05  3.985e+05
+
+Correlation: 
+                      cyn_f_0 lg_k_c_ lg_k_cyn_f_ lg_k_cyn_b_ l__JCZ3 l__J9Z3
+log_k_cyan_free        0.0936                                                
+log_k_cyan_free_bound  0.1302  0.1627                                        
+log_k_cyan_bound_free  0.0029  0.0525  0.5181                                
+log_k_JCZ38           -0.0116 -0.0077 -0.0430     -0.0236                    
+log_k_J9Z38           -0.0192 -0.0077 -0.0048      0.0229     -0.0005        
+log_k_JSE76            0.0007 -0.0020 -0.0134     -0.0072      0.1225 -0.0016
+f_cyan_ilr_1          -0.0118 -0.0027 -0.0132     -0.0118      0.0127 -0.0505
+f_cyan_ilr_2          -0.4643 -0.0762 -0.1245      0.0137      0.0497  0.1003
+f_JCZ38_qlogis         0.0710  0.0371  0.1826      0.0925     -0.0869 -0.0130
+f_JSE76_qlogis        -0.0367 -0.0270 -0.2274     -0.1865      0.1244  0.0098
+                      l__JSE7 f_cy__1 f_cy__2 f_JCZ38
+log_k_cyan_free                                      
+log_k_cyan_free_bound                                
+log_k_cyan_bound_free                                
+log_k_JCZ38                                          
+log_k_J9Z38                                          
+log_k_JSE76                                          
+f_cyan_ilr_1           0.0036                        
+f_cyan_ilr_2           0.0050 -0.0201                
+f_JCZ38_qlogis         0.0142 -0.0529 -0.2698        
+f_JSE76_qlogis         0.0064  0.0345  0.2015 -0.7058
+
+Random effects:
+                           est.      lower     upper
+SD.log_k_cyan_free       0.4967  1.865e-01 8.069e-01
+SD.log_k_cyan_bound_free 0.2854  6.809e-02 5.027e-01
+SD.log_k_JCZ38           0.7485  2.305e-01 1.266e+00
+SD.log_k_J9Z38           0.8608  2.713e-01 1.450e+00
+SD.log_k_JSE76           0.9761  3.030e-01 1.649e+00
+SD.f_cyan_ilr_1          0.3899  1.382e-01 6.417e-01
+SD.f_cyan_ilr_2          0.8287  3.917e-02 1.618e+00
+SD.f_JCZ38_qlogis        1.0500 -2.808e-02 2.128e+00
+SD.f_JSE76_qlogis        0.4468 -3.985e+05 3.985e+05
+
+Variance model:
+       est.   lower   upper
+a.1 2.07082 1.87680 2.26483
+b.1 0.06227 0.05098 0.07355
+
+Backtransformed parameters:
+                          est.      lower     upper
+cyan_free_0          1.007e+02  9.873e+01 102.72898
+k_cyan_free          4.091e-02  2.623e-02   0.06382
+k_cyan_free_bound    3.221e-02  2.537e-02   0.04090
+k_cyan_bound_free    2.165e-02  1.557e-02   0.03011
+k_JCZ38              8.122e-02  3.975e-02   0.16594
+k_J9Z38              6.569e-03  2.954e-03   0.01461
+k_JSE76              3.886e-02  1.556e-02   0.09703
+f_cyan_free_to_JCZ38 6.785e-01  6.102e-01   0.97309
+f_cyan_free_to_J9Z38 2.498e-01  6.102e-01   0.97309
+f_JCZ38_to_JSE76     9.452e-01  7.392e-01   0.99056
+f_JSE76_to_JCZ38     9.998e-01 5.580e-279   1.00000
+
+Estimated Eigenvalues of SFORB model(s):
+cyan_b1 cyan_b2  cyan_g 
+0.08426 0.01051 0.41220 
+
+Resulting formation fractions:
+                       ff
+cyan_free_JCZ38 0.6784541
+cyan_free_J9Z38 0.2498405
+cyan_free_sink  0.0717054
+cyan_free       1.0000000
+JCZ38_JSE76     0.9452043
+JCZ38_sink      0.0547957
+JSE76_JCZ38     0.9998226
+JSE76_sink      0.0001774
+
+Estimated disappearance times:
+         DT50   DT90 DT50back DT50_cyan_b1 DT50_cyan_b2
+cyan   25.237 168.51    50.73        8.226        65.95
+JCZ38   8.535  28.35       NA           NA           NA
+J9Z38 105.517 350.52       NA           NA           NA
+JSE76  17.837  59.25       NA           NA           NA
+
+
+

+
+
+

Pathway 2, refined fits +

+ +Hierarchical FOMC path 2 fit with reduced random effects, two-component +error + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:11:01 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - (alpha/beta) * 1/((time/beta) + 1) * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * (alpha/beta) * 1/((time/beta) + 1) *
+           cyan - k_JCZ38 * JCZ38 + f_JSE76_to_JCZ38 * k_JSE76 * JSE76
+d_J9Z38/dt = + f_cyan_to_J9Z38 * (alpha/beta) * 1/((time/beta) + 1) *
+           cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 773.693 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+        cyan_0    log_k_JCZ38    log_k_J9Z38    log_k_JSE76   f_cyan_ilr_1 
+      102.4477        -1.8631        -5.1087        -2.5114         0.6826 
+  f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis      log_alpha       log_beta 
+        4.7944        15.9616        13.1566        -0.1564         2.9781 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_JCZ38 log_k_J9Z38 log_k_JSE76 f_cyan_ilr_1
+cyan_0          7.701       0.000       0.000       0.000       0.0000
+log_k_JCZ38     0.000       1.448       0.000       0.000       0.0000
+log_k_J9Z38     0.000       0.000       1.724       0.000       0.0000
+log_k_JSE76     0.000       0.000       0.000       3.659       0.0000
+f_cyan_ilr_1    0.000       0.000       0.000       0.000       0.6356
+f_cyan_ilr_2    0.000       0.000       0.000       0.000       0.0000
+f_JCZ38_qlogis  0.000       0.000       0.000       0.000       0.0000
+f_JSE76_qlogis  0.000       0.000       0.000       0.000       0.0000
+log_alpha       0.000       0.000       0.000       0.000       0.0000
+log_beta        0.000       0.000       0.000       0.000       0.0000
+               f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis log_alpha log_beta
+cyan_0                 0.00           0.00           0.00    0.0000   0.0000
+log_k_JCZ38            0.00           0.00           0.00    0.0000   0.0000
+log_k_J9Z38            0.00           0.00           0.00    0.0000   0.0000
+log_k_JSE76            0.00           0.00           0.00    0.0000   0.0000
+f_cyan_ilr_1           0.00           0.00           0.00    0.0000   0.0000
+f_cyan_ilr_2          10.32           0.00           0.00    0.0000   0.0000
+f_JCZ38_qlogis         0.00          12.23           0.00    0.0000   0.0000
+f_JSE76_qlogis         0.00           0.00          14.99    0.0000   0.0000
+log_alpha              0.00           0.00           0.00    0.3924   0.0000
+log_beta               0.00           0.00           0.00    0.0000   0.5639
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2249 2242  -1106
+
+Optimised parameters:
+                     est.   lower  upper
+cyan_0          101.24524      NA     NA
+log_k_JCZ38      -2.85375      NA     NA
+log_k_J9Z38      -5.07729      NA     NA
+log_k_JSE76      -3.53511      NA     NA
+f_cyan_ilr_1      0.67478      NA     NA
+f_cyan_ilr_2      0.97152      NA     NA
+f_JCZ38_qlogis  213.48001      NA     NA
+f_JSE76_qlogis    2.02040      NA     NA
+log_alpha        -0.11041      NA     NA
+log_beta          3.06575      NA     NA
+a.1               2.05279 1.85495 2.2506
+b.1               0.07116 0.05912 0.0832
+SD.log_k_JCZ38    1.21713 0.44160 1.9927
+SD.log_k_J9Z38    0.88268 0.27541 1.4900
+SD.log_k_JSE76    0.59452 0.15005 1.0390
+SD.f_cyan_ilr_1   0.35370 0.12409 0.5833
+SD.f_cyan_ilr_2   0.78186 0.18547 1.3782
+SD.log_alpha      0.27781 0.08168 0.4739
+SD.log_beta       0.32608 0.06490 0.5873
+
+Correlation is not available
+
+Random effects:
+                  est.   lower  upper
+SD.log_k_JCZ38  1.2171 0.44160 1.9927
+SD.log_k_J9Z38  0.8827 0.27541 1.4900
+SD.log_k_JSE76  0.5945 0.15005 1.0390
+SD.f_cyan_ilr_1 0.3537 0.12409 0.5833
+SD.f_cyan_ilr_2 0.7819 0.18547 1.3782
+SD.log_alpha    0.2778 0.08168 0.4739
+SD.log_beta     0.3261 0.06490 0.5873
+
+Variance model:
+       est.   lower  upper
+a.1 2.05279 1.85495 2.2506
+b.1 0.07116 0.05912 0.0832
+
+Backtransformed parameters:
+                      est. lower upper
+cyan_0           1.012e+02    NA    NA
+k_JCZ38          5.763e-02    NA    NA
+k_J9Z38          6.237e-03    NA    NA
+k_JSE76          2.916e-02    NA    NA
+f_cyan_to_JCZ38  6.354e-01    NA    NA
+f_cyan_to_J9Z38  2.447e-01    NA    NA
+f_JCZ38_to_JSE76 1.000e+00    NA    NA
+f_JSE76_to_JCZ38 8.829e-01    NA    NA
+alpha            8.955e-01    NA    NA
+beta             2.145e+01    NA    NA
+
+Resulting formation fractions:
+                ff
+cyan_JCZ38  0.6354
+cyan_J9Z38  0.2447
+cyan_sink   0.1200
+JCZ38_JSE76 1.0000
+JCZ38_sink  0.0000
+JSE76_JCZ38 0.8829
+JSE76_sink  0.1171
+
+Estimated disappearance times:
+        DT50   DT90 DT50back
+cyan   25.07 259.21    78.03
+JCZ38  12.03  39.96       NA
+J9Z38 111.14 369.19       NA
+JSE76  23.77  78.98       NA
+
+
+

+ +Hierarchical DFOP path 2 fit with reduced random effects, constant +variance + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:12:27 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+           time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+           * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_JCZ38 * JCZ38 +
+           f_JSE76_to_JCZ38 * k_JSE76 * JSE76
+d_J9Z38/dt = + f_cyan_to_J9Z38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 859.906 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+        cyan_0    log_k_JCZ38    log_k_J9Z38    log_k_JSE76   f_cyan_ilr_1 
+      102.4380        -2.3107        -5.3123        -3.7120         0.6757 
+  f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis         log_k1         log_k2 
+        1.1439        13.1194        12.3492        -1.9317        -4.4557 
+      g_qlogis 
+       -0.5644 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_JCZ38 log_k_J9Z38 log_k_JSE76 f_cyan_ilr_1
+cyan_0          4.591      0.0000       0.000         0.0       0.0000
+log_k_JCZ38     0.000      0.7966       0.000         0.0       0.0000
+log_k_J9Z38     0.000      0.0000       1.561         0.0       0.0000
+log_k_JSE76     0.000      0.0000       0.000         0.8       0.0000
+f_cyan_ilr_1    0.000      0.0000       0.000         0.0       0.6349
+f_cyan_ilr_2    0.000      0.0000       0.000         0.0       0.0000
+f_JCZ38_qlogis  0.000      0.0000       0.000         0.0       0.0000
+f_JSE76_qlogis  0.000      0.0000       0.000         0.0       0.0000
+log_k1          0.000      0.0000       0.000         0.0       0.0000
+log_k2          0.000      0.0000       0.000         0.0       0.0000
+g_qlogis        0.000      0.0000       0.000         0.0       0.0000
+               f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis log_k1 log_k2
+cyan_0                0.000           0.00           0.00  0.000 0.0000
+log_k_JCZ38           0.000           0.00           0.00  0.000 0.0000
+log_k_J9Z38           0.000           0.00           0.00  0.000 0.0000
+log_k_JSE76           0.000           0.00           0.00  0.000 0.0000
+f_cyan_ilr_1          0.000           0.00           0.00  0.000 0.0000
+f_cyan_ilr_2          1.797           0.00           0.00  0.000 0.0000
+f_JCZ38_qlogis        0.000          13.86           0.00  0.000 0.0000
+f_JSE76_qlogis        0.000           0.00          13.91  0.000 0.0000
+log_k1                0.000           0.00           0.00  1.106 0.0000
+log_k2                0.000           0.00           0.00  0.000 0.6141
+g_qlogis              0.000           0.00           0.00  0.000 0.0000
+               g_qlogis
+cyan_0            0.000
+log_k_JCZ38       0.000
+log_k_J9Z38       0.000
+log_k_JSE76       0.000
+f_cyan_ilr_1      0.000
+f_cyan_ilr_2      0.000
+f_JCZ38_qlogis    0.000
+f_JSE76_qlogis    0.000
+log_k1            0.000
+log_k2            0.000
+g_qlogis          1.595
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2282 2274  -1121
+
+Optimised parameters:
+                     est.   lower  upper
+cyan_0           102.6036      NA     NA
+log_k_JCZ38       -2.9348      NA     NA
+log_k_J9Z38       -5.1617      NA     NA
+log_k_JSE76       -3.6396      NA     NA
+f_cyan_ilr_1       0.6991      NA     NA
+f_cyan_ilr_2       0.6341      NA     NA
+f_JCZ38_qlogis  4232.3011      NA     NA
+f_JSE76_qlogis     1.9658      NA     NA
+log_k1            -1.9503      NA     NA
+log_k2            -4.4745      NA     NA
+g_qlogis          -0.4967      NA     NA
+a.1                2.7461 2.59274 2.8994
+SD.log_k_JCZ38     1.3178 0.47602 2.1596
+SD.log_k_J9Z38     0.7022 0.15061 1.2538
+SD.log_k_JSE76     0.6566 0.15613 1.1570
+SD.f_cyan_ilr_1    0.3409 0.11666 0.5652
+SD.f_cyan_ilr_2    0.4385 0.09482 0.7821
+SD.log_k1          0.7381 0.25599 1.2202
+SD.log_k2          0.5133 0.18152 0.8450
+SD.g_qlogis        0.9866 0.35681 1.6164
+
+Correlation is not available
+
+Random effects:
+                  est.   lower  upper
+SD.log_k_JCZ38  1.3178 0.47602 2.1596
+SD.log_k_J9Z38  0.7022 0.15061 1.2538
+SD.log_k_JSE76  0.6566 0.15613 1.1570
+SD.f_cyan_ilr_1 0.3409 0.11666 0.5652
+SD.f_cyan_ilr_2 0.4385 0.09482 0.7821
+SD.log_k1       0.7381 0.25599 1.2202
+SD.log_k2       0.5133 0.18152 0.8450
+SD.g_qlogis     0.9866 0.35681 1.6164
+
+Variance model:
+     est. lower upper
+a.1 2.746 2.593 2.899
+
+Backtransformed parameters:
+                      est. lower upper
+cyan_0           1.026e+02    NA    NA
+k_JCZ38          5.314e-02    NA    NA
+k_J9Z38          5.732e-03    NA    NA
+k_JSE76          2.626e-02    NA    NA
+f_cyan_to_JCZ38  6.051e-01    NA    NA
+f_cyan_to_J9Z38  2.251e-01    NA    NA
+f_JCZ38_to_JSE76 1.000e+00    NA    NA
+f_JSE76_to_JCZ38 8.772e-01    NA    NA
+k1               1.422e-01    NA    NA
+k2               1.140e-02    NA    NA
+g                3.783e-01    NA    NA
+
+Resulting formation fractions:
+                ff
+cyan_JCZ38  0.6051
+cyan_J9Z38  0.2251
+cyan_sink   0.1698
+JCZ38_JSE76 1.0000
+JCZ38_sink  0.0000
+JSE76_JCZ38 0.8772
+JSE76_sink  0.1228
+
+Estimated disappearance times:
+        DT50   DT90 DT50back DT50_k1 DT50_k2
+cyan   22.05 160.35    48.27   4.873   60.83
+JCZ38  13.04  43.33       NA      NA      NA
+J9Z38 120.93 401.73       NA      NA      NA
+JSE76  26.39  87.68       NA      NA      NA
+
+
+

+ +Hierarchical DFOP path 2 fit with reduced random effects, two-component +error + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:12:54 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+           time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+           * cyan
+d_JCZ38/dt = + f_cyan_to_JCZ38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_JCZ38 * JCZ38 +
+           f_JSE76_to_JCZ38 * k_JSE76 * JSE76
+d_J9Z38/dt = + f_cyan_to_J9Z38 * ((k1 * g * exp(-k1 * time) + k2 * (1 -
+           g) * exp(-k2 * time)) / (g * exp(-k1 * time) + (1 - g) *
+           exp(-k2 * time))) * cyan - k_J9Z38 * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 886.298 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+        cyan_0    log_k_JCZ38    log_k_J9Z38    log_k_JSE76   f_cyan_ilr_1 
+      101.7393        -1.4493        -5.0118        -2.1269         0.6720 
+  f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis         log_k1         log_k2 
+        7.3362        13.4423        13.2659        -2.0061        -4.5527 
+      g_qlogis 
+       -0.5806 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+               cyan_0 log_k_JCZ38 log_k_J9Z38 log_k_JSE76 f_cyan_ilr_1
+cyan_0          5.604        0.00       0.000       0.000       0.0000
+log_k_JCZ38     0.000        2.77       0.000       0.000       0.0000
+log_k_J9Z38     0.000        0.00       1.662       0.000       0.0000
+log_k_JSE76     0.000        0.00       0.000       5.021       0.0000
+f_cyan_ilr_1    0.000        0.00       0.000       0.000       0.6519
+f_cyan_ilr_2    0.000        0.00       0.000       0.000       0.0000
+f_JCZ38_qlogis  0.000        0.00       0.000       0.000       0.0000
+f_JSE76_qlogis  0.000        0.00       0.000       0.000       0.0000
+log_k1          0.000        0.00       0.000       0.000       0.0000
+log_k2          0.000        0.00       0.000       0.000       0.0000
+g_qlogis        0.000        0.00       0.000       0.000       0.0000
+               f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis log_k1 log_k2
+cyan_0                 0.00           0.00           0.00 0.0000 0.0000
+log_k_JCZ38            0.00           0.00           0.00 0.0000 0.0000
+log_k_J9Z38            0.00           0.00           0.00 0.0000 0.0000
+log_k_JSE76            0.00           0.00           0.00 0.0000 0.0000
+f_cyan_ilr_1           0.00           0.00           0.00 0.0000 0.0000
+f_cyan_ilr_2          13.37           0.00           0.00 0.0000 0.0000
+f_JCZ38_qlogis         0.00          14.21           0.00 0.0000 0.0000
+f_JSE76_qlogis         0.00           0.00          14.58 0.0000 0.0000
+log_k1                 0.00           0.00           0.00 0.8453 0.0000
+log_k2                 0.00           0.00           0.00 0.0000 0.5969
+g_qlogis               0.00           0.00           0.00 0.0000 0.0000
+               g_qlogis
+cyan_0             0.00
+log_k_JCZ38        0.00
+log_k_J9Z38        0.00
+log_k_JSE76        0.00
+f_cyan_ilr_1       0.00
+f_cyan_ilr_2       0.00
+f_JCZ38_qlogis     0.00
+f_JSE76_qlogis     0.00
+log_k1             0.00
+log_k2             0.00
+g_qlogis           1.69
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2237 2229  -1099
+
+Optimised parameters:
+                     est.   lower   upper
+cyan_0          101.00243      NA      NA
+log_k_JCZ38      -2.80828      NA      NA
+log_k_J9Z38      -5.04449      NA      NA
+log_k_JSE76      -3.66981      NA      NA
+f_cyan_ilr_1      0.72564      NA      NA
+f_cyan_ilr_2      1.37978      NA      NA
+f_JCZ38_qlogis    1.98726      NA      NA
+f_JSE76_qlogis  414.80884      NA      NA
+log_k1           -2.38601      NA      NA
+log_k2           -4.63632      NA      NA
+g_qlogis         -0.33920      NA      NA
+a.1               2.10837 1.91261 2.30413
+b.1               0.06223 0.05085 0.07361
+SD.log_k_JCZ38    1.30902 0.48128 2.13675
+SD.log_k_J9Z38    0.83882 0.25790 1.41974
+SD.log_k_JSE76    0.58104 0.14201 1.02008
+SD.f_cyan_ilr_1   0.35421 0.12398 0.58443
+SD.f_cyan_ilr_2   0.79373 0.12007 1.46739
+SD.log_k2         0.27476 0.08557 0.46394
+SD.g_qlogis       0.96170 0.35463 1.56878
+
+Correlation is not available
+
+Random effects:
+                  est.   lower  upper
+SD.log_k_JCZ38  1.3090 0.48128 2.1367
+SD.log_k_J9Z38  0.8388 0.25790 1.4197
+SD.log_k_JSE76  0.5810 0.14201 1.0201
+SD.f_cyan_ilr_1 0.3542 0.12398 0.5844
+SD.f_cyan_ilr_2 0.7937 0.12007 1.4674
+SD.log_k2       0.2748 0.08557 0.4639
+SD.g_qlogis     0.9617 0.35463 1.5688
+
+Variance model:
+       est.   lower   upper
+a.1 2.10837 1.91261 2.30413
+b.1 0.06223 0.05085 0.07361
+
+Backtransformed parameters:
+                      est. lower upper
+cyan_0           1.010e+02    NA    NA
+k_JCZ38          6.031e-02    NA    NA
+k_J9Z38          6.445e-03    NA    NA
+k_JSE76          2.548e-02    NA    NA
+f_cyan_to_JCZ38  6.808e-01    NA    NA
+f_cyan_to_J9Z38  2.440e-01    NA    NA
+f_JCZ38_to_JSE76 8.795e-01    NA    NA
+f_JSE76_to_JCZ38 1.000e+00    NA    NA
+k1               9.200e-02    NA    NA
+k2               9.693e-03    NA    NA
+g                4.160e-01    NA    NA
+
+Resulting formation fractions:
+                 ff
+cyan_JCZ38  0.68081
+cyan_J9Z38  0.24398
+cyan_sink   0.07521
+JCZ38_JSE76 0.87945
+JCZ38_sink  0.12055
+JSE76_JCZ38 1.00000
+JSE76_sink  0.00000
+
+Estimated disappearance times:
+        DT50   DT90 DT50back DT50_k1 DT50_k2
+cyan   25.00 182.05     54.8   7.535   71.51
+JCZ38  11.49  38.18       NA      NA      NA
+J9Z38 107.55 357.28       NA      NA      NA
+JSE76  27.20  90.36       NA      NA      NA
+
+
+

+ +Hierarchical SFORB path 2 fit with reduced random effects, constant +variance + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:12:32 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan_free/dt = - k_cyan_free * cyan_free - k_cyan_free_bound *
+           cyan_free + k_cyan_bound_free * cyan_bound
+d_cyan_bound/dt = + k_cyan_free_bound * cyan_free - k_cyan_bound_free *
+           cyan_bound
+d_JCZ38/dt = + f_cyan_free_to_JCZ38 * k_cyan_free * cyan_free - k_JCZ38
+           * JCZ38 + f_JSE76_to_JCZ38 * k_JSE76 * JSE76
+d_J9Z38/dt = + f_cyan_free_to_J9Z38 * k_cyan_free * cyan_free - k_J9Z38
+           * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 865.121 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+          cyan_free_0       log_k_cyan_free log_k_cyan_free_bound 
+             102.4395               -2.7673               -2.8942 
+log_k_cyan_bound_free           log_k_JCZ38           log_k_J9Z38 
+              -3.6201               -2.3107               -5.3123 
+          log_k_JSE76          f_cyan_ilr_1          f_cyan_ilr_2 
+              -3.7120                0.6754                1.1448 
+       f_JCZ38_qlogis        f_JSE76_qlogis 
+              14.8408               15.4734 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+                      cyan_free_0 log_k_cyan_free log_k_cyan_free_bound
+cyan_free_0                 4.589          0.0000                  0.00
+log_k_cyan_free             0.000          0.4849                  0.00
+log_k_cyan_free_bound       0.000          0.0000                  1.62
+log_k_cyan_bound_free       0.000          0.0000                  0.00
+log_k_JCZ38                 0.000          0.0000                  0.00
+log_k_J9Z38                 0.000          0.0000                  0.00
+log_k_JSE76                 0.000          0.0000                  0.00
+f_cyan_ilr_1                0.000          0.0000                  0.00
+f_cyan_ilr_2                0.000          0.0000                  0.00
+f_JCZ38_qlogis              0.000          0.0000                  0.00
+f_JSE76_qlogis              0.000          0.0000                  0.00
+                      log_k_cyan_bound_free log_k_JCZ38 log_k_J9Z38 log_k_JSE76
+cyan_free_0                           0.000      0.0000       0.000         0.0
+log_k_cyan_free                       0.000      0.0000       0.000         0.0
+log_k_cyan_free_bound                 0.000      0.0000       0.000         0.0
+log_k_cyan_bound_free                 1.197      0.0000       0.000         0.0
+log_k_JCZ38                           0.000      0.7966       0.000         0.0
+log_k_J9Z38                           0.000      0.0000       1.561         0.0
+log_k_JSE76                           0.000      0.0000       0.000         0.8
+f_cyan_ilr_1                          0.000      0.0000       0.000         0.0
+f_cyan_ilr_2                          0.000      0.0000       0.000         0.0
+f_JCZ38_qlogis                        0.000      0.0000       0.000         0.0
+f_JSE76_qlogis                        0.000      0.0000       0.000         0.0
+                      f_cyan_ilr_1 f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis
+cyan_free_0                 0.0000        0.000            0.0           0.00
+log_k_cyan_free             0.0000        0.000            0.0           0.00
+log_k_cyan_free_bound       0.0000        0.000            0.0           0.00
+log_k_cyan_bound_free       0.0000        0.000            0.0           0.00
+log_k_JCZ38                 0.0000        0.000            0.0           0.00
+log_k_J9Z38                 0.0000        0.000            0.0           0.00
+log_k_JSE76                 0.0000        0.000            0.0           0.00
+f_cyan_ilr_1                0.6349        0.000            0.0           0.00
+f_cyan_ilr_2                0.0000        1.797            0.0           0.00
+f_JCZ38_qlogis              0.0000        0.000           15.6           0.00
+f_JSE76_qlogis              0.0000        0.000            0.0          17.52
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2280 2272  -1120
+
+Optimised parameters:
+                              est.   lower  upper
+cyan_free_0               102.6532      NA     NA
+log_k_cyan_free            -2.8547      NA     NA
+log_k_cyan_free_bound      -2.7004      NA     NA
+log_k_cyan_bound_free      -3.5078      NA     NA
+log_k_JCZ38                -2.9255      NA     NA
+log_k_J9Z38                -5.1089      NA     NA
+log_k_JSE76                -3.6263      NA     NA
+f_cyan_ilr_1                0.6873      NA     NA
+f_cyan_ilr_2                0.6498      NA     NA
+f_JCZ38_qlogis           3624.2149      NA     NA
+f_JSE76_qlogis              1.9991      NA     NA
+a.1                         2.7472 2.55559 2.9388
+SD.log_k_cyan_free          0.3227 0.10296 0.5423
+SD.log_k_cyan_free_bound    0.8757 0.29525 1.4562
+SD.log_k_cyan_bound_free    0.6128 0.20220 1.0233
+SD.log_k_JCZ38              1.3431 0.48474 2.2014
+SD.log_k_J9Z38              0.6881 0.14714 1.2291
+SD.log_k_JSE76              0.6461 0.15321 1.1390
+SD.f_cyan_ilr_1             0.3361 0.11376 0.5585
+SD.f_cyan_ilr_2             0.4286 0.08419 0.7730
+
+Correlation is not available
+
+Random effects:
+                           est.   lower  upper
+SD.log_k_cyan_free       0.3227 0.10296 0.5423
+SD.log_k_cyan_free_bound 0.8757 0.29525 1.4562
+SD.log_k_cyan_bound_free 0.6128 0.20220 1.0233
+SD.log_k_JCZ38           1.3431 0.48474 2.2014
+SD.log_k_J9Z38           0.6881 0.14714 1.2291
+SD.log_k_JSE76           0.6461 0.15321 1.1390
+SD.f_cyan_ilr_1          0.3361 0.11376 0.5585
+SD.f_cyan_ilr_2          0.4286 0.08419 0.7730
+
+Variance model:
+     est. lower upper
+a.1 2.747 2.556 2.939
+
+Backtransformed parameters:
+                          est. lower upper
+cyan_free_0          1.027e+02    NA    NA
+k_cyan_free          5.758e-02    NA    NA
+k_cyan_free_bound    6.718e-02    NA    NA
+k_cyan_bound_free    2.996e-02    NA    NA
+k_JCZ38              5.364e-02    NA    NA
+k_J9Z38              6.042e-03    NA    NA
+k_JSE76              2.662e-02    NA    NA
+f_cyan_free_to_JCZ38 6.039e-01    NA    NA
+f_cyan_free_to_J9Z38 2.285e-01    NA    NA
+f_JCZ38_to_JSE76     1.000e+00    NA    NA
+f_JSE76_to_JCZ38     8.807e-01    NA    NA
+
+Estimated Eigenvalues of SFORB model(s):
+cyan_b1 cyan_b2  cyan_g 
+ 0.1426  0.0121  0.3484 
+
+Resulting formation fractions:
+                    ff
+cyan_free_JCZ38 0.6039
+cyan_free_J9Z38 0.2285
+cyan_free_sink  0.1676
+cyan_free       1.0000
+JCZ38_JSE76     1.0000
+JCZ38_sink      0.0000
+JSE76_JCZ38     0.8807
+JSE76_sink      0.1193
+
+Estimated disappearance times:
+        DT50   DT90 DT50back DT50_cyan_b1 DT50_cyan_b2
+cyan   23.84 154.95    46.65         4.86        57.31
+JCZ38  12.92  42.93       NA           NA           NA
+J9Z38 114.71 381.07       NA           NA           NA
+JSE76  26.04  86.51       NA           NA           NA
+
+
+

+ +Hierarchical SFORB path 2 fit with reduced random effects, two-component +error + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:12:36 2025 
+Date of summary: Fri Feb 14 08:12:55 2025 
+
+Equations:
+d_cyan_free/dt = - k_cyan_free * cyan_free - k_cyan_free_bound *
+           cyan_free + k_cyan_bound_free * cyan_bound
+d_cyan_bound/dt = + k_cyan_free_bound * cyan_free - k_cyan_bound_free *
+           cyan_bound
+d_JCZ38/dt = + f_cyan_free_to_JCZ38 * k_cyan_free * cyan_free - k_JCZ38
+           * JCZ38 + f_JSE76_to_JCZ38 * k_JSE76 * JSE76
+d_J9Z38/dt = + f_cyan_free_to_J9Z38 * k_cyan_free * cyan_free - k_J9Z38
+           * J9Z38
+d_JSE76/dt = + f_JCZ38_to_JSE76 * k_JCZ38 * JCZ38 - k_JSE76 * JSE76
+
+Data:
+433 observations of 4 variable(s) grouped in 5 datasets
+
+Model predictions using solution type deSolve 
+
+Fitted in 868.952 s
+Using 300, 100 iterations and 10 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+          cyan_free_0       log_k_cyan_free log_k_cyan_free_bound 
+             101.7511               -2.8370               -3.0162 
+log_k_cyan_bound_free           log_k_JCZ38           log_k_J9Z38 
+              -3.6600               -2.2988               -5.3129 
+          log_k_JSE76          f_cyan_ilr_1          f_cyan_ilr_2 
+              -3.6991                0.6722                4.8596 
+       f_JCZ38_qlogis        f_JSE76_qlogis 
+              13.4678               14.2149 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+                      cyan_free_0 log_k_cyan_free log_k_cyan_free_bound
+cyan_free_0                 5.629           0.000                 0.000
+log_k_cyan_free             0.000           0.446                 0.000
+log_k_cyan_free_bound       0.000           0.000                 1.449
+log_k_cyan_bound_free       0.000           0.000                 0.000
+log_k_JCZ38                 0.000           0.000                 0.000
+log_k_J9Z38                 0.000           0.000                 0.000
+log_k_JSE76                 0.000           0.000                 0.000
+f_cyan_ilr_1                0.000           0.000                 0.000
+f_cyan_ilr_2                0.000           0.000                 0.000
+f_JCZ38_qlogis              0.000           0.000                 0.000
+f_JSE76_qlogis              0.000           0.000                 0.000
+                      log_k_cyan_bound_free log_k_JCZ38 log_k_J9Z38 log_k_JSE76
+cyan_free_0                           0.000      0.0000       0.000      0.0000
+log_k_cyan_free                       0.000      0.0000       0.000      0.0000
+log_k_cyan_free_bound                 0.000      0.0000       0.000      0.0000
+log_k_cyan_bound_free                 1.213      0.0000       0.000      0.0000
+log_k_JCZ38                           0.000      0.7801       0.000      0.0000
+log_k_J9Z38                           0.000      0.0000       1.575      0.0000
+log_k_JSE76                           0.000      0.0000       0.000      0.8078
+f_cyan_ilr_1                          0.000      0.0000       0.000      0.0000
+f_cyan_ilr_2                          0.000      0.0000       0.000      0.0000
+f_JCZ38_qlogis                        0.000      0.0000       0.000      0.0000
+f_JSE76_qlogis                        0.000      0.0000       0.000      0.0000
+                      f_cyan_ilr_1 f_cyan_ilr_2 f_JCZ38_qlogis f_JSE76_qlogis
+cyan_free_0                 0.0000        0.000           0.00           0.00
+log_k_cyan_free             0.0000        0.000           0.00           0.00
+log_k_cyan_free_bound       0.0000        0.000           0.00           0.00
+log_k_cyan_bound_free       0.0000        0.000           0.00           0.00
+log_k_JCZ38                 0.0000        0.000           0.00           0.00
+log_k_J9Z38                 0.0000        0.000           0.00           0.00
+log_k_JSE76                 0.0000        0.000           0.00           0.00
+f_cyan_ilr_1                0.6518        0.000           0.00           0.00
+f_cyan_ilr_2                0.0000        9.981           0.00           0.00
+f_JCZ38_qlogis              0.0000        0.000          14.26           0.00
+f_JSE76_qlogis              0.0000        0.000           0.00          16.17
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+   AIC  BIC logLik
+  2241 2233  -1101
+
+Optimised parameters:
+                              est.   lower   upper
+cyan_free_0              100.95469      NA      NA
+log_k_cyan_free           -3.18706      NA      NA
+log_k_cyan_free_bound     -3.38455      NA      NA
+log_k_cyan_bound_free     -3.75788      NA      NA
+log_k_JCZ38               -2.77024      NA      NA
+log_k_J9Z38               -5.03665      NA      NA
+log_k_JSE76               -3.60289      NA      NA
+f_cyan_ilr_1               0.72263      NA      NA
+f_cyan_ilr_2               1.45352      NA      NA
+f_JCZ38_qlogis             2.00778      NA      NA
+f_JSE76_qlogis           941.58570      NA      NA
+a.1                        2.11130 1.91479 2.30780
+b.1                        0.06299 0.05152 0.07445
+SD.log_k_cyan_free         0.50098 0.18805 0.81390
+SD.log_k_cyan_bound_free   0.31671 0.08467 0.54875
+SD.log_k_JCZ38             1.25865 0.45932 2.05798
+SD.log_k_J9Z38             0.86833 0.27222 1.46444
+SD.log_k_JSE76             0.59325 0.14711 1.03940
+SD.f_cyan_ilr_1            0.35705 0.12521 0.58890
+SD.f_cyan_ilr_2            0.88541 0.13797 1.63286
+
+Correlation is not available
+
+Random effects:
+                           est.   lower  upper
+SD.log_k_cyan_free       0.5010 0.18805 0.8139
+SD.log_k_cyan_bound_free 0.3167 0.08467 0.5487
+SD.log_k_JCZ38           1.2587 0.45932 2.0580
+SD.log_k_J9Z38           0.8683 0.27222 1.4644
+SD.log_k_JSE76           0.5933 0.14711 1.0394
+SD.f_cyan_ilr_1          0.3571 0.12521 0.5889
+SD.f_cyan_ilr_2          0.8854 0.13797 1.6329
+
+Variance model:
+       est.   lower   upper
+a.1 2.11130 1.91479 2.30780
+b.1 0.06299 0.05152 0.07445
+
+Backtransformed parameters:
+                          est. lower upper
+cyan_free_0          1.010e+02    NA    NA
+k_cyan_free          4.129e-02    NA    NA
+k_cyan_free_bound    3.389e-02    NA    NA
+k_cyan_bound_free    2.333e-02    NA    NA
+k_JCZ38              6.265e-02    NA    NA
+k_J9Z38              6.495e-03    NA    NA
+k_JSE76              2.724e-02    NA    NA
+f_cyan_free_to_JCZ38 6.844e-01    NA    NA
+f_cyan_free_to_J9Z38 2.463e-01    NA    NA
+f_JCZ38_to_JSE76     8.816e-01    NA    NA
+f_JSE76_to_JCZ38     1.000e+00    NA    NA
+
+Estimated Eigenvalues of SFORB model(s):
+cyan_b1 cyan_b2  cyan_g 
+0.08751 0.01101 0.39586 
+
+Resulting formation fractions:
+                     ff
+cyan_free_JCZ38 0.68444
+cyan_free_J9Z38 0.24633
+cyan_free_sink  0.06923
+cyan_free       1.00000
+JCZ38_JSE76     0.88161
+JCZ38_sink      0.11839
+JSE76_JCZ38     1.00000
+JSE76_sink      0.00000
+
+Estimated disappearance times:
+        DT50   DT90 DT50back DT50_cyan_b1 DT50_cyan_b2
+cyan   25.36 163.36    49.18        7.921        62.95
+JCZ38  11.06  36.75       NA           NA           NA
+J9Z38 106.71 354.49       NA           NA           NA
+JSE76  25.44  84.51       NA           NA           NA
+
+
+

+
+
+
+

Session info +

+
R version 4.4.2 (2024-10-31)
+Platform: x86_64-pc-linux-gnu
+Running under: Debian GNU/Linux 12 (bookworm)
+
+Matrix products: default
+BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.11.0 
+LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.11.0
+
+locale:
+ [1] LC_CTYPE=de_DE.UTF-8       LC_NUMERIC=C              
+ [3] LC_TIME=de_DE.UTF-8        LC_COLLATE=de_DE.UTF-8    
+ [5] LC_MONETARY=de_DE.UTF-8    LC_MESSAGES=de_DE.UTF-8   
+ [7] LC_PAPER=de_DE.UTF-8       LC_NAME=C                 
+ [9] LC_ADDRESS=C               LC_TELEPHONE=C            
+[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       
+
+time zone: Europe/Berlin
+tzcode source: system (glibc)
+
+attached base packages:
+[1] parallel  stats     graphics  grDevices utils     datasets  methods  
+[8] base     
+
+other attached packages:
+[1] rmarkdown_2.29  nvimcom_0.9-167 saemix_3.3      npde_3.5       
+[5] knitr_1.49      mkin_1.2.10    
+
+loaded via a namespace (and not attached):
+ [1] sass_0.4.9        utf8_1.2.4        generics_0.1.3    lattice_0.22-6   
+ [5] digest_0.6.37     magrittr_2.0.3    evaluate_1.0.1    grid_4.4.2       
+ [9] fastmap_1.2.0     cellranger_1.1.0  jsonlite_1.8.9    processx_3.8.4   
+[13] pkgbuild_1.4.5    deSolve_1.40      mclust_6.1.1      ps_1.8.1         
+[17] gridExtra_2.3     fansi_1.0.6       scales_1.3.0      codetools_0.2-20 
+[21] textshaping_0.4.1 jquerylib_0.1.4   cli_3.6.3         rlang_1.1.4      
+[25] munsell_0.5.1     cachem_1.1.0      yaml_2.3.10       inline_0.3.20    
+[29] tools_4.4.2       dplyr_1.1.4       colorspace_2.1-1  ggplot2_3.5.1    
+[33] vctrs_0.6.5       R6_2.5.1          zoo_1.8-12        lifecycle_1.0.4  
+[37] fs_1.6.5          htmlwidgets_1.6.4 MASS_7.3-61       ragg_1.3.3       
+[41] callr_3.7.6       pkgconfig_2.0.3   desc_1.4.3        pkgdown_2.1.1    
+[45] pillar_1.9.0      bslib_0.8.0       gtable_0.3.6      glue_1.8.0       
+[49] systemfonts_1.1.0 xfun_0.49         tibble_3.2.1      lmtest_0.9-40    
+[53] tidyselect_1.2.1  htmltools_0.5.8.1 nlme_3.1-166      compiler_4.4.2   
+[57] readxl_1.4.3     
+
+
+

Hardware info +

+
CPU model: AMD Ryzen 9 7950X 16-Core Processor
+
MemTotal:       64927788 kB
+
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-13-1.png b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-13-1.png new file mode 100644 index 00000000..d2201974 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-13-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-14-1.png b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-14-1.png new file mode 100644 index 00000000..7380ba4c Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-14-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-15-1.png b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-15-1.png new file mode 100644 index 00000000..4de15105 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-15-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-20-1.png b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-20-1.png new file mode 100644 index 00000000..d57badf1 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-20-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-21-1.png b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-21-1.png new file mode 100644 index 00000000..eb629c4d Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-21-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-22-1.png b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-22-1.png new file mode 100644 index 00000000..a2abb2f7 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-22-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-7-1.png b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-7-1.png new file mode 100644 index 00000000..28ec82ba Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-7-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-8-1.png b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-8-1.png new file mode 100644 index 00000000..a2abb2f7 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_cyan_pathway_files/figure-html/unnamed-chunk-8-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent.html b/docs/dev/articles/prebuilt/2022_dmta_parent.html new file mode 100644 index 00000000..d900cf00 --- /dev/null +++ b/docs/dev/articles/prebuilt/2022_dmta_parent.html @@ -0,0 +1,2166 @@ + + + + + + + +Testing hierarchical parent degradation kinetics with residue data on dimethenamid and dimethenamid-P • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +
+

Introduction +

+

The purpose of this document is to demonstrate how nonlinear +hierarchical models (NLHM) based on the parent degradation models SFO, +FOMC, DFOP and HS can be fitted with the mkin package.

+

It was assembled in the course of work package 1.1 of Project Number +173340 (Application of nonlinear hierarchical models to the kinetic +evaluation of chemical degradation data) of the German Environment +Agency carried out in 2022 and 2023.

+

The mkin package is used in version 1.2.10. It contains the test data +and the functions used in the evaluations. The saemix +package is used as a backend for fitting the NLHM, but is also loaded to +make the convergence plot function available.

+

This document is processed with the knitr package, which +also provides the kable function that is used to improve +the display of tabular data in R markdown documents. For parallel +processing, the parallel package is used.

+
+library(mkin)
+library(knitr)
+library(saemix)
+library(parallel)
+n_cores <- detectCores()
+if (Sys.info()["sysname"] == "Windows") {
+  cl <- makePSOCKcluster(n_cores)
+} else {
+  cl <- makeForkCluster(n_cores)
+}
+
+
+

Data +

+

The test data are available in the mkin package as an object of class +mkindsg (mkin dataset group) under the identifier +dimethenamid_2018. The following preprocessing steps are +still necessary:

+
    +
  • The data available for the enantiomer dimethenamid-P (DMTAP) are +renamed to have the same substance name as the data for the racemic +mixture dimethenamid (DMTA). The reason for this is that no difference +between their degradation behaviour was identified in the EU risk +assessment.
  • +
  • The data for transformation products and unnecessary columns are +discarded
  • +
  • The observation times of each dataset are multiplied with the +corresponding normalisation factor also available in the dataset, in +order to make it possible to describe all datasets with a single set of +parameters that are independent of temperature
  • +
  • Finally, datasets observed in the same soil (Elliot 1 +and Elliot 2) are combined, resulting in dimethenamid +(DMTA) data from six soils.
  • +
+

The following commented R code performs this preprocessing.

+
+# Apply a function to each of the seven datasets in the mkindsg object to create a list
+dmta_ds <- lapply(1:7, function(i) {
+  ds_i <- dimethenamid_2018$ds[[i]]$data                     # Get a dataset
+  ds_i[ds_i$name == "DMTAP", "name"] <-  "DMTA"              # Rename DMTAP to DMTA
+  ds_i <- subset(ds_i, name == "DMTA", c("name", "time", "value")) # Select data
+  ds_i$time <- ds_i$time * dimethenamid_2018$f_time_norm[i]  # Normalise time
+  ds_i                                                       # Return the dataset
+})
+
+# Use dataset titles as names for the list elements
+names(dmta_ds) <- sapply(dimethenamid_2018$ds, function(ds) ds$title)
+
+# Combine data for Elliot soil to obtain a named list with six elements
+dmta_ds[["Elliot"]] <- rbind(dmta_ds[["Elliot 1"]], dmta_ds[["Elliot 2"]]) #
+dmta_ds[["Elliot 1"]] <- NULL
+dmta_ds[["Elliot 2"]] <- NULL
+

The following tables show the 6 datasets.

+
+for (ds_name in names(dmta_ds)) {
+    print(kable(mkin_long_to_wide(dmta_ds[[ds_name]]),
+      caption = paste("Dataset", ds_name),
+      label = paste0("tab:", ds_name), booktabs = TRUE))
+    cat("\n\\clearpage\n")
+}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Calke
timeDMTA
095.8
098.7
1460.5
3039.1
5915.2
1204.8
1204.6
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Borstel
timeDMTA
0.000000100.5
0.00000099.6
1.94129591.9
1.94129591.3
6.79453481.8
6.79453482.1
13.58906769.1
13.58906768.0
27.17813551.4
27.17813551.4
56.29756527.6
56.29756526.8
86.38764315.7
86.38764315.3
115.5070737.9
115.5070738.1
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Flaach
timeDMTA
0.000000096.5
0.000000096.8
0.000000097.0
0.623385682.9
0.623385686.7
0.623385687.4
1.870156772.8
1.870156769.9
1.870156771.9
4.363698951.4
4.363698952.9
4.363698948.6
8.727397928.5
8.727397927.3
8.727397927.5
13.091096814.8
13.091096813.4
13.091096814.4
17.45479577.7
17.45479577.3
17.45479578.1
26.18219362.0
26.18219361.5
26.18219361.9
34.90959151.3
34.90959151.0
34.90959151.1
43.63698930.9
43.63698930.7
43.63698930.7
52.36438720.6
52.36438720.4
52.36438720.5
74.80626740.4
74.80626740.3
74.80626740.3
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset BBA 2.2
timeDMTA
0.000000098.09
0.000000098.77
0.767892293.52
0.767892292.03
2.303676588.39
2.303676587.18
5.375245269.38
5.375245271.06
10.750490445.21
10.750490446.81
16.125735530.54
16.125735530.07
21.500980721.60
21.500980720.41
32.25147119.10
32.25147119.70
43.00196146.58
43.00196146.31
53.75245183.47
53.75245183.52
64.50294213.40
64.50294213.67
91.37916801.62
91.37916801.62
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset BBA 2.3
timeDMTA
0.000000099.33
0.000000097.44
0.673393893.73
0.673393893.77
2.020181487.84
2.020181489.82
4.713756571.61
4.713756571.42
9.427513145.60
9.427513145.42
14.141269631.12
14.141269631.68
18.855026223.20
18.855026224.13
28.28253939.43
28.28253939.82
37.71005237.08
37.71005238.64
47.13756544.41
47.13756544.78
56.56507854.92
56.56507855.08
80.13386122.13
80.13386122.23
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Elliot
timeDMTA
0.00000097.5
0.000000100.7
1.22847886.4
1.22847888.5
3.68543569.8
3.68543577.1
8.59934959.0
8.59934954.2
17.19869731.3
17.19869733.5
25.79804619.6
25.79804620.9
34.39739513.3
34.39739515.8
51.5960926.7
51.5960928.7
68.7947898.8
68.7947898.7
103.1921846.0
103.1921844.4
146.1889283.3
146.1889282.8
223.5830661.4
223.5830661.8
0.00000093.4
0.000000103.2
1.22847889.2
1.22847886.6
3.68543578.2
3.68543578.1
8.59934955.6
8.59934953.0
17.19869733.7
17.19869733.2
25.79804620.9
25.79804619.9
34.39739518.2
34.39739512.7
51.5960927.8
51.5960929.0
68.79478911.4
68.7947899.0
103.1921843.9
103.1921844.4
146.1889282.6
146.1889283.4
223.5830662.0
223.5830661.7
+
+
+

Separate evaluations +

+

In order to obtain suitable starting parameters for the NLHM fits, +separate fits of the four models to the data for each soil are generated +using the mmkin function from the mkin +package. In a first step, constant variance is assumed. Convergence is +checked with the status function.

+
+deg_mods <- c("SFO", "FOMC", "DFOP", "HS")
+f_sep_const <- mmkin(
+  deg_mods,
+  dmta_ds,
+  error_model = "const",
+  quiet = TRUE)
+
+status(f_sep_const) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CalkeBorstelFlaachBBA 2.2BBA 2.3Elliot
SFOOKOKOKOKOKOK
FOMCOKOKOKOKOKOK
DFOPOKOKOKOKOKOK
HSOKOKOKCOKOK
+

In the table above, OK indicates convergence, and C indicates failure +to converge. All separate fits with constant variance converged, with +the sole exception of the HS fit to the BBA 2.2 data. To prepare for +fitting NLHM using the two-component error model, the separate fits are +updated assuming two-component error.

+
+f_sep_tc <- update(f_sep_const, error_model = "tc")
+status(f_sep_tc) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CalkeBorstelFlaachBBA 2.2BBA 2.3Elliot
SFOOKOKOKOKOKOK
FOMCOKOKOKOKCOK
DFOPOKOKOKOKCOK
HSOKOKOKOKOKOK
+

Using the two-component error model, the one fit that did not +converge with constant variance did converge, but other non-SFO fits +failed to converge.

+
+
+

Hierarchichal model fits +

+

The following code fits eight versions of hierarchical models to the +data, using SFO, FOMC, DFOP and HS for the parent compound, and using +either constant variance or two-component error for the error model. The +default parameter distribution model in mkin allows for variation of all +degradation parameters across the assumed population of soils. In other +words, each degradation parameter is associated with a random effect as +a first step. The mhmkin function makes it possible to fit +all eight versions in parallel (given a sufficient number of computing +cores being available) to save execution time.

+

Convergence plots and summaries for these fits are shown in the +appendix.

+
+f_saem <- mhmkin(list(f_sep_const, f_sep_tc), transformations = "saemix")
+

The output of the status function shows that all fits +terminated successfully.

+
+status(f_saem) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
SFOOKOK
FOMCOKOK
DFOPOKOK
HSOKOK
+

The AIC and BIC values show that the biphasic models DFOP and HS give +the best fits.

+
+anova(f_saem) |> kable(digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
SFO const5796.3795.3-393.2
SFO tc6798.3797.1-393.2
FOMC const7734.2732.7-360.1
FOMC tc8720.7719.1-352.4
DFOP const9711.8710.0-346.9
HS const9714.0712.1-348.0
DFOP tc10665.7663.6-322.9
HS tc10667.1665.0-323.6
+

The DFOP model is preferred here, as it has a better mechanistic +basis for batch experiments with constant incubation conditions. Also, +it shows the lowest AIC and BIC values in the first set of fits when +combined with the two-component error model. Therefore, the DFOP model +was selected for further refinements of the fits with the aim to make +the model fully identifiable.

+
+

Parameter identifiability based on the Fisher Information +Matrix +

+

Using the illparms function, ill-defined statistical +model parameters such as standard deviations of the degradation +parameters in the population and error model parameters can be +found.

+
+illparms(f_saem) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
SFOb.1
FOMCsd(DMTA_0)
DFOPsd(k2)sd(k2)
HSsd(tb)
+

According to the illparms function, the fitted standard +deviation of the second kinetic rate constant k2 is +ill-defined in both DFOP fits. This suggests that different values would +be obtained for this standard deviation when using different starting +values.

+

The thus identified overparameterisation is addressed by removing the +random effect for k2 from the parameter model.

+
+f_saem_dfop_tc_no_ranef_k2 <- update(f_saem[["DFOP", "tc"]],
+  no_random_effect = "k2")
+

For the resulting fit, it is checked whether there are still +ill-defined parameters,

+
+illparms(f_saem_dfop_tc_no_ranef_k2)
+

which is not the case. Below, the refined model is compared with the +previous best model. The model without random effect for k2 +is a reduced version of the previous model. Therefore, the models are +nested and can be compared using the likelihood ratio test. This is +achieved with the argument test = TRUE to the +anova function.

+
+anova(f_saem[["DFOP", "tc"]], f_saem_dfop_tc_no_ranef_k2, test = TRUE) |>
+  kable(format.args = list(digits = 4))
+ ++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLikChisqDfPr(>Chisq)
f_saem_dfop_tc_no_ranef_k29663.7661.8-322.9NANANA
f_saem[[“DFOP”, “tc”]]10665.7663.6-322.9011
+

The AIC and BIC criteria are lower after removal of the ill-defined +random effect for k2. The p value of the likelihood ratio +test is much greater than 0.05, indicating that the model with the +higher likelihood (here the model with random effects for all +degradation parameters f_saem[["DFOP", "tc"]]) does not fit +significantly better than the model with the lower likelihood (the +reduced model f_saem_dfop_tc_no_ranef_k2).

+

Therefore, AIC, BIC and likelihood ratio test suggest the use of the +reduced model.

+

The convergence of the fit is checked visually.

+
+Convergence plot for the NLHM DFOP fit with two-component error and without a random effect on 'k2'

+Convergence plot for the NLHM DFOP fit with two-component error and +without a random effect on ‘k2’ +

+
+

All parameters appear to have converged to a satisfactory degree. The +final fit is plotted using the plot method from the mkin package.

+
+plot(f_saem_dfop_tc_no_ranef_k2)
+
+Plot of the final NLHM DFOP fit

+Plot of the final NLHM DFOP fit +

+
+

Finally, a summary report of the fit is produced.

+
+summary(f_saem_dfop_tc_no_ranef_k2)
+
saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:13:19 2025 
+Date of summary: Fri Feb 14 08:13:19 2025 
+
+Equations:
+d_DMTA/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+           time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+           * DMTA
+
+Data:
+155 observations of 1 variable(s) grouped in 6 datasets
+
+Model predictions using solution type analytical 
+
+Fitted in 4.154 s
+Using 300, 100 iterations and 9 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+  DMTA_0       k1       k2        g 
+98.71186  0.08675  0.01374  0.93491 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+       DMTA_0 k1 k2 g
+DMTA_0  98.71  0  0 0
+k1       0.00  1  0 0
+k2       0.00  0  1 0
+g        0.00  0  0 1
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+    AIC   BIC logLik
+  663.7 661.8 -322.9
+
+Optimised parameters:
+               est.     lower     upper
+DMTA_0    98.256267 96.286112 100.22642
+k1         0.064037  0.033281   0.09479
+k2         0.008469  0.006002   0.01094
+g          0.954167  0.914460   0.99387
+a.1        1.061795  0.878608   1.24498
+b.1        0.029550  0.022593   0.03651
+SD.DMTA_0  2.068581  0.427178   3.70998
+SD.k1      0.598285  0.258235   0.93833
+SD.g       1.016689  0.360061   1.67332
+
+Correlation: 
+   DMTA_0  k1      k2     
+k1  0.0213                
+k2  0.0541  0.0344        
+g  -0.0521 -0.0286 -0.2744
+
+Random effects:
+            est.  lower  upper
+SD.DMTA_0 2.0686 0.4272 3.7100
+SD.k1     0.5983 0.2582 0.9383
+SD.g      1.0167 0.3601 1.6733
+
+Variance model:
+       est.   lower   upper
+a.1 1.06180 0.87861 1.24498
+b.1 0.02955 0.02259 0.03651
+
+Estimated disappearance times:
+      DT50  DT90 DT50back DT50_k1 DT50_k2
+DMTA 11.45 41.32    12.44   10.82   81.85
+
+
+

Alternative check of parameter identifiability +

+

The parameter check used in the illparms function is +based on a quadratic approximation of the likelihood surface near its +optimum, which is calculated using the Fisher Information Matrix (FIM). +An alternative way to check parameter identifiability (Duchesne et al. 2021) based on a multistart +approach has recently been implemented in mkin.

+

The graph below shows boxplots of the parameters obtained in 50 runs +of the saem algorithm with different parameter combinations, sampled +from the range of the parameters obtained for the individual datasets +fitted separately using nonlinear regression.

+
+f_saem_dfop_tc_multi <- multistart(f_saem[["DFOP", "tc"]], n = 50, cores = 15)
+
+par(mar = c(6.1, 4.1, 2.1, 2.1))
+parplot(f_saem_dfop_tc_multi, lpos = "bottomright", ylim = c(0.3, 10), las = 2)
+
+Scaled parameters from the multistart runs, full model

+Scaled parameters from the multistart runs, full model +

+
+

The graph clearly confirms the lack of identifiability of the +variance of k2 in the full model. The overparameterisation +of the model also indicates a lack of identifiability of the variance of +parameter g.

+

The parameter boxplots of the multistart runs with the reduced model +shown below indicate that all runs give similar results, regardless of +the starting parameters.

+
+f_saem_dfop_tc_no_ranef_k2_multi <- multistart(f_saem_dfop_tc_no_ranef_k2,
+  n = 50, cores = 15)
+
+par(mar = c(6.1, 4.1, 2.1, 2.1))
+parplot(f_saem_dfop_tc_no_ranef_k2_multi, ylim = c(0.5, 2), las = 2,
+  lpos = "bottomright")
+
+Scaled parameters from the multistart runs, reduced model

+Scaled parameters from the multistart runs, reduced model +

+
+

When only the parameters of the top 25% of the fits are shown (based +on a feature introduced in mkin 1.2.2 currently under development), the +scatter is even less as shown below.

+
+par(mar = c(6.1, 4.1, 2.1, 2.1))
+parplot(f_saem_dfop_tc_no_ranef_k2_multi, ylim = c(0.5, 2), las = 2, llquant = 0.25,
+  lpos = "bottomright")
+
+Scaled parameters from the multistart runs, reduced model, fits with the top 25\% likelihood values

+Scaled parameters from the multistart runs, reduced model, fits with the +top 25% likelihood values +

+
+
+
+
+

Conclusions +

+

Fitting the four parent degradation models SFO, FOMC, DFOP and HS as +part of hierarchical model fits with two different error models and +normal distributions of the transformed degradation parameters works +without technical problems. The biphasic models DFOP and HS gave the +best fit to the data, but the default parameter distribution model was +not fully identifiable. Removing the random effect for the second +kinetic rate constant of the DFOP model resulted in a reduced model that +was fully identifiable and showed the lowest values for the model +selection criteria AIC and BIC. The reliability of the identification of +all model parameters was confirmed using multiple starting values.

+
+
+

Acknowledgements +

+

The helpful comments by Janina Wöltjen of the German Environment +Agency are gratefully acknowledged.

+
+
+

References +

+
+
+Duchesne, Ronan, Anissa Guillemin, Olivier Gandrillon, and Fabien +Crauste. 2021. “Practical Identifiability in the Frame of +Nonlinear Mixed Effects Models: The Example of the in Vitro +Erythropoiesis.” BMC Bioinformatics 22 (478). https://doi.org/10.1186/s12859-021-04373-4. +
+
+
+
+

Appendix +

+
+

Hierarchical model fit listings +

+ +Hierarchical mkin fit of the SFO model with error model const + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:13:11 2025 
+Date of summary: Fri Feb 14 08:14:22 2025 
+
+Equations:
+d_DMTA/dt = - k_DMTA * DMTA
+
+Data:
+155 observations of 1 variable(s) grouped in 6 datasets
+
+Model predictions using solution type analytical 
+
+Fitted in 0.869 s
+Using 300, 100 iterations and 9 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+ DMTA_0  k_DMTA 
+97.2953  0.0566 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+       DMTA_0 k_DMTA
+DMTA_0   97.3      0
+k_DMTA    0.0      1
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+    AIC   BIC logLik
+  796.3 795.3 -393.2
+
+Optimised parameters:
+              est.    lower   upper
+DMTA_0    97.28130 95.71113 98.8515
+k_DMTA     0.05665  0.02909  0.0842
+a.1        2.66442  2.35579  2.9731
+SD.DMTA_0  1.54776  0.15447  2.9411
+SD.k_DMTA  0.60690  0.26248  0.9513
+
+Correlation: 
+       DMTA_0
+k_DMTA 0.0168
+
+Random effects:
+            est.  lower  upper
+SD.DMTA_0 1.5478 0.1545 2.9411
+SD.k_DMTA 0.6069 0.2625 0.9513
+
+Variance model:
+     est. lower upper
+a.1 2.664 2.356 2.973
+
+Estimated disappearance times:
+      DT50  DT90
+DMTA 12.24 40.65
+
+
+

+ +Hierarchical mkin fit of the SFO model with error model tc + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:13:13 2025 
+Date of summary: Fri Feb 14 08:14:22 2025 
+
+Equations:
+d_DMTA/dt = - k_DMTA * DMTA
+
+Data:
+155 observations of 1 variable(s) grouped in 6 datasets
+
+Model predictions using solution type analytical 
+
+Fitted in 2.423 s
+Using 300, 100 iterations and 9 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+  DMTA_0   k_DMTA 
+96.99175  0.05603 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+       DMTA_0 k_DMTA
+DMTA_0  96.99      0
+k_DMTA   0.00      1
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+    AIC   BIC logLik
+  798.3 797.1 -393.2
+
+Optimised parameters:
+               est.    lower    upper
+DMTA_0    97.271822 95.70316 98.84049
+k_DMTA     0.056638  0.02911  0.08417
+a.1        2.660081  2.27492  3.04525
+b.1        0.001665 -0.14451  0.14784
+SD.DMTA_0  1.545520  0.14301  2.94803
+SD.k_DMTA  0.606422  0.26227  0.95057
+
+Correlation: 
+       DMTA_0
+k_DMTA 0.0169
+
+Random effects:
+            est.  lower  upper
+SD.DMTA_0 1.5455 0.1430 2.9480
+SD.k_DMTA 0.6064 0.2623 0.9506
+
+Variance model:
+        est.   lower  upper
+a.1 2.660081  2.2749 3.0452
+b.1 0.001665 -0.1445 0.1478
+
+Estimated disappearance times:
+      DT50  DT90
+DMTA 12.24 40.65
+
+
+

+ +Hierarchical mkin fit of the FOMC model with error model const + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:13:11 2025 
+Date of summary: Fri Feb 14 08:14:22 2025 
+
+Equations:
+d_DMTA/dt = - (alpha/beta) * 1/((time/beta) + 1) * DMTA
+
+Data:
+155 observations of 1 variable(s) grouped in 6 datasets
+
+Model predictions using solution type analytical 
+
+Fitted in 1.228 s
+Using 300, 100 iterations and 9 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+ DMTA_0   alpha    beta 
+ 98.292   9.909 156.341 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+       DMTA_0 alpha beta
+DMTA_0  98.29     0    0
+alpha    0.00     1    0
+beta     0.00     0    1
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+    AIC   BIC logLik
+  734.2 732.7 -360.1
+
+Optimised parameters:
+              est.   lower   upper
+DMTA_0     98.3435 96.9033  99.784
+alpha       7.2007  2.5889  11.812
+beta      112.8745 34.8816 190.867
+a.1         2.0459  1.8054   2.286
+SD.DMTA_0   1.4795  0.2717   2.687
+SD.alpha    0.6396  0.1509   1.128
+SD.beta     0.6874  0.1587   1.216
+
+Correlation: 
+      DMTA_0  alpha  
+alpha -0.1125        
+beta  -0.1227  0.3632
+
+Random effects:
+            est.  lower upper
+SD.DMTA_0 1.4795 0.2717 2.687
+SD.alpha  0.6396 0.1509 1.128
+SD.beta   0.6874 0.1587 1.216
+
+Variance model:
+     est. lower upper
+a.1 2.046 1.805 2.286
+
+Estimated disappearance times:
+      DT50  DT90 DT50back
+DMTA 11.41 42.53     12.8
+
+
+

+ +Hierarchical mkin fit of the FOMC model with error model tc + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:13:13 2025 
+Date of summary: Fri Feb 14 08:14:22 2025 
+
+Equations:
+d_DMTA/dt = - (alpha/beta) * 1/((time/beta) + 1) * DMTA
+
+Data:
+155 observations of 1 variable(s) grouped in 6 datasets
+
+Model predictions using solution type analytical 
+
+Fitted in 2.87 s
+Using 300, 100 iterations and 9 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+DMTA_0  alpha   beta 
+98.772  4.663 92.597 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+       DMTA_0 alpha beta
+DMTA_0  98.77     0    0
+alpha    0.00     1    0
+beta     0.00     0    1
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+    AIC   BIC logLik
+  720.7 719.1 -352.4
+
+Optimised parameters:
+              est.    lower     upper
+DMTA_0    99.10577 97.33296 100.87859
+alpha      5.46260  2.52199   8.40321
+beta      81.66080 30.46664 132.85497
+a.1        1.50219  1.25801   1.74636
+b.1        0.02893  0.02048   0.03739
+SD.DMTA_0  1.61887 -0.03843   3.27618
+SD.alpha   0.58145  0.17364   0.98925
+SD.beta    0.68205  0.21108   1.15302
+
+Correlation: 
+      DMTA_0  alpha  
+alpha -0.1321        
+beta  -0.1430  0.2467
+
+Random effects:
+            est.    lower  upper
+SD.DMTA_0 1.6189 -0.03843 3.2762
+SD.alpha  0.5814  0.17364 0.9892
+SD.beta   0.6821  0.21108 1.1530
+
+Variance model:
+       est.   lower   upper
+a.1 1.50219 1.25801 1.74636
+b.1 0.02893 0.02048 0.03739
+
+Estimated disappearance times:
+      DT50  DT90 DT50back
+DMTA 11.05 42.81    12.89
+
+
+

+ +Hierarchical mkin fit of the DFOP model with error model const + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:13:12 2025 
+Date of summary: Fri Feb 14 08:14:22 2025 
+
+Equations:
+d_DMTA/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+           time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+           * DMTA
+
+Data:
+155 observations of 1 variable(s) grouped in 6 datasets
+
+Model predictions using solution type analytical 
+
+Fitted in 1.843 s
+Using 300, 100 iterations and 9 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+  DMTA_0       k1       k2        g 
+98.64383  0.09211  0.02999  0.76814 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+       DMTA_0 k1 k2 g
+DMTA_0  98.64  0  0 0
+k1       0.00  1  0 0
+k2       0.00  0  1 0
+g        0.00  0  0 1
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+    AIC BIC logLik
+  711.8 710 -346.9
+
+Optimised parameters:
+               est.     lower    upper
+DMTA_0    98.092481 96.573899 99.61106
+k1         0.062499  0.030336  0.09466
+k2         0.009065 -0.005133  0.02326
+g          0.948967  0.862080  1.03586
+a.1        1.821671  1.604774  2.03857
+SD.DMTA_0  1.677785  0.472066  2.88350
+SD.k1      0.634962  0.270788  0.99914
+SD.k2      1.033498 -0.205994  2.27299
+SD.g       1.710046  0.428642  2.99145
+
+Correlation: 
+   DMTA_0  k1      k2     
+k1  0.0246                
+k2  0.0491  0.0953        
+g  -0.0552 -0.0889 -0.4795
+
+Random effects:
+           est.   lower  upper
+SD.DMTA_0 1.678  0.4721 2.8835
+SD.k1     0.635  0.2708 0.9991
+SD.k2     1.033 -0.2060 2.2730
+SD.g      1.710  0.4286 2.9914
+
+Variance model:
+     est. lower upper
+a.1 1.822 1.605 2.039
+
+Estimated disappearance times:
+      DT50 DT90 DT50back DT50_k1 DT50_k2
+DMTA 11.79 42.8    12.88   11.09   76.46
+
+
+

+ +Hierarchical mkin fit of the DFOP model with error model tc + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:13:14 2025 
+Date of summary: Fri Feb 14 08:14:22 2025 
+
+Equations:
+d_DMTA/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+           time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+           * DMTA
+
+Data:
+155 observations of 1 variable(s) grouped in 6 datasets
+
+Model predictions using solution type analytical 
+
+Fitted in 3.469 s
+Using 300, 100 iterations and 9 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+  DMTA_0       k1       k2        g 
+98.71186  0.08675  0.01374  0.93491 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+       DMTA_0 k1 k2 g
+DMTA_0  98.71  0  0 0
+k1       0.00  1  0 0
+k2       0.00  0  1 0
+g        0.00  0  0 1
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+    AIC   BIC logLik
+  665.7 663.6 -322.9
+
+Optimised parameters:
+               est.     lower     upper
+DMTA_0    98.347470 96.380815 100.31413
+k1         0.064524  0.034279   0.09477
+k2         0.008304  0.005843   0.01076
+g          0.952128  0.909578   0.99468
+a.1        1.068907  0.883665   1.25415
+b.1        0.029265  0.022318   0.03621
+SD.DMTA_0  2.065796  0.427951   3.70364
+SD.k1      0.583703  0.251796   0.91561
+SD.k2      0.004167 -7.831228   7.83956
+SD.g       1.064450  0.397479   1.73142
+
+Correlation: 
+   DMTA_0  k1      k2     
+k1  0.0223                
+k2  0.0568  0.0394        
+g  -0.0464 -0.0269 -0.2713
+
+Random effects:
+              est.   lower  upper
+SD.DMTA_0 2.065796  0.4280 3.7036
+SD.k1     0.583703  0.2518 0.9156
+SD.k2     0.004167 -7.8312 7.8396
+SD.g      1.064450  0.3975 1.7314
+
+Variance model:
+       est.   lower   upper
+a.1 1.06891 0.88367 1.25415
+b.1 0.02927 0.02232 0.03621
+
+Estimated disappearance times:
+      DT50  DT90 DT50back DT50_k1 DT50_k2
+DMTA 11.39 41.36    12.45   10.74   83.48
+
+
+

+ +Hierarchical mkin fit of the HS model with error model const + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:13:12 2025 
+Date of summary: Fri Feb 14 08:14:22 2025 
+
+Equations:
+d_DMTA/dt = - ifelse(time <= tb, k1, k2) * DMTA
+
+Data:
+155 observations of 1 variable(s) grouped in 6 datasets
+
+Model predictions using solution type analytical 
+
+Fitted in 1.698 s
+Using 300, 100 iterations and 9 chains
+
+Variance model: Constant variance 
+
+Starting values for degradation parameters:
+  DMTA_0       k1       k2       tb 
+97.82176  0.06931  0.02997 11.13945 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+       DMTA_0 k1 k2 tb
+DMTA_0  97.82  0  0  0
+k1       0.00  1  0  0
+k2       0.00  0  1  0
+tb       0.00  0  0  1
+
+Starting values for error model parameters:
+a.1 
+  1 
+
+Results:
+
+Likelihood computed by importance sampling
+  AIC   BIC logLik
+  714 712.1   -348
+
+Optimised parameters:
+              est.    lower    upper
+DMTA_0    98.16102 96.47747 99.84456
+k1         0.07876  0.05261  0.10491
+k2         0.02227  0.01706  0.02747
+tb        13.99089 -7.40049 35.38228
+a.1        1.82305  1.60700  2.03910
+SD.DMTA_0  1.88413  0.56204  3.20622
+SD.k1      0.34292  0.10482  0.58102
+SD.k2      0.19851  0.01718  0.37985
+SD.tb      1.68168  0.58064  2.78272
+
+Correlation: 
+   DMTA_0  k1      k2     
+k1  0.0142                
+k2  0.0001 -0.0025        
+tb  0.0165 -0.1256 -0.0301
+
+Random effects:
+            est.   lower  upper
+SD.DMTA_0 1.8841 0.56204 3.2062
+SD.k1     0.3429 0.10482 0.5810
+SD.k2     0.1985 0.01718 0.3798
+SD.tb     1.6817 0.58064 2.7827
+
+Variance model:
+     est. lower upper
+a.1 1.823 1.607 2.039
+
+Estimated disappearance times:
+      DT50  DT90 DT50back DT50_k1 DT50_k2
+DMTA 8.801 67.91    20.44   8.801   31.13
+
+
+

+ +Hierarchical mkin fit of the HS model with error model tc + +

+saemix version used for fitting:      3.3 
+mkin version used for pre-fitting:  1.2.10 
+R version used for fitting:         4.4.2 
+Date of fit:     Fri Feb 14 08:13:13 2025 
+Date of summary: Fri Feb 14 08:14:22 2025 
+
+Equations:
+d_DMTA/dt = - ifelse(time <= tb, k1, k2) * DMTA
+
+Data:
+155 observations of 1 variable(s) grouped in 6 datasets
+
+Model predictions using solution type analytical 
+
+Fitted in 3.307 s
+Using 300, 100 iterations and 9 chains
+
+Variance model: Two-component variance function 
+
+Starting values for degradation parameters:
+  DMTA_0       k1       k2       tb 
+98.45190  0.07525  0.02576 19.19375 
+
+Fixed degradation parameter values:
+None
+
+Starting values for random effects (square root of initial entries in omega):
+       DMTA_0 k1 k2 tb
+DMTA_0  98.45  0  0  0
+k1       0.00  1  0  0
+k2       0.00  0  1  0
+tb       0.00  0  0  1
+
+Starting values for error model parameters:
+a.1 b.1 
+  1   1 
+
+Results:
+
+Likelihood computed by importance sampling
+    AIC BIC logLik
+  667.1 665 -323.6
+
+Optimised parameters:
+              est.    lower    upper
+DMTA_0    97.76571 95.81350 99.71791
+k1         0.05855  0.03080  0.08630
+k2         0.02337  0.01664  0.03010
+tb        31.09638 29.38289 32.80987
+a.1        1.08835  0.90059  1.27611
+b.1        0.02964  0.02261  0.03667
+SD.DMTA_0  2.04877  0.42553  3.67200
+SD.k1      0.59166  0.25621  0.92711
+SD.k2      0.30698  0.09561  0.51835
+SD.tb      0.01274 -0.10915  0.13464
+
+Correlation: 
+   DMTA_0  k1      k2     
+k1  0.0160                
+k2 -0.0070 -0.0024        
+tb -0.0668 -0.0103 -0.2013
+
+Random effects:
+             est.    lower  upper
+SD.DMTA_0 2.04877  0.42553 3.6720
+SD.k1     0.59166  0.25621 0.9271
+SD.k2     0.30698  0.09561 0.5183
+SD.tb     0.01274 -0.10915 0.1346
+
+Variance model:
+       est.   lower   upper
+a.1 1.08835 0.90059 1.27611
+b.1 0.02964 0.02261 0.03667
+
+Estimated disappearance times:
+      DT50  DT90 DT50back DT50_k1 DT50_k2
+DMTA 11.84 51.71    15.57   11.84   29.66
+
+
+

+
+
+

Hierarchical model convergence plots +

+
+Convergence plot for the NLHM SFO fit with constant variance

+Convergence plot for the NLHM SFO fit with constant variance +

+
+
+Convergence plot for the NLHM SFO fit with two-component error

+Convergence plot for the NLHM SFO fit with two-component error +

+
+
+Convergence plot for the NLHM FOMC fit with constant variance

+Convergence plot for the NLHM FOMC fit with constant variance +

+
+
+Convergence plot for the NLHM FOMC fit with two-component error

+Convergence plot for the NLHM FOMC fit with two-component error +

+
+
+Convergence plot for the NLHM DFOP fit with constant variance

+Convergence plot for the NLHM DFOP fit with constant variance +

+
+
+Convergence plot for the NLHM DFOP fit with two-component error

+Convergence plot for the NLHM DFOP fit with two-component error +

+
+
+Convergence plot for the NLHM HS fit with constant variance

+Convergence plot for the NLHM HS fit with constant variance +

+
+
+Convergence plot for the NLHM HS fit with two-component error

+Convergence plot for the NLHM HS fit with two-component error +

+
+
+
+

Session info +

+
R version 4.4.2 (2024-10-31)
+Platform: x86_64-pc-linux-gnu
+Running under: Debian GNU/Linux 12 (bookworm)
+
+Matrix products: default
+BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.11.0 
+LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.11.0
+
+locale:
+ [1] LC_CTYPE=de_DE.UTF-8       LC_NUMERIC=C              
+ [3] LC_TIME=de_DE.UTF-8        LC_COLLATE=de_DE.UTF-8    
+ [5] LC_MONETARY=de_DE.UTF-8    LC_MESSAGES=de_DE.UTF-8   
+ [7] LC_PAPER=de_DE.UTF-8       LC_NAME=C                 
+ [9] LC_ADDRESS=C               LC_TELEPHONE=C            
+[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       
+
+time zone: Europe/Berlin
+tzcode source: system (glibc)
+
+attached base packages:
+[1] parallel  stats     graphics  grDevices utils     datasets  methods  
+[8] base     
+
+other attached packages:
+[1] rmarkdown_2.29  nvimcom_0.9-167 saemix_3.3      npde_3.5       
+[5] knitr_1.49      mkin_1.2.10    
+
+loaded via a namespace (and not attached):
+ [1] gtable_0.3.6      jsonlite_1.8.9    dplyr_1.1.4       compiler_4.4.2   
+ [5] tidyselect_1.2.1  gridExtra_2.3     jquerylib_0.1.4   systemfonts_1.1.0
+ [9] scales_1.3.0      textshaping_0.4.1 yaml_2.3.10       fastmap_1.2.0    
+[13] lattice_0.22-6    ggplot2_3.5.1     R6_2.5.1          generics_0.1.3   
+[17] lmtest_0.9-40     MASS_7.3-61       htmlwidgets_1.6.4 tibble_3.2.1     
+[21] desc_1.4.3        munsell_0.5.1     bslib_0.8.0       pillar_1.9.0     
+[25] rlang_1.1.4       utf8_1.2.4        cachem_1.1.0      xfun_0.49        
+[29] fs_1.6.5          sass_0.4.9        cli_3.6.3         pkgdown_2.1.1    
+[33] magrittr_2.0.3    digest_0.6.37     grid_4.4.2        mclust_6.1.1     
+[37] lifecycle_1.0.4   nlme_3.1-166      vctrs_0.6.5       evaluate_1.0.1   
+[41] glue_1.8.0        codetools_0.2-20  ragg_1.3.3        zoo_1.8-12       
+[45] fansi_1.0.6       colorspace_2.1-1  pkgconfig_2.0.3   tools_4.4.2      
+[49] htmltools_0.5.8.1
+
+
+

Hardware info +

+
CPU model: AMD Ryzen 9 7950X 16-Core Processor
+
MemTotal:       64927788 kB
+
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-const-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-const-1.png new file mode 100644 index 00000000..91c027a5 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-const-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-tc-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-tc-1.png new file mode 100644 index 00000000..678b76e2 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-tc-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-tc-no-ranef-k2-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-tc-no-ranef-k2-1.png new file mode 100644 index 00000000..a3bc320e Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-dfop-tc-no-ranef-k2-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-fomc-const-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-fomc-const-1.png new file mode 100644 index 00000000..da63e191 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-fomc-const-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-fomc-tc-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-fomc-tc-1.png new file mode 100644 index 00000000..00958654 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-fomc-tc-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-hs-const-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-hs-const-1.png new file mode 100644 index 00000000..72a996ac Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-hs-const-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-hs-tc-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-hs-tc-1.png new file mode 100644 index 00000000..46cfa3f8 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-hs-tc-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-sfo-const-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-sfo-const-1.png new file mode 100644 index 00000000..6dc7a6e2 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-sfo-const-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-sfo-tc-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-sfo-tc-1.png new file mode 100644 index 00000000..8df26d78 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/convergence-saem-sfo-tc-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-full-par-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-full-par-1.png new file mode 100644 index 00000000..f90b19e7 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-full-par-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-reduced-par-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-reduced-par-1.png new file mode 100644 index 00000000..f6f1e43d Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-reduced-par-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-reduced-par-llquant-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-reduced-par-llquant-1.png new file mode 100644 index 00000000..ef6bc8bd Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/multistart-reduced-par-llquant-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/plot-saem-dfop-tc-no-ranef-k2-1.png b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/plot-saem-dfop-tc-no-ranef-k2-1.png new file mode 100644 index 00000000..cd506f57 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_parent_files/figure-html/plot-saem-dfop-tc-no-ranef-k2-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_pathway.html b/docs/dev/articles/prebuilt/2022_dmta_pathway.html new file mode 100644 index 00000000..92440f1f --- /dev/null +++ b/docs/dev/articles/prebuilt/2022_dmta_pathway.html @@ -0,0 +1,2002 @@ + + + + + + + +Testing hierarchical pathway kinetics with residue data on dimethenamid and dimethenamid-P • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +
+

Introduction +

+

The purpose of this document is to test demonstrate how nonlinear +hierarchical models (NLHM) based on the parent degradation models SFO, +FOMC, DFOP and HS, with parallel formation of two or more metabolites +can be fitted with the mkin package.

+

It was assembled in the course of work package 1.2 of Project Number +173340 (Application of nonlinear hierarchical models to the kinetic +evaluation of chemical degradation data) of the German Environment +Agency carried out in 2022 and 2023.

+

The mkin package is used in version 1.2.10, which is currently under +development. It contains the test data, and the functions used in the +evaluations. The saemix package is used as a backend for +fitting the NLHM, but is also loaded to make the convergence plot +function available.

+

This document is processed with the knitr package, which +also provides the kable function that is used to improve +the display of tabular data in R markdown documents. For parallel +processing, the parallel package is used.

+
+library(mkin)
+library(knitr)
+library(saemix)
+library(parallel)
+n_cores <- detectCores()
+
+# We need to start a new cluster after defining a compiled model that is
+# saved as a DLL to the user directory, therefore we define a function
+# This is used again after defining the pathway model
+start_cluster <- function(n_cores) {
+  if (Sys.info()["sysname"] == "Windows") {
+    ret <- makePSOCKcluster(n_cores)
+  } else {
+    ret <- makeForkCluster(n_cores)
+  }
+  return(ret)
+}
+
+
+

Data +

+

The test data are available in the mkin package as an object of class +mkindsg (mkin dataset group) under the identifier +dimethenamid_2018. The following preprocessing steps are +done in this document.

+
    +
  • The data available for the enantiomer dimethenamid-P (DMTAP) are +renamed to have the same substance name as the data for the racemic +mixture dimethenamid (DMTA). The reason for this is that no difference +between their degradation behaviour was identified in the EU risk +assessment.
  • +
  • Unnecessary columns are discarded
  • +
  • The observation times of each dataset are multiplied with the +corresponding normalisation factor also available in the dataset, in +order to make it possible to describe all datasets with a single set of +parameters that are independent of temperature
  • +
  • Finally, datasets observed in the same soil (Elliot 1 +and Elliot 2) are combined, resulting in dimethenamid +(DMTA) data from six soils.
  • +
+

The following commented R code performs this preprocessing.

+
+# Apply a function to each of the seven datasets in the mkindsg object to create a list
+dmta_ds <- lapply(1:7, function(i) {
+  ds_i <- dimethenamid_2018$ds[[i]]$data                     # Get a dataset
+  ds_i[ds_i$name == "DMTAP", "name"] <-  "DMTA"              # Rename DMTAP to DMTA
+  ds_i <- subset(ds_i, select = c("name", "time", "value")) # Select data
+  ds_i$time <- ds_i$time * dimethenamid_2018$f_time_norm[i]  # Normalise time
+  ds_i                                                       # Return the dataset
+})
+
+# Use dataset titles as names for the list elements
+names(dmta_ds) <- sapply(dimethenamid_2018$ds, function(ds) ds$title)
+
+# Combine data for Elliot soil to obtain a named list with six elements
+dmta_ds[["Elliot"]] <- rbind(dmta_ds[["Elliot 1"]], dmta_ds[["Elliot 2"]]) #
+dmta_ds[["Elliot 1"]] <- NULL
+dmta_ds[["Elliot 2"]] <- NULL
+

The following tables show the 6 datasets.

+
+for (ds_name in names(dmta_ds)) {
+  print(
+    kable(mkin_long_to_wide(dmta_ds[[ds_name]]),
+      caption = paste("Dataset", ds_name),
+      booktabs = TRUE, row.names = FALSE))
+    cat("\n\\clearpage\n")
+}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Calke
timeDMTAM23M27M31
095.8NANANA
098.7NANANA
1460.54.11.52.0
3039.15.32.42.1
5915.26.03.22.2
1204.84.33.81.8
1204.64.13.72.1
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Borstel
timeDMTAM23M27M31
0.000000100.5NANANA
0.00000099.6NANANA
1.94129591.90.4NANA
1.94129591.30.50.30.1
6.79453481.81.20.81.0
6.79453482.11.30.90.9
13.58906769.12.81.42.0
13.58906768.02.01.42.5
27.17813551.42.92.74.3
27.17813551.44.92.63.2
56.29756527.612.24.44.3
56.29756526.812.24.74.8
86.38764315.712.25.45.0
86.38764315.312.05.25.1
115.5070737.910.45.44.3
115.5070738.111.65.44.4
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Flaach
timeDMTAM23M27M31
0.000000096.5NANANA
0.000000096.8NANANA
0.000000097.0NANANA
0.623385682.90.71.10.3
0.623385686.70.71.10.3
0.623385687.40.20.30.1
1.870156772.82.22.60.7
1.870156769.91.82.40.6
1.870156771.91.62.30.7
4.363698951.44.15.01.3
4.363698952.94.25.91.2
4.363698948.64.24.81.4
8.727397928.57.58.52.4
8.727397927.37.18.52.1
8.727397927.57.58.32.3
13.091096814.88.49.33.3
13.091096813.46.88.72.4
13.091096814.48.09.12.6
17.45479577.77.28.64.0
17.45479577.37.28.53.6
17.45479578.16.98.93.3
26.18219362.04.98.12.1
26.18219361.54.37.71.7
26.18219361.94.57.41.8
34.90959151.33.85.91.6
34.90959151.03.16.01.6
34.90959151.13.15.91.4
43.63698930.92.75.61.8
43.63698930.72.35.21.5
43.63698930.72.15.61.3
52.36438720.61.64.31.2
52.36438720.41.13.70.9
52.36438720.51.33.91.1
74.80626740.40.42.50.5
74.80626740.30.42.40.5
74.80626740.30.32.20.3
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset BBA 2.2
timeDMTAM23M27M31
0.000000098.09NANANA
0.000000098.77NANANA
0.767892293.520.360.420.36
0.767892292.030.400.470.33
2.303676588.391.030.710.55
2.303676587.181.070.820.64
5.375245269.383.602.191.94
5.375245271.063.662.281.62
10.750490445.216.975.454.22
10.750490446.817.225.194.37
16.125735530.548.658.816.31
16.125735530.078.387.936.85
21.500980721.609.1010.257.05
21.500980720.418.6310.776.84
32.25147119.107.6310.896.53
32.25147119.708.0110.857.11
43.00196146.586.4010.416.06
43.00196146.316.3510.356.05
53.75245183.475.359.925.50
53.75245183.525.069.425.07
64.50294213.405.149.154.94
64.50294213.675.919.254.39
91.37916801.623.357.143.64
91.37916801.622.877.133.55
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset BBA 2.3
timeDMTAM23M27M31
0.000000099.33NANANA
0.000000097.44NANANA
0.673393893.730.180.500.47
0.673393893.770.180.830.34
2.020181487.840.521.251.00
2.020181489.820.431.090.89
4.713756571.611.193.283.58
4.713756571.421.113.243.41
9.427513145.602.267.178.74
9.427513145.421.997.918.28
14.141269631.122.8110.159.67
14.141269631.682.839.558.95
18.855026223.203.3912.0910.34
18.855026224.133.5611.8910.00
28.28253939.433.4913.327.89
28.28253939.823.2812.058.13
37.71005237.082.8010.045.06
37.71005238.642.9710.785.54
47.13756544.412.429.323.79
47.13756544.782.519.624.11
56.56507854.922.228.003.11
56.56507855.081.958.452.98
80.13386122.131.285.711.78
80.13386122.230.993.331.55
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Elliot
timeDMTAM23M27M31
0.00000097.5NANANA
0.000000100.7NANANA
1.22847886.4NANANA
1.22847888.5NANA1.5
3.68543569.82.82.35.0
3.68543577.11.72.12.4
8.59934959.04.34.04.3
8.59934954.25.83.45.0
17.19869731.38.26.68.0
17.19869733.55.26.97.7
25.79804619.65.18.27.8
25.79804620.96.18.86.5
34.39739513.36.09.78.0
34.39739515.86.08.87.4
51.5960926.75.08.36.9
51.5960928.74.29.29.0
68.7947898.83.99.35.5
68.7947898.72.98.56.1
103.1921846.01.98.66.1
103.1921844.41.56.04.0
146.1889283.32.05.63.1
146.1889282.82.34.52.9
223.5830661.41.24.11.8
223.5830661.81.93.92.6
0.00000093.4NANANA
0.000000103.2NANANA
1.22847889.2NANA1.3
1.22847886.6NANANA
3.68543578.22.61.03.1
3.68543578.12.42.62.3
8.59934955.65.54.53.4
8.59934953.05.64.64.3
17.19869733.77.37.67.8
17.19869733.26.56.78.7
25.79804620.95.88.77.7
25.79804619.97.77.66.5
34.39739518.27.88.06.3
34.39739512.77.38.68.7
51.5960927.87.07.45.7
51.5960929.06.37.24.2
68.79478911.44.310.33.2
68.7947899.03.89.44.2
103.1921843.92.66.53.8
103.1921844.42.86.94.0
146.1889282.61.64.64.5
146.1889283.41.14.54.5
223.5830662.01.44.33.8
223.5830661.71.34.22.3
+
+
+

Separate evaluations +

+

As a first step to obtain suitable starting parameters for the NLHM +fits, we do separate fits of several variants of the pathway model used +previously (Ranke et al. 2021), varying +the kinetic model for the parent compound. Because the SFORB model often +provides faster convergence than the DFOP model, and can sometimes be +fitted where the DFOP model results in errors, it is included in the set +of parent models tested here.

+
+if (!dir.exists("dmta_dlls")) dir.create("dmta_dlls")
+m_sfo_path_1 <- mkinmod(
+  DMTA = mkinsub("SFO", c("M23", "M27", "M31")),
+  M23 = mkinsub("SFO"),
+  M27 = mkinsub("SFO"),
+  M31 = mkinsub("SFO", "M27", sink = FALSE),
+  name = "m_sfo_path", dll_dir = "dmta_dlls",
+  unload = TRUE, overwrite = TRUE,
+  quiet = TRUE
+)
+m_fomc_path_1 <- mkinmod(
+  DMTA = mkinsub("FOMC", c("M23", "M27", "M31")),
+  M23 = mkinsub("SFO"),
+  M27 = mkinsub("SFO"),
+  M31 = mkinsub("SFO", "M27", sink = FALSE),
+  name = "m_fomc_path", dll_dir = "dmta_dlls",
+  unload = TRUE, overwrite = TRUE,
+  quiet = TRUE
+)
+m_dfop_path_1 <- mkinmod(
+  DMTA = mkinsub("DFOP", c("M23", "M27", "M31")),
+  M23 = mkinsub("SFO"),
+  M27 = mkinsub("SFO"),
+  M31 = mkinsub("SFO", "M27", sink = FALSE),
+  name = "m_dfop_path", dll_dir = "dmta_dlls",
+  unload = TRUE, overwrite = TRUE,
+  quiet = TRUE
+)
+m_sforb_path_1 <- mkinmod(
+  DMTA = mkinsub("SFORB", c("M23", "M27", "M31")),
+  M23 = mkinsub("SFO"),
+  M27 = mkinsub("SFO"),
+  M31 = mkinsub("SFO", "M27", sink = FALSE),
+  name = "m_sforb_path", dll_dir = "dmta_dlls",
+  unload = TRUE, overwrite = TRUE,
+  quiet = TRUE
+)
+m_hs_path_1 <- mkinmod(
+  DMTA = mkinsub("HS", c("M23", "M27", "M31")),
+  M23 = mkinsub("SFO"),
+  M27 = mkinsub("SFO"),
+  M31 = mkinsub("SFO", "M27", sink = FALSE),
+  name = "m_hs_path", dll_dir = "dmta_dlls",
+  unload = TRUE, overwrite = TRUE,
+  quiet = TRUE
+)
+cl <- start_cluster(n_cores)
+
+deg_mods_1 <- list(
+  sfo_path_1 = m_sfo_path_1,
+  fomc_path_1 = m_fomc_path_1,
+  dfop_path_1 = m_dfop_path_1,
+  sforb_path_1 = m_sforb_path_1,
+  hs_path_1 = m_hs_path_1)
+
+sep_1_const <- mmkin(
+  deg_mods_1,
+  dmta_ds,
+  error_model = "const",
+  quiet = TRUE)
+
+status(sep_1_const) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CalkeBorstelFlaachBBA 2.2BBA 2.3Elliot
sfo_path_1OKOKOKOKOKOK
fomc_path_1OKOKOKOKOKOK
dfop_path_1OKOKOKOKOKOK
sforb_path_1OKOKCOKOKOK
hs_path_1CCOKCCC
+

All separate pathway fits with SFO or FOMC for the parent and +constant variance converged (status OK). Most fits with DFOP or SFORB +for the parent converged as well. The fits with HS for the parent did +not converge with default settings.

+
+sep_1_tc <- update(sep_1_const, error_model = "tc")
+status(sep_1_tc) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CalkeBorstelFlaachBBA 2.2BBA 2.3Elliot
sfo_path_1OKOKOKOKOKOK
fomc_path_1OKOKOKOKOKOK
dfop_path_1OKCOKCOKOK
sforb_path_1OKOKOKOKOKOK
hs_path_1CCCCCC
+

With the two-component error model, the set of fits with convergence +problems is slightly different, with convergence problems appearing for +different data sets when applying the DFOP and SFORB model and some +additional convergence problems when using the FOMC model for the +parent.

+
+
+

Hierarchichal model fits +

+

The following code fits two sets of the corresponding hierarchical +models to the data, one assuming constant variance, and one assuming +two-component error.

+
+saem_1 <- mhmkin(list(sep_1_const, sep_1_tc))
+

The run time for these fits was around two hours on five year old +hardware. After a recent hardware upgrade these fits complete in less +than twenty minutes.

+
+status(saem_1) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
sfo_path_1OKOK
fomc_path_1OKOK
dfop_path_1OKOK
sforb_path_1OKOK
hs_path_1OKOK
+

According to the status function, all fits terminated +successfully.

+
+anova(saem_1) |> kable(digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
sfo_path_1 const172291.82288.3-1128.9
sfo_path_1 tc182276.42272.7-1120.2
fomc_path_1 const192095.92091.9-1028.9
fomc_path_1 tc201939.01934.8-949.5
dfop_path_1 const212039.72035.3-998.8
sforb_path_1 const212017.72013.4-987.9
hs_path_1 const212023.72019.3-990.9
dfop_path_1 tc221881.71877.1-918.9
sforb_path_1 tc221832.71828.1-894.3
hs_path_1 tc221831.61827.0-893.8
+

When the goodness-of-fit of the models is compared, a warning is +obtained, indicating that the likelihood of the pathway fit with SFORB +for the parent compound and constant variance could not be calculated +with importance sampling (method ‘is’). As this is the default method on +which all AIC and BIC comparisons are based, this variant is not +included in the model comparison table. Comparing the goodness-of-fit of +the remaining models, HS model model with two-component error provides +the best fit. However, for batch experiments performed with constant +conditions such as the experiments evaluated here, there is no reason to +assume a discontinuity, so the SFORB model is preferable from a +mechanistic viewpoint. In addition, the information criteria AIC and BIC +are very similar for HS and SFORB. Therefore, the SFORB model is +selected here for further refinements.

+
+

Parameter identifiability based on the Fisher Information +Matrix +

+

Using the illparms function, ill-defined statistical +model parameters such as standard deviations of the degradation +parameters in the population and error model parameters can be +found.

+
+illparms(saem_1) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
sfo_path_1sd(DMTA_0)
fomc_path_1sd(DMTA_0)
dfop_path_1
sforb_path_1sd(log_k_DMTA_bound_free)sd(log_k_DMTA_bound_free)
hs_path_1sd(log_tb)
+

When using constant variance, no ill-defined variance parameters are +identified with the illparms function in any of the +degradation models. When using the two-component error model, there is +one ill-defined variance parameter in all variants except for the +variant using DFOP for the parent compound.

+

For the selected combination of the SFORB pathway model with +two-component error, the random effect for the rate constant from +reversibly bound DMTA to the free DMTA (k_DMTA_bound_free) +is not well-defined. Therefore, the fit is updated without assuming a +random effect for this parameter.

+
+saem_sforb_path_1_tc_reduced <- update(saem_1[["sforb_path_1", "tc"]],
+  no_random_effect = "log_k_DMTA_bound_free")
+illparms(saem_sforb_path_1_tc_reduced)
+

As expected, no ill-defined parameters remain. The model comparison +below shows that the reduced model is preferable.

+
+anova(saem_1[["sforb_path_1", "tc"]], saem_sforb_path_1_tc_reduced) |> kable(digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
saem_sforb_path_1_tc_reduced211830.41826.0-894.2
saem_1[[“sforb_path_1”, “tc”]]221832.71828.1-894.3
+

The convergence plot of the refined fit is shown below.

+
+plot(saem_sforb_path_1_tc_reduced$so, plot.type = "convergence")
+

+

For some parameters, for example for f_DMTA_ilr_1 and +f_DMTA_ilr_2, i.e. for two of the parameters determining +the formation fractions of the parallel formation of the three +metabolites, some movement of the parameters is still visible in the +second phase of the algorithm. However, the amplitude of this movement +is in the range of the amplitude towards the end of the first phase. +Therefore, it is likely that an increase in iterations would not improve +the parameter estimates very much, and it is proposed that the fit is +acceptable. No numeric convergence criterion is implemented in +saemix.

+
+
+

Alternative check of parameter identifiability +

+

As an alternative check of parameter identifiability (Duchesne et al. 2021), multistart runs were +performed on the basis of the refined fit shown above.

+
+saem_sforb_path_1_tc_reduced_multi <- multistart(saem_sforb_path_1_tc_reduced,
+  n = 32, cores = 10)
+
 
+  (subscript) logical subscript too long
+
+print(saem_sforb_path_1_tc_reduced_multi)
+
<multistart> object with 32 fits:
+ E OK 
+ 7 25 
+OK: Fit terminated successfully
+E: Error
+

Out of the 32 fits that were initiated, only 17 terminated without an +error. The reason for this is that the wide variation of starting +parameters in combination with the parameter variation that is used in +the SAEM algorithm leads to parameter combinations for the degradation +model that the numerical integration routine cannot cope with. Because +of this variation of initial parameters, some of the model fits take up +to two times more time than the original fit.

+
+par(mar = c(12.1, 4.1, 2.1, 2.1))
+parplot(saem_sforb_path_1_tc_reduced_multi, ylim = c(0.5, 2), las = 2)
+
+Parameter boxplots for the multistart runs that succeeded

+Parameter boxplots for the multistart runs that succeeded +

+
+

However, visual analysis of the boxplot of the parameters obtained in +the successful fits confirms that the results are sufficiently +independent of the starting parameters, and there are no remaining +ill-defined parameters.

+
+
+
+

Plots of selected fits +

+

The SFORB pathway fits with full and reduced parameter distribution +model are shown below.

+
+plot(saem_1[["sforb_path_1", "tc"]])
+
+SFORB pathway fit with two-component error

+SFORB pathway fit with two-component error +

+
+
+plot(saem_sforb_path_1_tc_reduced)
+
+SFORB pathway fit with two-component error, reduced parameter model

+SFORB pathway fit with two-component error, reduced parameter model +

+
+

Plots of the remaining fits and listings for all successful fits are +shown in the Appendix.

+ +
+
+

Conclusions +

+

Pathway fits with SFO, FOMC, DFOP, SFORB and HS models for the parent +compound could be successfully performed.

+
+
+

Acknowledgements +

+

The helpful comments by Janina Wöltjen of the German Environment +Agency on earlier versions of this document are gratefully +acknowledged.

+
+
+

References +

+
+
+Duchesne, Ronan, Anissa Guillemin, Olivier Gandrillon, and Fabien +Crauste. 2021. “Practical Identifiability in the Frame of +Nonlinear Mixed Effects Models: The Example of the in Vitro +Erythropoiesis.” BMC Bioinformatics 22 (478). https://doi.org/10.1186/s12859-021-04373-4. +
+
+Ranke, Johannes, Janina Wöltjen, Jana Schmidt, and Emmanuelle Comets. +2021. “Taking Kinetic Evaluations of Degradation Data to the Next +Level with Nonlinear Mixed-Effects Models.” Environments +8 (8). https://doi.org/10.3390/environments8080071. +
+
+
+
+

Appendix +

+
+

Plots of hierarchical fits not selected for refinement +

+
+plot(saem_1[["sfo_path_1", "tc"]])
+
+SFO pathway fit with two-component error

+SFO pathway fit with two-component error +

+
+
+plot(saem_1[["fomc_path_1", "tc"]])
+
+FOMC pathway fit with two-component error

+FOMC pathway fit with two-component error +

+
+
+plot(saem_1[["sforb_path_1", "tc"]])
+
+HS pathway fit with two-component error

+HS pathway fit with two-component error +

+
+
+
+

Hierarchical model fit listings +

+
+

Fits with random effects for all degradation parameters +

+ +
+
+

Improved fit of the SFORB pathway model with two-component +error +

+ +
+
+
+

Session info +

+
R version 4.4.2 (2024-10-31)
+Platform: x86_64-pc-linux-gnu
+Running under: Debian GNU/Linux 12 (bookworm)
+
+Matrix products: default
+BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.11.0 
+LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.11.0
+
+locale:
+ [1] LC_CTYPE=de_DE.UTF-8       LC_NUMERIC=C              
+ [3] LC_TIME=de_DE.UTF-8        LC_COLLATE=de_DE.UTF-8    
+ [5] LC_MONETARY=de_DE.UTF-8    LC_MESSAGES=de_DE.UTF-8   
+ [7] LC_PAPER=de_DE.UTF-8       LC_NAME=C                 
+ [9] LC_ADDRESS=C               LC_TELEPHONE=C            
+[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       
+
+time zone: Europe/Berlin
+tzcode source: system (glibc)
+
+attached base packages:
+[1] parallel  stats     graphics  grDevices utils     datasets  methods  
+[8] base     
+
+other attached packages:
+[1] rmarkdown_2.29  nvimcom_0.9-167 saemix_3.3      npde_3.5       
+[5] knitr_1.49      mkin_1.2.10    
+
+loaded via a namespace (and not attached):
+ [1] sass_0.4.9        utf8_1.2.4        generics_0.1.3    lattice_0.22-6   
+ [5] digest_0.6.37     magrittr_2.0.3    evaluate_1.0.1    grid_4.4.2       
+ [9] fastmap_1.2.0     jsonlite_1.8.9    processx_3.8.4    pkgbuild_1.4.5   
+[13] deSolve_1.40      mclust_6.1.1      ps_1.8.1          gridExtra_2.3    
+[17] fansi_1.0.6       scales_1.3.0      codetools_0.2-20  textshaping_0.4.1
+[21] jquerylib_0.1.4   cli_3.6.3         rlang_1.1.4       munsell_0.5.1    
+[25] cachem_1.1.0      yaml_2.3.10       inline_0.3.20     tools_4.4.2      
+[29] dplyr_1.1.4       colorspace_2.1-1  ggplot2_3.5.1     vctrs_0.6.5      
+[33] R6_2.5.1          zoo_1.8-12        lifecycle_1.0.4   fs_1.6.5         
+[37] htmlwidgets_1.6.4 MASS_7.3-61       ragg_1.3.3        pkgconfig_2.0.3  
+[41] desc_1.4.3        callr_3.7.6       pkgdown_2.1.1     pillar_1.9.0     
+[45] bslib_0.8.0       gtable_0.3.6      glue_1.8.0        systemfonts_1.1.0
+[49] xfun_0.49         tibble_3.2.1      lmtest_0.9-40     tidyselect_1.2.1 
+[53] htmltools_0.5.8.1 nlme_3.1-166      compiler_4.4.2   
+
+
+

Hardware info +

+
CPU model: AMD Ryzen 9 7950X 16-Core Processor
+
MemTotal:       64927788 kB
+
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/saem-sforb-path-1-tc-reduced-convergence-1.png b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/saem-sforb-path-1-tc-reduced-convergence-1.png new file mode 100644 index 00000000..0facfbe5 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/saem-sforb-path-1-tc-reduced-convergence-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-2-1.png b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-2-1.png new file mode 100644 index 00000000..4e363872 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-2-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-3-1.png b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-3-1.png new file mode 100644 index 00000000..562d8d9d Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-3-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-4-1.png b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-4-1.png new file mode 100644 index 00000000..7bf4aa4a Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-4-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-6-1.png b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-6-1.png new file mode 100644 index 00000000..602c1138 Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-6-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-7-1.png b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-7-1.png new file mode 100644 index 00000000..8db8e11c Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-7-1.png differ diff --git a/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-8-1.png b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-8-1.png new file mode 100644 index 00000000..562d8d9d Binary files /dev/null and b/docs/dev/articles/prebuilt/2022_dmta_pathway_files/figure-html/unnamed-chunk-8-1.png differ diff --git a/docs/dev/articles/prebuilt/2023_mesotrione_parent.html b/docs/dev/articles/prebuilt/2023_mesotrione_parent.html new file mode 100644 index 00000000..86c7c2dd --- /dev/null +++ b/docs/dev/articles/prebuilt/2023_mesotrione_parent.html @@ -0,0 +1,2500 @@ + + + + + + + +Testing covariate modelling in hierarchical parent degradation kinetics with residue data on mesotrione • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +
+

Introduction +

+

The purpose of this document is to test demonstrate how nonlinear +hierarchical models (NLHM) based on the parent degradation models SFO, +FOMC, DFOP and HS can be fitted with the mkin package, also considering +the influence of covariates like soil pH on different degradation +parameters. Because in some other case studies, the SFORB +parameterisation of biexponential decline has shown some advantages over +the DFOP parameterisation, SFORB was included in the list of tested +models as well.

+

The mkin package is used in version 1.2.10, which is contains the +functions that were used for the evaluations. The saemix +package is used as a backend for fitting the NLHM, but is also loaded to +make the convergence plot function available.

+

This document is processed with the knitr package, which +also provides the kable function that is used to improve +the display of tabular data in R markdown documents. For parallel +processing, the parallel package is used.

+
+library(mkin)
+library(knitr)
+library(saemix)
+library(parallel)
+n_cores <- detectCores()
+if (Sys.info()["sysname"] == "Windows") {
+  cl <- makePSOCKcluster(n_cores)
+} else {
+  cl <- makeForkCluster(n_cores)
+}
+
+

Test data +

+
+data_file <- system.file(
+  "testdata", "mesotrione_soil_efsa_2016.xlsx", package = "mkin")
+meso_ds <- read_spreadsheet(data_file, parent_only = TRUE)
+

The following tables show the covariate data and the 18 datasets that +were read in from the spreadsheet file.

+
+pH <- attr(meso_ds, "covariates")
+kable(pH, caption = "Covariate data")
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Covariate data
pH
Richmond6.2
Richmond 26.2
ERTC6.4
Toulouse7.7
Picket Piece7.1
7215.6
7225.7
7235.4
7244.8
7255.8
7275.1
7285.9
7295.6
7305.3
7316.1
7325.0
7415.7
7427.2
+
+for (ds_name in names(meso_ds)) {
+  print(
+    kable(mkin_long_to_wide(meso_ds[[ds_name]]),
+      caption = paste("Dataset", ds_name),
+      booktabs = TRUE, row.names = FALSE))
+}
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Richmond
timemeso
0.00000091.00
1.17905086.70
3.53714973.60
7.07429961.50
10.61144855.70
15.32764747.70
17.68574739.50
24.76004629.80
35.37149419.60
68.3848895.67
0.00000097.90
1.17905096.40
3.53714989.10
7.07429974.40
10.61144857.40
15.32764746.30
18.86479735.50
27.11814627.20
35.37149419.10
74.2801386.50
108.4725823.40
142.6650272.20
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Richmond 2
timemeso
0.00000096.0
2.42200482.4
5.65134371.2
8.07334853.1
11.30268748.5
16.95403033.4
22.60537324.2
45.21074611.9
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset ERTC
timemeso
0.00000099.9
2.75519380.0
6.42878242.1
9.18397550.1
12.85756528.4
19.28634739.8
25.71513029.9
51.4302592.5
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Toulouse
timemeso
0.00000096.8
2.89798363.3
6.76196022.3
9.65994216.6
13.52391916.1
20.28587917.2
27.0478381.8
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset Picket Piece
timemeso
0.000000102.0
2.84119573.7
6.62945435.5
9.47064931.8
13.25890918.0
19.8883643.7
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 721
timemeso
0.0000086.4
11.2436661.4
22.4873349.8
33.7309941.0
44.9746635.1
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 722
timemeso
0.0000090.3
11.2436652.1
22.4873337.4
33.7309921.2
44.9746614.3
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 723
timemeso
0.0000089.3
11.2436670.8
22.4873351.1
33.7309942.7
44.9746626.7
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 724
timemeso
0.00000089.4
9.00820865.2
18.01641555.8
27.02462346.0
36.03283141.7
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 725
timemeso
0.0000089.0
10.9905835.4
21.9811618.6
32.9717411.6
43.962327.6
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 727
timemeso
0.0000091.3
10.9610463.2
21.9220951.1
32.8831342.0
43.8441740.8
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 728
timemeso
0.0000091.8
11.2436643.6
22.4873322.0
33.7309915.9
44.974668.8
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 729
timemeso
0.0000091.6
11.2436660.5
22.4873343.5
33.7309928.4
44.9746620.5
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 730
timemeso
0.0000092.7
11.0744658.9
22.1489344.0
33.2233946.0
44.2978529.3
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 731
timemeso
0.0000092.1
11.2436664.4
22.4873345.3
33.7309933.6
44.9746623.5
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 732
timemeso
0.0000090.3
11.2436658.2
22.4873340.1
33.7309933.1
44.9746625.8
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 741
timemeso
0.0000090.3
10.8471268.7
21.6942458.0
32.5413652.2
43.3884848.0
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Dataset 742
timemeso
0.0000092.0
11.2436660.9
22.4873336.2
33.7309918.3
44.974668.7
+
+
+
+

Separate evaluations +

+

In order to obtain suitable starting parameters for the NLHM fits, +separate fits of the five models to the data for each soil are generated +using the mmkin function from the mkin package. In a first +step, constant variance is assumed. Convergence is checked with the +status function.

+
+deg_mods <- c("SFO", "FOMC", "DFOP", "SFORB", "HS")
+f_sep_const <- mmkin(
+  deg_mods,
+  meso_ds,
+  error_model = "const",
+  cluster = cl,
+  quiet = TRUE)
+
+status(f_sep_const[, 1:5]) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RichmondRichmond 2ERTCToulousePicket Piece
SFOOKOKOKOKOK
FOMCOKOKOKOKC
DFOPOKOKOKOKOK
SFORBOKOKOKOKOK
HSOKOKCOKOK
+
+status(f_sep_const[, 6:18]) |> kable()
+ ++++++++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
721722723724725727728729730731732741742
SFOOKOKOKOKOKOKOKOKOKOKOKOKOK
FOMCOKOKCOKOKOKOKOKOKOKOKOKOK
DFOPOKOKOKOKOKOKOKOKOKOKOKOKOK
SFORBOKOKOKOKOKOKOKCOKOKOKOKOK
HSOKOKOKOKOKOKOKOKOKOKOKOKOK
+

In the tables above, OK indicates convergence and C indicates failure +to converge. Most separate fits with constant variance converged, with +the exception of two FOMC fits, one SFORB fit and one HS fit.

+
+f_sep_tc <- update(f_sep_const, error_model = "tc")
+
+status(f_sep_tc[, 1:5]) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RichmondRichmond 2ERTCToulousePicket Piece
SFOOKOKOKOKOK
FOMCOKOKOKOKOK
DFOPCOKOKOKOK
SFORBOKOKOKOKOK
HSOKOKCOKOK
+
+status(f_sep_tc[, 6:18]) |> kable()
+ ++++++++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
721722723724725727728729730731732741742
SFOOKOKOKOKOKOKOKOKOKOKOKOKOK
FOMCOKOKCOKCCOKCOKCOKCOK
DFOPCOKOKOKCOKOKOKOKCOKCOK
SFORBCOKOKOKCOKOKCOKOKOKCOK
HSOKOKOKOKOKOKOKOKOKCOKOKOK
+

With the two-component error model, the set of fits that did not +converge is larger, with convergence problems appearing for a number of +non-SFO fits.

+
+
+

Hierarchical model fits without covariate effect +

+

The following code fits hierarchical kinetic models for the ten +combinations of the five different degradation models with the two +different error models in parallel.

+
+f_saem_1 <- mhmkin(list(f_sep_const, f_sep_tc), cluster = cl)
+status(f_saem_1) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
SFOOKOK
FOMCOKOK
DFOPOKOK
SFORBOKOK
HSOKOK
+

All fits terminate without errors (status OK).

+
+anova(f_saem_1) |> kable(digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
SFO const5800.0804.5-395.0
SFO tc6801.9807.2-394.9
FOMC const7787.4793.6-386.7
FOMC tc8788.9796.1-386.5
DFOP const9787.6795.6-384.8
SFORB const9787.4795.4-384.7
HS const9781.9789.9-382.0
DFOP tc10787.4796.3-383.7
SFORB tc10795.8804.7-387.9
HS tc10783.7792.7-381.9
+

The model comparisons show that the fits with constant variance are +consistently preferable to the corresponding fits with two-component +error for these data. This is confirmed by the fact that the parameter +b.1 (the relative standard deviation in the fits obtained +with the saemix package), is ill-defined in all fits.

+
+illparms(f_saem_1) |> kable()
+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
SFOsd(meso_0)sd(meso_0), b.1
FOMCsd(meso_0), sd(log_beta)sd(meso_0), sd(log_beta), b.1
DFOPsd(meso_0), sd(log_k1)sd(meso_0), sd(g_qlogis), b.1
SFORBsd(meso_free_0), sd(log_k_meso_free_bound)sd(meso_free_0), sd(log_k_meso_free_bound), b.1
HSsd(meso_0)sd(meso_0), b.1
+

For obtaining fits with only well-defined random effects, we update +the set of fits, excluding random effects that were ill-defined +according to the illparms function.

+
+f_saem_2 <- update(f_saem_1, no_random_effect = illparms(f_saem_1))
+status(f_saem_2) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
SFOOKOK
FOMCOKOK
DFOPOKOK
SFORBOKOK
HSOKOK
+

The updated fits terminate without errors.

+
+illparms(f_saem_2) |> kable()
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
consttc
SFOb.1
FOMCb.1
DFOPb.1
SFORBb.1
HSb.1
+

No ill-defined errors remain in the fits with constant variance.

+
+
+

Hierarchical model fits with covariate effect +

+

In the following sections, hierarchical fits including a model for +the influence of pH on selected degradation parameters are shown for all +parent models. Constant variance is selected as the error model based on +the fits without covariate effects. Random effects that were ill-defined +in the fits without pH influence are excluded. A potential influence of +the soil pH is only included for parameters with a well-defined random +effect, because experience has shown that only for such parameters a +significant pH effect could be found.

+
+

SFO +

+
+sfo_pH <- saem(f_sep_const["SFO", ], no_random_effect = "meso_0", covariates = pH,
+  covariate_models = list(log_k_meso ~ pH))
+
+summary(sfo_pH)$confint_trans |> kable(digits = 2)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
est.lowerupper
meso_091.3589.2793.43
log_k_meso-6.66-7.97-5.35
beta_pH(log_k_meso)0.590.370.81
a.15.484.716.24
SD.log_k_meso0.350.230.47
+

The parameter showing the pH influence in the above table is +beta_pH(log_k_meso). Its confidence interval does not +include zero, indicating that the influence of soil pH on the log of the +degradation rate constant is significantly greater than zero.

+
+anova(f_saem_2[["SFO", "const"]], sfo_pH, test = TRUE)
+
Data: 116 observations of 1 variable(s) grouped in 18 datasets
+
+                           npar    AIC    BIC     Lik  Chisq Df Pr(>Chisq)    
+f_saem_2[["SFO", "const"]]    4 797.56 801.12 -394.78                         
+sfo_pH                        5 783.09 787.54 -386.54 16.473  1  4.934e-05 ***
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+

The comparison with the SFO fit without covariate effect confirms +that considering the soil pH improves the model, both by comparison of +AIC and BIC and by the likelihood ratio test.

+
+plot(sfo_pH)
+

+

Endpoints for a model with covariates are by default calculated for +the median of the covariate values. This quantile can be adapted, or a +specific covariate value can be given as shown below.

+
+endpoints(sfo_pH)
+
$covariates
+      pH
+50% 5.75
+
+$distimes
+         DT50     DT90
+meso 18.52069 61.52441
+
+endpoints(sfo_pH, covariate_quantile = 0.9)
+
$covariates
+      pH
+90% 7.13
+
+$distimes
+         DT50     DT90
+meso 8.237019 27.36278
+
+endpoints(sfo_pH, covariates = c(pH = 7.0))
+
$covariates
+     pH
+User  7
+
+$distimes
+        DT50    DT90
+meso 8.89035 29.5331
+
+
+

FOMC +

+
+fomc_pH <- saem(f_sep_const["FOMC", ], no_random_effect = "meso_0", covariates = pH,
+  covariate_models = list(log_alpha ~ pH))
+
+summary(fomc_pH)$confint_trans |> kable(digits = 2)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
est.lowerupper
meso_092.8490.7594.93
log_alpha-2.21-3.49-0.92
beta_pH(log_alpha)0.580.370.79
log_beta4.213.444.99
a.15.034.325.73
SD.log_alpha0.00-23.7723.78
SD.log_beta0.370.010.74
+

As in the case of SFO, the confidence interval of the slope parameter +(here beta_pH(log_alpha)) quantifying the influence of soil +pH does not include zero, and the model comparison clearly indicates +that the model with covariate influence is preferable. However, the +random effect for alpha is not well-defined any more after +inclusion of the covariate effect (the confidence interval of +SD.log_alpha includes zero).

+
+illparms(fomc_pH)
+
[1] "sd(log_alpha)"
+

Therefore, the model is updated without this random effect, and no +ill-defined parameters remain.

+
+fomc_pH_2 <- update(fomc_pH, no_random_effect = c("meso_0", "log_alpha"))
+illparms(fomc_pH_2)
+
+anova(f_saem_2[["FOMC", "const"]], fomc_pH, fomc_pH_2, test = TRUE)
+
Data: 116 observations of 1 variable(s) grouped in 18 datasets
+
+                            npar    AIC    BIC     Lik  Chisq Df Pr(>Chisq)    
+f_saem_2[["FOMC", "const"]]    5 783.25 787.71 -386.63                         
+fomc_pH_2                      6 767.49 772.83 -377.75 17.762  1  2.503e-05 ***
+fomc_pH                        7 770.07 776.30 -378.04  0.000  1          1    
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+

Model comparison indicates that including pH dependence significantly +improves the fit, and that the reduced model with covariate influence +results in the most preferable FOMC fit.

+
+summary(fomc_pH_2)$confint_trans |> kable(digits = 2)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
est.lowerupper
meso_093.0590.9895.13
log_alpha-2.91-4.18-1.63
beta_pH(log_alpha)0.660.440.87
log_beta3.953.294.62
a.14.984.285.68
SD.log_beta0.400.260.54
+
+plot(fomc_pH_2)
+

+
+endpoints(fomc_pH_2)
+
$covariates
+      pH
+50% 5.75
+
+$distimes
+         DT50     DT90 DT50back
+meso 17.30248 82.91343 24.95943
+
+endpoints(fomc_pH_2, covariates = c(pH = 7))
+
$covariates
+     pH
+User  7
+
+$distimes
+         DT50     DT90 DT50back
+meso 6.986239 27.02927 8.136621
+
+
+

DFOP +

+

In the DFOP fits without covariate effects, random effects for two +degradation parameters (k2 and g) were +identifiable.

+
+summary(f_saem_2[["DFOP", "const"]])$confint_trans |> kable(digits = 2)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
est.lowerupper
meso_093.6191.5895.63
log_k1-1.53-2.27-0.79
log_k2-3.42-3.73-3.11
g_qlogis-1.67-2.57-0.77
a.14.744.025.45
SD.log_k20.600.380.81
SD.g_qlogis0.940.331.54
+

A fit with pH dependent degradation parameters was obtained by +excluding the same random effects as in the refined DFOP fit without +covariate influence, and including covariate models for the two +identifiable parameters k2 and g.

+
+dfop_pH <- saem(f_sep_const["DFOP", ], no_random_effect = c("meso_0", "log_k1"),
+  covariates = pH,
+  covariate_models = list(log_k2 ~ pH, g_qlogis ~ pH))
+

The corresponding parameters for the influence of soil pH are +beta_pH(log_k2) for the influence of soil pH on +k2, and beta_pH(g_qlogis) for its influence on +g.

+
+summary(dfop_pH)$confint_trans |> kable(digits = 2)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
est.lowerupper
meso_092.8490.8594.84
log_k1-2.82-3.09-2.54
log_k2-11.48-15.32-7.64
beta_pH(log_k2)1.310.691.92
g_qlogis3.130.475.80
beta_pH(g_qlogis)-0.57-1.04-0.09
a.14.964.265.65
SD.log_k20.760.471.05
SD.g_qlogis0.01-9.969.97
+
+illparms(dfop_pH)
+
[1] "sd(g_qlogis)"
+

Confidence intervals for neither of them include zero, indicating a +significant difference from zero. However, the random effect for +g is now ill-defined. The fit is updated without this +ill-defined random effect.

+
+dfop_pH_2 <- update(dfop_pH,
+  no_random_effect = c("meso_0", "log_k1", "g_qlogis"))
+illparms(dfop_pH_2)
+
[1] "beta_pH(g_qlogis)"
+

Now, the slope parameter for the pH effect on g is +ill-defined. Therefore, another attempt is made without the +corresponding covariate model.

+
+dfop_pH_3 <- saem(f_sep_const["DFOP", ], no_random_effect = c("meso_0", "log_k1"),
+  covariates = pH,
+  covariate_models = list(log_k2 ~ pH))
+illparms(dfop_pH_3)
+
[1] "sd(g_qlogis)"
+

As the random effect for g is again ill-defined, the fit +is repeated without it.

+
+dfop_pH_4 <- update(dfop_pH_3, no_random_effect = c("meso_0", "log_k1", "g_qlogis"))
+illparms(dfop_pH_4)
+

While no ill-defined parameters remain, model comparison suggests +that the previous model dfop_pH_2 with two pH dependent +parameters is preferable, based on information criteria as well as based +on the likelihood ratio test.

+
+anova(f_saem_2[["DFOP", "const"]], dfop_pH, dfop_pH_2, dfop_pH_3, dfop_pH_4)
+
Data: 116 observations of 1 variable(s) grouped in 18 datasets
+
+                            npar    AIC    BIC     Lik
+f_saem_2[["DFOP", "const"]]    7 782.94 789.18 -384.47
+dfop_pH_4                      7 767.35 773.58 -376.68
+dfop_pH_2                      8 765.14 772.26 -374.57
+dfop_pH_3                      8 769.00 776.12 -376.50
+dfop_pH                        9 769.10 777.11 -375.55
+
+anova(dfop_pH_2, dfop_pH_4, test = TRUE)
+
Data: 116 observations of 1 variable(s) grouped in 18 datasets
+
+          npar    AIC    BIC     Lik  Chisq Df Pr(>Chisq)  
+dfop_pH_4    7 767.35 773.58 -376.68                       
+dfop_pH_2    8 765.14 772.26 -374.57 4.2153  1    0.04006 *
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+

When focussing on parameter identifiability using the test if the +confidence interval includes zero, dfop_pH_4 would still be +the preferred model. However, it should be kept in mind that parameter +confidence intervals are constructed using a simple linearisation of the +likelihood. As the confidence interval of the random effect for +g only marginally includes zero, it is suggested that this +is acceptable, and that dfop_pH_2 can be considered the +most preferable model.

+
+plot(dfop_pH_2)
+

+
+endpoints(dfop_pH_2)
+
$covariates
+      pH
+50% 5.75
+
+$distimes
+         DT50     DT90 DT50back  DT50_k1  DT50_k2
+meso 18.36876 73.51841 22.13125 4.191901 23.98672
+
+endpoints(dfop_pH_2, covariates = c(pH = 7))
+
$covariates
+     pH
+User  7
+
+$distimes
+         DT50     DT90 DT50back  DT50_k1  DT50_k2
+meso 8.346428 28.34437 8.532507 4.191901 8.753618
+
+
+

SFORB +

+
+sforb_pH <- saem(f_sep_const["SFORB", ], no_random_effect = c("meso_free_0", "log_k_meso_free_bound"),
+  covariates = pH,
+  covariate_models = list(log_k_meso_free ~ pH, log_k_meso_bound_free ~ pH))
+
+summary(sforb_pH)$confint_trans |> kable(digits = 2)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
est.lowerupper
meso_free_093.4291.3295.52
log_k_meso_free-5.37-6.94-3.81
beta_pH(log_k_meso_free)0.420.180.67
log_k_meso_free_bound-3.49-4.92-2.05
log_k_meso_bound_free-9.98-19.22-0.74
beta_pH(log_k_meso_bound_free)1.23-0.212.67
a.14.904.185.63
SD.log_k_meso_free0.350.230.47
SD.log_k_meso_bound_free0.13-1.952.20
+

The confidence interval of +beta_pH(log_k_meso_bound_free) includes zero, indicating +that the influence of soil pH on k_meso_bound_free cannot +reliably be quantified. Also, the confidence interval for the random +effect on this parameter (SD.log_k_meso_bound_free) +includes zero.

+

Using the illparms function, these ill-defined +parameters can be found more conveniently.

+
+illparms(sforb_pH)
+
[1] "sd(log_k_meso_bound_free)"      "beta_pH(log_k_meso_bound_free)"
+

To remove the ill-defined parameters, a second variant of the SFORB +model with pH influence is fitted. No ill-defined parameters remain.

+
+sforb_pH_2 <- update(sforb_pH,
+  no_random_effect = c("meso_free_0", "log_k_meso_free_bound", "log_k_meso_bound_free"),
+  covariate_models = list(log_k_meso_free ~ pH))
+illparms(sforb_pH_2)
+

The model comparison of the SFORB fits includes the refined model +without covariate effect, and both versions of the SFORB fit with +covariate effect.

+
+anova(f_saem_2[["SFORB", "const"]], sforb_pH, sforb_pH_2, test = TRUE)
+
Data: 116 observations of 1 variable(s) grouped in 18 datasets
+
+                             npar    AIC    BIC     Lik   Chisq Df Pr(>Chisq)  
+f_saem_2[["SFORB", "const"]]    7 783.40 789.63 -384.70                        
+sforb_pH_2                      7 770.94 777.17 -378.47 12.4616  0             
+sforb_pH                        9 768.81 776.83 -375.41  6.1258  2    0.04675 *
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+

The first model including pH influence is preferable based on +information criteria and the likelihood ratio test. However, as it is +not fully identifiable, the second model is selected.

+
+summary(sforb_pH_2)$confint_trans |> kable(digits = 2)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
est.lowerupper
meso_free_093.3291.1695.48
log_k_meso_free-6.15-7.43-4.86
beta_pH(log_k_meso_free)0.540.330.75
log_k_meso_free_bound-3.80-5.20-2.40
log_k_meso_bound_free-2.95-4.26-1.64
a.15.084.385.79
SD.log_k_meso_free0.330.220.45
+
+plot(sforb_pH_2)
+

+
+endpoints(sforb_pH_2)
+
$covariates
+      pH
+50% 5.75
+
+$ff
+meso_free 
+        1 
+
+$SFORB
+   meso_b1    meso_b2     meso_g 
+0.09735824 0.02631699 0.31602120 
+
+$distimes
+         DT50     DT90 DT50back DT50_meso_b1 DT50_meso_b2
+meso 16.86549 73.15824 22.02282     7.119554     26.33839
+
+endpoints(sforb_pH_2, covariates = c(pH = 7))
+
$covariates
+     pH
+User  7
+
+$ff
+meso_free 
+        1 
+
+$SFORB
+   meso_b1    meso_b2     meso_g 
+0.13315233 0.03795988 0.61186191 
+
+$distimes
+         DT50     DT90 DT50back DT50_meso_b1 DT50_meso_b2
+meso 7.932495 36.93311 11.11797     5.205671        18.26
+
+
+

HS +

+
+hs_pH <- saem(f_sep_const["HS", ], no_random_effect = c("meso_0"),
+  covariates = pH,
+  covariate_models = list(log_k1 ~ pH, log_k2 ~ pH, log_tb ~ pH))
+
+summary(hs_pH)$confint_trans |> kable(digits = 2)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
est.lowerupper
meso_093.3391.4795.19
log_k1-5.81-7.27-4.36
beta_pH(log_k1)0.470.230.72
log_k2-6.80-8.76-4.83
beta_pH(log_k2)0.540.210.87
log_tb3.251.255.25
beta_pH(log_tb)-0.10-0.430.23
a.14.493.785.21
SD.log_k10.370.240.51
SD.log_k20.290.100.48
SD.log_tb0.25-0.070.57
+
+illparms(hs_pH)
+
[1] "sd(log_tb)"      "beta_pH(log_tb)"
+

According to the output of the illparms function, the +random effect on the break time tb cannot reliably be +quantified, neither can the influence of soil pH on tb. The +fit is repeated without the corresponding covariate model, and no +ill-defined parameters remain.

+
+hs_pH_2 <- update(hs_pH, covariate_models = list(log_k1 ~ pH, log_k2 ~ pH))
+illparms(hs_pH_2)
+

Model comparison confirms that this model is preferable to the fit +without covariate influence, and also to the first version with +covariate influence.

+
+anova(f_saem_2[["HS", "const"]], hs_pH, hs_pH_2, test = TRUE)
+
Data: 116 observations of 1 variable(s) grouped in 18 datasets
+
+                          npar    AIC    BIC     Lik  Chisq Df Pr(>Chisq)    
+f_saem_2[["HS", "const"]]    8 780.08 787.20 -382.04                         
+hs_pH_2                     10 766.47 775.37 -373.23 17.606  2  0.0001503 ***
+hs_pH                       11 769.80 779.59 -373.90  0.000  1  1.0000000    
+---
+Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
+
+summary(hs_pH_2)$confint_trans |> kable(digits = 2)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
est.lowerupper
meso_093.3391.5095.15
log_k1-5.68-7.09-4.27
beta_pH(log_k1)0.460.220.69
log_k2-6.61-8.34-4.88
beta_pH(log_k2)0.500.210.79
log_tb2.702.333.08
a.14.453.745.16
SD.log_k10.360.220.49
SD.log_k20.230.020.43
SD.log_tb0.550.250.85
+
+plot(hs_pH_2)
+

+
+endpoints(hs_pH_2)
+
$covariates
+      pH
+50% 5.75
+
+$distimes
+         DT50     DT90 DT50back  DT50_k1  DT50_k2
+meso 14.68725 82.45287 24.82079 14.68725 29.29299
+
+endpoints(hs_pH_2, covariates = c(pH = 7))
+
$covariates
+     pH
+User  7
+
+$distimes
+         DT50     DT90 DT50back  DT50_k1  DT50_k2
+meso 8.298536 38.85371 11.69613 8.298536 15.71561
+
+
+

Comparison across parent models +

+

After model reduction for all models with pH influence, they are +compared with each other.

+
+anova(sfo_pH, fomc_pH_2, dfop_pH_2, dfop_pH_4, sforb_pH_2, hs_pH_2)
+
Data: 116 observations of 1 variable(s) grouped in 18 datasets
+
+           npar    AIC    BIC     Lik
+sfo_pH        5 783.09 787.54 -386.54
+fomc_pH_2     6 767.49 772.83 -377.75
+dfop_pH_4     7 767.35 773.58 -376.68
+sforb_pH_2    7 770.94 777.17 -378.47
+dfop_pH_2     8 765.14 772.26 -374.57
+hs_pH_2      10 766.47 775.37 -373.23
+

The DFOP model with pH influence on k2 and +g and a random effect only on k2 is finally +selected as the best fit.

+

The endpoints resulting from this model are listed below. Please +refer to the Appendix for a detailed listing.

+
+endpoints(dfop_pH_2)
+
$covariates
+      pH
+50% 5.75
+
+$distimes
+         DT50     DT90 DT50back  DT50_k1  DT50_k2
+meso 18.36876 73.51841 22.13125 4.191901 23.98672
+
+endpoints(dfop_pH_2, covariates = c(pH = 7))
+
$covariates
+     pH
+User  7
+
+$distimes
+         DT50     DT90 DT50back  DT50_k1  DT50_k2
+meso 8.346428 28.34437 8.532507 4.191901 8.753618
+
+
+
+

Conclusions +

+

These evaluations demonstrate that covariate effects can be included +for all types of parent degradation models. These models can then be +further refined to make them fully identifiable.

+
+
+

Appendix +

+
+

Hierarchical fit listings +

+
+

Fits without covariate effects +

+ +
+
+

Fits with covariate effects +

+ +
+
+
+

Session info +

+
R version 4.4.2 (2024-10-31)
+Platform: x86_64-pc-linux-gnu
+Running under: Debian GNU/Linux 12 (bookworm)
+
+Matrix products: default
+BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.11.0 
+LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.11.0
+
+locale:
+ [1] LC_CTYPE=de_DE.UTF-8       LC_NUMERIC=C              
+ [3] LC_TIME=de_DE.UTF-8        LC_COLLATE=de_DE.UTF-8    
+ [5] LC_MONETARY=de_DE.UTF-8    LC_MESSAGES=de_DE.UTF-8   
+ [7] LC_PAPER=de_DE.UTF-8       LC_NAME=C                 
+ [9] LC_ADDRESS=C               LC_TELEPHONE=C            
+[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       
+
+time zone: Europe/Berlin
+tzcode source: system (glibc)
+
+attached base packages:
+[1] parallel  stats     graphics  grDevices utils     datasets  methods  
+[8] base     
+
+other attached packages:
+[1] rmarkdown_2.29  nvimcom_0.9-167 saemix_3.3      npde_3.5       
+[5] knitr_1.49      mkin_1.2.10    
+
+loaded via a namespace (and not attached):
+ [1] sass_0.4.9        utf8_1.2.4        generics_0.1.3    lattice_0.22-6   
+ [5] digest_0.6.37     magrittr_2.0.3    evaluate_1.0.1    grid_4.4.2       
+ [9] fastmap_1.2.0     cellranger_1.1.0  jsonlite_1.8.9    mclust_6.1.1     
+[13] gridExtra_2.3     fansi_1.0.6       scales_1.3.0      codetools_0.2-20 
+[17] textshaping_0.4.1 jquerylib_0.1.4   cli_3.6.3         rlang_1.1.4      
+[21] munsell_0.5.1     cachem_1.1.0      yaml_2.3.10       tools_4.4.2      
+[25] dplyr_1.1.4       colorspace_2.1-1  ggplot2_3.5.1     vctrs_0.6.5      
+[29] R6_2.5.1          zoo_1.8-12        lifecycle_1.0.4   fs_1.6.5         
+[33] htmlwidgets_1.6.4 MASS_7.3-61       ragg_1.3.3        pkgconfig_2.0.3  
+[37] desc_1.4.3        pkgdown_2.1.1     pillar_1.9.0      bslib_0.8.0      
+[41] gtable_0.3.6      glue_1.8.0        systemfonts_1.1.0 xfun_0.49        
+[45] tibble_3.2.1      lmtest_0.9-40     tidyselect_1.2.1  htmltools_0.5.8.1
+[49] nlme_3.1-166      compiler_4.4.2    readxl_1.4.3     
+
+
+

Hardware info +

+
CPU model: AMD Ryzen 9 7950X 16-Core Processor
+
MemTotal:       64927788 kB
+
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-14-1.png b/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-14-1.png new file mode 100644 index 00000000..719bf0e9 Binary files /dev/null and b/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-14-1.png differ diff --git a/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-19-1.png b/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-19-1.png new file mode 100644 index 00000000..6afcac48 Binary files /dev/null and b/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-19-1.png differ diff --git a/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-25-1.png b/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-25-1.png new file mode 100644 index 00000000..50253fb1 Binary files /dev/null and b/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-25-1.png differ diff --git a/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-30-1.png b/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-30-1.png new file mode 100644 index 00000000..c8b77724 Binary files /dev/null and b/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-30-1.png differ diff --git a/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-8-1.png b/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-8-1.png new file mode 100644 index 00000000..8fa204a3 Binary files /dev/null and b/docs/dev/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-8-1.png differ diff --git a/docs/dev/articles/twa.html b/docs/dev/articles/twa.html new file mode 100644 index 00000000..1dea5c51 --- /dev/null +++ b/docs/dev/articles/twa.html @@ -0,0 +1,181 @@ + + + + + + + +Calculation of time weighted average concentrations with mkin • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +

Since version 0.9.45.1 of the ‘mkin’ package, a function for +calculating time weighted average concentrations for decline kinetics +(i.e. only for the compound applied in the experiment) is +included. Strictly speaking, they are maximum moving window time +weighted average concentrations, i.e. the maximum time weighted +average concentration that can be found when moving a time window of a +specified width over the decline curve.

+

Time weighted average concentrations for the SFO, FOMC and the DFOP +model are calculated using the formulas given in the FOCUS kinetics +guidance (FOCUS Work Group on Degradation +Kinetics 2014, 251):

+

SFO:

+

ctwa=c0(1ekt)ktc_\textrm{twa} = c_0 \frac{\left( 1 - e^{- k t} \right)}{ k t}

+

FOMC:

+

ctwa=c0βt(1α)((tβ+1)1α1)c_\textrm{twa} = c_0 \frac{\beta}{t (1 - \alpha)} + \left( \left(\frac{t}{\beta} + 1 \right)^{1 - \alpha} - 1 \right)

+

DFOP:

+

ctwa=c0t(gk1(1ek1t)+1gk2(1ek2t))c_\textrm{twa} = \frac{c_0}{t} \left( + \frac{g}{k_1} \left( 1 - e^{- k_1 t} \right) + + \frac{1-g}{k_2} \left( 1 - e^{- k_2 t} \right) \right)

+

HS for +t>tbt > t_b:

+

ctwa=c0t(1k1(1ek1tb)+ek1tbk2(1ek2(ttb)))c_\textrm{twa} = \frac{c_0}{t} \left( + \frac{1}{k_1} \left( 1 - e^{- k_1 t_b} \right) + + \frac{e^{- k_1 t_b}}{k_2} \left( 1 - e^{- k_2 (t - t_b)} \right) \right)

+

Often, the ratio between the time weighted average concentration +ctwac_\textrm{twa} +and the initial concentration +c0c_0

+

ftwa=ctwac0f_\textrm{twa} = \frac{c_\textrm{twa}}{c_0}

+

is needed. This can be calculated from the fitted initial +concentration +c0c_0 +and the time weighted average concentration +ctwac_\textrm{twa}, +or directly from the model parameters using the following formulas:

+

SFO:

+

ftwa=(1ekt)ktf_\textrm{twa} = \frac{\left( 1 - e^{- k t} \right)}{k t}

+

FOMC:

+

ftwa=βt(1α)((tβ+1)1α1)f_\textrm{twa} = \frac{\beta}{t (1 - \alpha)} + \left( \left(\frac{t}{\beta} + 1 \right)^{1 - \alpha} - 1 \right)

+

DFOP:

+

ftwa=1t(gk1(1ek1t)+1gk2(1ek2t))f_\textrm{twa} = \frac{1}{t} \left( + \frac{g}{k_1} \left( 1 - e^{- k_1 t} \right) + + \frac{1-g}{k_2} \left( 1 - e^{- k_2 t} \right) \right)

+

HS for +t>tbt > t_b:

+

ftwa=1t(1k1(1ek1tb)+ek1tbk2(1ek2(ttb)))f_\textrm{twa} = \frac{1}{t} \left( + \frac{1}{k_1} \left( 1 - e^{- k_1 t_b} \right) + + \frac{e^{- k_1 t_b}}{k_2} \left( 1 - e^{- k_2 (t - t_b)} \right) \right)

+

Note that a method for calculating maximum moving window time +weighted average concentrations for a model fitted by ‘mkinfit’ or from +parent decline model parameters is included in the +max_twa_parent() function. If the same is needed for +metabolites, the function pfm::max_twa() from the ‘pfm’ +package can be used.

+
+
+FOCUS Work Group on Degradation Kinetics. 2014. Generic Guidance for +Estimating Persistence and Degradation Kinetics from Environmental Fate +Studies on Pesticides in EU Registration. 1.1 ed. http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics. +
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/web_only/FOCUS_Z.html b/docs/dev/articles/web_only/FOCUS_Z.html new file mode 100644 index 00000000..40ce9e01 --- /dev/null +++ b/docs/dev/articles/web_only/FOCUS_Z.html @@ -0,0 +1,446 @@ + + + + + + + +Example evaluation of FOCUS dataset Z • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +

Wissenschaftlicher Berater, Kronacher +Str. 12, 79639 Grenzach-Wyhlen, Germany
Privatdozent at the +University of Bremen

+
+

The data +

+

The following code defines the example dataset from Appendix 7 to the +FOCUS kinetics report (FOCUS Work Group on +Degradation Kinetics 2014, 354).

+
+library(mkin, quietly = TRUE)
+LOD = 0.5
+FOCUS_2006_Z = data.frame(
+  t = c(0, 0.04, 0.125, 0.29, 0.54, 1, 2, 3, 4, 7, 10, 14, 21,
+        42, 61, 96, 124),
+  Z0 = c(100, 81.7, 70.4, 51.1, 41.2, 6.6, 4.6, 3.9, 4.6, 4.3, 6.8,
+         2.9, 3.5, 5.3, 4.4, 1.2, 0.7),
+  Z1 = c(0, 18.3, 29.6, 46.3, 55.1, 65.7, 39.1, 36, 15.3, 5.6, 1.1,
+         1.6, 0.6, 0.5 * LOD, NA, NA, NA),
+  Z2 = c(0, NA, 0.5 * LOD, 2.6, 3.8, 15.3, 37.2, 31.7, 35.6, 14.5,
+         0.8, 2.1, 1.9, 0.5 * LOD, NA, NA, NA),
+  Z3 = c(0, NA, NA, NA, NA, 0.5 * LOD, 9.2, 13.1, 22.3, 28.4, 32.5,
+         25.2, 17.2, 4.8, 4.5, 2.8, 4.4))
+
+FOCUS_2006_Z_mkin <- mkin_wide_to_long(FOCUS_2006_Z)
+
+
+

Parent and one metabolite +

+

The next step is to set up the models used for the kinetic analysis. +As the simultaneous fit of parent and the first metabolite is usually +straightforward, Step 1 (SFO for parent only) is skipped here. We start +with the model 2a, with formation and decline of metabolite Z1 and the +pathway from parent directly to sink included (default in mkin).

+
+Z.2a <- mkinmod(Z0 = mkinsub("SFO", "Z1"),
+                Z1 = mkinsub("SFO"))
+
## Temporary DLL for differentials generated and loaded
+
+m.Z.2a <- mkinfit(Z.2a, FOCUS_2006_Z_mkin, quiet = TRUE)
+
## Warning in mkinfit(Z.2a, FOCUS_2006_Z_mkin, quiet = TRUE): Observations with
+## value of zero were removed from the data
+
+plot_sep(m.Z.2a)
+

+
+summary(m.Z.2a, data = FALSE)$bpar
+
##            Estimate se_notrans t value     Pr(>t)    Lower    Upper
+## Z0_0       97.01488   3.301084 29.3888 3.2971e-21 91.66556 102.3642
+## k_Z0        2.23601   0.207078 10.7979 3.3309e-11  1.95303   2.5600
+## k_Z1        0.48212   0.063265  7.6207 2.8154e-08  0.40341   0.5762
+## f_Z0_to_Z1  1.00000   0.094764 10.5525 5.3560e-11  0.00000   1.0000
+## sigma       4.80411   0.635638  7.5579 3.2592e-08  3.52677   6.0815
+

As obvious from the parameter summary (the component of the summary), +the kinetic rate constant from parent compound Z to sink is very small +and the t-test for this parameter suggests that it is not significantly +different from zero. This suggests, in agreement with the analysis in +the FOCUS kinetics report, to simplify the model by removing the pathway +to sink.

+

A similar result can be obtained when formation fractions are used in +the model formulation:

+
+Z.2a.ff <- mkinmod(Z0 = mkinsub("SFO", "Z1"),
+                   Z1 = mkinsub("SFO"),
+                   use_of_ff = "max")
+
## Temporary DLL for differentials generated and loaded
+
+m.Z.2a.ff <- mkinfit(Z.2a.ff, FOCUS_2006_Z_mkin, quiet = TRUE)
+
## Warning in mkinfit(Z.2a.ff, FOCUS_2006_Z_mkin, quiet = TRUE): Observations with
+## value of zero were removed from the data
+
+plot_sep(m.Z.2a.ff)
+

+
+summary(m.Z.2a.ff, data = FALSE)$bpar
+
##            Estimate se_notrans t value     Pr(>t)    Lower    Upper
+## Z0_0       97.01488   3.301084 29.3888 3.2971e-21 91.66556 102.3642
+## k_Z0        2.23601   0.207078 10.7979 3.3309e-11  1.95303   2.5600
+## k_Z1        0.48212   0.063265  7.6207 2.8154e-08  0.40341   0.5762
+## f_Z0_to_Z1  1.00000   0.094764 10.5525 5.3560e-11  0.00000   1.0000
+## sigma       4.80411   0.635638  7.5579 3.2592e-08  3.52677   6.0815
+

Here, the ilr transformed formation fraction fitted in the model +takes a very large value, and the backtransformed formation fraction +from parent Z to Z1 is practically unity. Here, the covariance matrix +used for the calculation of confidence intervals is not returned as the +model is overparameterised.

+

A simplified model is obtained by removing the pathway to the sink. +

+

In the following, we use the parameterisation with formation +fractions in order to be able to compare with the results in the FOCUS +guidance, and as it makes it easier to use parameters obtained in a +previous fit when adding a further metabolite.

+
+Z.3 <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
+               Z1 = mkinsub("SFO"), use_of_ff = "max")
+
## Temporary DLL for differentials generated and loaded
+
+m.Z.3 <- mkinfit(Z.3, FOCUS_2006_Z_mkin, quiet = TRUE)
+
## Warning in mkinfit(Z.3, FOCUS_2006_Z_mkin, quiet = TRUE): Observations with
+## value of zero were removed from the data
+
+plot_sep(m.Z.3)
+

+
+summary(m.Z.3, data = FALSE)$bpar
+
##       Estimate se_notrans t value     Pr(>t)    Lower    Upper
+## Z0_0  97.01488   2.597342  37.352 2.0106e-24 91.67597 102.3538
+## k_Z0   2.23601   0.146904  15.221 9.1477e-15  1.95354   2.5593
+## k_Z1   0.48212   0.041727  11.554 4.8268e-12  0.40355   0.5760
+## sigma  4.80411   0.620208   7.746 1.6110e-08  3.52925   6.0790
+

As there is only one transformation product for Z0 and no pathway to +sink, the formation fraction is internally fixed to unity.

+
+
+

Metabolites Z2 and Z3 +

+

As suggested in the FOCUS report, the pathway to sink was removed for +metabolite Z1 as well in the next step. While this step appears +questionable on the basis of the above results, it is followed here for +the purpose of comparison. Also, in the FOCUS report, it is assumed that +there is additional empirical evidence that Z1 quickly and exclusively +hydrolyses to Z2.

+
+Z.5 <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
+               Z1 = mkinsub("SFO", "Z2", sink = FALSE),
+               Z2 = mkinsub("SFO"), use_of_ff = "max")
+
## Temporary DLL for differentials generated and loaded
+
+m.Z.5 <- mkinfit(Z.5, FOCUS_2006_Z_mkin, quiet = TRUE)
+
## Warning in mkinfit(Z.5, FOCUS_2006_Z_mkin, quiet = TRUE): Observations with
+## value of zero were removed from the data
+
+plot_sep(m.Z.5)
+

+

Finally, metabolite Z3 is added to the model. We use the optimised +differential equation parameter values from the previous fit in order to +accelerate the optimization.

+
+Z.FOCUS <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
+                   Z1 = mkinsub("SFO", "Z2", sink = FALSE),
+                   Z2 = mkinsub("SFO", "Z3"),
+                   Z3 = mkinsub("SFO"),
+                   use_of_ff = "max")
+
## Temporary DLL for differentials generated and loaded
+
+m.Z.FOCUS <- mkinfit(Z.FOCUS, FOCUS_2006_Z_mkin,
+                     parms.ini = m.Z.5$bparms.ode,
+                     quiet = TRUE)
+
## Warning in mkinfit(Z.FOCUS, FOCUS_2006_Z_mkin, parms.ini = m.Z.5$bparms.ode, :
+## Observations with value of zero were removed from the data
+
## Warning in mkinfit(Z.FOCUS, FOCUS_2006_Z_mkin, parms.ini = m.Z.5$bparms.ode, : Optimisation did not converge:
+## false convergence (8)
+
+plot_sep(m.Z.FOCUS)
+

+
+summary(m.Z.FOCUS, data = FALSE)$bpar
+
##             Estimate se_notrans t value     Pr(>t)     Lower      Upper
+## Z0_0       96.842440   1.994291 48.5598 4.0226e-42 92.830421 100.854459
+## k_Z0        2.215425   0.118457 18.7023 1.0404e-23  1.989490   2.467019
+## k_Z1        0.478307   0.028257 16.9272 6.2332e-22  0.424709   0.538669
+## k_Z2        0.451642   0.042139 10.7178 1.6304e-14  0.374348   0.544894
+## k_Z3        0.058692   0.015245  3.8499 1.7803e-04  0.034804   0.098975
+## f_Z2_to_Z3  0.471483   0.058348  8.0806 9.6585e-11  0.357720   0.588287
+## sigma       3.984431   0.383402 10.3923 4.5576e-14  3.213126   4.755737
+
+endpoints(m.Z.FOCUS)
+
## $ff
+##   Z2_Z3 Z2_sink 
+## 0.47148 0.52852 
+## 
+## $distimes
+##        DT50    DT90
+## Z0  0.31287  1.0393
+## Z1  1.44917  4.8140
+## Z2  1.53473  5.0983
+## Z3 11.80991 39.2317
+

This fit corresponds to the final result chosen in Appendix 7 of the +FOCUS report. Confidence intervals returned by mkin are based on +internally transformed parameters, however.

+
+
+

Using the SFORB model +

+

As the FOCUS report states, there is a certain tailing of the time +course of metabolite Z3. Also, the time course of the parent compound is +not fitted very well using the SFO model, as residues at a certain low +level remain.

+

Therefore, an additional model is offered here, using the single +first-order reversible binding (SFORB) model for metabolite Z3. As +expected, the +χ2\chi^2 +error level is lower for metabolite Z3 using this model and the +graphical fit for Z3 is improved. However, the covariance matrix is not +returned.

+
+Z.mkin.1 <- mkinmod(Z0 = mkinsub("SFO", "Z1", sink = FALSE),
+                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
+                    Z2 = mkinsub("SFO", "Z3"),
+                    Z3 = mkinsub("SFORB"))
+
## Temporary DLL for differentials generated and loaded
+
+m.Z.mkin.1 <- mkinfit(Z.mkin.1, FOCUS_2006_Z_mkin, quiet = TRUE)
+
## Warning in mkinfit(Z.mkin.1, FOCUS_2006_Z_mkin, quiet = TRUE): Observations
+## with value of zero were removed from the data
+
+plot_sep(m.Z.mkin.1)
+

+
+summary(m.Z.mkin.1, data = FALSE)$cov.unscaled
+
## NULL
+

Therefore, a further stepwise model building is performed starting +from the stage of parent and two metabolites, starting from the +assumption that the model fit for the parent compound can be improved by +using the SFORB model.

+
+Z.mkin.3 <- mkinmod(Z0 = mkinsub("SFORB", "Z1", sink = FALSE),
+                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
+                    Z2 = mkinsub("SFO"))
+
## Temporary DLL for differentials generated and loaded
+
+m.Z.mkin.3 <- mkinfit(Z.mkin.3, FOCUS_2006_Z_mkin, quiet = TRUE)
+
## Warning in mkinfit(Z.mkin.3, FOCUS_2006_Z_mkin, quiet = TRUE): Observations
+## with value of zero were removed from the data
+
+plot_sep(m.Z.mkin.3)
+

+

This results in a much better representation of the behaviour of the +parent compound Z0.

+

Finally, Z3 is added as well. These models appear overparameterised +(no covariance matrix returned) if the sink for Z1 is left in the +models.

+
+Z.mkin.4 <- mkinmod(Z0 = mkinsub("SFORB", "Z1", sink = FALSE),
+                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
+                    Z2 = mkinsub("SFO", "Z3"),
+                    Z3 = mkinsub("SFO"))
+
## Temporary DLL for differentials generated and loaded
+
+m.Z.mkin.4 <- mkinfit(Z.mkin.4, FOCUS_2006_Z_mkin,
+                      parms.ini = m.Z.mkin.3$bparms.ode,
+                      quiet = TRUE)
+
## Warning in mkinfit(Z.mkin.4, FOCUS_2006_Z_mkin, parms.ini =
+## m.Z.mkin.3$bparms.ode, : Observations with value of zero were removed from the
+## data
+
+plot_sep(m.Z.mkin.4)
+

+

The error level of the fit, but especially of metabolite Z3, can be +improved if the SFORB model is chosen for this metabolite, as this model +is capable of representing the tailing of the metabolite decline +phase.

+
+Z.mkin.5 <- mkinmod(Z0 = mkinsub("SFORB", "Z1", sink = FALSE),
+                    Z1 = mkinsub("SFO", "Z2", sink = FALSE),
+                    Z2 = mkinsub("SFO", "Z3"),
+                    Z3 = mkinsub("SFORB"))
+
## Temporary DLL for differentials generated and loaded
+
+m.Z.mkin.5 <- mkinfit(Z.mkin.5, FOCUS_2006_Z_mkin,
+                      parms.ini = m.Z.mkin.4$bparms.ode[1:4],
+                      quiet = TRUE)
+
## Warning in mkinfit(Z.mkin.5, FOCUS_2006_Z_mkin, parms.ini =
+## m.Z.mkin.4$bparms.ode[1:4], : Observations with value of zero were removed from
+## the data
+
+plot_sep(m.Z.mkin.5)
+

+

The summary view of the backtransformed parameters shows that we get +no confidence intervals due to overparameterisation. As the optimized is +excessively small, it seems reasonable to fix it to zero.

+
+m.Z.mkin.5a <- mkinfit(Z.mkin.5, FOCUS_2006_Z_mkin,
+                       parms.ini = c(m.Z.mkin.5$bparms.ode[1:7],
+                                     k_Z3_bound_free = 0),
+                       fixed_parms = "k_Z3_bound_free",
+                       quiet = TRUE)
+
## Warning in mkinfit(Z.mkin.5, FOCUS_2006_Z_mkin, parms.ini =
+## c(m.Z.mkin.5$bparms.ode[1:7], : Observations with value of zero were removed
+## from the data
+
+plot_sep(m.Z.mkin.5a)
+

+

As expected, the residual plots for Z0 and Z3 are more random than in +the case of the all SFO model for which they were shown above. In +conclusion, the model is proposed as the best-fit model for the dataset +from Appendix 7 of the FOCUS report.

+

A graphical representation of the confidence intervals can finally be +obtained.

+
+mkinparplot(m.Z.mkin.5a)
+

+

The endpoints obtained with this model are

+
+endpoints(m.Z.mkin.5a)
+
## $ff
+## Z0_free   Z2_Z3 Z2_sink Z3_free 
+## 1.00000 0.53656 0.46344 1.00000 
+## 
+## $SFORB
+##     Z0_b1     Z0_b2      Z0_g     Z3_b1     Z3_b2      Z3_g 
+## 2.4471342 0.0075124 0.9519866 0.0800071 0.0000000 0.9347816 
+## 
+## $distimes
+##      DT50   DT90 DT50back DT50_Z0_b1 DT50_Z0_b2 DT50_Z3_b1 DT50_Z3_b2
+## Z0 0.3043 1.1848  0.35666    0.28325     92.267         NA         NA
+## Z1 1.5148 5.0320       NA         NA         NA         NA         NA
+## Z2 1.6414 5.4526       NA         NA         NA         NA         NA
+## Z3     NA     NA       NA         NA         NA     8.6636        Inf
+

It is clear the degradation rate of Z3 towards the end of the +experiment is very low as DT50_Z3_b2 (the second Eigenvalue of the +system of two differential equations representing the SFORB system for +Z3, corresponding to the slower rate constant of the DFOP model) is +reported to be infinity. However, this appears to be a feature of the +data.

+
+
+

References +

+ +
+
+FOCUS Work Group on Degradation Kinetics. 2014. Generic Guidance for +Estimating Persistence and Degradation Kinetics from Environmental Fate +Studies on Pesticides in EU Registration. 1.1 ed. http://esdac.jrc.ec.europa.eu/projects/degradation-kinetics. +
+
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_1-1.png b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_1-1.png new file mode 100644 index 00000000..98bc135b Binary files /dev/null and b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_1-1.png differ diff --git a/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_10-1.png b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_10-1.png new file mode 100644 index 00000000..c1011a35 Binary files /dev/null and b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_10-1.png differ diff --git a/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11-1.png b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11-1.png new file mode 100644 index 00000000..dfd2dd50 Binary files /dev/null and b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11-1.png differ diff --git a/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11a-1.png b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11a-1.png new file mode 100644 index 00000000..74173f36 Binary files /dev/null and b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11a-1.png differ diff --git a/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11b-1.png b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11b-1.png new file mode 100644 index 00000000..1c5793cc Binary files /dev/null and b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_11b-1.png differ diff --git a/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_2-1.png b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_2-1.png new file mode 100644 index 00000000..98bc135b Binary files /dev/null and b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_2-1.png differ diff --git a/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_3-1.png b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_3-1.png new file mode 100644 index 00000000..0380ba43 Binary files /dev/null and b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_3-1.png differ diff --git a/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_5-1.png b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_5-1.png new file mode 100644 index 00000000..8c594ec9 Binary files /dev/null and b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_5-1.png differ diff --git a/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_6-1.png b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_6-1.png new file mode 100644 index 00000000..84d473d6 Binary files /dev/null and b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_6-1.png differ diff --git a/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_7-1.png b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_7-1.png new file mode 100644 index 00000000..87af8874 Binary files /dev/null and b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_7-1.png differ diff --git a/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_9-1.png b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_9-1.png new file mode 100644 index 00000000..492cdcc8 Binary files /dev/null and b/docs/dev/articles/web_only/FOCUS_Z_files/figure-html/FOCUS_2006_Z_fits_9-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples.html b/docs/dev/articles/web_only/NAFTA_examples.html new file mode 100644 index 00000000..6bf39b2c --- /dev/null +++ b/docs/dev/articles/web_only/NAFTA_examples.html @@ -0,0 +1,1049 @@ + + + + + + + +Evaluation of example datasets from Attachment 1 to the US EPA SOP for the NAFTA guidance • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +
+

Introduction +

+

In this document, the example evaluations provided in Attachment 1 to +the SOP of US EPA for using the NAFTA guidance (US EPA 2015) are repeated using mkin. The +original evaluations reported in the attachment were performed using +PestDF in version 0.8.4. Note that PestDF 0.8.13 is the version +distributed at the US EPA website today (2019-02-26).

+

The datasets are now distributed with the mkin package.

+
+
+

Examples where DFOP did not converge with PestDF 0.8.4 +

+

In attachment 1, it is reported that the DFOP model does not converge +for these datasets when PestDF 0.8.4 was used. For all four datasets, +the DFOP model can be fitted with mkin (see below). The negative +half-life given by PestDF 0.8.4 for these fits appears to be the result +of a bug. The results for the other two models (SFO and IORE) are the +same.

+
+

Example on page 5, upper panel +

+
+p5a <- nafta(NAFTA_SOP_Attachment[["p5a"]])
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p5a)
+

+
+print(p5a)
+
## Sums of squares:
+##       SFO      IORE      DFOP 
+## 465.21753  56.27506  32.06401 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 64.4304
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)  Lower   Upper
+## parent_0  95.8401 4.67e-21 92.245 99.4357
+## k_parent   0.0102 3.92e-12  0.009  0.0117
+## sigma      4.8230 3.81e-06  3.214  6.4318
+## 
+## $IORE
+##                Estimate Pr(>t)    Lower    Upper
+## parent_0       1.01e+02     NA 9.91e+01 1.02e+02
+## k__iore_parent 1.54e-05     NA 4.08e-06 5.84e-05
+## N_parent       2.57e+00     NA 2.25e+00 2.89e+00
+## sigma          1.68e+00     NA 1.12e+00 2.24e+00
+## 
+## $DFOP
+##          Estimate   Pr(>t)   Lower    Upper
+## parent_0 9.99e+01 1.41e-26 98.8116 101.0810
+## k1       2.67e-02 5.05e-06  0.0243   0.0295
+## k2       3.41e-12 5.00e-01  0.0000      Inf
+## g        6.47e-01 3.67e-06  0.6248   0.6677
+## sigma    1.27e+00 8.91e-06  0.8395   1.6929
+## 
+## 
+## DTx values:
+##      DT50     DT90 DT50_rep
+## SFO  67.7 2.25e+02 6.77e+01
+## IORE 58.2 1.07e+03 3.22e+02
+## DFOP 55.5 3.70e+11 2.03e+11
+## 
+## Representative half-life:
+## [1] 321.51
+
+
+

Example on page 5, lower panel +

+
+p5b <- nafta(NAFTA_SOP_Attachment[["p5b"]])
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p5b)
+

+
+print(p5b)
+
## Sums of squares:
+##      SFO     IORE     DFOP 
+## 94.81123 10.10936  7.55871 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 11.77879
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0   96.497 2.32e-24 94.85271 98.14155
+## k_parent    0.008 3.42e-14  0.00737  0.00869
+## sigma       2.295 1.22e-05  1.47976  3.11036
+## 
+## $IORE
+##                Estimate   Pr(>t)    Lower    Upper
+## parent_0       9.85e+01 1.17e-28 9.79e+01 9.92e+01
+## k__iore_parent 1.53e-04 6.50e-03 7.21e-05 3.26e-04
+## N_parent       1.94e+00 5.88e-13 1.76e+00 2.12e+00
+## sigma          7.49e-01 1.63e-05 4.82e-01 1.02e+00
+## 
+## $DFOP
+##          Estimate   Pr(>t)   Lower   Upper
+## parent_0 9.84e+01 1.24e-27 97.8078 98.9187
+## k1       1.55e-02 4.10e-04  0.0143  0.0167
+## k2       9.07e-12 5.00e-01  0.0000     Inf
+## g        6.89e-01 2.92e-03  0.6626  0.7142
+## sigma    6.48e-01 2.38e-05  0.4147  0.8813
+## 
+## 
+## DTx values:
+##      DT50     DT90 DT50_rep
+## SFO  86.6 2.88e+02 8.66e+01
+## IORE 85.5 7.17e+02 2.16e+02
+## DFOP 83.6 1.25e+11 7.64e+10
+## 
+## Representative half-life:
+## [1] 215.87
+
+
+

Example on page 6 +

+
+p6 <- nafta(NAFTA_SOP_Attachment[["p6"]])
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p6)
+

+
+print(p6)
+
## Sums of squares:
+##       SFO      IORE      DFOP 
+## 188.45361  51.00699  42.46931 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 58.39888
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)   Lower   Upper
+## parent_0  94.7759 7.29e-24 92.3478 97.2039
+## k_parent   0.0179 8.02e-16  0.0166  0.0194
+## sigma      3.0696 3.81e-06  2.0456  4.0936
+## 
+## $IORE
+##                Estimate   Pr(>t)    Lower    Upper
+## parent_0       97.12446 2.63e-26 95.62461 98.62431
+## k__iore_parent  0.00252 1.95e-03  0.00134  0.00472
+## N_parent        1.49587 4.07e-13  1.33896  1.65279
+## sigma           1.59698 5.05e-06  1.06169  2.13227
+## 
+## $DFOP
+##          Estimate   Pr(>t)   Lower   Upper
+## parent_0 9.66e+01 1.57e-25 95.3476 97.8979
+## k1       2.55e-02 7.33e-06  0.0233  0.0278
+## k2       3.84e-11 5.00e-01  0.0000     Inf
+## g        8.61e-01 7.55e-06  0.8314  0.8867
+## sigma    1.46e+00 6.93e-06  0.9661  1.9483
+## 
+## 
+## DTx values:
+##      DT50     DT90 DT50_rep
+## SFO  38.6 1.28e+02 3.86e+01
+## IORE 34.0 1.77e+02 5.32e+01
+## DFOP 34.1 8.50e+09 1.80e+10
+## 
+## Representative half-life:
+## [1] 53.17
+
+
+

Example on page 7 +

+
+p7 <- nafta(NAFTA_SOP_Attachment[["p7"]])
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p7)
+

+
+print(p7)
+
## Sums of squares:
+##      SFO     IORE     DFOP 
+## 3661.661 3195.030 3174.145 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 3334.194
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0 96.41796 4.80e-53 93.32245 99.51347
+## k_parent  0.00735 7.64e-21  0.00641  0.00843
+## sigma     7.94557 1.83e-15  6.46713  9.42401
+## 
+## $IORE
+##                Estimate Pr(>t)    Lower    Upper
+## parent_0       9.92e+01     NA 9.55e+01 1.03e+02
+## k__iore_parent 1.60e-05     NA 1.45e-07 1.77e-03
+## N_parent       2.45e+00     NA 1.35e+00 3.54e+00
+## sigma          7.42e+00     NA 6.04e+00 8.80e+00
+## 
+## $DFOP
+##          Estimate   Pr(>t)   Lower    Upper
+## parent_0 9.89e+01 9.44e-49 95.4640 102.2573
+## k1       1.81e-02 1.75e-01  0.0116   0.0281
+## k2       3.62e-10 5.00e-01  0.0000      Inf
+## g        6.06e-01 2.19e-01  0.4826   0.7178
+## sigma    7.40e+00 2.97e-15  6.0201   8.7754
+## 
+## 
+## DTx values:
+##      DT50     DT90 DT50_rep
+## SFO  94.3 3.13e+02 9.43e+01
+## IORE 96.7 1.51e+03 4.55e+02
+## DFOP 96.4 3.79e+09 1.92e+09
+## 
+## Representative half-life:
+## [1] 454.55
+
+
+
+

Examples where the representative half-life deviates from the +observed DT50 +

+
+

Example on page 8 +

+

For this dataset, the IORE fit does not converge when the default +starting values used by mkin for the IORE model are used. Therefore, a +lower value for the rate constant is used here.

+
+p8 <- nafta(NAFTA_SOP_Attachment[["p8"]], parms.ini = c(k__iore_parent = 1e-3))
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p8)
+

+
+print(p8)
+
## Sums of squares:
+##       SFO      IORE      DFOP 
+## 1996.9408  444.9237  547.5616 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 477.4924
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0 88.16549 6.53e-29 83.37344 92.95754
+## k_parent  0.00803 1.67e-13  0.00674  0.00957
+## sigma     7.44786 4.17e-10  5.66209  9.23363
+## 
+## $IORE
+##                Estimate   Pr(>t)    Lower    Upper
+## parent_0       9.77e+01 7.03e-35 9.44e+01 1.01e+02
+## k__iore_parent 6.14e-05 3.20e-02 2.12e-05 1.78e-04
+## N_parent       2.27e+00 4.23e-18 2.00e+00 2.54e+00
+## sigma          3.52e+00 5.36e-10 2.67e+00 4.36e+00
+## 
+## $DFOP
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0 95.70619 8.99e-32 91.87941 99.53298
+## k1        0.02500 5.25e-04  0.01422  0.04394
+## k2        0.00273 6.84e-03  0.00125  0.00597
+## g         0.58835 2.84e-06  0.36595  0.77970
+## sigma     3.90001 6.94e-10  2.96260  4.83741
+## 
+## 
+## DTx values:
+##      DT50 DT90 DT50_rep
+## SFO  86.3  287     86.3
+## IORE 53.4  668    201.0
+## DFOP 55.6  517    253.0
+## 
+## Representative half-life:
+## [1] 201.03
+
+
+
+

Examples where SFO was not selected for an abiotic study +

+
+

Example on page 9, upper panel +

+
+p9a <- nafta(NAFTA_SOP_Attachment[["p9a"]])
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p9a)
+

+
+print(p9a)
+
## Sums of squares:
+##       SFO      IORE      DFOP 
+## 839.35238  88.57064   9.93363 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 105.5678
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)   Lower   Upper
+## parent_0  88.1933 3.06e-12 79.9447 96.4419
+## k_parent   0.0409 2.07e-07  0.0324  0.0516
+## sigma      7.2429 3.92e-05  4.4768 10.0090
+## 
+## $IORE
+##                Estimate   Pr(>t)    Lower    Upper
+## parent_0       9.89e+01 1.12e-16 9.54e+01 1.02e+02
+## k__iore_parent 1.93e-05 1.13e-01 3.49e-06 1.06e-04
+## N_parent       2.91e+00 1.45e-09 2.50e+00 3.32e+00
+## sigma          2.35e+00 5.31e-05 1.45e+00 3.26e+00
+## 
+## $DFOP
+##          Estimate   Pr(>t)  Lower  Upper
+## parent_0 9.85e+01 2.54e-20 97.390 99.672
+## k1       1.38e-01 3.52e-05  0.131  0.146
+## k2       9.02e-13 5.00e-01  0.000    Inf
+## g        6.52e-01 8.13e-06  0.642  0.661
+## sigma    7.88e-01 6.13e-02  0.481  1.095
+## 
+## 
+## DTx values:
+##      DT50     DT90 DT50_rep
+## SFO  16.9 5.63e+01 1.69e+01
+## IORE 11.6 3.37e+02 1.01e+02
+## DFOP 10.5 1.38e+12 7.68e+11
+## 
+## Representative half-life:
+## [1] 101.43
+

In this example, the residuals of the SFO indicate a lack of fit of +this model, so even if it was an abiotic experiment, the data do not +suggest a simple exponential decline.

+
+
+

Example on page 9, lower panel +

+
+p9b <- nafta(NAFTA_SOP_Attachment[["p9b"]])
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p9b)
+

+
+print(p9b)
+
## Sums of squares:
+##      SFO     IORE     DFOP 
+## 35.64867 23.22334 35.64867 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 28.54188
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)  Lower   Upper
+## parent_0  94.7123 2.15e-19 93.178 96.2464
+## k_parent   0.0389 4.47e-14  0.037  0.0408
+## sigma      1.5957 1.28e-04  0.932  2.2595
+## 
+## $IORE
+##                Estimate   Pr(>t)   Lower  Upper
+## parent_0         93.863 2.32e-18 92.4565 95.269
+## k__iore_parent    0.127 1.85e-02  0.0504  0.321
+## N_parent          0.711 1.88e-05  0.4843  0.937
+## sigma             1.288 1.76e-04  0.7456  1.830
+## 
+## $DFOP
+##          Estimate   Pr(>t)   Lower   Upper
+## parent_0  94.7123 1.61e-16 93.1355 96.2891
+## k1         0.0389 1.08e-04  0.0266  0.0569
+## k2         0.0389 2.24e-04  0.0255  0.0592
+## g          0.5256 5.00e-01  0.0000  1.0000
+## sigma      1.5957 2.50e-04  0.9135  2.2779
+## 
+## 
+## DTx values:
+##      DT50 DT90 DT50_rep
+## SFO  17.8 59.2     17.8
+## IORE 18.4 49.2     14.8
+## DFOP 17.8 59.2     17.8
+## 
+## Representative half-life:
+## [1] 14.8
+

Here, mkin gives a longer slow DT50 for the DFOP model (17.8 days) +than PestDF (13.5 days). Presumably, this is related to the fact that +PestDF gives a negative value for the proportion of the fast degradation +which should be between 0 and 1, inclusive. This parameter is called f +in PestDF and g in mkin. In mkin, it is restricted to the interval from +0 to 1.

+
+
+

Example on page 10 +

+
+p10 <- nafta(NAFTA_SOP_Attachment[["p10"]])
+
## Warning in sqrt(diag(covar_notrans)): NaNs produced
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p10)
+

+
+print(p10)
+
## Sums of squares:
+##      SFO     IORE     DFOP 
+## 899.4089 336.4348 899.4089 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 413.4841
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)   Lower    Upper
+## parent_0 101.7315 6.42e-11 91.9259 111.5371
+## k_parent   0.0495 1.70e-07  0.0404   0.0607
+## sigma      8.0152 1.28e-04  4.6813  11.3491
+## 
+## $IORE
+##                Estimate   Pr(>t)  Lower   Upper
+## parent_0          96.86 3.32e-12 90.848 102.863
+## k__iore_parent     2.96 7.91e-02  0.687  12.761
+## N_parent           0.00 5.00e-01 -0.372   0.372
+## sigma              4.90 1.77e-04  2.837   6.968
+## 
+## $DFOP
+##          Estimate   Pr(>t)   Lower   Upper
+## parent_0 101.7315 1.41e-09 91.6534 111.810
+## k1         0.0495 3.04e-03  0.0188   0.131
+## k2         0.0495 4.92e-04  0.0197   0.124
+## g          0.4487      NaN  0.0000   1.000
+## sigma      8.0152 2.50e-04  4.5886  11.442
+## 
+## 
+## DTx values:
+##      DT50 DT90 DT50_rep
+## SFO  14.0 46.5    14.00
+## IORE 16.4 29.4     8.86
+## DFOP 14.0 46.5    14.00
+## 
+## Representative half-life:
+## [1] 8.86
+

Here, a value below N is given for the IORE model, because the data +suggests a faster decline towards the end of the experiment, which +appears physically rather unlikely in the case of a photolysis study. It +seems PestDF does not constrain N to values above zero, thus the slight +difference in IORE model parameters between PestDF and mkin.

+
+
+
+

The DT50 was not observed during the study +

+
+

Example on page 11 +

+
+p11 <- nafta(NAFTA_SOP_Attachment[["p11"]])
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p11)
+

+
+print(p11)
+
## Sums of squares:
+##      SFO     IORE     DFOP 
+## 579.6805 204.7932 144.7783 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 251.6944
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0 96.15820 4.83e-13 90.24934 1.02e+02
+## k_parent  0.00321 4.71e-05  0.00222 4.64e-03
+## sigma     6.43473 1.28e-04  3.75822 9.11e+00
+## 
+## $IORE
+##                Estimate Pr(>t)    Lower    Upper
+## parent_0       1.05e+02     NA 9.90e+01 1.10e+02
+## k__iore_parent 3.11e-17     NA 1.35e-20 7.18e-14
+## N_parent       8.36e+00     NA 6.62e+00 1.01e+01
+## sigma          3.82e+00     NA 2.21e+00 5.44e+00
+## 
+## $DFOP
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0 1.05e+02 9.47e-13  99.9990 109.1224
+## k1       4.41e-02 5.95e-03   0.0296   0.0658
+## k2       9.94e-13 5.00e-01   0.0000      Inf
+## g        3.22e-01 1.45e-03   0.2814   0.3650
+## sigma    3.22e+00 3.52e-04   1.8410   4.5906
+## 
+## 
+## DTx values:
+##          DT50     DT90 DT50_rep
+## SFO  2.16e+02 7.18e+02 2.16e+02
+## IORE 9.73e+02 1.37e+08 4.11e+07
+## DFOP 3.07e+11 1.93e+12 6.98e+11
+## 
+## Representative half-life:
+## [1] 41148169
+

In this case, the DFOP fit reported for PestDF resulted in a negative +value for the slower rate constant, which is not possible in mkin. The +other results are in agreement.

+
+
+
+

N is less than 1 and the DFOP rate constants are like the SFO rate +constant +

+

In the following three examples, the same results are obtained with +mkin as reported for PestDF. As in the case on page 10, the N values +below 1 are deemed unrealistic and appear to be the result of an +overparameterisation.

+
+

Example on page 12, upper panel +

+
+p12a <- nafta(NAFTA_SOP_Attachment[["p12a"]])
+
## Warning in summary.mkinfit(x): Could not calculate correlation; no covariance
+## matrix
+
## Warning in sqrt(diag(covar_notrans)): NaNs produced
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p12a)
+

+
+print(p12a)
+
## Sums of squares:
+##      SFO     IORE     DFOP 
+## 695.4440 220.0685 695.4440 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 270.4679
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)  Lower   Upper
+## parent_0  100.521 8.75e-12 92.461 108.581
+## k_parent    0.124 3.61e-08  0.104   0.148
+## sigma       7.048 1.28e-04  4.116   9.980
+## 
+## $IORE
+##                Estimate Pr(>t) Lower Upper
+## parent_0         96.823     NA    NA    NA
+## k__iore_parent    2.436     NA    NA    NA
+## N_parent          0.263     NA    NA    NA
+## sigma             3.965     NA    NA    NA
+## 
+## $DFOP
+##          Estimate   Pr(>t)   Lower   Upper
+## parent_0  100.521 2.74e-10 92.2366 108.805
+## k1          0.124 2.53e-05  0.0908   0.170
+## k2          0.124 2.52e-02  0.0456   0.339
+## g           0.793      NaN  0.0000   1.000
+## sigma       7.048 2.50e-04  4.0349  10.061
+## 
+## 
+## DTx values:
+##      DT50 DT90 DT50_rep
+## SFO  5.58 18.5     5.58
+## IORE 6.49 13.2     3.99
+## DFOP 5.58 18.5     5.58
+## 
+## Representative half-life:
+## [1] 3.99
+
+
+

Example on page 12, lower panel +

+
+p12b <- nafta(NAFTA_SOP_Attachment[["p12b"]])
+
## Warning in sqrt(diag(covar)): NaNs produced
+
## Warning in qt(alpha/2, rdf): NaNs produced
+
## Warning in qt(1 - alpha/2, rdf): NaNs produced
+
## Warning in pt(abs(tval), rdf, lower.tail = FALSE): NaNs produced
+
## Warning in cov2cor(ans$covar): diag(V) had non-positive or NA entries; the
+## non-finite result may be dubious
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p12b)
+

+
+print(p12b)
+
## Sums of squares:
+##      SFO     IORE     DFOP 
+## 58.90242 19.06353 58.90242 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 51.51756
+## 
+## Parameters:
+## $SFO
+##          Estimate  Pr(>t)   Lower    Upper
+## parent_0  97.6840 0.00039 85.9388 109.4292
+## k_parent   0.0589 0.00261  0.0431   0.0805
+## sigma      3.4323 0.04356 -1.2377   8.1023
+## 
+## $IORE
+##                Estimate Pr(>t)     Lower  Upper
+## parent_0         95.523 0.0055 74.539157 116.51
+## k__iore_parent    0.333 0.1433  0.000717 154.57
+## N_parent          0.568 0.0677 -0.989464   2.13
+## sigma             1.953 0.0975 -5.893100   9.80
+## 
+## $DFOP
+##          Estimate Pr(>t) Lower Upper
+## parent_0  97.6840    NaN   NaN   NaN
+## k1         0.0589    NaN    NA    NA
+## k2         0.0589    NaN    NA    NA
+## g          0.6473    NaN    NA    NA
+## sigma      3.4323    NaN   NaN   NaN
+## 
+## 
+## DTx values:
+##      DT50 DT90 DT50_rep
+## SFO  11.8 39.1    11.80
+## IORE 12.9 31.4     9.46
+## DFOP 11.8 39.1    11.80
+## 
+## Representative half-life:
+## [1] 9.46
+
+
+

Example on page 13 +

+
+p13 <- nafta(NAFTA_SOP_Attachment[["p13"]])
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p13)
+

+
+print(p13)
+
## Sums of squares:
+##      SFO     IORE     DFOP 
+## 174.5971 142.3951 174.5971 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 172.131
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0 92.73500 5.99e-17 89.61936 95.85065
+## k_parent  0.00258 2.42e-09  0.00223  0.00299
+## sigma     3.41172 7.07e-05  2.05455  4.76888
+## 
+## $IORE
+##                Estimate   Pr(>t)    Lower  Upper
+## parent_0        91.6016 6.34e-16 88.53086 94.672
+## k__iore_parent   0.0396 2.36e-01  0.00207  0.759
+## N_parent         0.3541 1.46e-01 -0.35153  1.060
+## sigma            3.0811 9.64e-05  1.84296  4.319
+## 
+## $DFOP
+##          Estimate Pr(>t)    Lower    Upper
+## parent_0 92.73500     NA 8.95e+01 95.92118
+## k1        0.00258     NA 4.18e-04  0.01592
+## k2        0.00258     NA 1.75e-03  0.00381
+## g         0.16452     NA 0.00e+00  1.00000
+## sigma     3.41172     NA 2.02e+00  4.79960
+## 
+## 
+## DTx values:
+##      DT50 DT90 DT50_rep
+## SFO   269  892      269
+## IORE  261  560      169
+## DFOP  269  892      269
+## 
+## Representative half-life:
+## [1] 168.51
+
+
+
+

DT50 not observed in the study and DFOP problems in PestDF +

+
+p14 <- nafta(NAFTA_SOP_Attachment[["p14"]])
+
## Warning in sqrt(diag(covar)): NaNs produced
+
## Warning in cov2cor(ans$covar): diag(V) had non-positive or NA entries; the
+## non-finite result may be dubious
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p14)
+

+
+print(p14)
+
## Sums of squares:
+##      SFO     IORE     DFOP 
+## 48.43249 28.67746 27.26248 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 32.83337
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0 99.47124 2.06e-30 98.42254 1.01e+02
+## k_parent  0.00279 3.75e-15  0.00256 3.04e-03
+## sigma     1.55616 3.81e-06  1.03704 2.08e+00
+## 
+## $IORE
+##                Estimate Pr(>t) Lower Upper
+## parent_0       1.00e+02     NA   NaN   NaN
+## k__iore_parent 9.44e-08     NA   NaN   NaN
+## N_parent       3.31e+00     NA   NaN   NaN
+## sigma          1.20e+00     NA 0.796   1.6
+## 
+## $DFOP
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0 1.00e+02 2.96e-28 99.40280 101.2768
+## k1       9.53e-03 1.20e-01  0.00638   0.0143
+## k2       5.21e-12 5.00e-01  0.00000      Inf
+## g        3.98e-01 2.19e-01  0.30481   0.4998
+## sigma    1.17e+00 7.68e-06  0.77406   1.5610
+## 
+## 
+## DTx values:
+##          DT50     DT90 DT50_rep
+## SFO  2.48e+02 8.25e+02 2.48e+02
+## IORE 4.34e+02 2.22e+04 6.70e+03
+## DFOP 3.55e+10 3.44e+11 1.33e+11
+## 
+## Representative half-life:
+## [1] 6697.44
+

The slower rate constant reported by PestDF is negative, which is not +physically realistic, and not possible in mkin. The other fits give the +same results in mkin and PestDF.

+
+
+

N is less than 1 and DFOP fraction parameter is below zero +

+
+p15a <- nafta(NAFTA_SOP_Attachment[["p15a"]])
+
## Warning in sqrt(diag(covar)): NaNs produced
+
## Warning in cov2cor(ans$covar): diag(V) had non-positive or NA entries; the
+## non-finite result may be dubious
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p15a)
+

+
+print(p15a)
+
## Sums of squares:
+##      SFO     IORE     DFOP 
+## 245.5248 135.0132 245.5248 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 165.9335
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)    Lower   Upper
+## parent_0 97.96751 2.00e-15 94.32049 101.615
+## k_parent  0.00952 4.93e-09  0.00824   0.011
+## sigma     4.18778 1.28e-04  2.44588   5.930
+## 
+## $IORE
+##                Estimate   Pr(>t)  Lower  Upper
+## parent_0         95.874 2.94e-15 92.937 98.811
+## k__iore_parent    0.629 2.11e-01  0.044  8.982
+## N_parent          0.000 5.00e-01 -0.642  0.642
+## sigma             3.105 1.78e-04  1.795  4.416
+## 
+## $DFOP
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0 97.96751 2.85e-13 94.21913 101.7159
+## k1        0.00952 6.28e-02  0.00260   0.0349
+## k2        0.00952 1.27e-04  0.00652   0.0139
+## g         0.21241 5.00e-01       NA       NA
+## sigma     4.18778 2.50e-04  2.39747   5.9781
+## 
+## 
+## DTx values:
+##      DT50 DT90 DT50_rep
+## SFO  72.8  242     72.8
+## IORE 76.3  137     41.3
+## DFOP 72.8  242     72.8
+## 
+## Representative half-life:
+## [1] 41.33
+
+p15b <- nafta(NAFTA_SOP_Attachment[["p15b"]])
+
## Warning in summary.mkinfit(x): Could not calculate correlation; no covariance
+## matrix
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The half-life obtained from the IORE model may be used
+
+plot(p15b)
+

+
+print(p15b)
+
## Sums of squares:
+##       SFO      IORE      DFOP 
+## 106.91629  68.55574 106.91629 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 84.25618
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)    Lower    Upper
+## parent_0 1.01e+02 3.06e-17 98.31594 1.03e+02
+## k_parent 4.86e-03 2.48e-10  0.00435 5.42e-03
+## sigma    2.76e+00 1.28e-04  1.61402 3.91e+00
+## 
+## $IORE
+##                Estimate   Pr(>t)    Lower  Upper
+## parent_0          99.83 1.81e-16 97.51348 102.14
+## k__iore_parent     0.38 3.22e-01  0.00352  41.05
+## N_parent           0.00 5.00e-01 -1.07696   1.08
+## sigma              2.21 2.57e-04  1.23245   3.19
+## 
+## $DFOP
+##          Estimate Pr(>t) Lower Upper
+## parent_0 1.01e+02     NA    NA    NA
+## k1       4.86e-03     NA    NA    NA
+## k2       4.86e-03     NA    NA    NA
+## g        1.88e-01     NA    NA    NA
+## sigma    2.76e+00     NA    NA    NA
+## 
+## 
+## DTx values:
+##      DT50 DT90 DT50_rep
+## SFO   143  474    143.0
+## IORE  131  236     71.2
+## DFOP  143  474    143.0
+## 
+## Representative half-life:
+## [1] 71.18
+

In mkin, only the IORE fit is affected (deemed unrealistic), as the +fraction parameter of the DFOP model is restricted to the interval +between 0 and 1 in mkin. The SFO fits give the same results for both +mkin and PestDF.

+
+
+

The DFOP fraction parameter is greater than 1 +

+
+p16 <- nafta(NAFTA_SOP_Attachment[["p16"]])
+
## The SFO model is rejected as S_SFO is equal or higher than the critical value S_c
+
## The representative half-life of the IORE model is longer than the one corresponding
+
## to the terminal degradation rate found with the DFOP model.
+
## The representative half-life obtained from the DFOP model may be used
+
+plot(p16)
+

+
+print(p16)
+
## Sums of squares:
+##      SFO     IORE     DFOP 
+## 3831.804 2062.008 1550.980 
+## 
+## Critical sum of squares for checking the SFO model:
+## [1] 2247.348
+## 
+## Parameters:
+## $SFO
+##          Estimate   Pr(>t)  Lower Upper
+## parent_0   71.953 2.33e-13 60.509 83.40
+## k_parent    0.159 4.86e-05  0.102  0.25
+## sigma      11.302 1.25e-08  8.308 14.30
+## 
+## $IORE
+##                Estimate   Pr(>t)    Lower    Upper
+## parent_0       8.74e+01 2.48e-16 7.72e+01 97.52972
+## k__iore_parent 4.55e-04 2.16e-01 3.48e-05  0.00595
+## N_parent       2.70e+00 1.21e-08 1.99e+00  3.40046
+## sigma          8.29e+00 1.61e-08 6.09e+00 10.49062
+## 
+## $DFOP
+##          Estimate   Pr(>t)   Lower  Upper
+## parent_0  88.5333 7.40e-18 79.9836 97.083
+## k1        18.8461 5.00e-01  0.0000    Inf
+## k2         0.0776 1.41e-05  0.0518  0.116
+## g          0.4733 1.41e-09  0.3674  0.582
+## sigma      7.1902 2.11e-08  5.2785  9.102
+## 
+## 
+## DTx values:
+##      DT50 DT90 DT50_rep
+## SFO  4.35 14.4     4.35
+## IORE 1.48 32.1     9.67
+## DFOP 0.67 21.4     8.93
+## 
+## Representative half-life:
+## [1] 8.93
+

In PestDF, the DFOP fit seems to have stuck in a local minimum, as +mkin finds a solution with a much lower +χ2\chi^2 +error level. As the half-life from the slower rate constant of the DFOP +model is larger than the IORE derived half-life, the NAFTA +recommendation obtained with mkin is to use the DFOP representative +half-life of 8.9 days.

+
+
+

Conclusions +

+

The results obtained with mkin deviate from the results obtained with +PestDF either in cases where one of the interpretive rules would apply, +i.e. the IORE parameter N is less than one or the DFOP k values obtained +with PestDF are equal to the SFO k values, or in cases where the DFOP +model did not converge, which often lead to negative rate constants +returned by PestDF.

+

Therefore, mkin appears to suitable for kinetic evaluations according +to the NAFTA guidance.

+
+
+

References +

+
+
+US EPA. 2015. “Standard Operating Procedure for Using the NAFTA +Guidance to Calculate Representative Half-Life Values and Characterizing +Pesticide Degradation.” https://www.epa.gov/pesticide-science-and-assessing-pesticide-risks/standard-operating-procedure-using-nafta-guidance. +
+
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p10-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p10-1.png new file mode 100644 index 00000000..1d4a25e0 Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p10-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p11-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p11-1.png new file mode 100644 index 00000000..71fc4699 Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p11-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p12a-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p12a-1.png new file mode 100644 index 00000000..a1d3a084 Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p12a-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p12b-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p12b-1.png new file mode 100644 index 00000000..1a6fdd03 Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p12b-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p13-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p13-1.png new file mode 100644 index 00000000..f9b9f637 Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p13-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p14-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p14-1.png new file mode 100644 index 00000000..9f7b0cc5 Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p14-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p15a-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p15a-1.png new file mode 100644 index 00000000..aa55169e Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p15a-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p15b-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p15b-1.png new file mode 100644 index 00000000..d17c7aae Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p15b-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p16-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p16-1.png new file mode 100644 index 00000000..75ac7e5b Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p16-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p5a-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p5a-1.png new file mode 100644 index 00000000..12a62954 Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p5a-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p5b-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p5b-1.png new file mode 100644 index 00000000..9e38e696 Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p5b-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p6-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p6-1.png new file mode 100644 index 00000000..e6e3abbe Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p6-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p7-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p7-1.png new file mode 100644 index 00000000..7c5d4bab Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p7-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p8-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p8-1.png new file mode 100644 index 00000000..a1e3bf25 Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p8-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p9a-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p9a-1.png new file mode 100644 index 00000000..c247fd4e Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p9a-1.png differ diff --git a/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p9b-1.png b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p9b-1.png new file mode 100644 index 00000000..99d593fc Binary files /dev/null and b/docs/dev/articles/web_only/NAFTA_examples_files/figure-html/p9b-1.png differ diff --git a/docs/dev/articles/web_only/benchmarks.html b/docs/dev/articles/web_only/benchmarks.html new file mode 100644 index 00000000..bd6a443a --- /dev/null +++ b/docs/dev/articles/web_only/benchmarks.html @@ -0,0 +1,1133 @@ + + + + + + + +Benchmark timings for mkin • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +

Each system is characterized by the operating system type, the CPU +type, the mkin version, and, as in June 2022 the current R version lead +to worse performance, the R version. A compiler was available, so if no +analytical solution was available, compiled ODE models are used.

+

Every fit is only performed once, so the accuracy of the benchmarks +is limited.

+

The following wrapper function for mmkin is used because +the way the error model is specified was changed in mkin version +0.9.49.1.

+
+if (packageVersion("mkin") > "0.9.48.1") {
+  mmkin_bench <- function(models, datasets, error_model = "const") {
+    mmkin(models, datasets, error_model = error_model, cores = 1, quiet = TRUE)
+  }
+} else {
+  mmkin_bench <- function(models, datasets, error_model = NULL) {
+    mmkin(models, datasets, reweight.method = error_model, cores = 1, quiet = TRUE)
+  }
+}
+
+

Test cases +

+

Parent only:

+
+FOCUS_C <- FOCUS_2006_C
+FOCUS_D <- subset(FOCUS_2006_D, value != 0)
+parent_datasets <- list(FOCUS_C, FOCUS_D)
+
+
+t1 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), parent_datasets))[["elapsed"]]
+t2 <- system.time(mmkin_bench(c("SFO", "FOMC", "DFOP", "HS"), parent_datasets,
+    error_model = "tc"))[["elapsed"]]
+

One metabolite:

+
+SFO_SFO <- mkinmod(
+  parent = mkinsub("SFO", "m1"),
+  m1 = mkinsub("SFO"))
+FOMC_SFO <- mkinmod(
+  parent = mkinsub("FOMC", "m1"),
+  m1 = mkinsub("SFO"))
+DFOP_SFO <- mkinmod(
+  parent = mkinsub("FOMC", "m1"), # erroneously used FOMC twice, not fixed for consistency
+  m1 = mkinsub("SFO"))
+t3 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D)))[["elapsed"]]
+t4 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D),
+    error_model = "tc"))[["elapsed"]]
+t5 <- system.time(mmkin_bench(list(SFO_SFO, FOMC_SFO, DFOP_SFO), list(FOCUS_D),
+    error_model = "obs"))[["elapsed"]]
+

Two metabolites, synthetic data:

+
+m_synth_SFO_lin <- mkinmod(parent = mkinsub("SFO", "M1"),
+                           M1 = mkinsub("SFO", "M2"),
+                           M2 = mkinsub("SFO"),
+                           use_of_ff = "max", quiet = TRUE)
+
+m_synth_DFOP_par <- mkinmod(parent = mkinsub("DFOP", c("M1", "M2")),
+                           M1 = mkinsub("SFO"),
+                           M2 = mkinsub("SFO"),
+                           use_of_ff = "max", quiet = TRUE)
+
+SFO_lin_a <- synthetic_data_for_UBA_2014[[1]]$data
+
+DFOP_par_c <- synthetic_data_for_UBA_2014[[12]]$data
+
+t6 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a)))[["elapsed"]]
+t7 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c)))[["elapsed"]]
+
+t8 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a),
+    error_model = "tc"))[["elapsed"]]
+t9 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c),
+    error_model = "tc"))[["elapsed"]]
+
+t10 <- system.time(mmkin_bench(list(m_synth_SFO_lin), list(SFO_lin_a),
+    error_model = "obs"))[["elapsed"]]
+t11 <- system.time(mmkin_bench(list(m_synth_DFOP_par), list(DFOP_par_c),
+    error_model = "obs"))[["elapsed"]]
+
+
+

Results +

+

Benchmarks for all available error models are shown. They are +intended for improving mkin, not for comparing CPUs or operating +systems. All trademarks belong to their respective owners.

+
+

Parent only +

+

Constant variance (t1) and two-component error model (t2) for four +models fitted to two datasets, i.e. eight fits for each test.

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OSCPURmkint1t2
LinuxRyzen 7 1700NA0.9.48.13.61011.019
LinuxRyzen 7 1700NA0.9.49.18.18422.889
LinuxRyzen 7 1700NA0.9.49.27.06412.558
LinuxRyzen 7 1700NA0.9.49.37.29621.239
LinuxRyzen 7 1700NA0.9.49.45.93620.545
LinuxRyzen 7 1700NA0.9.50.21.7143.971
LinuxRyzen 7 1700NA0.9.50.31.7524.156
LinuxRyzen 7 1700NA0.9.50.41.7863.729
LinuxRyzen 7 1700NA1.0.31.8813.504
LinuxRyzen 7 1700NA1.0.41.8673.450
LinuxRyzen 7 17004.1.31.1.01.7913.289
LinuxRyzen 7 17004.2.11.1.01.8423.453
Linuxi7-4710MQ4.2.11.1.01.9594.116
Linuxi7-4710MQ4.1.31.1.01.8773.906
Linuxi7-4710MQ4.2.11.1.11.6443.172
LinuxRyzen 7 17004.2.11.1.11.7703.377
LinuxRyzen 7 17004.2.11.1.21.9573.633
LinuxRyzen 7 17004.2.21.2.02.1403.774
LinuxRyzen 7 17004.2.21.2.22.1873.851
LinuxRyzen 9 7950X4.2.21.2.01.2881.794
LinuxRyzen 9 7950X4.2.21.2.21.2761.804
LinuxRyzen 9 7950X4.2.21.2.31.3701.883
LinuxRyzen 9 7950X4.2.31.2.31.4061.948
LinuxRyzen 9 7950X4.3.01.2.41.3861.960
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.52.3693.632
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.62.8564.960
LinuxRyzen 9 7950X4.3.21.2.61.4082.041
LinuxRyzen 9 7950X4.4.21.2.91.3231.925
LinuxRyzen 9 7950X4.4.21.2.101.3711.980
+
+
+

One metabolite +

+

Constant variance (t3), two-component error model (t4), and variance +by variable (t5) for three models fitted to one dataset, i.e. three fits +for each test.

+ +++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OSCPURmkint3t4t5
LinuxRyzen 7 1700NA0.9.48.13.76414.3479.495
LinuxRyzen 7 1700NA0.9.49.14.64913.7896.395
LinuxRyzen 7 1700NA0.9.49.24.7868.4615.675
LinuxRyzen 7 1700NA0.9.49.34.51013.8057.386
LinuxRyzen 7 1700NA0.9.49.44.44615.3356.002
LinuxRyzen 7 1700NA0.9.50.21.4026.1742.764
LinuxRyzen 7 1700NA0.9.50.31.4306.6152.878
LinuxRyzen 7 1700NA0.9.50.41.3977.2512.810
LinuxRyzen 7 1700NA1.0.31.4306.3442.798
LinuxRyzen 7 1700NA1.0.41.4156.3642.820
LinuxRyzen 7 17004.1.31.1.01.3106.2792.681
LinuxRyzen 7 17004.2.11.1.03.80221.2478.461
Linuxi7-4710MQ4.2.11.1.03.33419.5217.565
Linuxi7-4710MQ4.1.31.1.01.5788.0583.339
Linuxi7-4710MQ4.2.11.1.11.2305.8392.444
LinuxRyzen 7 17004.2.11.1.11.3085.7582.558
LinuxRyzen 7 17004.2.11.1.21.5036.1472.803
LinuxRyzen 7 17004.2.21.2.01.5546.1932.843
LinuxRyzen 7 17004.2.21.2.21.5856.3353.003
LinuxRyzen 9 7950X4.2.21.2.00.7922.3781.245
LinuxRyzen 9 7950X4.2.21.2.20.7842.3551.233
LinuxRyzen 9 7950X4.2.21.2.30.7702.0111.123
LinuxRyzen 9 7950X4.2.31.2.30.7932.1091.178
LinuxRyzen 9 7950X4.3.01.2.40.7792.0801.106
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.51.8235.5552.404
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.61.7615.4052.462
LinuxRyzen 9 7950X4.3.21.2.60.7952.2281.178
LinuxRyzen 9 7950X4.4.21.2.90.7542.1531.139
LinuxRyzen 9 7950X4.4.21.2.100.7622.1791.131
+
+
+

Two metabolites +

+

Constant variance (t6 and t7), two-component error model (t8 and t9), +and variance by variable (t10 and t11) for one model fitted to one +dataset, i.e. one fit for each test.

+ ++++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
OSCPURmkint6t7t8t9t10t11
LinuxRyzen 7 1700NA0.9.48.12.6234.5877.52516.6218.57631.267
LinuxRyzen 7 1700NA0.9.49.12.5424.1284.6328.1713.6765.636
LinuxRyzen 7 1700NA0.9.49.22.7234.4784.8627.6183.5795.574
LinuxRyzen 7 1700NA0.9.49.32.6434.3747.02011.1245.3887.365
LinuxRyzen 7 1700NA0.9.49.42.6354.2594.7377.7633.4275.626
LinuxRyzen 7 1700NA0.9.50.20.7771.2361.3322.8722.0692.987
LinuxRyzen 7 1700NA0.9.50.30.8581.2641.3332.9842.1133.073
LinuxRyzen 7 1700NA0.9.50.40.7831.2821.4863.8151.9583.105
LinuxRyzen 7 1700NA1.0.30.7631.2441.4573.0541.9232.839
LinuxRyzen 7 1700NA1.0.40.7851.2521.4663.0911.9362.826
LinuxRyzen 7 17004.1.31.1.00.7441.2271.2883.5531.8952.738
LinuxRyzen 7 17004.2.11.1.03.0184.1655.03610.8446.6239.722
Linuxi7-4710MQ4.2.11.1.02.5223.7924.14311.2685.9358.728
Linuxi7-4710MQ4.1.31.1.00.9071.5351.5894.5442.3023.463
Linuxi7-4710MQ4.2.11.1.10.6781.0951.1493.2471.6582.472
LinuxRyzen 7 17004.2.11.1.10.6961.1241.3212.7861.7442.566
LinuxRyzen 7 17004.2.11.1.20.8611.2951.5073.1021.9612.852
LinuxRyzen 7 17004.2.21.2.00.9131.3451.5393.0111.9872.802
LinuxRyzen 7 17004.2.21.2.20.9351.3811.5513.2091.9763.013
LinuxRyzen 9 7950X4.2.21.2.00.4450.5910.6601.1900.8141.100
LinuxRyzen 9 7950X4.2.21.2.20.4430.5860.6611.1760.8031.097
LinuxRyzen 9 7950X4.2.21.2.30.4180.5300.5911.0060.7160.949
LinuxRyzen 9 7950X4.2.31.2.30.4320.5490.6091.0520.7430.989
LinuxRyzen 9 7950X4.3.01.2.40.4100.5260.5531.2490.7120.948
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.50.7981.0961.2173.1731.6342.271
LinuxIntel(R) Xeon(R) Gold 6134 CPU @ 3.20GHz4.3.11.2.60.8131.1361.2203.1141.5982.255
LinuxRyzen 9 7950X4.3.21.2.60.4390.5570.5851.3380.7490.999
LinuxRyzen 9 7950X4.4.21.2.90.4240.5340.5601.2980.7350.981
LinuxRyzen 9 7950X4.4.21.2.100.4260.5330.5651.2960.7280.978
+
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/web_only/compiled_models.html b/docs/dev/articles/web_only/compiled_models.html new file mode 100644 index 00000000..113f7b67 --- /dev/null +++ b/docs/dev/articles/web_only/compiled_models.html @@ -0,0 +1,231 @@ + + + + + + + +Performance benefit by using compiled model definitions in mkin • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +
+

How to benefit from compiled models +

+

When using an mkin version equal to or greater than 0.9-36 and a C +compiler is available, you will see a message that the model is being +compiled from autogenerated C code when defining a model using mkinmod. +Starting from version 0.9.49.9, the mkinmod() function +checks for presence of a compiler using

+
+pkgbuild::has_compiler()
+

In previous versions, it used Sys.which("gcc") for this +check.

+

On Linux, you need to have the essential build tools like make and +gcc or clang installed. On Debian based linux distributions, these will +be pulled in by installing the build-essential package.

+

On MacOS, which I do not use personally, I have had reports that a +compiler is available by default.

+

On Windows, you need to install Rtools and have the path to its bin +directory in your PATH variable. You do not need to modify the PATH +variable when installing Rtools. Instead, I would recommend to put the +line

+
+Sys.setenv(PATH = paste("C:/Rtools/bin", Sys.getenv("PATH"), sep=";"))
+

into your .Rprofile startup file. This is just a text file with some +R code that is executed when your R session starts. It has to be named +.Rprofile and has to be located in your home directory, which will +generally be your Documents folder. You can check the location of the +home directory used by R by issuing

+
+Sys.getenv("HOME")
+
+
+

Comparison with other solution methods +

+

First, we build a simple degradation model for a parent compound with +one metabolite, and we remove zero values from the dataset.

+
+library("mkin", quietly = TRUE)
+SFO_SFO <- mkinmod(
+  parent = mkinsub("SFO", "m1"),
+  m1 = mkinsub("SFO"))
+
## Temporary DLL for differentials generated and loaded
+
+FOCUS_D <- subset(FOCUS_2006_D, value != 0)
+

We can compare the performance of the Eigenvalue based solution +against the compiled version and the R implementation of the +differential equations using the benchmark package. In the output of +below code, the warnings about zero being removed from the FOCUS D +dataset are suppressed. Since mkin version 0.9.49.11, an analytical +solution is also implemented, which is included in the tests below.

+
+if (require(rbenchmark)) {
+  b.1 <- benchmark(
+    "deSolve, not compiled" = mkinfit(SFO_SFO, FOCUS_D,
+       solution_type = "deSolve",
+       use_compiled = FALSE, quiet = TRUE),
+    "Eigenvalue based" = mkinfit(SFO_SFO, FOCUS_D,
+       solution_type = "eigen", quiet = TRUE),
+    "deSolve, compiled" = mkinfit(SFO_SFO, FOCUS_D,
+       solution_type = "deSolve", quiet = TRUE),
+    "analytical" = mkinfit(SFO_SFO, FOCUS_D,
+       solution_type = "analytical",
+       use_compiled = FALSE, quiet = TRUE),
+    replications = 1, order = "relative",
+    columns = c("test", "replications", "relative", "elapsed"))
+  print(b.1)
+} else {
+  print("R package rbenchmark is not available")
+}
+
##                    test replications relative elapsed
+## 4            analytical            1    1.000   0.102
+## 3     deSolve, compiled            1    1.324   0.135
+## 2      Eigenvalue based            1    1.706   0.174
+## 1 deSolve, not compiled            1   22.627   2.308
+

We see that using the compiled model is by more than a factor of 10 +faster than using deSolve without compiled code.

+
+
+

Model without analytical solution +

+

This evaluation is also taken from the example section of mkinfit. No +analytical solution is available for this system, and now Eigenvalue +based solution is possible, so only deSolve using with or without +compiled code is available.

+
+if (require(rbenchmark)) {
+  FOMC_SFO <- mkinmod(
+    parent = mkinsub("FOMC", "m1"),
+    m1 = mkinsub( "SFO"))
+
+  b.2 <- benchmark(
+    "deSolve, not compiled" = mkinfit(FOMC_SFO, FOCUS_D,
+                                      use_compiled = FALSE, quiet = TRUE),
+    "deSolve, compiled" = mkinfit(FOMC_SFO, FOCUS_D, quiet = TRUE),
+    replications = 1, order = "relative",
+    columns = c("test", "replications", "relative", "elapsed"))
+  print(b.2)
+  factor_FOMC_SFO <- round(b.2["1", "relative"])
+} else {
+  factor_FOMC_SFO <- NA
+  print("R package benchmark is not available")
+}
+
## Temporary DLL for differentials generated and loaded
+
##                    test replications relative elapsed
+## 2     deSolve, compiled            1    1.000   0.170
+## 1 deSolve, not compiled            1   23.865   4.057
+

Here we get a performance benefit of a factor of 24 using the version +of the differential equation model compiled from C code!

+

This vignette was built with mkin 1.2.10 on

+
## R version 4.4.2 (2024-10-31)
+## Platform: x86_64-pc-linux-gnu
+## Running under: Debian GNU/Linux 12 (bookworm)
+
## CPU model: AMD Ryzen 9 7950X 16-Core Processor
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/web_only/dimethenamid_2018.html b/docs/dev/articles/web_only/dimethenamid_2018.html new file mode 100644 index 00000000..572f253d --- /dev/null +++ b/docs/dev/articles/web_only/dimethenamid_2018.html @@ -0,0 +1,651 @@ + + + + + + + +Example evaluations of the dimethenamid data from 2018 • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +

Wissenschaftlicher Berater, Kronacher +Str. 12, 79639 Grenzach-Wyhlen, Germany

+
+

Introduction +

+

A first analysis of the data analysed here was presented in a recent +journal article on nonlinear mixed-effects models in degradation +kinetics (Ranke et al. 2021). That +analysis was based on the nlme package and a development +version of the saemix package that was unpublished at the +time. Meanwhile, version 3.0 of the saemix package is +available from the CRAN repository. Also, it turned out that there was +an error in the handling of the Borstel data in the mkin package at the +time, leading to the duplication of a few data points from that soil. +The dataset in the mkin package has been corrected, and the interface to +saemix in the mkin package has been updated to use the +released version.

+

This vignette is intended to present an up to date analysis of the +data, using the corrected dataset and released versions of +mkin and saemix.

+
+
+

Data +

+

Residue data forming the basis for the endpoints derived in the +conclusion on the peer review of the pesticide risk assessment of +dimethenamid-P published by the European Food Safety Authority (EFSA) in +2018 (EFSA 2018) were transcribed from the +risk assessment report (Rapporteur Member State +Germany, Co-Rapporteur Member State Bulgaria 2018) which can be +downloaded from the Open EFSA repository https://open.efsa.europa.eu/study-inventory/EFSA-Q-2014-00716.

+

The data are available +in the mkin package. The following code (hidden by default, please +use the button to the right to show it) treats the data available for +the racemic mixture dimethenamid (DMTA) and its enantiomer +dimethenamid-P (DMTAP) in the same way, as no difference between their +degradation behaviour was identified in the EU risk assessment. The +observation times of each dataset are multiplied with the corresponding +normalisation factor also available in the dataset, in order to make it +possible to describe all datasets with a single set of parameters.

+

Also, datasets observed in the same soil are merged, resulting in +dimethenamid (DMTA) data from six soils.

+
+library(mkin, quietly = TRUE)
+dmta_ds <- lapply(1:7, function(i) {
+  ds_i <- dimethenamid_2018$ds[[i]]$data
+  ds_i[ds_i$name == "DMTAP", "name"] <-  "DMTA"
+  ds_i$time <- ds_i$time * dimethenamid_2018$f_time_norm[i]
+  ds_i
+})
+names(dmta_ds) <- sapply(dimethenamid_2018$ds, function(ds) ds$title)
+dmta_ds[["Elliot"]] <- rbind(dmta_ds[["Elliot 1"]], dmta_ds[["Elliot 2"]])
+dmta_ds[["Elliot 1"]] <- NULL
+dmta_ds[["Elliot 2"]] <- NULL
+
+
+

Parent degradation +

+

We evaluate the observed degradation of the parent compound using +simple exponential decline (SFO) and biexponential decline (DFOP), using +constant variance (const) and a two-component variance (tc) as error +models.

+
+

Separate evaluations +

+

As a first step, to get a visual impression of the fit of the +different models, we do separate evaluations for each soil using the +mmkin function from the mkin package:

+
+f_parent_mkin_const <- mmkin(c("SFO", "DFOP"), dmta_ds,
+  error_model = "const", quiet = TRUE)
+f_parent_mkin_tc <- mmkin(c("SFO", "DFOP"), dmta_ds,
+  error_model = "tc", quiet = TRUE)
+

The plot of the individual SFO fits shown below suggests that at +least in some datasets the degradation slows down towards later time +points, and that the scatter of the residuals error is smaller for +smaller values (panel to the right):

+
+plot(mixed(f_parent_mkin_const["SFO", ]))
+

+

Using biexponential decline (DFOP) results in a slightly more random +scatter of the residuals:

+
+plot(mixed(f_parent_mkin_const["DFOP", ]))
+

+

The population curve (bold line) in the above plot results from +taking the mean of the individual transformed parameters, i.e. of log k1 +and log k2, as well as of the logit of the g parameter of the DFOP +model). Here, this procedure does not result in parameters that +represent the degradation well, because in some datasets the fitted +value for k2 is extremely close to zero, leading to a log k2 value that +dominates the average. This is alleviated if only rate constants that +pass the t-test for significant difference from zero (on the +untransformed scale) are considered in the averaging:

+
+plot(mixed(f_parent_mkin_const["DFOP", ]), test_log_parms = TRUE)
+

+

While this is visually much more satisfactory, such an average +procedure could introduce a bias, as not all results from the individual +fits enter the population curve with the same weight. This is where +nonlinear mixed-effects models can help out by treating all datasets +with equally by fitting a parameter distribution model together with the +degradation model and the error model (see below).

+

The remaining trend of the residuals to be higher for higher +predicted residues is reduced by using the two-component error +model:

+
+plot(mixed(f_parent_mkin_tc["DFOP", ]), test_log_parms = TRUE)
+

+

However, note that in the case of using this error model, the fits to +the Flaach and BBA 2.3 datasets appear to be ill-defined, indicated by +the fact that they did not converge:

+
+print(f_parent_mkin_tc["DFOP", ])
+
<mmkin> object
+Status of individual fits:
+
+      dataset
+model  Calke Borstel Flaach BBA 2.2 BBA 2.3 Elliot
+  DFOP OK    OK      OK     OK      C       OK    
+
+C: Optimisation did not converge:
+iteration limit reached without convergence (10)
+OK: No warnings
+
+
+

Nonlinear mixed-effects models +

+

Instead of taking a model selection decision for each of the +individual fits, we fit nonlinear mixed-effects models (using different +fitting algorithms as implemented in different packages) and do model +selection using all available data at the same time. In order to make +sure that these decisions are not unduly influenced by the type of +algorithm used, by implementation details or by the use of wrong control +parameters, we compare the model selection results obtained with +different R packages, with different algorithms and checking control +parameters.

+
+

nlme +

+

The nlme package was the first R extension providing facilities to +fit nonlinear mixed-effects models. We would like to do model selection +from all four combinations of degradation models and error models based +on the AIC. However, fitting the DFOP model with constant variance and +using default control parameters results in an error, signalling that +the maximum number of 50 iterations was reached, potentially indicating +overparameterisation. Nevertheless, the algorithm converges when the +two-component error model is used in combination with the DFOP model. +This can be explained by the fact that the smaller residues observed at +later sampling times get more weight when using the two-component error +model which will counteract the tendency of the algorithm to try +parameter combinations unsuitable for fitting these data.

+
+library(nlme)
+f_parent_nlme_sfo_const <- nlme(f_parent_mkin_const["SFO", ])
+# f_parent_nlme_dfop_const <- nlme(f_parent_mkin_const["DFOP", ])
+f_parent_nlme_sfo_tc <- nlme(f_parent_mkin_tc["SFO", ])
+f_parent_nlme_dfop_tc <- nlme(f_parent_mkin_tc["DFOP", ])
+

Note that a certain degree of overparameterisation is also indicated +by a warning obtained when fitting DFOP with the two-component error +model (‘false convergence’ in the ‘LME step’ in iteration 3). However, +as this warning does not occur in later iterations, and specifically not +in the last of the 5 iterations, we can ignore this warning.

+

The model comparison function of the nlme package can directly be +applied to these fits showing a much lower AIC for the DFOP model fitted +with the two-component error model. Also, the likelihood ratio test +indicates that this difference is significant as the p-value is below +0.0001.

+
+anova(
+  f_parent_nlme_sfo_const, f_parent_nlme_sfo_tc, f_parent_nlme_dfop_tc
+)
+
                        Model df    AIC    BIC  logLik   Test L.Ratio p-value
+f_parent_nlme_sfo_const     1  5 796.60 811.82 -393.30                       
+f_parent_nlme_sfo_tc        2  6 798.60 816.86 -393.30 1 vs 2    0.00   0.998
+f_parent_nlme_dfop_tc       3 10 671.91 702.34 -325.95 2 vs 3  134.69  <.0001
+

In addition to these fits, attempts were also made to include +correlations between random effects by using the log Cholesky +parameterisation of the matrix specifying them. The code used for these +attempts can be made visible below.

+
+f_parent_nlme_sfo_const_logchol <- nlme(f_parent_mkin_const["SFO", ],
+  random = nlme::pdLogChol(list(DMTA_0 ~ 1, log_k_DMTA ~ 1)))
+anova(f_parent_nlme_sfo_const, f_parent_nlme_sfo_const_logchol)
+f_parent_nlme_sfo_tc_logchol <- nlme(f_parent_mkin_tc["SFO", ],
+  random = nlme::pdLogChol(list(DMTA_0 ~ 1, log_k_DMTA ~ 1)))
+anova(f_parent_nlme_sfo_tc, f_parent_nlme_sfo_tc_logchol)
+f_parent_nlme_dfop_tc_logchol <- nlme(f_parent_mkin_const["DFOP", ],
+  random = nlme::pdLogChol(list(DMTA_0 ~ 1, log_k1 ~ 1, log_k2 ~ 1, g_qlogis ~ 1)))
+anova(f_parent_nlme_dfop_tc, f_parent_nlme_dfop_tc_logchol)
+

While the SFO variants converge fast, the additional parameters +introduced by this lead to convergence warnings for the DFOP model. The +model comparison clearly show that adding correlations between random +effects does not improve the fits.

+

The selected model (DFOP with two-component error) fitted to the data +assuming no correlations between random effects is shown below.

+
+plot(f_parent_nlme_dfop_tc)
+

+
+
+

saemix +

+

The saemix package provided the first Open Source implementation of +the Stochastic Approximation to the Expectation Maximisation (SAEM) +algorithm. SAEM fits of degradation models can be conveniently performed +using an interface to the saemix package available in current +development versions of the mkin package.

+

The corresponding SAEM fits of the four combinations of degradation +and error models are fitted below. As there is no convergence criterion +implemented in the saemix package, the convergence plots need to be +manually checked for every fit. We define control settings that work +well for all the parent data fits shown in this vignette.

+
+library(saemix)
+saemix_control <- saemixControl(nbiter.saemix = c(800, 300), nb.chains = 15,
+    print = FALSE, save = FALSE, save.graphs = FALSE, displayProgress = FALSE)
+saemix_control_moreiter <- saemixControl(nbiter.saemix = c(1600, 300), nb.chains = 15,
+    print = FALSE, save = FALSE, save.graphs = FALSE, displayProgress = FALSE)
+saemix_control_10k <- saemixControl(nbiter.saemix = c(10000, 300), nb.chains = 15,
+    print = FALSE, save = FALSE, save.graphs = FALSE, displayProgress = FALSE)
+

The convergence plot for the SFO model using constant variance is +shown below.

+
+f_parent_saemix_sfo_const <- mkin::saem(f_parent_mkin_const["SFO", ], quiet = TRUE,
+  control = saemix_control, transformations = "saemix")
+plot(f_parent_saemix_sfo_const$so, plot.type = "convergence")
+

+

Obviously the selected number of iterations is sufficient to reach +convergence. This can also be said for the SFO fit using the +two-component error model.

+
+f_parent_saemix_sfo_tc <- mkin::saem(f_parent_mkin_tc["SFO", ], quiet = TRUE,
+  control = saemix_control, transformations = "saemix")
+plot(f_parent_saemix_sfo_tc$so, plot.type = "convergence")
+

+

When fitting the DFOP model with constant variance (see below), +parameter convergence is not as unambiguous.

+
+f_parent_saemix_dfop_const <- mkin::saem(f_parent_mkin_const["DFOP", ], quiet = TRUE,
+  control = saemix_control, transformations = "saemix")
+plot(f_parent_saemix_dfop_const$so, plot.type = "convergence")
+

+
+print(f_parent_saemix_dfop_const)
+
Kinetic nonlinear mixed-effects model fit by SAEM
+Structural model:
+d_DMTA/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+           time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+           * DMTA
+
+Data:
+155 observations of 1 variable(s) grouped in 6 datasets
+
+Likelihood computed by importance sampling
+  AIC BIC logLik
+  706 704   -344
+
+Fitted parameters:
+          estimate    lower   upper
+DMTA_0    97.99583 96.50079 99.4909
+k1         0.06377  0.03432  0.0932
+k2         0.00848  0.00444  0.0125
+g          0.95701  0.91313  1.0009
+a.1        1.82141  1.60516  2.0377
+SD.DMTA_0  1.64787  0.45729  2.8384
+SD.k1      0.57439  0.24731  0.9015
+SD.k2      0.03296 -2.50524  2.5712
+SD.g       1.10266  0.32354  1.8818
+

While the other parameters converge to credible values, the variance +of k2 (omega2.k2) converges to a very small value. The +printout of the saem.mmkin model shows that the estimated +standard deviation of k2 across the population of soils +(SD.k2) is ill-defined, indicating overparameterisation of +this model.

+

When the DFOP model is fitted with the two-component error model, we +also observe that the estimated variance of k2 becomes very small, while +being ill-defined, as illustrated by the excessive confidence interval +of SD.k2.

+
+f_parent_saemix_dfop_tc <- mkin::saem(f_parent_mkin_tc["DFOP", ], quiet = TRUE,
+  control = saemix_control, transformations = "saemix")
+f_parent_saemix_dfop_tc_moreiter <- mkin::saem(f_parent_mkin_tc["DFOP", ], quiet = TRUE,
+  control = saemix_control_moreiter, transformations = "saemix")
+plot(f_parent_saemix_dfop_tc$so, plot.type = "convergence")
+

+
+print(f_parent_saemix_dfop_tc)
+
Kinetic nonlinear mixed-effects model fit by SAEM
+Structural model:
+d_DMTA/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *
+           time)) / (g * exp(-k1 * time) + (1 - g) * exp(-k2 * time)))
+           * DMTA
+
+Data:
+155 observations of 1 variable(s) grouped in 6 datasets
+
+Likelihood computed by importance sampling
+  AIC BIC logLik
+  666 664   -323
+
+Fitted parameters:
+          estimate     lower    upper
+DMTA_0    98.24165  96.29190 100.1914
+k1         0.06421   0.03352   0.0949
+k2         0.00866   0.00617   0.0111
+g          0.95340   0.91218   0.9946
+a.1        1.06463   0.87979   1.2495
+b.1        0.02964   0.02266   0.0366
+SD.DMTA_0  2.03611   0.40361   3.6686
+SD.k1      0.59534   0.25692   0.9338
+SD.k2      0.00042 -73.00540  73.0062
+SD.g       1.04234   0.37189   1.7128
+

Doubling the number of iterations in the first phase of the algorithm +leads to a slightly lower likelihood, and therefore to slightly higher +AIC and BIC values. With even more iterations, the algorithm stops with +an error message. This is related to the variance of k2 approximating +zero and has been submitted as a bug +to the saemix package, as the algorithm does not converge in this +case.

+

An alternative way to fit DFOP in combination with the two-component +error model is to use the model formulation with transformed parameters +as used per default in mkin. When using this option, convergence is +slower, but eventually the algorithm stops as well with the same error +message.

+

The four combinations (SFO/const, SFO/tc, DFOP/const and DFOP/tc) and +the version with increased iterations can be compared using the model +comparison function of the saemix package:

+
+AIC_parent_saemix <- saemix::compare.saemix(
+  f_parent_saemix_sfo_const$so,
+  f_parent_saemix_sfo_tc$so,
+  f_parent_saemix_dfop_const$so,
+  f_parent_saemix_dfop_tc$so,
+  f_parent_saemix_dfop_tc_moreiter$so)
+
Likelihoods calculated by importance sampling
+
+rownames(AIC_parent_saemix) <- c(
+  "SFO const", "SFO tc", "DFOP const", "DFOP tc", "DFOP tc more iterations")
+print(AIC_parent_saemix)
+
                           AIC    BIC
+SFO const               796.38 795.34
+SFO tc                  798.38 797.13
+DFOP const              705.75 703.88
+DFOP tc                 665.67 663.59
+DFOP tc more iterations 665.85 663.76
+

In order to check the influence of the likelihood calculation +algorithms implemented in saemix, the likelihood from Gaussian +quadrature is added to the best fit, and the AIC values obtained from +the three methods are compared.

+
+f_parent_saemix_dfop_tc$so <-
+  saemix::llgq.saemix(f_parent_saemix_dfop_tc$so)
+AIC_parent_saemix_methods <- c(
+  is = AIC(f_parent_saemix_dfop_tc$so, method = "is"),
+  gq = AIC(f_parent_saemix_dfop_tc$so, method = "gq"),
+  lin = AIC(f_parent_saemix_dfop_tc$so, method = "lin")
+)
+print(AIC_parent_saemix_methods)
+
    is     gq    lin 
+665.67 665.74 665.13 
+

The AIC values based on importance sampling and Gaussian quadrature +are very similar. Using linearisation is known to be less accurate, but +still gives a similar value.

+

In order to illustrate that the comparison of the three method +depends on the degree of convergence obtained in the fit, the same +comparison is shown below for the fit using the defaults for the number +of iterations and the number of MCMC chains.

+

When using OpenBlas for linear algebra, there is a large difference +in the values obtained with Gaussian quadrature, so the larger number of +iterations makes a lot of difference. When using the LAPACK version +coming with Debian Bullseye, the AIC based on Gaussian quadrature is +almost the same as the one obtained with the other methods, also when +using defaults for the fit.

+
+f_parent_saemix_dfop_tc_defaults <- mkin::saem(f_parent_mkin_tc["DFOP", ])
+f_parent_saemix_dfop_tc_defaults$so <-
+  saemix::llgq.saemix(f_parent_saemix_dfop_tc_defaults$so)
+AIC_parent_saemix_methods_defaults <- c(
+  is = AIC(f_parent_saemix_dfop_tc_defaults$so, method = "is"),
+  gq = AIC(f_parent_saemix_dfop_tc_defaults$so, method = "gq"),
+  lin = AIC(f_parent_saemix_dfop_tc_defaults$so, method = "lin")
+)
+print(AIC_parent_saemix_methods_defaults)
+
    is     gq    lin 
+670.09 669.37 671.29 
+
+
+
+

Comparison +

+

The following table gives the AIC values obtained with both backend +packages using the same control parameters (800 iterations burn-in, 300 +iterations second phase, 15 chains).

+
+AIC_all <- data.frame(
+  check.names = FALSE,
+  "Degradation model" = c("SFO", "SFO", "DFOP", "DFOP"),
+  "Error model" = c("const", "tc", "const", "tc"),
+  nlme = c(AIC(f_parent_nlme_sfo_const), AIC(f_parent_nlme_sfo_tc), NA, AIC(f_parent_nlme_dfop_tc)),
+  saemix_lin = sapply(list(f_parent_saemix_sfo_const$so, f_parent_saemix_sfo_tc$so,
+    f_parent_saemix_dfop_const$so, f_parent_saemix_dfop_tc$so), AIC, method = "lin"),
+  saemix_is = sapply(list(f_parent_saemix_sfo_const$so, f_parent_saemix_sfo_tc$so,
+    f_parent_saemix_dfop_const$so, f_parent_saemix_dfop_tc$so), AIC, method = "is")
+)
+kable(AIC_all)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Degradation modelError modelnlmesaemix_linsaemix_is
SFOconst796.60796.60796.38
SFOtc798.60798.60798.38
DFOPconstNA704.95705.75
DFOPtc671.91665.13665.67
+
+
+
+

Conclusion +

+

A more detailed analysis of the dimethenamid dataset confirmed that +the DFOP model provides the most appropriate description of the decline +of the parent compound in these data. On the other hand, closer +inspection of the results revealed that the variability of the k2 +parameter across the population of soils is ill-defined. This coincides +with the observation that this parameter cannot robustly be quantified +for some of the soils.

+

Regarding the regulatory use of these data, it is claimed that an +improved characterisation of the mean parameter values across the +population is obtained using the nonlinear mixed-effects models +presented here. However, attempts to quantify the variability of the +slower rate constant of the biphasic decline of dimethenamid indicate +that the data are not sufficient to characterise this variability to a +satisfactory precision.

+
+
+

Session Info +

+ +
R version 4.4.2 (2024-10-31)
+Platform: x86_64-pc-linux-gnu
+Running under: Debian GNU/Linux 12 (bookworm)
+
+Matrix products: default
+BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.11.0 
+LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.11.0
+
+locale:
+ [1] LC_CTYPE=de_DE.UTF-8       LC_NUMERIC=C              
+ [3] LC_TIME=C                  LC_COLLATE=de_DE.UTF-8    
+ [5] LC_MONETARY=de_DE.UTF-8    LC_MESSAGES=de_DE.UTF-8   
+ [7] LC_PAPER=de_DE.UTF-8       LC_NAME=C                 
+ [9] LC_ADDRESS=C               LC_TELEPHONE=C            
+[11] LC_MEASUREMENT=de_DE.UTF-8 LC_IDENTIFICATION=C       
+
+time zone: Europe/Berlin
+tzcode source: system (glibc)
+
+attached base packages:
+[1] stats     graphics  grDevices utils     datasets  methods   base     
+
+other attached packages:
+[1] saemix_3.3   npde_3.5     nlme_3.1-166 mkin_1.2.10  knitr_1.49  
+
+loaded via a namespace (and not attached):
+ [1] gtable_0.3.6      jsonlite_1.8.9    dplyr_1.1.4       compiler_4.4.2   
+ [5] tidyselect_1.2.1  parallel_4.4.2    gridExtra_2.3     jquerylib_0.1.4  
+ [9] systemfonts_1.1.0 scales_1.3.0      textshaping_0.4.1 yaml_2.3.10      
+[13] fastmap_1.2.0     lattice_0.22-6    ggplot2_3.5.1     R6_2.5.1         
+[17] generics_0.1.3    lmtest_0.9-40     MASS_7.3-61       htmlwidgets_1.6.4
+[21] tibble_3.2.1      desc_1.4.3        munsell_0.5.1     bslib_0.8.0      
+[25] pillar_1.9.0      rlang_1.1.4       utf8_1.2.4        cachem_1.1.0     
+[29] xfun_0.49         fs_1.6.5          sass_0.4.9        cli_3.6.3        
+[33] pkgdown_2.1.1     magrittr_2.0.3    digest_0.6.37     grid_4.4.2       
+[37] mclust_6.1.1      lifecycle_1.0.4   vctrs_0.6.5       evaluate_1.0.1   
+[41] glue_1.8.0        codetools_0.2-20  ragg_1.3.3        zoo_1.8-12       
+[45] fansi_1.0.6       colorspace_2.1-1  rmarkdown_2.29    pkgconfig_2.0.3  
+[49] tools_4.4.2       htmltools_0.5.8.1
+
+
+

References +

+ +
+
+EFSA. 2018. “Peer Review of the Pesticide Risk Assessment of the +Active Substance Dimethenamid-p.” EFSA Journal 16: 5211. +
+
+Ranke, Johannes, Janina Wöltjen, Jana Schmidt, and Emmanuelle Comets. +2021. “Taking Kinetic Evaluations of Degradation Data to the Next +Level with Nonlinear Mixed-Effects Models.” Environments +8 (8). https://doi.org/10.3390/environments8080071. +
+
+Rapporteur Member State Germany, Co-Rapporteur Member State Bulgaria. +2018. Renewal Assessment Report +Dimethenamid-P Volume 3 - B.8 Environmental fate and behaviour, Rev. 2 - +November 2017.” https://open.efsa.europa.eu/study-inventory/EFSA-Q-2014-00716. +
+
+
+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_const-1.png b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_const-1.png new file mode 100644 index 00000000..627e5c95 Binary files /dev/null and b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_const-1.png differ diff --git a/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_const_test-1.png b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_const_test-1.png new file mode 100644 index 00000000..627e5c95 Binary files /dev/null and b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_const_test-1.png differ diff --git a/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_tc_test-1.png b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_tc_test-1.png new file mode 100644 index 00000000..9f40fc35 Binary files /dev/null and b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_dfop_tc_test-1.png differ diff --git a/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_sfo_const-1.png b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_sfo_const-1.png new file mode 100644 index 00000000..0ed7448d Binary files /dev/null and b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_mkin_sfo_const-1.png differ diff --git a/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_dfop_const-1.png b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_dfop_const-1.png new file mode 100644 index 00000000..84a6fc92 Binary files /dev/null and b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_dfop_const-1.png differ diff --git a/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_dfop_tc-1.png b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_dfop_tc-1.png new file mode 100644 index 00000000..fa5d34f0 Binary files /dev/null and b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_dfop_tc-1.png differ diff --git a/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_sfo_const-1.png b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_sfo_const-1.png new file mode 100644 index 00000000..7862fc65 Binary files /dev/null and b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_sfo_const-1.png differ diff --git a/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_sfo_tc-1.png b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_sfo_tc-1.png new file mode 100644 index 00000000..d941f3e6 Binary files /dev/null and b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/f_parent_saemix_sfo_tc-1.png differ diff --git a/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/plot_parent_nlme-1.png b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/plot_parent_nlme-1.png new file mode 100644 index 00000000..6bcf3434 Binary files /dev/null and b/docs/dev/articles/web_only/dimethenamid_2018_files/figure-html/plot_parent_nlme-1.png differ diff --git a/docs/dev/articles/web_only/multistart.html b/docs/dev/articles/web_only/multistart.html new file mode 100644 index 00000000..83073979 --- /dev/null +++ b/docs/dev/articles/web_only/multistart.html @@ -0,0 +1,179 @@ + + + + + + + +Short demo of the multistart method • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +

The dimethenamid data from 2018 from seven soils is used as example +data in this vignette.

+
+library(mkin)
+dmta_ds <- lapply(1:7, function(i) {
+  ds_i <- dimethenamid_2018$ds[[i]]$data
+  ds_i[ds_i$name == "DMTAP", "name"] <-  "DMTA"
+  ds_i$time <- ds_i$time * dimethenamid_2018$f_time_norm[i]
+  ds_i
+})
+names(dmta_ds) <- sapply(dimethenamid_2018$ds, function(ds) ds$title)
+dmta_ds[["Elliot"]] <- rbind(dmta_ds[["Elliot 1"]], dmta_ds[["Elliot 2"]])
+dmta_ds[["Elliot 1"]] <- dmta_ds[["Elliot 2"]] <- NULL
+

First, we check the DFOP model with the two-component error model and +random effects for all degradation parameters.

+
+f_mmkin <- mmkin("DFOP", dmta_ds, error_model = "tc", cores = 7, quiet = TRUE)
+f_saem_full <- saem(f_mmkin)
+illparms(f_saem_full)
+
## [1] "sd(log_k2)"
+

We see that not all variability parameters are identifiable. The +illparms function tells us that the confidence interval for +the standard deviation of ‘log_k2’ includes zero. We check this +assessment using multiple runs with different starting values.

+
+f_saem_full_multi <- multistart(f_saem_full, n = 16, cores = 16)
+parplot(f_saem_full_multi, lpos = "topleft")
+

+

This confirms that the variance of k2 is the most problematic +parameter, so we reduce the parameter distribution model by removing the +intersoil variability for k2.

+
+f_saem_reduced <- stats::update(f_saem_full, no_random_effect = "log_k2")
+illparms(f_saem_reduced)
+f_saem_reduced_multi <- multistart(f_saem_reduced, n = 16, cores = 16)
+parplot(f_saem_reduced_multi, lpos = "topright", ylim = c(0.5, 2))
+

+

The results confirm that all remaining parameters can be determined +with sufficient certainty.

+

We can also analyse the log-likelihoods obtained in the multiple +runs:

+
+llhist(f_saem_reduced_multi)
+

+

We can use the anova method to compare the models.

+
+anova(f_saem_full, best(f_saem_full_multi),
+  f_saem_reduced, best(f_saem_reduced_multi), test = TRUE)
+
## Data: 155 observations of 1 variable(s) grouped in 6 datasets
+## 
+##                            npar    AIC    BIC     Lik  Chisq Df Pr(>Chisq)
+## f_saem_reduced                9 663.67 661.80 -322.84                     
+## best(f_saem_reduced_multi)    9 663.65 661.78 -322.82 0.0219  0           
+## f_saem_full                  10 670.09 668.01 -325.05 0.0000  1          1
+## best(f_saem_full_multi)      10 665.61 663.52 -322.80 4.4870  0
+

The reduced model results in lower AIC and BIC values, so it is +clearly preferable. Using multiple starting values gives a large +improvement in case of the full model, because it is less well-defined, +which impedes convergence. For the reduced model, using multiple +starting values only results in a small improvement of the model +fit.

+
+
+ + + +
+ + + +
+
+ + + + + + + diff --git a/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-3-1.png b/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-3-1.png new file mode 100644 index 00000000..19b68cfe Binary files /dev/null and b/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-3-1.png differ diff --git a/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-4-1.png b/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-4-1.png new file mode 100644 index 00000000..034b170c Binary files /dev/null and b/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-4-1.png differ diff --git a/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-5-1.png b/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-5-1.png new file mode 100644 index 00000000..c8e918cd Binary files /dev/null and b/docs/dev/articles/web_only/multistart_files/figure-html/unnamed-chunk-5-1.png differ diff --git a/docs/dev/articles/web_only/saem_benchmarks.html b/docs/dev/articles/web_only/saem_benchmarks.html new file mode 100644 index 00000000..d4cd0d6f --- /dev/null +++ b/docs/dev/articles/web_only/saem_benchmarks.html @@ -0,0 +1,789 @@ + + + + + + + +Benchmark timings for saem.mmkin • mkin + + + + + + + + + Skip to contents + + +
+ + + + +
+
+ + + +

Each system is characterized by operating system type, CPU type, mkin +version, saemix version and R version. A compiler was available, so if +no analytical solution was available, compiled ODE models are used.

+

Every fit is only performed once, so the accuracy of the benchmarks +is limited.

+

For the initial mmkin fits, we use all available cores.

+
+n_cores <- parallel::detectCores()
+
+

Test data +

+

Please refer to the vignette dimethenamid_2018 for an +explanation of the following preprocessing.

+
+dmta_ds <- lapply(1:7, function(i) {
+  ds_i <- dimethenamid_2018$ds[[i]]$data
+  ds_i[ds_i$name == "DMTAP", "name"] <-  "DMTA"
+  ds_i$time <- ds_i$time * dimethenamid_2018$f_time_norm[i]
+  ds_i
+})
+names(dmta_ds) <- sapply(dimethenamid_2018$ds, function(ds) ds$title)
+dmta_ds[["Elliot"]] <- rbind(dmta_ds[["Elliot 1"]], dmta_ds[["Elliot 2"]])
+dmta_ds[["Elliot 1"]] <- NULL
+dmta_ds[["Elliot 2"]] <- NULL
+
+
+

Test cases +

+
+

Parent only +

+
+parent_mods <- c("SFO", "DFOP", "SFORB", "HS")
+parent_sep_const <- mmkin(parent_mods, dmta_ds, quiet = TRUE, cores = n_cores)
+parent_sep_tc <- update(parent_sep_const, error_model = "tc")
+
+t1 <- system.time(sfo_const <- saem(parent_sep_const["SFO", ]))[["elapsed"]]
+t2 <- system.time(dfop_const <- saem(parent_sep_const["DFOP", ]))[["elapsed"]]
+t3 <- system.time(sforb_const <- saem(parent_sep_const["SFORB", ]))[["elapsed"]]
+t4 <- system.time(hs_const <- saem(parent_sep_const["HS", ]))[["elapsed"]]
+t5 <- system.time(sfo_tc <- saem(parent_sep_tc["SFO", ]))[["elapsed"]]
+t6 <- system.time(dfop_tc <- saem(parent_sep_tc["DFOP", ]))[["elapsed"]]
+t7 <- system.time(sforb_tc <- saem(parent_sep_tc["SFORB", ]))[["elapsed"]]
+t8 <- system.time(hs_tc <- saem(parent_sep_tc["HS", ]))[["elapsed"]]
+
+anova(
+  sfo_const, dfop_const, sforb_const, hs_const,
+  sfo_tc, dfop_tc, sforb_tc, hs_tc) |> kable(, digits = 1)
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
sfo_const5796.3795.3-393.2
sfo_tc6798.3797.1-393.2
dfop_const9709.4707.5-345.7
sforb_const9710.0708.1-346.0
hs_const9713.7711.8-347.8
dfop_tc10670.1668.0-325.0
sforb_tc10662.9660.8-321.4
hs_tc10667.2665.1-323.6
+

The above model comparison suggests to use the SFORB model with +two-component error. For comparison, we keep the DFOP model with +two-component error, as it competes with SFORB for biphasic curves.

+
+illparms(dfop_tc)
+
## [1] "sd(log_k2)"
+
+illparms(sforb_tc)
+
## [1] "sd(log_k_DMTA_bound_free)"
+

For these two models, random effects for the transformed parameters +k2 and k_DMTA_bound_free could not be +quantified.

+
+
+

One metabolite +

+

We remove parameters that were found to be ill-defined in the parent +only fits.

+
+one_met_mods <- list(
+  DFOP_SFO = mkinmod(
+    DMTA = mkinsub("DFOP", "M23"),
+    M23 = mkinsub("SFO")),
+  SFORB_SFO = mkinmod(
+    DMTA = mkinsub("SFORB", "M23"),
+    M23 = mkinsub("SFO")))
+
+one_met_sep_const <- mmkin(one_met_mods, dmta_ds, error_model = "const",
+  cores = n_cores, quiet = TRUE)
+one_met_sep_tc <- mmkin(one_met_mods, dmta_ds, error_model = "tc",
+  cores = n_cores, quiet = TRUE)
+
+t9 <- system.time(dfop_sfo_tc <- saem(one_met_sep_tc["DFOP_SFO", ],
+    no_random_effect = "log_k2"))[["elapsed"]]
+t10 <- system.time(sforb_sfo_tc <- saem(one_met_sep_tc["SFORB_SFO", ],
+    no_random_effect = "log_k_DMTA_bound_free"))[["elapsed"]]
+
+
+

Three metabolites +

+

For the case of three metabolites, we only keep the SFORB model in +order to limit the time for compiling this vignette, and as fitting in +parallel may disturb the benchmark. Again, we do not include random +effects that were ill-defined in previous fits of subsets of the +degradation model.

+
+illparms(sforb_sfo_tc)
+
+three_met_mods <- list(
+  SFORB_SFO3_plus = mkinmod(
+    DMTA = mkinsub("SFORB", c("M23", "M27", "M31")),
+    M23 = mkinsub("SFO"),
+    M27 = mkinsub("SFO"),
+    M31 = mkinsub("SFO", "M27", sink = FALSE)))
+
+three_met_sep_tc <- mmkin(three_met_mods, dmta_ds, error_model = "tc",
+  cores = n_cores, quiet = TRUE)
+
+t11 <- system.time(sforb_sfo3_plus_const <- saem(three_met_sep_tc["SFORB_SFO3_plus", ],
+    no_random_effect = "log_k_DMTA_bound_free"))[["elapsed"]]
+
+
+
+

Results +

+

Benchmarks for all available error models are shown. They are +intended for improving mkin, not for comparing CPUs or operating +systems. All trademarks belong to their respective owners.

+
+

Parent only +

+

Constant variance for SFO, DFOP, SFORB and HS.

+ ++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CPUOSmkinsaemixt1t2t3t4
Ryzen 7 1700Linux1.2.03.22.1404.6264.3284.998
Ryzen 7 1700Linux1.2.23.22.4274.5504.2174.851
Ryzen 9 7950XLinux1.2.13.21.3522.8132.4012.074
Ryzen 9 7950XLinux1.2.23.21.3282.7382.3362.023
Ryzen 9 7950XLinux1.2.33.21.1182.0362.0102.088
Ryzen 9 7950XLinux1.2.33.21.4192.3741.9262.398
Ryzen 9 7950XLinux1.2.43.20.9722.5501.9872.055
Intel(R) Xeon(R) Gold 6134 CPU @ 3.20GHzLinux1.2.63.22.9986.5236.1264.721
Ryzen 9 7950XLinux1.2.63.21.1352.0252.4062.478
Ryzen 9 7950XLinux1.2.93.31.0861.9911.9492.411
Ryzen 9 7950XLinux1.2.103.31.1152.2771.9452.134
+

Two-component error fits for SFO, DFOP, SFORB and HS.

+ ++++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CPUOSmkinsaemixt5t6t7t8
Ryzen 7 1700Linux1.2.03.25.6787.4418.0007.980
Ryzen 7 1700Linux1.2.23.25.3527.2018.1748.401
Ryzen 9 7950XLinux1.2.13.22.3883.0333.5323.310
Ryzen 9 7950XLinux1.2.23.22.3412.9683.4653.341
Ryzen 9 7950XLinux1.2.33.22.1593.5843.3073.460
Ryzen 9 7950XLinux1.2.33.22.3483.1343.2533.530
Ryzen 9 7950XLinux1.2.43.22.1273.5873.4333.595
Intel(R) Xeon(R) Gold 6134 CPU @ 3.20GHzLinux1.2.63.25.0708.4648.5257.599
Ryzen 9 7950XLinux1.2.63.22.1613.3253.6693.153
Ryzen 9 7950XLinux1.2.93.32.4263.1963.2563.322
Ryzen 9 7950XLinux1.2.103.32.3723.1373.1003.281
+
+
+

One metabolite +

+

Two-component error for DFOP-SFO and SFORB-SFO.

+ ++++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CPUOSmkinsaemixt9t10
Ryzen 7 1700Linux1.2.03.224.465800.266
Ryzen 7 1700Linux1.2.23.225.193798.580
Ryzen 9 7950XLinux1.2.13.211.247285.216
Ryzen 9 7950XLinux1.2.23.211.242284.258
Ryzen 9 7950XLinux1.2.33.211.796216.012
Ryzen 9 7950XLinux1.2.33.212.841292.688
Ryzen 9 7950XLinux1.2.43.212.160265.934
Intel(R) Xeon(R) Gold 6134 CPU @ 3.20GHzLinux1.2.63.230.168748.675
Ryzen 9 7950XLinux1.2.63.212.007286.757
Ryzen 9 7950XLinux1.2.93.312.420289.338
Ryzen 9 7950XLinux1.2.103.311.590279.782
+
+
+

Three metabolites +

+

Two-component error for SFORB-SFO3-plus

+ +++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
CPUOSmkinsaemixt11
Ryzen 7 1700Linux1.2.03.21289.198
Ryzen 7 1700Linux1.2.23.21312.445
Ryzen 9 7950XLinux1.2.13.2489.939
Ryzen 9 7950XLinux1.2.23.2482.970
Ryzen 9 7950XLinux1.2.33.2392.364
Ryzen 9 7950XLinux1.2.33.2483.027
Ryzen 9 7950XLinux1.2.43.2456.252
Intel(R) Xeon(R) Gold 6134 CPU @ 3.20GHzLinux1.2.63.21235.028
Ryzen 9 7950XLinux1.2.63.2480.577
Ryzen 9 7950XLinux1.2.93.3485.836
Ryzen 9 7950XLinux1.2.103.3469.036
+
+
+
+
+ + + + +
+ + + + + + + -- cgit v1.2.1