From 9ae42bd20bc2543a94cf1581ba9820c2f9e3afbd Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Thu, 20 Apr 2023 19:53:28 +0200 Subject: Fix and rebuild documentation, see NEWS I had to fix the two pathway vignettes, as they did not work with the released version any more. So they and the multistart vignette which got some small fixes as well were rebuilt. Complete rebuild of the online docs with the released version. The documentation of the 'hierarchial_kinetics' format had to be fixed as well. --- docs/articles/prebuilt/2022_dmta_pathway.html | 2053 +++++++++++++++++++++++++ 1 file changed, 2053 insertions(+) create mode 100644 docs/articles/prebuilt/2022_dmta_pathway.html (limited to 'docs/articles/prebuilt/2022_dmta_pathway.html') diff --git a/docs/articles/prebuilt/2022_dmta_pathway.html b/docs/articles/prebuilt/2022_dmta_pathway.html new file mode 100644 index 00000000..c8323add --- /dev/null +++ b/docs/articles/prebuilt/2022_dmta_pathway.html @@ -0,0 +1,2053 @@ + + + + + + + +Testing hierarchical pathway kinetics with residue data on dimethenamid and dimethenamid-P • mkin + + + + + + + + + + + + +
+
+ + + + +
+
+ + + + +
+

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.3, 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_1OKOKCOKOKOK
sforb_path_1OKOKCOKOKOK
hs_path_1CCCCCC
+

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_1OKOKCOKOKC
dfop_path_1OKCOKOKOKOK
sforb_path_1OKCOKOKOKOK
hs_path_1CCCCCOK
+

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)
+
Warning in FUN(X[[i]], ...): Could not obtain log likelihood with 'is' method
+for sforb_path_1 const
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
nparAICBICLik
sfo_path_1 const172291.82288.3-1128.9
sfo_path_1 tc182276.32272.5-1120.1
fomc_path_1 const192099.02095.0-1030.5
fomc_path_1 tc201939.61935.5-949.8
dfop_path_1 const212038.82034.4-998.4
hs_path_1 const212024.22019.8-991.1
dfop_path_1 tc221879.81875.2-917.9
sforb_path_1 tc221832.91828.3-894.4
hs_path_1 tc221831.41826.8-893.7
+

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)
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.31825.9-894.2
saem_1[[“sforb_path_1”, “tc”]]221832.91828.3-894.4
+

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)
+
+print(saem_sforb_path_1_tc_reduced_multi)
+
<multistart> object with 32 fits:
+ E OK 
+15 17 
+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.2.3 (2023-03-15)
+Platform: x86_64-pc-linux-gnu (64-bit)
+Running under: Debian GNU/Linux 12 (bookworm)
+
+Matrix products: default
+BLAS:   /usr/lib/x86_64-linux-gnu/openblas-serial/libblas.so.3
+LAPACK: /usr/lib/x86_64-linux-gnu/openblas-serial/libopenblas-r0.3.21.so
+
+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       
+
+attached base packages:
+[1] parallel  stats     graphics  grDevices utils     datasets  methods  
+[8] base     
+
+other attached packages:
+[1] saemix_3.2 npde_3.3   knitr_1.42 mkin_1.2.3
+
+loaded via a namespace (and not attached):
+ [1] deSolve_1.35      zoo_1.8-12        tidyselect_1.2.0  xfun_0.38        
+ [5] bslib_0.4.2       purrr_1.0.1       lattice_0.21-8    colorspace_2.1-0 
+ [9] vctrs_0.6.1       generics_0.1.3    htmltools_0.5.5   yaml_2.3.7       
+[13] utf8_1.2.3        rlang_1.1.0       pkgbuild_1.4.0    pkgdown_2.0.7    
+[17] jquerylib_0.1.4   pillar_1.9.0      glue_1.6.2        DBI_1.1.3        
+[21] lifecycle_1.0.3   stringr_1.5.0     munsell_0.5.0     gtable_0.3.3     
+[25] ragg_1.2.5        codetools_0.2-19  memoise_2.0.1     evaluate_0.20    
+[29] inline_0.3.19     callr_3.7.3       fastmap_1.1.1     ps_1.7.4         
+[33] lmtest_0.9-40     fansi_1.0.4       highr_0.10        scales_1.2.1     
+[37] cachem_1.0.7      desc_1.4.2        jsonlite_1.8.4    systemfonts_1.0.4
+[41] fs_1.6.1          textshaping_0.3.6 gridExtra_2.3     ggplot2_3.4.2    
+[45] digest_0.6.31     stringi_1.7.12    processx_3.8.0    dplyr_1.1.1      
+[49] grid_4.2.3        rprojroot_2.0.3   cli_3.6.1         tools_4.2.3      
+[53] magrittr_2.0.3    sass_0.4.5        tibble_3.2.1      crayon_1.5.2     
+[57] pkgconfig_2.0.3   prettyunits_1.1.1 rmarkdown_2.21    R6_2.5.1         
+[61] mclust_6.0.0      nlme_3.1-162      compiler_4.2.3   
+
+
+

Hardware info +

+
CPU model: AMD Ryzen 9 7950X 16-Core Processor
+
MemTotal:       64936316 kB
+
+
+
+ + + +
+ + + + +
+ + + + + + + + -- cgit v1.2.1