diff options
-rw-r--r-- | R/summary.nlme.mmkin.R | 2 | ||||
-rw-r--r-- | R/summary.nlmixr.mmkin.R | 2 | ||||
-rw-r--r-- | R/summary.saem.mmkin.R | 2 | ||||
-rw-r--r-- | test.log | 20 | ||||
-rw-r--r-- | tests/testthat/summary_nlme_biphasic_s.txt | 12 | ||||
-rw-r--r-- | tests/testthat/summary_saem_biphasic_s.txt | 12 | ||||
-rw-r--r-- | tests/testthat/test_dmta.R | 49 |
7 files changed, 73 insertions, 26 deletions
diff --git a/R/summary.nlme.mmkin.R b/R/summary.nlme.mmkin.R index b42d5d7b..be7f0441 100644 --- a/R/summary.nlme.mmkin.R +++ b/R/summary.nlme.mmkin.R @@ -200,7 +200,7 @@ print.summary.nlme.mmkin <- function(x, digits = max(3, getOption("digits") - 3) if (nrow(x$confint_trans) > 1) { corr <- x$corFixed class(corr) <- "correlation" - print(corr, title = "\nCorrelation:", ...) + print(corr, title = "\nCorrelation:", rdig = digits, ...) } cat("\n") # Random effects diff --git a/R/summary.nlmixr.mmkin.R b/R/summary.nlmixr.mmkin.R index a023f319..94d4ed93 100644 --- a/R/summary.nlmixr.mmkin.R +++ b/R/summary.nlmixr.mmkin.R @@ -211,7 +211,7 @@ print.summary.nlmixr.mmkin <- function(x, digits = max(3, getOption("digits") - if (nrow(x$confint_trans) > 1) { corr <- x$corFixed class(corr) <- "correlation" - print(corr, title = "\nCorrelation:", ...) + print(corr, title = "\nCorrelation:", rdig = digits, ...) } cat("\nRandom effects (omega):\n") diff --git a/R/summary.saem.mmkin.R b/R/summary.saem.mmkin.R index 204cb46f..fa52a579 100644 --- a/R/summary.saem.mmkin.R +++ b/R/summary.saem.mmkin.R @@ -229,7 +229,7 @@ print.summary.saem.mmkin <- function(x, digits = max(3, getOption("digits") - 3) if (nrow(x$confint_trans) > 1) { corr <- x$corFixed class(corr) <- "correlation" - print(corr, title = "\nCorrelation:", ...) + print(corr, title = "\nCorrelation:", rdig = digits, ...) } cat("\nRandom effects:\n") @@ -3,12 +3,12 @@ Loading required package: parallel ℹ Testing mkin ✔ | F W S OK | Context ✔ | 5 | AIC calculation -✔ | 5 | Analytical solutions for coupled models [3.5s] +✔ | 5 | Analytical solutions for coupled models [3.4s] ✔ | 5 | Calculation of Akaike weights ✔ | 2 | Export dataset for reading into CAKE ✔ | 12 | Confidence intervals and p-values [1.0s] -⠋ | 1 | Dimethenamid data from 2018, parent fits -✔ | 24 | Dimethenamid data from 2018, parent fits [36.7s] +⠋ | 1 | Dimethenamid data from 2018 +✔ | 24 | Dimethenamid data from 2018 [37.1s] ✔ | 14 | Error model fitting [6.8s] ✔ | 5 | Time step normalisation ✔ | 4 | Calculation of FOCUS chi2 error levels [0.8s] @@ -24,22 +24,22 @@ Reason: Fitting with saemix takes around 10 minutes when using deSolve ✔ | 10 | Special cases of mkinfit calls [0.6s] ✔ | 1 | mkinfit features [0.5s] ✔ | 8 | mkinmod model generation and printing [0.2s] -✔ | 3 | Model predictions with mkinpredict [0.3s] +✔ | 3 | Model predictions with mkinpredict [0.4s] ✔ | 16 | Evaluations according to 2015 NAFTA guidance [2.1s] -✔ | 9 | Nonlinear mixed-effects models with nlme [9.4s] +✔ | 9 | Nonlinear mixed-effects models with nlme [9.0s] ✔ | 16 | Plotting [1.5s] ✔ | 4 | Residuals extracted from mkinfit models -✔ | 23 | saemix_parent [29.2s] -✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [1.7s] -✔ | 7 | Fitting the SFORB model [4.4s] +✔ | 23 | saemix_parent [29.0s] +✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [1.6s] +✔ | 7 | Fitting the SFORB model [4.5s] ✔ | 1 | Summaries of old mkinfit objects ✔ | 4 | Summary [0.1s] ✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [2.5s] -✔ | 9 | Hypothesis tests [9.5s] +✔ | 9 | Hypothesis tests [9.4s] ✔ | 4 | Calculation of maximum time weighted average concentrations (TWAs) [2.2s] ══ Results ═════════════════════════════════════════════════════════════════════ -Duration: 115.5 s +Duration: 115.2 s ── Skipped tests ────────────────────────────────────────────────────────────── • Fitting with saemix takes around 10 minutes when using deSolve (1) diff --git a/tests/testthat/summary_nlme_biphasic_s.txt b/tests/testthat/summary_nlme_biphasic_s.txt index 86049775..03ef49a6 100644 --- a/tests/testthat/summary_nlme_biphasic_s.txt +++ b/tests/testthat/summary_nlme_biphasic_s.txt @@ -46,12 +46,12 @@ log_k2 -4.7 -4.5 -4.35 g_qlogis -0.4 -0.1 0.17 Correlation: - prnt_0 lg_k_1 f_prn_ log_k1 log_k2 -log_k_m1 -0.167 -f_parent_qlogis -0.145 0.380 -log_k1 0.170 0.005 -0.026 -log_k2 0.083 0.168 0.032 0.365 -g_qlogis -0.088 -0.170 -0.044 -0.472 -0.631 + pr_0 l__1 f_p_ lg_1 lg_2 +log_k_m1 -0.2 +f_parent_qlogis -0.1 0.4 +log_k1 0.2 0.0 0.0 +log_k2 0.1 0.2 0.0 0.4 +g_qlogis -0.1 -0.2 0.0 -0.5 -0.6 Random effects: Formula: list(parent_0 ~ 1, log_k_m1 ~ 1, f_parent_qlogis ~ 1, log_k1 ~ 1, log_k2 ~ 1, g_qlogis ~ 1) diff --git a/tests/testthat/summary_saem_biphasic_s.txt b/tests/testthat/summary_saem_biphasic_s.txt index 4569099f..b30e35b8 100644 --- a/tests/testthat/summary_saem_biphasic_s.txt +++ b/tests/testthat/summary_saem_biphasic_s.txt @@ -47,12 +47,12 @@ k2 1.2e-02 9.6e-03 1.4e-02 g 4.6e-01 4.1e-01 5.1e-01 Correlation: - prnt_0 k_m1 f_p__1 k1 k2 -k_m1 -0.172 -f_parent_to_m1 -0.144 0.383 -k1 0.132 -0.007 -0.024 -k2 0.044 0.138 0.030 0.197 -g -0.067 -0.212 -0.061 -0.404 -0.531 + prn_0 k_m1 f___1 k1 k2 +k_m1 -0.17 +f_parent_to_m1 -0.14 0.38 +k1 0.13 -0.01 -0.02 +k2 0.04 0.14 0.03 0.20 +g -0.07 -0.21 -0.06 -0.40 -0.53 Random effects: est. lower upper diff --git a/tests/testthat/test_dmta.R b/tests/testthat/test_dmta.R index 3437966f..46a4fdcc 100644 --- a/tests/testthat/test_dmta.R +++ b/tests/testthat/test_dmta.R @@ -1,4 +1,4 @@ -context("Dimethenamid data from 2018, parent fits") +context("Dimethenamid data from 2018") # Data dmta_ds <- lapply(1:7, function(i) { @@ -91,6 +91,7 @@ test_that("Different backends get consistent results for DFOP tc, dimethenamid d backtransform_odeparms(ints_nlme$reStruct$ds[, "upper"], dmta_dfop$mkinmod))) # Variance function + skip_on_travis() # For some reason this fails on Travis # saemix vs. nlme expect_true(all(ints_saemix[[3]][, "est."] > ints_nlme$varStruct[, "lower"])) @@ -118,3 +119,49 @@ test_that("Different backends get consistent results for DFOP tc, dimethenamid d expect_true(ints_nlmixr_focei[[3]]["rsd_high", "est."] < ints_nlme$varStruct["prop", "upper"]) }) + +# Model definition from the 2020 paper https://doi.org/10.3390/environments8080071 +# But note the data are different, as we did not pool the data from the same soils +# for the paper +# The model is called DFOP-SFO3+ in the paper +dfop_sfo3p <- mkinmod( + DMTA = mkinsub("DFOP", c("M23", "M27", "M31")), + M23 = mkinsub("SFO"), + M27 = mkinsub("SFO"), + M31 = mkinsub("SFO", "M27", sink = FALSE), + quiet = TRUE +) +dfop_sfo3 <- mkinmod( + DMTA = mkinsub("DFOP", c("M23", "M27", "M31")), + M23 = mkinsub("SFO"), + M27 = mkinsub("SFO"), + M31 = mkinsub("SFO"), + quiet = TRUE +) + +# The following is work in progress +#dmta_dfop_sfo3p_tc <- mmkin(list("DFOP-SFO3+" = dfop_sfo3p), +# dmta_ds, error_model = "tc", quiet = TRUE) +# The Borstel dataset give false convergence +#dmta_dfop_sfo3_tc <- mmkin(list("DFOP-SFO3" = dfop_sfo3), +# dmta_ds, error_model = "tc", quiet = TRUE) +# We get convergence in all soils + +#test_that("Different backends get consistent results for DFOP-SFO3+, dimethenamid data", { + + # nlme needs some help to converge +# nlme_dfop_sfo3p_tc <- nlme(dmta_dfop_sfo3p_tc, +# control = list(pnlsMaxIter = 30, tolerance = 3e-3)) +# ints_nlme_dfop_sfo3p_tc <- intervals(nlme_dfop_sfo3p_tc, which = "fixed") + + # saemix does not succeed with these data, we get problems + # with the deSolve solutions, depending on the seed: + # Error in lsoda(y, times, func, parms, ...) : + # illegal input detected before taking any integration steps - see + # written message + # or: + # Error in out[available, var] : (subscript) logical subscript too long + #saem_saemix_dfop_sfo3p_tc <- saem(dmta_dfop_sfo3p_tc) + +#}) + |