diff options
author | Johannes Ranke <jranke@uni-bremen.de> | 2023-08-10 07:16:20 +0200 |
---|---|---|
committer | Johannes Ranke <jranke@uni-bremen.de> | 2023-08-10 07:16:20 +0200 |
commit | 60696f36ce365a82fcaae5189a1118972a4e672f (patch) | |
tree | cbcf4c0a43e33128920ef1fa063e8d2eae2d0de9 | |
parent | a01fe8923ff50dcc76c34fb09ad500f5f5433063 (diff) | |
parent | 9abab1e2d4385039b01ad3dc0d9c5966bbe94fee (diff) |
Merge branch 'main' into dev
Start new development version
43 files changed, 4010 insertions, 808 deletions
diff --git a/.Rbuildignore b/.Rbuildignore index 0ee54702..e7cbe786 100644 --- a/.Rbuildignore +++ b/.Rbuildignore @@ -33,3 +33,5 @@ ^vignettes/FOCUS_Z.tex$ ^vignettes/mkin.tex$ ^vignettes/web_only/.*$ +^.*\.Rproj$ +^\.Rproj\.user$ @@ -32,3 +32,5 @@ vignettes/*_files/ vignettes/prebuilt/*_cache vignettes/prebuilt/*_files vignettes/prebuilt/*_dlls +.Rproj.user +.Rhistory diff --git a/.travis.yml b/.travis.yml index ec904005..3aec6949 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,6 @@ language: c sudo: required -dist: focal +dist: jammy jobs: include: @@ -8,7 +8,6 @@ jobs: os: linux env: - DRAT_REPOS: "jranke" global: - USE_BSPM="true" - NOT_CRAN="true" @@ -19,7 +18,6 @@ before_install: install: - ./run.sh install_all - - ./run.sh install_github jranke/saemixextension@installable_dev_version script: - travis_wait 30 ./run.sh run_tests diff --git a/DESCRIPTION b/DESCRIPTION index 1f6eccd0..98fa4355 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,8 +1,8 @@ Package: mkin Type: Package Title: Kinetic Evaluation of Chemical Degradation Data -Version: 1.2.5 -Date: 2023-05-19 +Version: 1.2.6 +Date: 2023-08-10 Authors@R: c( person("Johannes", "Ranke", role = c("aut", "cre", "cph"), email = "johannes.ranke@jrwb.de", @@ -24,7 +24,7 @@ Description: Calculation routines based on the FOCUS Kinetics Report (2006, particular purpose. Depends: R (>= 2.15.1), Imports: stats, graphics, methods, parallel, deSolve (>= 1.35), R6, inline (>= 0.3.19), - numDeriv, lmtest, pkgbuild, nlme (>= 3.1-151), saemix (>= 3.1), rlang, vctrs + numDeriv, lmtest, pkgbuild, nlme (>= 3.1-151), saemix (>= 3.2), rlang, vctrs Suggests: knitr, rbenchmark, tikzDevice, testthat, rmarkdown, covr, vdiffr, benchmarkme, tibble, stats4, readxl License: GPL @@ -1,8 +1,16 @@ +# mkin 1.2.6 + + + # mkin 1.2.5 -- +- 'vignettes/mesotrione_parent_2023.rnw': Prebuilt vignette showing how covariate modelling can be done for all relevant parent degradation models. + +- 'inst/testdata/mesotrione_soil_efsa_2016}.xlsx': Another example spreadsheets for use with 'read_spreadsheet()', featuring pH dependent degradation + +- R/illparms.R: Fix the detection of ill-defined slope or error model parameters for the case that the estimate is negative -# mkin 1.2.4 (2023-05-19) +# mkin 1.2.4 - R/endpoints.R: Fix the calculation of endpoints for user specified covariate values diff --git a/R/illparms.R b/R/illparms.R index eef4bd33..68a6bff6 100644 --- a/R/illparms.R +++ b/R/illparms.R @@ -106,7 +106,7 @@ illparms.saem.mmkin <- function(object, conf.level = 0.95, random = TRUE, errmod ill_parms <- c(ill_parms, names(which(ill_parms_random))) } if (errmod) { - ill_parms_errmod <- ints$errmod[, "lower"] < 0 & ints$errmod[, "est."] > 0 + ill_parms_errmod <- ints$errmod[, "lower"] < 0 & ints$errmod[, "upper"] > 0 ill_parms <- c(ill_parms, names(which(ill_parms_errmod))) } if (slopes) { @@ -115,7 +115,7 @@ illparms.saem.mmkin <- function(object, conf.level = 0.95, random = TRUE, errmod ci <- object$so@results@conf.int rownames(ci) <- ci$name slope_ci <- ci[slope_names, ] - ill_parms_slopes <- slope_ci[, "lower"] < 0 & slope_ci[, "estimate"] > 0 + ill_parms_slopes <- slope_ci[, "lower"] < 0 & slope_ci[, "upper"] > 0 ill_parms <- c(ill_parms, slope_names[ill_parms_slopes]) } } diff --git a/R/read_spreadsheet.R b/R/read_spreadsheet.R index 1c5508da..bad93d43 100644 --- a/R/read_spreadsheet.R +++ b/R/read_spreadsheet.R @@ -12,7 +12,7 @@ #' to contain name and acronym of the parent compound. #' #' The dataset sheets should be named using the dataset numbers read in from -#' the 'Datasets' sheet, i.e. '1', '2', ... . In each dataset sheet, name +#' the 'Datasets' sheet, i.e. '1', '2', ... . In each dataset sheet, the name #' of the observed variable (e.g. the acronym of the parent compound or #' one of its transformation products) should be in the first column, #' the time values should be in the second colum, and the observed value @@ -26,7 +26,7 @@ #' Their names should preferably not contain special characters like spaces, #' so they can be easily used for specifying covariate models. #' -#' An similar data structure is defined as the R6 class [mkindsg], but +#' A similar data structure is defined as the R6 class [mkindsg], but #' is probably more complicated to use. #' #' @param path Absolute or relative path to the spreadsheet file diff --git a/docs/404.html b/docs/404.html index b9ab1f25..932d8345 100644 --- a/docs/404.html +++ b/docs/404.html @@ -32,7 +32,7 @@ </button> <span class="navbar-brand"> <a class="navbar-link" href="https://pkgdown.jrwb.de/mkin/index.html">mkin</a> - <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.4</span> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> </span> </div> diff --git a/docs/articles/FOCUS_L.html b/docs/articles/FOCUS_L.html index dabb16f2..7b5acf17 100644 --- a/docs/articles/FOCUS_L.html +++ b/docs/articles/FOCUS_L.html @@ -33,7 +33,7 @@ </button> <span class="navbar-brand"> <a class="navbar-link" href="../index.html">mkin</a> - <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.4</span> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> </span> </div> @@ -135,7 +135,7 @@ to L3</h1> Ranke</h4> <h4 data-toc-skip class="date">Last change 18 May 2023 -(rebuilt 2023-05-19)</h4> +(rebuilt 2023-08-09)</h4> <small class="dont-index">Source: <a href="https://github.com/jranke/mkin/blob/HEAD/vignettes/FOCUS_L.rmd" class="external-link"><code>vignettes/FOCUS_L.rmd</code></a></small> <div class="hidden name"><code>FOCUS_L.rmd</code></div> @@ -168,18 +168,18 @@ model fit. This covers the numerical analysis given in the FOCUS report.</p> <div class="sourceCode" id="cb2"><pre class="downlit sourceCode r"> <code class="sourceCode R"><span><span class="va">m.L1.SFO</span> <span class="op"><-</span> <span class="fu"><a href="../reference/mkinfit.html">mkinfit</a></span><span class="op">(</span><span class="st">"SFO"</span>, <span class="va">FOCUS_2006_L1_mkin</span>, quiet <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span> -<span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">m.L1.SFO</span><span class="op">)</span></span></code></pre></div> -<pre><code><span><span class="co">## mkin version used for fitting: 1.2.4 </span></span> -<span><span class="co">## R version used for fitting: 4.3.0 </span></span> -<span><span class="co">## Date of fit: Fri May 19 09:20:25 2023 </span></span> -<span><span class="co">## Date of summary: Fri May 19 09:20:25 2023 </span></span> +<span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">m.L1.SFO</span><span class="op">)</span></span></code></pre></div> +<pre><code><span><span class="co">## mkin version used for fitting: 1.2.5 </span></span> +<span><span class="co">## R version used for fitting: 4.3.1 </span></span> +<span><span class="co">## Date of fit: Wed Aug 9 17:55:39 2023 </span></span> +<span><span class="co">## Date of summary: Wed Aug 9 17:55:39 2023 </span></span> <span><span class="co">## </span></span> <span><span class="co">## Equations:</span></span> <span><span class="co">## d_parent/dt = - k_parent * parent</span></span> <span><span class="co">## </span></span> <span><span class="co">## Model predictions using solution type analytical </span></span> <span><span class="co">## </span></span> -<span><span class="co">## Fitted using 133 model solutions performed in 0.011 s</span></span> +<span><span class="co">## Fitted using 133 model solutions performed in 0.031 s</span></span> <span><span class="co">## </span></span> <span><span class="co">## Error model: Constant variance </span></span> <span><span class="co">## </span></span> @@ -256,7 +256,7 @@ report.</p> <p>A plot of the fit is obtained with the plot function for mkinfit objects.</p> <div class="sourceCode" id="cb4"><pre class="downlit sourceCode r"> -<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">m.L1.SFO</span>, show_errmin <span class="op">=</span> <span class="cn">TRUE</span>, main <span class="op">=</span> <span class="st">"FOCUS L1 - SFO"</span><span class="op">)</span></span></code></pre></div> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/graphics/plot.default.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">m.L1.SFO</span>, show_errmin <span class="op">=</span> <span class="cn">TRUE</span>, main <span class="op">=</span> <span class="st">"FOCUS L1 - SFO"</span><span class="op">)</span></span></code></pre></div> <p><img src="FOCUS_L_files/figure-html/unnamed-chunk-4-1.png" width="576"></p> <p>The residual plot can be easily obtained by</p> <div class="sourceCode" id="cb5"><pre class="downlit sourceCode r"> @@ -268,25 +268,25 @@ objects.</p> <pre><code><span><span class="co">## Warning in mkinfit("FOMC", FOCUS_2006_L1_mkin, quiet = TRUE): Optimisation did not converge:</span></span> <span><span class="co">## false convergence (8)</span></span></code></pre> <div class="sourceCode" id="cb8"><pre class="downlit sourceCode r"> -<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">m.L1.FOMC</span>, show_errmin <span class="op">=</span> <span class="cn">TRUE</span>, main <span class="op">=</span> <span class="st">"FOCUS L1 - FOMC"</span><span class="op">)</span></span></code></pre></div> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/graphics/plot.default.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">m.L1.FOMC</span>, show_errmin <span class="op">=</span> <span class="cn">TRUE</span>, main <span class="op">=</span> <span class="st">"FOCUS L1 - FOMC"</span><span class="op">)</span></span></code></pre></div> <p><img src="FOCUS_L_files/figure-html/unnamed-chunk-6-1.png" width="576"></p> <div class="sourceCode" id="cb9"><pre class="downlit sourceCode r"> -<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">m.L1.FOMC</span>, data <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">m.L1.FOMC</span>, data <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div> <pre><code><span><span class="co">## Warning in sqrt(diag(covar)): NaNs produced</span></span></code></pre> <pre><code><span><span class="co">## Warning in sqrt(1/diag(V)): NaNs produced</span></span></code></pre> <pre><code><span><span class="co">## Warning in cov2cor(ans$covar): diag(.) had 0 or NA entries; non-finite result</span></span> <span><span class="co">## is doubtful</span></span></code></pre> -<pre><code><span><span class="co">## mkin version used for fitting: 1.2.4 </span></span> -<span><span class="co">## R version used for fitting: 4.3.0 </span></span> -<span><span class="co">## Date of fit: Fri May 19 09:20:25 2023 </span></span> -<span><span class="co">## Date of summary: Fri May 19 09:20:25 2023 </span></span> +<pre><code><span><span class="co">## mkin version used for fitting: 1.2.5 </span></span> +<span><span class="co">## R version used for fitting: 4.3.1 </span></span> +<span><span class="co">## Date of fit: Wed Aug 9 17:55:39 2023 </span></span> +<span><span class="co">## Date of summary: Wed Aug 9 17:55:39 2023 </span></span> <span><span class="co">## </span></span> <span><span class="co">## Equations:</span></span> <span><span class="co">## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent</span></span> <span><span class="co">## </span></span> <span><span class="co">## Model predictions using solution type analytical </span></span> <span><span class="co">## </span></span> -<span><span class="co">## Fitted using 342 model solutions performed in 0.021 s</span></span> +<span><span class="co">## Fitted using 342 model solutions performed in 0.07 s</span></span> <span><span class="co">## </span></span> <span><span class="co">## Error model: Constant variance </span></span> <span><span class="co">## </span></span> @@ -398,7 +398,7 @@ residual plot can be obtained simply by adding the argument <code>show_residuals</code> to the plot command.</p> <div class="sourceCode" id="cb15"><pre class="downlit sourceCode r"> <code class="sourceCode R"><span><span class="va">m.L2.SFO</span> <span class="op"><-</span> <span class="fu"><a href="../reference/mkinfit.html">mkinfit</a></span><span class="op">(</span><span class="st">"SFO"</span>, <span class="va">FOCUS_2006_L2_mkin</span>, quiet<span class="op">=</span><span class="cn">TRUE</span><span class="op">)</span></span> -<span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">m.L2.SFO</span>, show_residuals <span class="op">=</span> <span class="cn">TRUE</span>, show_errmin <span class="op">=</span> <span class="cn">TRUE</span>,</span> +<span><span class="fu"><a href="https://rdrr.io/r/graphics/plot.default.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">m.L2.SFO</span>, show_residuals <span class="op">=</span> <span class="cn">TRUE</span>, show_errmin <span class="op">=</span> <span class="cn">TRUE</span>,</span> <span> main <span class="op">=</span> <span class="st">"FOCUS L2 - SFO"</span><span class="op">)</span></span></code></pre></div> <p><img src="FOCUS_L_files/figure-html/unnamed-chunk-8-1.png" width="672"></p> <p>The <span class="math inline">\(\chi^2\)</span> error level of 14% @@ -422,22 +422,22 @@ kinetics.</p> <p>For comparison, the FOMC model is fitted as well, and the <span class="math inline">\(\chi^2\)</span> error level is checked.</p> <div class="sourceCode" id="cb16"><pre class="downlit sourceCode r"> <code class="sourceCode R"><span><span class="va">m.L2.FOMC</span> <span class="op"><-</span> <span class="fu"><a href="../reference/mkinfit.html">mkinfit</a></span><span class="op">(</span><span class="st">"FOMC"</span>, <span class="va">FOCUS_2006_L2_mkin</span>, quiet <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span> -<span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">m.L2.FOMC</span>, show_residuals <span class="op">=</span> <span class="cn">TRUE</span>,</span> +<span><span class="fu"><a href="https://rdrr.io/r/graphics/plot.default.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">m.L2.FOMC</span>, show_residuals <span class="op">=</span> <span class="cn">TRUE</span>,</span> <span> main <span class="op">=</span> <span class="st">"FOCUS L2 - FOMC"</span><span class="op">)</span></span></code></pre></div> <p><img src="FOCUS_L_files/figure-html/unnamed-chunk-9-1.png" width="672"></p> <div class="sourceCode" id="cb17"><pre class="downlit sourceCode r"> -<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">m.L2.FOMC</span>, data <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div> -<pre><code><span><span class="co">## mkin version used for fitting: 1.2.4 </span></span> -<span><span class="co">## R version used for fitting: 4.3.0 </span></span> -<span><span class="co">## Date of fit: Fri May 19 09:20:25 2023 </span></span> -<span><span class="co">## Date of summary: Fri May 19 09:20:25 2023 </span></span> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">m.L2.FOMC</span>, data <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div> +<pre><code><span><span class="co">## mkin version used for fitting: 1.2.5 </span></span> +<span><span class="co">## R version used for fitting: 4.3.1 </span></span> +<span><span class="co">## Date of fit: Wed Aug 9 17:55:40 2023 </span></span> +<span><span class="co">## Date of summary: Wed Aug 9 17:55:40 2023 </span></span> <span><span class="co">## </span></span> <span><span class="co">## Equations:</span></span> <span><span class="co">## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent</span></span> <span><span class="co">## </span></span> <span><span class="co">## Model predictions using solution type analytical </span></span> <span><span class="co">## </span></span> -<span><span class="co">## Fitted using 239 model solutions performed in 0.013 s</span></span> +<span><span class="co">## Fitted using 239 model solutions performed in 0.044 s</span></span> <span><span class="co">## </span></span> <span><span class="co">## Error model: Constant variance </span></span> <span><span class="co">## </span></span> @@ -506,15 +506,15 @@ the data.</p> <p>Fitting the four parameter DFOP model further reduces the <span class="math inline">\(\chi^2\)</span> error level.</p> <div class="sourceCode" id="cb19"><pre class="downlit sourceCode r"> <code class="sourceCode R"><span><span class="va">m.L2.DFOP</span> <span class="op"><-</span> <span class="fu"><a href="../reference/mkinfit.html">mkinfit</a></span><span class="op">(</span><span class="st">"DFOP"</span>, <span class="va">FOCUS_2006_L2_mkin</span>, quiet <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span> -<span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">m.L2.DFOP</span>, show_residuals <span class="op">=</span> <span class="cn">TRUE</span>, show_errmin <span class="op">=</span> <span class="cn">TRUE</span>,</span> +<span><span class="fu"><a href="https://rdrr.io/r/graphics/plot.default.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">m.L2.DFOP</span>, show_residuals <span class="op">=</span> <span class="cn">TRUE</span>, show_errmin <span class="op">=</span> <span class="cn">TRUE</span>,</span> <span> main <span class="op">=</span> <span class="st">"FOCUS L2 - DFOP"</span><span class="op">)</span></span></code></pre></div> <p><img src="FOCUS_L_files/figure-html/unnamed-chunk-10-1.png" width="672"></p> <div class="sourceCode" id="cb20"><pre class="downlit sourceCode r"> -<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">m.L2.DFOP</span>, data <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div> -<pre><code><span><span class="co">## mkin version used for fitting: 1.2.4 </span></span> -<span><span class="co">## R version used for fitting: 4.3.0 </span></span> -<span><span class="co">## Date of fit: Fri May 19 09:20:25 2023 </span></span> -<span><span class="co">## Date of summary: Fri May 19 09:20:25 2023 </span></span> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">m.L2.DFOP</span>, data <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div> +<pre><code><span><span class="co">## mkin version used for fitting: 1.2.5 </span></span> +<span><span class="co">## R version used for fitting: 4.3.1 </span></span> +<span><span class="co">## Date of fit: Wed Aug 9 17:55:40 2023 </span></span> +<span><span class="co">## Date of summary: Wed Aug 9 17:55:40 2023 </span></span> <span><span class="co">## </span></span> <span><span class="co">## Equations:</span></span> <span><span class="co">## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *</span></span> @@ -523,7 +523,7 @@ the data.</p> <span><span class="co">## </span></span> <span><span class="co">## Model predictions using solution type analytical </span></span> <span><span class="co">## </span></span> -<span><span class="co">## Fitted using 581 model solutions performed in 0.038 s</span></span> +<span><span class="co">## Fitted using 581 model solutions performed in 0.119 s</span></span> <span><span class="co">## </span></span> <span><span class="co">## Error model: Constant variance </span></span> <span><span class="co">## </span></span> @@ -611,7 +611,7 @@ only the L3 dataset prepared above.</p> <code class="sourceCode R"><span><span class="co"># Only use one core here, not to offend the CRAN checks</span></span> <span><span class="va">mm.L3</span> <span class="op"><-</span> <span class="fu"><a href="../reference/mmkin.html">mmkin</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"SFO"</span>, <span class="st">"FOMC"</span>, <span class="st">"DFOP"</span><span class="op">)</span>, cores <span class="op">=</span> <span class="fl">1</span>,</span> <span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="st">"FOCUS L3"</span> <span class="op">=</span> <span class="va">FOCUS_2006_L3_mkin</span><span class="op">)</span>, quiet <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span> -<span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">mm.L3</span><span class="op">)</span></span></code></pre></div> +<span><span class="fu"><a href="https://rdrr.io/r/graphics/plot.default.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">mm.L3</span><span class="op">)</span></span></code></pre></div> <p><img src="FOCUS_L_files/figure-html/unnamed-chunk-12-1.png" width="700"></p> <p>The <span class="math inline">\(\chi^2\)</span> error level of 21% as well as the plot suggest that the SFO model does not fit very well. The @@ -627,11 +627,11 @@ as a row index and datasets as a column index.</p> using square brackets for indexing which will result in the use of the summary and plot functions working on mkinfit objects.</p> <div class="sourceCode" id="cb24"><pre class="downlit sourceCode r"> -<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">mm.L3</span><span class="op">[[</span><span class="st">"DFOP"</span>, <span class="fl">1</span><span class="op">]</span><span class="op">]</span><span class="op">)</span></span></code></pre></div> -<pre><code><span><span class="co">## mkin version used for fitting: 1.2.4 </span></span> -<span><span class="co">## R version used for fitting: 4.3.0 </span></span> -<span><span class="co">## Date of fit: Fri May 19 09:20:26 2023 </span></span> -<span><span class="co">## Date of summary: Fri May 19 09:20:26 2023 </span></span> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">mm.L3</span><span class="op">[[</span><span class="st">"DFOP"</span>, <span class="fl">1</span><span class="op">]</span><span class="op">]</span><span class="op">)</span></span></code></pre></div> +<pre><code><span><span class="co">## mkin version used for fitting: 1.2.5 </span></span> +<span><span class="co">## R version used for fitting: 4.3.1 </span></span> +<span><span class="co">## Date of fit: Wed Aug 9 17:55:41 2023 </span></span> +<span><span class="co">## Date of summary: Wed Aug 9 17:55:41 2023 </span></span> <span><span class="co">## </span></span> <span><span class="co">## Equations:</span></span> <span><span class="co">## d_parent/dt = - ((k1 * g * exp(-k1 * time) + k2 * (1 - g) * exp(-k2 *</span></span> @@ -640,7 +640,7 @@ summary and plot functions working on mkinfit objects.</p> <span><span class="co">## </span></span> <span><span class="co">## Model predictions using solution type analytical </span></span> <span><span class="co">## </span></span> -<span><span class="co">## Fitted using 376 model solutions performed in 0.021 s</span></span> +<span><span class="co">## Fitted using 376 model solutions performed in 0.075 s</span></span> <span><span class="co">## </span></span> <span><span class="co">## Error model: Constant variance </span></span> <span><span class="co">## </span></span> @@ -715,7 +715,7 @@ summary and plot functions working on mkinfit objects.</p> <span><span class="co">## 91 parent 15.0 15.18 -0.18181</span></span> <span><span class="co">## 120 parent 12.0 10.19 1.81395</span></span></code></pre> <div class="sourceCode" id="cb26"><pre class="downlit sourceCode r"> -<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">mm.L3</span><span class="op">[[</span><span class="st">"DFOP"</span>, <span class="fl">1</span><span class="op">]</span><span class="op">]</span>, show_errmin <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/graphics/plot.default.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">mm.L3</span><span class="op">[[</span><span class="st">"DFOP"</span>, <span class="fl">1</span><span class="op">]</span><span class="op">]</span>, show_errmin <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div> <p><img src="FOCUS_L_files/figure-html/unnamed-chunk-13-1.png" width="700"></p> <p>Here, a look to the model plot, the confidence intervals of the parameters and the correlation matrix suggest that the parameter @@ -746,7 +746,7 @@ below:</p> <span><span class="va">mm.L4</span> <span class="op"><-</span> <span class="fu"><a href="../reference/mmkin.html">mmkin</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"SFO"</span>, <span class="st">"FOMC"</span><span class="op">)</span>, cores <span class="op">=</span> <span class="fl">1</span>,</span> <span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="st">"FOCUS L4"</span> <span class="op">=</span> <span class="va">FOCUS_2006_L4_mkin</span><span class="op">)</span>,</span> <span> quiet <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span> -<span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">mm.L4</span><span class="op">)</span></span></code></pre></div> +<span><span class="fu"><a href="https://rdrr.io/r/graphics/plot.default.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">mm.L4</span><span class="op">)</span></span></code></pre></div> <p><img src="FOCUS_L_files/figure-html/unnamed-chunk-15-1.png" width="700"></p> <p>The <span class="math inline">\(\chi^2\)</span> error level of 3.3% as well as the plot suggest that the SFO model fits very well. The error @@ -754,18 +754,18 @@ level at which the <span class="math inline">\(\chi^2\)</span> test passes is slightly lower for the FOMC model. However, the difference appears negligible.</p> <div class="sourceCode" id="cb29"><pre class="downlit sourceCode r"> -<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">mm.L4</span><span class="op">[[</span><span class="st">"SFO"</span>, <span class="fl">1</span><span class="op">]</span><span class="op">]</span>, data <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div> -<pre><code><span><span class="co">## mkin version used for fitting: 1.2.4 </span></span> -<span><span class="co">## R version used for fitting: 4.3.0 </span></span> -<span><span class="co">## Date of fit: Fri May 19 09:20:26 2023 </span></span> -<span><span class="co">## Date of summary: Fri May 19 09:20:26 2023 </span></span> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">mm.L4</span><span class="op">[[</span><span class="st">"SFO"</span>, <span class="fl">1</span><span class="op">]</span><span class="op">]</span>, data <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div> +<pre><code><span><span class="co">## mkin version used for fitting: 1.2.5 </span></span> +<span><span class="co">## R version used for fitting: 4.3.1 </span></span> +<span><span class="co">## Date of fit: Wed Aug 9 17:55:42 2023 </span></span> +<span><span class="co">## Date of summary: Wed Aug 9 17:55:42 2023 </span></span> <span><span class="co">## </span></span> <span><span class="co">## Equations:</span></span> <span><span class="co">## d_parent/dt = - k_parent * parent</span></span> <span><span class="co">## </span></span> <span><span class="co">## Model predictions using solution type analytical </span></span> <span><span class="co">## </span></span> -<span><span class="co">## Fitted using 142 model solutions performed in 0.008 s</span></span> +<span><span class="co">## Fitted using 142 model solutions performed in 0.027 s</span></span> <span><span class="co">## </span></span> <span><span class="co">## Error model: Constant variance </span></span> <span><span class="co">## </span></span> @@ -819,18 +819,18 @@ appears negligible.</p> <span><span class="co">## DT50 DT90</span></span> <span><span class="co">## parent 106 352</span></span></code></pre> <div class="sourceCode" id="cb31"><pre class="downlit sourceCode r"> -<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">mm.L4</span><span class="op">[[</span><span class="st">"FOMC"</span>, <span class="fl">1</span><span class="op">]</span><span class="op">]</span>, data <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div> -<pre><code><span><span class="co">## mkin version used for fitting: 1.2.4 </span></span> -<span><span class="co">## R version used for fitting: 4.3.0 </span></span> -<span><span class="co">## Date of fit: Fri May 19 09:20:26 2023 </span></span> -<span><span class="co">## Date of summary: Fri May 19 09:20:26 2023 </span></span> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">mm.L4</span><span class="op">[[</span><span class="st">"FOMC"</span>, <span class="fl">1</span><span class="op">]</span><span class="op">]</span>, data <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span></span></code></pre></div> +<pre><code><span><span class="co">## mkin version used for fitting: 1.2.5 </span></span> +<span><span class="co">## R version used for fitting: 4.3.1 </span></span> +<span><span class="co">## Date of fit: Wed Aug 9 17:55:42 2023 </span></span> +<span><span class="co">## Date of summary: Wed Aug 9 17:55:42 2023 </span></span> <span><span class="co">## </span></span> <span><span class="co">## Equations:</span></span> <span><span class="co">## d_parent/dt = - (alpha/beta) * 1/((time/beta) + 1) * parent</span></span> <span><span class="co">## </span></span> <span><span class="co">## Model predictions using solution type analytical </span></span> <span><span class="co">## </span></span> -<span><span class="co">## Fitted using 224 model solutions performed in 0.012 s</span></span> +<span><span class="co">## Fitted using 224 model solutions performed in 0.04 s</span></span> <span><span class="co">## </span></span> <span><span class="co">## Error model: Constant variance </span></span> <span><span class="co">## </span></span> diff --git a/docs/articles/index.html b/docs/articles/index.html index 7060b377..ac6236f1 100644 --- a/docs/articles/index.html +++ b/docs/articles/index.html @@ -17,7 +17,7 @@ </button> <span class="navbar-brand"> <a class="navbar-link" href="../index.html">mkin</a> - <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.4</span> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> </span> </div> @@ -119,6 +119,8 @@ <dd> </dd><dt><a href="prebuilt/2022_dmta_pathway.html">Testing hierarchical pathway kinetics with residue data on dimethenamid and dimethenamid-P</a></dt> <dd> + </dd><dt><a href="prebuilt/2023_mesotrione_parent.html">Testing covariate modelling in hierarchical parent degradation kinetics with residue data on mesotrione</a></dt> + <dd> </dd><dt><a href="twa.html">Calculation of time weighted average concentrations with mkin</a></dt> <dd> </dd><dt><a href="web_only/FOCUS_Z.html">Example evaluation of FOCUS dataset Z</a></dt> diff --git a/docs/articles/mkin.html b/docs/articles/mkin.html index 6213916b..3bd0d4d3 100644 --- a/docs/articles/mkin.html +++ b/docs/articles/mkin.html @@ -33,7 +33,7 @@ </button> <span class="navbar-brand"> <a class="navbar-link" href="../index.html">mkin</a> - <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.4</span> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> </span> </div> @@ -134,7 +134,7 @@ Ranke</h4> <h4 data-toc-skip class="date">Last change 18 May 2023 -(rebuilt 2023-05-19)</h4> +(rebuilt 2023-08-09)</h4> <small class="dont-index">Source: <a href="https://github.com/jranke/mkin/blob/HEAD/vignettes/mkin.rmd" class="external-link"><code>vignettes/mkin.rmd</code></a></small> <div class="hidden name"><code>mkin.rmd</code></div> diff --git a/docs/articles/prebuilt/2023_mesotrione_parent.html b/docs/articles/prebuilt/2023_mesotrione_parent.html new file mode 100644 index 00000000..b233fc3c --- /dev/null +++ b/docs/articles/prebuilt/2023_mesotrione_parent.html @@ -0,0 +1,2560 @@ +<!DOCTYPE html> +<!-- Generated by pkgdown: do not edit by hand --><html lang="en"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<meta charset="utf-8"> +<meta http-equiv="X-UA-Compatible" content="IE=edge"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<title>Testing covariate modelling in hierarchical parent degradation kinetics with residue data on mesotrione • mkin</title> +<!-- jquery --><script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script><!-- Bootstrap --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/css/bootstrap.min.css" integrity="sha256-bZLfwXAP04zRMK2BjiO8iu9pf4FbLqX6zitd+tIvLhE=" crossorigin="anonymous"> +<script src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.4.1/js/bootstrap.min.js" integrity="sha256-nuL8/2cJ5NDSSwnKD8VqreErSWHtnEP9E7AySL+1ev4=" crossorigin="anonymous"></script><!-- bootstrap-toc --><link rel="stylesheet" href="../../bootstrap-toc.css"> +<script src="../../bootstrap-toc.js"></script><!-- Font Awesome icons --><link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/all.min.css" integrity="sha256-mmgLkCYLUQbXn0B1SRqzHar6dCnv9oZFPEC1g1cwlkk=" crossorigin="anonymous"> +<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.12.1/css/v4-shims.min.css" integrity="sha256-wZjR52fzng1pJHwx4aV2AO3yyTOXrcDW7jBpJtTwVxw=" crossorigin="anonymous"> +<!-- clipboard.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/clipboard.js/2.0.6/clipboard.min.js" integrity="sha256-inc5kl9MA1hkeYUt+EC3BhlIgyp/2jDIyBLS6k3UxPI=" crossorigin="anonymous"></script><!-- headroom.js --><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/headroom.min.js" integrity="sha256-AsUX4SJE1+yuDu5+mAVzJbuYNPHj/WroHuZ8Ir/CkE0=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/headroom/0.11.0/jQuery.headroom.min.js" integrity="sha256-ZX/yNShbjqsohH1k95liqY9Gd8uOiE1S4vZc+9KQ1K4=" crossorigin="anonymous"></script><!-- pkgdown --><link href="../../pkgdown.css" rel="stylesheet"> +<script src="../../pkgdown.js"></script><meta property="og:title" content="Testing covariate modelling in hierarchical parent degradation kinetics with residue data on mesotrione"> +<meta property="og:description" content="mkin"> +<!-- mathjax --><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/config/TeX-AMS-MML_HTMLorMML.js" integrity="sha256-84DKXVJXs0/F8OTMzX4UR909+jtl4G7SPypPavF+GfA=" crossorigin="anonymous"></script><!--[if lt IE 9]> +<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script> +<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> +<![endif]--> +</head> +<body data-spy="scroll" data-target="#toc"> + + + <div class="container template-article"> + <header><div class="navbar navbar-default navbar-fixed-top" role="navigation"> + <div class="container"> + <div class="navbar-header"> + <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false"> + <span class="sr-only">Toggle navigation</span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + <span class="icon-bar"></span> + </button> + <span class="navbar-brand"> + <a class="navbar-link" href="../../index.html">mkin</a> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> + </span> + </div> + + <div id="navbar" class="navbar-collapse collapse"> + <ul class="nav navbar-nav"> +<li> + <a href="../../reference/index.html">Reference</a> +</li> +<li class="dropdown"> + <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" data-bs-toggle="dropdown" aria-expanded="false"> + Articles + + <span class="caret"></span> + </a> + <ul class="dropdown-menu" role="menu"> +<li> + <a href="../../articles/mkin.html">Introduction to mkin</a> + </li> + <li class="divider"> + </li> +<li class="dropdown-header">Example evaluations with (generalised) nonlinear least squares</li> + <li> + <a href="../../articles/FOCUS_D.html">Example evaluation of FOCUS Example Dataset D</a> + </li> + <li> + <a href="../../articles/FOCUS_L.html">Example evaluation of FOCUS Laboratory Data L1 to L3</a> + </li> + <li> + <a href="../../articles/web_only/FOCUS_Z.html">Example evaluation of FOCUS Example Dataset Z</a> + </li> + <li class="divider"> + </li> +<li class="dropdown-header">Example evaluations with hierarchical models (nonlinear mixed-effects models)</li> + <li> + <a href="../../articles/prebuilt/2022_dmta_parent.html">Testing hierarchical parent degradation kinetics with residue data on dimethenamid and dimethenamid-P</a> + </li> + <li> + <a href="../../articles/prebuilt/2022_dmta_pathway.html">Testing hierarchical pathway kinetics with residue data on dimethenamid and dimethenamid-P</a> + </li> + <li> + <a href="../../articles/prebuilt/2022_cyan_pathway.html">Testing hierarchical pathway kinetics with residue data on cyantraniliprole</a> + </li> + <li> + <a href="../../articles/web_only/dimethenamid_2018.html">Comparison of saemix and nlme evaluations of dimethenamid data from 2018</a> + </li> + <li> + <a href="../../articles/web_only/multistart.html">Short demo of the multistart method</a> + </li> + <li class="divider"> + </li> +<li class="dropdown-header">Performance</li> + <li> + <a href="../../articles/web_only/compiled_models.html">Performance benefit by using compiled model definitions in mkin</a> + </li> + <li> + <a href="../../articles/web_only/benchmarks.html">Benchmark timings for mkin</a> + </li> + <li> + <a href="../../articles/web_only/saem_benchmarks.html">Benchmark timings for saem.mmkin</a> + </li> + <li class="divider"> + </li> +<li class="dropdown-header">Miscellaneous</li> + <li> + <a href="../../articles/twa.html">Calculation of time weighted average concentrations with mkin</a> + </li> + <li> + <a href="../../articles/web_only/NAFTA_examples.html">Example evaluation of NAFTA SOP Attachment examples</a> + </li> + </ul> +</li> +<li> + <a href="../../news/index.html">News</a> +</li> + </ul> +<ul class="nav navbar-nav navbar-right"> +<li> + <a href="https://github.com/jranke/mkin/" class="external-link"> + <span class="fab fa-github fa-lg"></span> + + </a> +</li> + </ul> +</div> +<!--/.nav-collapse --> + </div> +<!--/.container --> +</div> +<!--/.navbar --> + + + + </header><div class="row"> + <div class="col-md-9 contents"> + <div class="page-header toc-ignore"> + <h1 data-toc-skip>Testing covariate modelling in hierarchical +parent degradation kinetics with residue data on mesotrione</h1> + <h4 data-toc-skip class="author">Johannes +Ranke</h4> + + <h4 data-toc-skip class="date">Last change on 4 August 2023, +last compiled on 9 August 2023</h4> + + <small class="dont-index">Source: <a href="https://github.com/jranke/mkin/blob/HEAD/vignettes/prebuilt/2023_mesotrione_parent.rmd" class="external-link"><code>vignettes/prebuilt/2023_mesotrione_parent.rmd</code></a></small> + <div class="hidden name"><code>2023_mesotrione_parent.rmd</code></div> + + </div> + + + +<div class="section level2"> +<h2 id="introduction">Introduction<a class="anchor" aria-label="anchor" href="#introduction"></a> +</h2> +<p>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.</p> +<p>The mkin package is used in version 1.2.5, which is contains the +functions that were used for the evaluations. The <code>saemix</code> +package is used as a backend for fitting the NLHM, but is also loaded to +make the convergence plot function available.</p> +<p>This document is processed with the <code>knitr</code> package, which +also provides the <code>kable</code> function that is used to improve +the display of tabular data in R markdown documents. For parallel +processing, the <code>parallel</code> package is used.</p> +<div class="sourceCode" id="cb1"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://pkgdown.jrwb.de/mkin/">mkin</a></span><span class="op">)</span></span> +<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va"><a href="https://yihui.org/knitr/" class="external-link">knitr</a></span><span class="op">)</span></span> +<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va">saemix</span><span class="op">)</span></span> +<span><span class="kw"><a href="https://rdrr.io/r/base/library.html" class="external-link">library</a></span><span class="op">(</span><span class="va">parallel</span><span class="op">)</span></span> +<span><span class="va">n_cores</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/parallel/detectCores.html" class="external-link">detectCores</a></span><span class="op">(</span><span class="op">)</span></span> +<span><span class="kw">if</span> <span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/Sys.info.html" class="external-link">Sys.info</a></span><span class="op">(</span><span class="op">)</span><span class="op">[</span><span class="st">"sysname"</span><span class="op">]</span> <span class="op">==</span> <span class="st">"Windows"</span><span class="op">)</span> <span class="op">{</span></span> +<span> <span class="va">cl</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/parallel/makeCluster.html" class="external-link">makePSOCKcluster</a></span><span class="op">(</span><span class="va">n_cores</span><span class="op">)</span></span> +<span><span class="op">}</span> <span class="kw">else</span> <span class="op">{</span></span> +<span> <span class="va">cl</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/parallel/makeCluster.html" class="external-link">makeForkCluster</a></span><span class="op">(</span><span class="va">n_cores</span><span class="op">)</span></span> +<span><span class="op">}</span></span></code></pre></div> +<div class="section level3"> +<h3 id="test-data">Test data<a class="anchor" aria-label="anchor" href="#test-data"></a> +</h3> +<div class="sourceCode" id="cb2"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">data_file</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/system.file.html" class="external-link">system.file</a></span><span class="op">(</span></span> +<span> <span class="st">"testdata"</span>, <span class="st">"mesotrione_soil_efsa_2016.xlsx"</span>, package <span class="op">=</span> <span class="st">"mkin"</span><span class="op">)</span></span> +<span><span class="va">meso_ds</span> <span class="op"><-</span> <span class="fu"><a href="../../reference/read_spreadsheet.html">read_spreadsheet</a></span><span class="op">(</span><span class="va">data_file</span>, parent_only <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div> +<p>The following tables show the covariate data and the 18 datasets that +were read in from the spreadsheet file.</p> +<div class="sourceCode" id="cb3"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">pH</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/attr.html" class="external-link">attr</a></span><span class="op">(</span><span class="va">meso_ds</span>, <span class="st">"covariates"</span><span class="op">)</span></span> +<span><span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span><span class="va">pH</span>, caption <span class="op">=</span> <span class="st">"Covariate data"</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<caption>Covariate data</caption> +<thead><tr class="header"> +<th align="left"></th> +<th align="right">pH</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">Richmond</td> +<td align="right">6.2</td> +</tr> +<tr class="even"> +<td align="left">Richmond 2</td> +<td align="right">6.2</td> +</tr> +<tr class="odd"> +<td align="left">ERTC</td> +<td align="right">6.4</td> +</tr> +<tr class="even"> +<td align="left">Toulouse</td> +<td align="right">7.7</td> +</tr> +<tr class="odd"> +<td align="left">Picket Piece</td> +<td align="right">7.1</td> +</tr> +<tr class="even"> +<td align="left">721</td> +<td align="right">5.6</td> +</tr> +<tr class="odd"> +<td align="left">722</td> +<td align="right">5.7</td> +</tr> +<tr class="even"> +<td align="left">723</td> +<td align="right">5.4</td> +</tr> +<tr class="odd"> +<td align="left">724</td> +<td align="right">4.8</td> +</tr> +<tr class="even"> +<td align="left">725</td> +<td align="right">5.8</td> +</tr> +<tr class="odd"> +<td align="left">727</td> +<td align="right">5.1</td> +</tr> +<tr class="even"> +<td align="left">728</td> +<td align="right">5.9</td> +</tr> +<tr class="odd"> +<td align="left">729</td> +<td align="right">5.6</td> +</tr> +<tr class="even"> +<td align="left">730</td> +<td align="right">5.3</td> +</tr> +<tr class="odd"> +<td align="left">731</td> +<td align="right">6.1</td> +</tr> +<tr class="even"> +<td align="left">732</td> +<td align="right">5.0</td> +</tr> +<tr class="odd"> +<td align="left">741</td> +<td align="right">5.7</td> +</tr> +<tr class="even"> +<td align="left">742</td> +<td align="right">7.2</td> +</tr> +</tbody> +</table> +<div class="sourceCode" id="cb4"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="kw">for</span> <span class="op">(</span><span class="va">ds_name</span> <span class="kw">in</span> <span class="fu"><a href="https://rdrr.io/r/base/names.html" class="external-link">names</a></span><span class="op">(</span><span class="va">meso_ds</span><span class="op">)</span><span class="op">)</span> <span class="op">{</span></span> +<span> <span class="fu"><a href="https://rdrr.io/r/base/print.html" class="external-link">print</a></span><span class="op">(</span></span> +<span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span><span class="fu"><a href="../../reference/mkin_long_to_wide.html">mkin_long_to_wide</a></span><span class="op">(</span><span class="va">meso_ds</span><span class="op">[[</span><span class="va">ds_name</span><span class="op">]</span><span class="op">]</span><span class="op">)</span>,</span> +<span> caption <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/paste.html" class="external-link">paste</a></span><span class="op">(</span><span class="st">"Dataset"</span>, <span class="va">ds_name</span><span class="op">)</span>,</span> +<span> booktabs <span class="op">=</span> <span class="cn">TRUE</span>, row.names <span class="op">=</span> <span class="cn">FALSE</span><span class="op">)</span><span class="op">)</span></span> +<span><span class="op">}</span></span></code></pre></div> +<table class="table"> +<caption>Dataset Richmond</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.000000</td> +<td align="right">91.00</td> +</tr> +<tr class="even"> +<td align="right">1.179050</td> +<td align="right">86.70</td> +</tr> +<tr class="odd"> +<td align="right">3.537149</td> +<td align="right">73.60</td> +</tr> +<tr class="even"> +<td align="right">7.074299</td> +<td align="right">61.50</td> +</tr> +<tr class="odd"> +<td align="right">10.611448</td> +<td align="right">55.70</td> +</tr> +<tr class="even"> +<td align="right">15.327647</td> +<td align="right">47.70</td> +</tr> +<tr class="odd"> +<td align="right">17.685747</td> +<td align="right">39.50</td> +</tr> +<tr class="even"> +<td align="right">24.760046</td> +<td align="right">29.80</td> +</tr> +<tr class="odd"> +<td align="right">35.371494</td> +<td align="right">19.60</td> +</tr> +<tr class="even"> +<td align="right">68.384889</td> +<td align="right">5.67</td> +</tr> +<tr class="odd"> +<td align="right">0.000000</td> +<td align="right">97.90</td> +</tr> +<tr class="even"> +<td align="right">1.179050</td> +<td align="right">96.40</td> +</tr> +<tr class="odd"> +<td align="right">3.537149</td> +<td align="right">89.10</td> +</tr> +<tr class="even"> +<td align="right">7.074299</td> +<td align="right">74.40</td> +</tr> +<tr class="odd"> +<td align="right">10.611448</td> +<td align="right">57.40</td> +</tr> +<tr class="even"> +<td align="right">15.327647</td> +<td align="right">46.30</td> +</tr> +<tr class="odd"> +<td align="right">18.864797</td> +<td align="right">35.50</td> +</tr> +<tr class="even"> +<td align="right">27.118146</td> +<td align="right">27.20</td> +</tr> +<tr class="odd"> +<td align="right">35.371494</td> +<td align="right">19.10</td> +</tr> +<tr class="even"> +<td align="right">74.280138</td> +<td align="right">6.50</td> +</tr> +<tr class="odd"> +<td align="right">108.472582</td> +<td align="right">3.40</td> +</tr> +<tr class="even"> +<td align="right">142.665027</td> +<td align="right">2.20</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset Richmond 2</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.000000</td> +<td align="right">96.0</td> +</tr> +<tr class="even"> +<td align="right">2.422004</td> +<td align="right">82.4</td> +</tr> +<tr class="odd"> +<td align="right">5.651343</td> +<td align="right">71.2</td> +</tr> +<tr class="even"> +<td align="right">8.073348</td> +<td align="right">53.1</td> +</tr> +<tr class="odd"> +<td align="right">11.302687</td> +<td align="right">48.5</td> +</tr> +<tr class="even"> +<td align="right">16.954030</td> +<td align="right">33.4</td> +</tr> +<tr class="odd"> +<td align="right">22.605373</td> +<td align="right">24.2</td> +</tr> +<tr class="even"> +<td align="right">45.210746</td> +<td align="right">11.9</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset ERTC</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.000000</td> +<td align="right">99.9</td> +</tr> +<tr class="even"> +<td align="right">2.755193</td> +<td align="right">80.0</td> +</tr> +<tr class="odd"> +<td align="right">6.428782</td> +<td align="right">42.1</td> +</tr> +<tr class="even"> +<td align="right">9.183975</td> +<td align="right">50.1</td> +</tr> +<tr class="odd"> +<td align="right">12.857565</td> +<td align="right">28.4</td> +</tr> +<tr class="even"> +<td align="right">19.286347</td> +<td align="right">39.8</td> +</tr> +<tr class="odd"> +<td align="right">25.715130</td> +<td align="right">29.9</td> +</tr> +<tr class="even"> +<td align="right">51.430259</td> +<td align="right">2.5</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset Toulouse</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.000000</td> +<td align="right">96.8</td> +</tr> +<tr class="even"> +<td align="right">2.897983</td> +<td align="right">63.3</td> +</tr> +<tr class="odd"> +<td align="right">6.761960</td> +<td align="right">22.3</td> +</tr> +<tr class="even"> +<td align="right">9.659942</td> +<td align="right">16.6</td> +</tr> +<tr class="odd"> +<td align="right">13.523919</td> +<td align="right">16.1</td> +</tr> +<tr class="even"> +<td align="right">20.285879</td> +<td align="right">17.2</td> +</tr> +<tr class="odd"> +<td align="right">27.047838</td> +<td align="right">1.8</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset Picket Piece</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.000000</td> +<td align="right">102.0</td> +</tr> +<tr class="even"> +<td align="right">2.841195</td> +<td align="right">73.7</td> +</tr> +<tr class="odd"> +<td align="right">6.629454</td> +<td align="right">35.5</td> +</tr> +<tr class="even"> +<td align="right">9.470649</td> +<td align="right">31.8</td> +</tr> +<tr class="odd"> +<td align="right">13.258909</td> +<td align="right">18.0</td> +</tr> +<tr class="even"> +<td align="right">19.888364</td> +<td align="right">3.7</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 721</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">86.4</td> +</tr> +<tr class="even"> +<td align="right">11.24366</td> +<td align="right">61.4</td> +</tr> +<tr class="odd"> +<td align="right">22.48733</td> +<td align="right">49.8</td> +</tr> +<tr class="even"> +<td align="right">33.73099</td> +<td align="right">41.0</td> +</tr> +<tr class="odd"> +<td align="right">44.97466</td> +<td align="right">35.1</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 722</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">90.3</td> +</tr> +<tr class="even"> +<td align="right">11.24366</td> +<td align="right">52.1</td> +</tr> +<tr class="odd"> +<td align="right">22.48733</td> +<td align="right">37.4</td> +</tr> +<tr class="even"> +<td align="right">33.73099</td> +<td align="right">21.2</td> +</tr> +<tr class="odd"> +<td align="right">44.97466</td> +<td align="right">14.3</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 723</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">89.3</td> +</tr> +<tr class="even"> +<td align="right">11.24366</td> +<td align="right">70.8</td> +</tr> +<tr class="odd"> +<td align="right">22.48733</td> +<td align="right">51.1</td> +</tr> +<tr class="even"> +<td align="right">33.73099</td> +<td align="right">42.7</td> +</tr> +<tr class="odd"> +<td align="right">44.97466</td> +<td align="right">26.7</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 724</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.000000</td> +<td align="right">89.4</td> +</tr> +<tr class="even"> +<td align="right">9.008208</td> +<td align="right">65.2</td> +</tr> +<tr class="odd"> +<td align="right">18.016415</td> +<td align="right">55.8</td> +</tr> +<tr class="even"> +<td align="right">27.024623</td> +<td align="right">46.0</td> +</tr> +<tr class="odd"> +<td align="right">36.032831</td> +<td align="right">41.7</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 725</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">89.0</td> +</tr> +<tr class="even"> +<td align="right">10.99058</td> +<td align="right">35.4</td> +</tr> +<tr class="odd"> +<td align="right">21.98116</td> +<td align="right">18.6</td> +</tr> +<tr class="even"> +<td align="right">32.97174</td> +<td align="right">11.6</td> +</tr> +<tr class="odd"> +<td align="right">43.96232</td> +<td align="right">7.6</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 727</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">91.3</td> +</tr> +<tr class="even"> +<td align="right">10.96104</td> +<td align="right">63.2</td> +</tr> +<tr class="odd"> +<td align="right">21.92209</td> +<td align="right">51.1</td> +</tr> +<tr class="even"> +<td align="right">32.88313</td> +<td align="right">42.0</td> +</tr> +<tr class="odd"> +<td align="right">43.84417</td> +<td align="right">40.8</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 728</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">91.8</td> +</tr> +<tr class="even"> +<td align="right">11.24366</td> +<td align="right">43.6</td> +</tr> +<tr class="odd"> +<td align="right">22.48733</td> +<td align="right">22.0</td> +</tr> +<tr class="even"> +<td align="right">33.73099</td> +<td align="right">15.9</td> +</tr> +<tr class="odd"> +<td align="right">44.97466</td> +<td align="right">8.8</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 729</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">91.6</td> +</tr> +<tr class="even"> +<td align="right">11.24366</td> +<td align="right">60.5</td> +</tr> +<tr class="odd"> +<td align="right">22.48733</td> +<td align="right">43.5</td> +</tr> +<tr class="even"> +<td align="right">33.73099</td> +<td align="right">28.4</td> +</tr> +<tr class="odd"> +<td align="right">44.97466</td> +<td align="right">20.5</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 730</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">92.7</td> +</tr> +<tr class="even"> +<td align="right">11.07446</td> +<td align="right">58.9</td> +</tr> +<tr class="odd"> +<td align="right">22.14893</td> +<td align="right">44.0</td> +</tr> +<tr class="even"> +<td align="right">33.22339</td> +<td align="right">46.0</td> +</tr> +<tr class="odd"> +<td align="right">44.29785</td> +<td align="right">29.3</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 731</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">92.1</td> +</tr> +<tr class="even"> +<td align="right">11.24366</td> +<td align="right">64.4</td> +</tr> +<tr class="odd"> +<td align="right">22.48733</td> +<td align="right">45.3</td> +</tr> +<tr class="even"> +<td align="right">33.73099</td> +<td align="right">33.6</td> +</tr> +<tr class="odd"> +<td align="right">44.97466</td> +<td align="right">23.5</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 732</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">90.3</td> +</tr> +<tr class="even"> +<td align="right">11.24366</td> +<td align="right">58.2</td> +</tr> +<tr class="odd"> +<td align="right">22.48733</td> +<td align="right">40.1</td> +</tr> +<tr class="even"> +<td align="right">33.73099</td> +<td align="right">33.1</td> +</tr> +<tr class="odd"> +<td align="right">44.97466</td> +<td align="right">25.8</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 741</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">90.3</td> +</tr> +<tr class="even"> +<td align="right">10.84712</td> +<td align="right">68.7</td> +</tr> +<tr class="odd"> +<td align="right">21.69424</td> +<td align="right">58.0</td> +</tr> +<tr class="even"> +<td align="right">32.54136</td> +<td align="right">52.2</td> +</tr> +<tr class="odd"> +<td align="right">43.38848</td> +<td align="right">48.0</td> +</tr> +</tbody> +</table> +<table class="table"> +<caption>Dataset 742</caption> +<thead><tr class="header"> +<th align="right">time</th> +<th align="right">meso</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="right">0.00000</td> +<td align="right">92.0</td> +</tr> +<tr class="even"> +<td align="right">11.24366</td> +<td align="right">60.9</td> +</tr> +<tr class="odd"> +<td align="right">22.48733</td> +<td align="right">36.2</td> +</tr> +<tr class="even"> +<td align="right">33.73099</td> +<td align="right">18.3</td> +</tr> +<tr class="odd"> +<td align="right">44.97466</td> +<td align="right">8.7</td> +</tr> +</tbody> +</table> +</div> +</div> +<div class="section level2"> +<h2 id="separate-evaluations">Separate evaluations<a class="anchor" aria-label="anchor" href="#separate-evaluations"></a> +</h2> +<p>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 <code>mmkin</code> function from the mkin package. In a first +step, constant variance is assumed. Convergence is checked with the +<code>status</code> function.</p> +<div class="sourceCode" id="cb5"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">deg_mods</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"SFO"</span>, <span class="st">"FOMC"</span>, <span class="st">"DFOP"</span>, <span class="st">"SFORB"</span>, <span class="st">"HS"</span><span class="op">)</span></span> +<span><span class="va">f_sep_const</span> <span class="op"><-</span> <span class="fu"><a href="../../reference/mmkin.html">mmkin</a></span><span class="op">(</span></span> +<span> <span class="va">deg_mods</span>,</span> +<span> <span class="va">meso_ds</span>,</span> +<span> error_model <span class="op">=</span> <span class="st">"const"</span>,</span> +<span> cluster <span class="op">=</span> <span class="va">cl</span>,</span> +<span> quiet <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div> +<div class="sourceCode" id="cb6"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/status.html">status</a></span><span class="op">(</span><span class="va">f_sep_const</span><span class="op">[</span>, <span class="fl">1</span><span class="op">:</span><span class="fl">5</span><span class="op">]</span><span class="op">)</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="left">Richmond</th> +<th align="left">Richmond 2</th> +<th align="left">ERTC</th> +<th align="left">Toulouse</th> +<th align="left">Picket Piece</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">SFO</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">FOMC</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +</tr> +<tr class="odd"> +<td align="left">DFOP</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">SFORB</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="odd"> +<td align="left">HS</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +</tbody> +</table> +<div class="sourceCode" id="cb7"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/status.html">status</a></span><span class="op">(</span><span class="va">f_sep_const</span><span class="op">[</span>, <span class="fl">6</span><span class="op">:</span><span class="fl">18</span><span class="op">]</span><span class="op">)</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<colgroup> +<col width="10%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +</colgroup> +<thead><tr class="header"> +<th align="left"></th> +<th align="left">721</th> +<th align="left">722</th> +<th align="left">723</th> +<th align="left">724</th> +<th align="left">725</th> +<th align="left">727</th> +<th align="left">728</th> +<th align="left">729</th> +<th align="left">730</th> +<th align="left">731</th> +<th align="left">732</th> +<th align="left">741</th> +<th align="left">742</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">SFO</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">FOMC</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="odd"> +<td align="left">DFOP</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">SFORB</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="odd"> +<td align="left">HS</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +</tbody> +</table> +<p>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.</p> +<div class="sourceCode" id="cb8"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">f_sep_tc</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/stats/update.html" class="external-link">update</a></span><span class="op">(</span><span class="va">f_sep_const</span>, error_model <span class="op">=</span> <span class="st">"tc"</span><span class="op">)</span></span></code></pre></div> +<div class="sourceCode" id="cb9"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/status.html">status</a></span><span class="op">(</span><span class="va">f_sep_tc</span><span class="op">[</span>, <span class="fl">1</span><span class="op">:</span><span class="fl">5</span><span class="op">]</span><span class="op">)</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="left">Richmond</th> +<th align="left">Richmond 2</th> +<th align="left">ERTC</th> +<th align="left">Toulouse</th> +<th align="left">Picket Piece</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">SFO</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">FOMC</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="odd"> +<td align="left">DFOP</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">SFORB</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="odd"> +<td align="left">HS</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +</tbody> +</table> +<div class="sourceCode" id="cb10"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/status.html">status</a></span><span class="op">(</span><span class="va">f_sep_tc</span><span class="op">[</span>, <span class="fl">6</span><span class="op">:</span><span class="fl">18</span><span class="op">]</span><span class="op">)</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<colgroup> +<col width="10%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +<col width="6%"> +</colgroup> +<thead><tr class="header"> +<th align="left"></th> +<th align="left">721</th> +<th align="left">722</th> +<th align="left">723</th> +<th align="left">724</th> +<th align="left">725</th> +<th align="left">727</th> +<th align="left">728</th> +<th align="left">729</th> +<th align="left">730</th> +<th align="left">731</th> +<th align="left">732</th> +<th align="left">741</th> +<th align="left">742</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">SFO</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">FOMC</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +</tr> +<tr class="odd"> +<td align="left">DFOP</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">SFORB</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +</tr> +<tr class="odd"> +<td align="left">HS</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">C</td> +<td align="left">OK</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +</tbody> +</table> +<p>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.</p> +</div> +<div class="section level2"> +<h2 id="hierarchical-model-fits-without-covariate-effect">Hierarchical model fits without covariate effect<a class="anchor" aria-label="anchor" href="#hierarchical-model-fits-without-covariate-effect"></a> +</h2> +<p>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.</p> +<div class="sourceCode" id="cb11"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">f_saem_1</span> <span class="op"><-</span> <span class="fu"><a href="../../reference/mhmkin.html">mhmkin</a></span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="va">f_sep_const</span>, <span class="va">f_sep_tc</span><span class="op">)</span>, cluster <span class="op">=</span> <span class="va">cl</span><span class="op">)</span></span> +<span><span class="fu"><a href="../../reference/status.html">status</a></span><span class="op">(</span><span class="va">f_saem_1</span><span class="op">)</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="left">const</th> +<th align="left">tc</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">SFO</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">FOMC</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="odd"> +<td align="left">DFOP</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">SFORB</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="odd"> +<td align="left">HS</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +</tbody> +</table> +<p>All fits terminate without errors (status OK).</p> +<div class="sourceCode" id="cb12"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/stats/anova.html" class="external-link">anova</a></span><span class="op">(</span><span class="va">f_saem_1</span><span class="op">)</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span>digits <span class="op">=</span> <span class="fl">1</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="right">npar</th> +<th align="right">AIC</th> +<th align="right">BIC</th> +<th align="right">Lik</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">SFO const</td> +<td align="right">5</td> +<td align="right">800.0</td> +<td align="right">804.5</td> +<td align="right">-395.0</td> +</tr> +<tr class="even"> +<td align="left">SFO tc</td> +<td align="right">6</td> +<td align="right">801.9</td> +<td align="right">807.2</td> +<td align="right">-394.9</td> +</tr> +<tr class="odd"> +<td align="left">FOMC const</td> +<td align="right">7</td> +<td align="right">787.4</td> +<td align="right">793.6</td> +<td align="right">-386.7</td> +</tr> +<tr class="even"> +<td align="left">FOMC tc</td> +<td align="right">8</td> +<td align="right">788.9</td> +<td align="right">796.1</td> +<td align="right">-386.5</td> +</tr> +<tr class="odd"> +<td align="left">DFOP const</td> +<td align="right">9</td> +<td align="right">787.6</td> +<td align="right">795.6</td> +<td align="right">-384.8</td> +</tr> +<tr class="even"> +<td align="left">SFORB const</td> +<td align="right">9</td> +<td align="right">787.4</td> +<td align="right">795.4</td> +<td align="right">-384.7</td> +</tr> +<tr class="odd"> +<td align="left">HS const</td> +<td align="right">9</td> +<td align="right">781.9</td> +<td align="right">789.9</td> +<td align="right">-382.0</td> +</tr> +<tr class="even"> +<td align="left">DFOP tc</td> +<td align="right">10</td> +<td align="right">787.4</td> +<td align="right">796.3</td> +<td align="right">-383.7</td> +</tr> +<tr class="odd"> +<td align="left">SFORB tc</td> +<td align="right">10</td> +<td align="right">795.8</td> +<td align="right">804.7</td> +<td align="right">-387.9</td> +</tr> +<tr class="even"> +<td align="left">HS tc</td> +<td align="right">10</td> +<td align="right">783.7</td> +<td align="right">792.7</td> +<td align="right">-381.9</td> +</tr> +</tbody> +</table> +<p>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 +<code>b.1</code> (the relative standard deviation in the fits obtained +with the saemix package), is ill-defined in all fits.</p> +<div class="sourceCode" id="cb13"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">f_saem_1</span><span class="op">)</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<colgroup> +<col width="6%"> +<col width="44%"> +<col width="49%"> +</colgroup> +<thead><tr class="header"> +<th align="left"></th> +<th align="left">const</th> +<th align="left">tc</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">SFO</td> +<td align="left">sd(meso_0)</td> +<td align="left">sd(meso_0), b.1</td> +</tr> +<tr class="even"> +<td align="left">FOMC</td> +<td align="left">sd(meso_0), sd(log_beta)</td> +<td align="left">sd(meso_0), sd(log_beta), b.1</td> +</tr> +<tr class="odd"> +<td align="left">DFOP</td> +<td align="left">sd(meso_0), sd(log_k1)</td> +<td align="left">sd(meso_0), sd(g_qlogis), b.1</td> +</tr> +<tr class="even"> +<td align="left">SFORB</td> +<td align="left">sd(meso_free_0), sd(log_k_meso_free_bound)</td> +<td align="left">sd(meso_free_0), sd(log_k_meso_free_bound), b.1</td> +</tr> +<tr class="odd"> +<td align="left">HS</td> +<td align="left">sd(meso_0)</td> +<td align="left">sd(meso_0), b.1</td> +</tr> +</tbody> +</table> +<p>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 <code>illparms</code> function.</p> +<div class="sourceCode" id="cb14"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">f_saem_2</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/stats/update.html" class="external-link">update</a></span><span class="op">(</span><span class="va">f_saem_1</span>, no_random_effect <span class="op">=</span> <span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">f_saem_1</span><span class="op">)</span><span class="op">)</span></span> +<span><span class="fu"><a href="../../reference/status.html">status</a></span><span class="op">(</span><span class="va">f_saem_2</span><span class="op">)</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="left">const</th> +<th align="left">tc</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">SFO</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">FOMC</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="odd"> +<td align="left">DFOP</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="even"> +<td align="left">SFORB</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +<tr class="odd"> +<td align="left">HS</td> +<td align="left">OK</td> +<td align="left">OK</td> +</tr> +</tbody> +</table> +<p>The updated fits terminate without errors.</p> +<div class="sourceCode" id="cb15"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">f_saem_2</span><span class="op">)</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="left">const</th> +<th align="left">tc</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">SFO</td> +<td align="left"></td> +<td align="left">b.1</td> +</tr> +<tr class="even"> +<td align="left">FOMC</td> +<td align="left"></td> +<td align="left">b.1</td> +</tr> +<tr class="odd"> +<td align="left">DFOP</td> +<td align="left"></td> +<td align="left">b.1</td> +</tr> +<tr class="even"> +<td align="left">SFORB</td> +<td align="left"></td> +<td align="left">b.1</td> +</tr> +<tr class="odd"> +<td align="left">HS</td> +<td align="left"></td> +<td align="left"></td> +</tr> +</tbody> +</table> +<p>No ill-defined errors remain in the fits with constant variance.</p> +</div> +<div class="section level2"> +<h2 id="hierarchical-model-fits-with-covariate-effect">Hierarchical model fits with covariate effect<a class="anchor" aria-label="anchor" href="#hierarchical-model-fits-with-covariate-effect"></a> +</h2> +<p>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.</p> +<div class="section level3"> +<h3 id="sfo">SFO<a class="anchor" aria-label="anchor" href="#sfo"></a> +</h3> +<div class="sourceCode" id="cb16"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">sfo_pH</span> <span class="op"><-</span> <span class="fu"><a href="../../reference/saem.html">saem</a></span><span class="op">(</span><span class="va">f_sep_const</span><span class="op">[</span><span class="st">"SFO"</span>, <span class="op">]</span>, no_random_effect <span class="op">=</span> <span class="st">"meso_0"</span>, covariates <span class="op">=</span> <span class="va">pH</span>,</span> +<span> covariate_models <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="va">log_k_meso</span> <span class="op">~</span> <span class="va">pH</span><span class="op">)</span><span class="op">)</span></span></code></pre></div> +<div class="sourceCode" id="cb17"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">sfo_pH</span><span class="op">)</span><span class="op">$</span><span class="va">confint_trans</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span>digits <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="right">est.</th> +<th align="right">lower</th> +<th align="right">upper</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">meso_0</td> +<td align="right">91.35</td> +<td align="right">89.27</td> +<td align="right">93.43</td> +</tr> +<tr class="even"> +<td align="left">log_k_meso</td> +<td align="right">-6.66</td> +<td align="right">-7.97</td> +<td align="right">-5.35</td> +</tr> +<tr class="odd"> +<td align="left">beta_pH(log_k_meso)</td> +<td align="right">0.59</td> +<td align="right">0.37</td> +<td align="right">0.81</td> +</tr> +<tr class="even"> +<td align="left">a.1</td> +<td align="right">5.48</td> +<td align="right">4.71</td> +<td align="right">6.24</td> +</tr> +<tr class="odd"> +<td align="left">SD.log_k_meso</td> +<td align="right">0.35</td> +<td align="right">0.23</td> +<td align="right">0.47</td> +</tr> +</tbody> +</table> +<p>The parameter showing the pH influence in the above table is +<code>beta_pH(log_k_meso)</code>. 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.</p> +<div class="sourceCode" id="cb18"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/stats/anova.html" class="external-link">anova</a></span><span class="op">(</span><span class="va">f_saem_2</span><span class="op">[[</span><span class="st">"SFO"</span>, <span class="st">"const"</span><span class="op">]</span><span class="op">]</span>, <span class="va">sfo_pH</span>, test <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div> +<pre><code>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</code></pre> +<p>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.</p> +<div class="sourceCode" id="cb20"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">sfo_pH</span><span class="op">)</span></span></code></pre></div> +<p><img src="2023_mesotrione_parent_files/figure-html/unnamed-chunk-8-1.png" width="700" style="display: block; margin: auto;"></p> +<p>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.</p> +<div class="sourceCode" id="cb21"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">sfo_pH</span><span class="op">)</span></span></code></pre></div> +<pre><code>$covariates + pH +50% 5.75 + +$distimes + DT50 DT90 +meso 18.52069 61.52441</code></pre> +<div class="sourceCode" id="cb23"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">sfo_pH</span>, covariate_quantile <span class="op">=</span> <span class="fl">0.9</span><span class="op">)</span></span></code></pre></div> +<pre><code>$covariates + pH +90% 7.13 + +$distimes + DT50 DT90 +meso 8.237019 27.36278</code></pre> +<div class="sourceCode" id="cb25"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">sfo_pH</span>, covariates <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span>pH <span class="op">=</span> <span class="fl">7.0</span><span class="op">)</span><span class="op">)</span></span></code></pre></div> +<pre><code>$covariates + pH +User 7 + +$distimes + DT50 DT90 +meso 8.89035 29.5331</code></pre> +</div> +<div class="section level3"> +<h3 id="fomc">FOMC<a class="anchor" aria-label="anchor" href="#fomc"></a> +</h3> +<div class="sourceCode" id="cb27"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">fomc_pH</span> <span class="op"><-</span> <span class="fu"><a href="../../reference/saem.html">saem</a></span><span class="op">(</span><span class="va">f_sep_const</span><span class="op">[</span><span class="st">"FOMC"</span>, <span class="op">]</span>, no_random_effect <span class="op">=</span> <span class="st">"meso_0"</span>, covariates <span class="op">=</span> <span class="va">pH</span>,</span> +<span> covariate_models <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="va">log_alpha</span> <span class="op">~</span> <span class="va">pH</span><span class="op">)</span><span class="op">)</span></span></code></pre></div> +<div class="sourceCode" id="cb28"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">fomc_pH</span><span class="op">)</span><span class="op">$</span><span class="va">confint_trans</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span>digits <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="right">est.</th> +<th align="right">lower</th> +<th align="right">upper</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">meso_0</td> +<td align="right">92.84</td> +<td align="right">90.75</td> +<td align="right">94.93</td> +</tr> +<tr class="even"> +<td align="left">log_alpha</td> +<td align="right">-2.21</td> +<td align="right">-3.49</td> +<td align="right">-0.92</td> +</tr> +<tr class="odd"> +<td align="left">beta_pH(log_alpha)</td> +<td align="right">0.58</td> +<td align="right">0.37</td> +<td align="right">0.79</td> +</tr> +<tr class="even"> +<td align="left">log_beta</td> +<td align="right">4.21</td> +<td align="right">3.44</td> +<td align="right">4.99</td> +</tr> +<tr class="odd"> +<td align="left">a.1</td> +<td align="right">5.03</td> +<td align="right">4.32</td> +<td align="right">5.73</td> +</tr> +<tr class="even"> +<td align="left">SD.log_alpha</td> +<td align="right">0.00</td> +<td align="right">-23.77</td> +<td align="right">23.78</td> +</tr> +<tr class="odd"> +<td align="left">SD.log_beta</td> +<td align="right">0.37</td> +<td align="right">0.01</td> +<td align="right">0.74</td> +</tr> +</tbody> +</table> +<p>As in the case of SFO, the confidence interval of the slope parameter +(here <code>beta_pH(log_alpha)</code>) 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 <code>alpha</code> is not well-defined any more after +inclusion of the covariate effect (the confidence interval of +<code>SD.log_alpha</code> includes zero).</p> +<div class="sourceCode" id="cb29"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">fomc_pH</span><span class="op">)</span></span></code></pre></div> +<pre><code>[1] "sd(log_alpha)"</code></pre> +<p>Therefore, the model is updated without this random effect, and no +ill-defined parameters remain.</p> +<div class="sourceCode" id="cb31"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">fomc_pH_2</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/stats/update.html" class="external-link">update</a></span><span class="op">(</span><span class="va">fomc_pH</span>, no_random_effect <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"meso_0"</span>, <span class="st">"log_alpha"</span><span class="op">)</span><span class="op">)</span></span> +<span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">fomc_pH_2</span><span class="op">)</span></span></code></pre></div> +<div class="sourceCode" id="cb32"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/stats/anova.html" class="external-link">anova</a></span><span class="op">(</span><span class="va">f_saem_2</span><span class="op">[[</span><span class="st">"FOMC"</span>, <span class="st">"const"</span><span class="op">]</span><span class="op">]</span>, <span class="va">fomc_pH</span>, <span class="va">fomc_pH_2</span>, test <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div> +<pre><code>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</code></pre> +<p>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.</p> +<div class="sourceCode" id="cb34"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">fomc_pH_2</span><span class="op">)</span><span class="op">$</span><span class="va">confint_trans</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span>digits <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="right">est.</th> +<th align="right">lower</th> +<th align="right">upper</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">meso_0</td> +<td align="right">93.05</td> +<td align="right">90.98</td> +<td align="right">95.13</td> +</tr> +<tr class="even"> +<td align="left">log_alpha</td> +<td align="right">-2.91</td> +<td align="right">-4.18</td> +<td align="right">-1.63</td> +</tr> +<tr class="odd"> +<td align="left">beta_pH(log_alpha)</td> +<td align="right">0.66</td> +<td align="right">0.44</td> +<td align="right">0.87</td> +</tr> +<tr class="even"> +<td align="left">log_beta</td> +<td align="right">3.95</td> +<td align="right">3.29</td> +<td align="right">4.62</td> +</tr> +<tr class="odd"> +<td align="left">a.1</td> +<td align="right">4.98</td> +<td align="right">4.28</td> +<td align="right">5.68</td> +</tr> +<tr class="even"> +<td align="left">SD.log_beta</td> +<td align="right">0.40</td> +<td align="right">0.26</td> +<td align="right">0.54</td> +</tr> +</tbody> +</table> +<div class="sourceCode" id="cb35"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">fomc_pH_2</span><span class="op">)</span></span></code></pre></div> +<p><img src="2023_mesotrione_parent_files/figure-html/unnamed-chunk-14-1.png" width="700" style="display: block; margin: auto;"></p> +<div class="sourceCode" id="cb36"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">fomc_pH_2</span><span class="op">)</span></span></code></pre></div> +<pre><code>$covariates + pH +50% 5.75 + +$distimes + DT50 DT90 DT50back +meso 17.30248 82.91343 24.95943</code></pre> +<div class="sourceCode" id="cb38"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">fomc_pH_2</span>, covariates <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span>pH <span class="op">=</span> <span class="fl">7</span><span class="op">)</span><span class="op">)</span></span></code></pre></div> +<pre><code>$covariates + pH +User 7 + +$distimes + DT50 DT90 DT50back +meso 6.986239 27.02927 8.136621</code></pre> +</div> +<div class="section level3"> +<h3 id="dfop">DFOP<a class="anchor" aria-label="anchor" href="#dfop"></a> +</h3> +<p>In the DFOP fits without covariate effects, random effects for two +degradation parameters (<code>k2</code> and <code>g</code>) were +identifiable.</p> +<div class="sourceCode" id="cb40"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">f_saem_2</span><span class="op">[[</span><span class="st">"DFOP"</span>, <span class="st">"const"</span><span class="op">]</span><span class="op">]</span><span class="op">)</span><span class="op">$</span><span class="va">confint_trans</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span>digits <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="right">est.</th> +<th align="right">lower</th> +<th align="right">upper</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">meso_0</td> +<td align="right">93.61</td> +<td align="right">91.58</td> +<td align="right">95.63</td> +</tr> +<tr class="even"> +<td align="left">log_k1</td> +<td align="right">-1.53</td> +<td align="right">-2.27</td> +<td align="right">-0.79</td> +</tr> +<tr class="odd"> +<td align="left">log_k2</td> +<td align="right">-3.42</td> +<td align="right">-3.73</td> +<td align="right">-3.11</td> +</tr> +<tr class="even"> +<td align="left">g_qlogis</td> +<td align="right">-1.67</td> +<td align="right">-2.57</td> +<td align="right">-0.77</td> +</tr> +<tr class="odd"> +<td align="left">a.1</td> +<td align="right">4.74</td> +<td align="right">4.02</td> +<td align="right">5.45</td> +</tr> +<tr class="even"> +<td align="left">SD.log_k2</td> +<td align="right">0.60</td> +<td align="right">0.38</td> +<td align="right">0.81</td> +</tr> +<tr class="odd"> +<td align="left">SD.g_qlogis</td> +<td align="right">0.94</td> +<td align="right">0.33</td> +<td align="right">1.54</td> +</tr> +</tbody> +</table> +<p>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 <code>k2</code> and <code>g</code>.</p> +<div class="sourceCode" id="cb41"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">dfop_pH</span> <span class="op"><-</span> <span class="fu"><a href="../../reference/saem.html">saem</a></span><span class="op">(</span><span class="va">f_sep_const</span><span class="op">[</span><span class="st">"DFOP"</span>, <span class="op">]</span>, no_random_effect <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"meso_0"</span>, <span class="st">"log_k1"</span><span class="op">)</span>,</span> +<span> covariates <span class="op">=</span> <span class="va">pH</span>,</span> +<span> covariate_models <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="va">log_k2</span> <span class="op">~</span> <span class="va">pH</span>, <span class="va">g_qlogis</span> <span class="op">~</span> <span class="va">pH</span><span class="op">)</span><span class="op">)</span></span></code></pre></div> +<p>The corresponding parameters for the influence of soil pH are +<code>beta_pH(log_k2)</code> for the influence of soil pH on +<code>k2</code>, and <code>beta_pH(g_qlogis)</code> for its influence on +<code>g</code>.</p> +<div class="sourceCode" id="cb42"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">dfop_pH</span><span class="op">)</span><span class="op">$</span><span class="va">confint_trans</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span>digits <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="right">est.</th> +<th align="right">lower</th> +<th align="right">upper</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">meso_0</td> +<td align="right">92.84</td> +<td align="right">90.85</td> +<td align="right">94.84</td> +</tr> +<tr class="even"> +<td align="left">log_k1</td> +<td align="right">-2.82</td> +<td align="right">-3.09</td> +<td align="right">-2.54</td> +</tr> +<tr class="odd"> +<td align="left">log_k2</td> +<td align="right">-11.48</td> +<td align="right">-15.32</td> +<td align="right">-7.64</td> +</tr> +<tr class="even"> +<td align="left">beta_pH(log_k2)</td> +<td align="right">1.31</td> +<td align="right">0.69</td> +<td align="right">1.92</td> +</tr> +<tr class="odd"> +<td align="left">g_qlogis</td> +<td align="right">3.13</td> +<td align="right">0.47</td> +<td align="right">5.80</td> +</tr> +<tr class="even"> +<td align="left">beta_pH(g_qlogis)</td> +<td align="right">-0.57</td> +<td align="right">-1.04</td> +<td align="right">-0.09</td> +</tr> +<tr class="odd"> +<td align="left">a.1</td> +<td align="right">4.96</td> +<td align="right">4.26</td> +<td align="right">5.65</td> +</tr> +<tr class="even"> +<td align="left">SD.log_k2</td> +<td align="right">0.76</td> +<td align="right">0.47</td> +<td align="right">1.05</td> +</tr> +<tr class="odd"> +<td align="left">SD.g_qlogis</td> +<td align="right">0.01</td> +<td align="right">-9.96</td> +<td align="right">9.97</td> +</tr> +</tbody> +</table> +<div class="sourceCode" id="cb43"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">dfop_pH</span><span class="op">)</span></span></code></pre></div> +<pre><code>[1] "sd(g_qlogis)"</code></pre> +<p>Confidence intervals for neither of them include zero, indicating a +significant difference from zero. However, the random effect for +<code>g</code> is now ill-defined. The fit is updated without this +ill-defined random effect.</p> +<div class="sourceCode" id="cb45"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">dfop_pH_2</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/stats/update.html" class="external-link">update</a></span><span class="op">(</span><span class="va">dfop_pH</span>,</span> +<span> no_random_effect <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"meso_0"</span>, <span class="st">"log_k1"</span>, <span class="st">"g_qlogis"</span><span class="op">)</span><span class="op">)</span></span> +<span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">dfop_pH_2</span><span class="op">)</span></span></code></pre></div> +<pre><code>[1] "beta_pH(g_qlogis)"</code></pre> +<p>Now, the slope parameter for the pH effect on <code>g</code> is +ill-defined. Therefore, another attempt is made without the +corresponding covariate model.</p> +<div class="sourceCode" id="cb47"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">dfop_pH_3</span> <span class="op"><-</span> <span class="fu"><a href="../../reference/saem.html">saem</a></span><span class="op">(</span><span class="va">f_sep_const</span><span class="op">[</span><span class="st">"DFOP"</span>, <span class="op">]</span>, no_random_effect <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"meso_0"</span>, <span class="st">"log_k1"</span><span class="op">)</span>,</span> +<span> covariates <span class="op">=</span> <span class="va">pH</span>,</span> +<span> covariate_models <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="va">log_k2</span> <span class="op">~</span> <span class="va">pH</span><span class="op">)</span><span class="op">)</span></span> +<span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">dfop_pH_3</span><span class="op">)</span></span></code></pre></div> +<pre><code>[1] "sd(g_qlogis)"</code></pre> +<p>As the random effect for <code>g</code> is again ill-defined, the fit +is repeated without it.</p> +<div class="sourceCode" id="cb49"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">dfop_pH_4</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/stats/update.html" class="external-link">update</a></span><span class="op">(</span><span class="va">dfop_pH_3</span>, no_random_effect <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"meso_0"</span>, <span class="st">"log_k1"</span>, <span class="st">"g_qlogis"</span><span class="op">)</span><span class="op">)</span></span> +<span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">dfop_pH_4</span><span class="op">)</span></span></code></pre></div> +<p>While no ill-defined parameters remain, model comparison suggests +that the previous model <code>dfop_pH_2</code> with two pH dependent +parameters is preferable, based on information criteria as well as based +on the likelihood ratio test.</p> +<div class="sourceCode" id="cb50"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/stats/anova.html" class="external-link">anova</a></span><span class="op">(</span><span class="va">f_saem_2</span><span class="op">[[</span><span class="st">"DFOP"</span>, <span class="st">"const"</span><span class="op">]</span><span class="op">]</span>, <span class="va">dfop_pH</span>, <span class="va">dfop_pH_2</span>, <span class="va">dfop_pH_3</span>, <span class="va">dfop_pH_4</span><span class="op">)</span></span></code></pre></div> +<pre><code>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</code></pre> +<div class="sourceCode" id="cb52"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/stats/anova.html" class="external-link">anova</a></span><span class="op">(</span><span class="va">dfop_pH_2</span>, <span class="va">dfop_pH_4</span>, test <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div> +<pre><code>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</code></pre> +<p>When focussing on parameter identifiability using the test if the +confidence interval includes zero, <code>dfop_pH_4</code> 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 +<code>g</code> only marginally includes zero, it is suggested that this +is acceptable, and that <code>dfop_pH_2</code> can be considered the +most preferable model.</p> +<div class="sourceCode" id="cb54"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">dfop_pH_2</span><span class="op">)</span></span></code></pre></div> +<p><img src="2023_mesotrione_parent_files/figure-html/unnamed-chunk-19-1.png" width="700" style="display: block; margin: auto;"></p> +<div class="sourceCode" id="cb55"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">dfop_pH_2</span><span class="op">)</span></span></code></pre></div> +<pre><code>$covariates + pH +50% 5.75 + +$distimes + DT50 DT90 DT50back DT50_k1 DT50_k2 +meso 18.36876 73.51841 22.13125 4.191901 23.98672</code></pre> +<div class="sourceCode" id="cb57"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">dfop_pH_2</span>, covariates <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span>pH <span class="op">=</span> <span class="fl">7</span><span class="op">)</span><span class="op">)</span></span></code></pre></div> +<pre><code>$covariates + pH +User 7 + +$distimes + DT50 DT90 DT50back DT50_k1 DT50_k2 +meso 8.346428 28.34437 8.532507 4.191901 8.753618</code></pre> +</div> +<div class="section level3"> +<h3 id="sforb">SFORB<a class="anchor" aria-label="anchor" href="#sforb"></a> +</h3> +<div class="sourceCode" id="cb59"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">sforb_pH</span> <span class="op"><-</span> <span class="fu"><a href="../../reference/saem.html">saem</a></span><span class="op">(</span><span class="va">f_sep_const</span><span class="op">[</span><span class="st">"SFORB"</span>, <span class="op">]</span>, no_random_effect <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"meso_free_0"</span>, <span class="st">"log_k_meso_free_bound"</span><span class="op">)</span>,</span> +<span> covariates <span class="op">=</span> <span class="va">pH</span>,</span> +<span> covariate_models <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="va">log_k_meso_free</span> <span class="op">~</span> <span class="va">pH</span>, <span class="va">log_k_meso_bound_free</span> <span class="op">~</span> <span class="va">pH</span><span class="op">)</span><span class="op">)</span></span></code></pre></div> +<div class="sourceCode" id="cb60"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">sforb_pH</span><span class="op">)</span><span class="op">$</span><span class="va">confint_trans</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span>digits <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="right">est.</th> +<th align="right">lower</th> +<th align="right">upper</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">meso_free_0</td> +<td align="right">93.42</td> +<td align="right">91.32</td> +<td align="right">95.52</td> +</tr> +<tr class="even"> +<td align="left">log_k_meso_free</td> +<td align="right">-5.37</td> +<td align="right">-6.94</td> +<td align="right">-3.81</td> +</tr> +<tr class="odd"> +<td align="left">beta_pH(log_k_meso_free)</td> +<td align="right">0.42</td> +<td align="right">0.18</td> +<td align="right">0.67</td> +</tr> +<tr class="even"> +<td align="left">log_k_meso_free_bound</td> +<td align="right">-3.49</td> +<td align="right">-4.92</td> +<td align="right">-2.05</td> +</tr> +<tr class="odd"> +<td align="left">log_k_meso_bound_free</td> +<td align="right">-9.98</td> +<td align="right">-19.22</td> +<td align="right">-0.74</td> +</tr> +<tr class="even"> +<td align="left">beta_pH(log_k_meso_bound_free)</td> +<td align="right">1.23</td> +<td align="right">-0.21</td> +<td align="right">2.67</td> +</tr> +<tr class="odd"> +<td align="left">a.1</td> +<td align="right">4.90</td> +<td align="right">4.18</td> +<td align="right">5.63</td> +</tr> +<tr class="even"> +<td align="left">SD.log_k_meso_free</td> +<td align="right">0.35</td> +<td align="right">0.23</td> +<td align="right">0.47</td> +</tr> +<tr class="odd"> +<td align="left">SD.log_k_meso_bound_free</td> +<td align="right">0.13</td> +<td align="right">-1.95</td> +<td align="right">2.20</td> +</tr> +</tbody> +</table> +<p>The confidence interval of +<code>beta_pH(log_k_meso_bound_free)</code> includes zero, indicating +that the influence of soil pH on <code>k_meso_bound_free</code> cannot +reliably be quantified. Also, the confidence interval for the random +effect on this parameter (<code>SD.log_k_meso_bound_free</code>) +includes zero.</p> +<p>Using the <code>illparms</code> function, these ill-defined +parameters can be found more conveniently.</p> +<div class="sourceCode" id="cb61"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">sforb_pH</span><span class="op">)</span></span></code></pre></div> +<pre><code>[1] "sd(log_k_meso_bound_free)" "beta_pH(log_k_meso_bound_free)"</code></pre> +<p>To remove the ill-defined parameters, a second variant of the SFORB +model with pH influence is fitted. No ill-defined parameters remain.</p> +<div class="sourceCode" id="cb63"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">sforb_pH_2</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/stats/update.html" class="external-link">update</a></span><span class="op">(</span><span class="va">sforb_pH</span>,</span> +<span> no_random_effect <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"meso_free_0"</span>, <span class="st">"log_k_meso_free_bound"</span>, <span class="st">"log_k_meso_bound_free"</span><span class="op">)</span>,</span> +<span> covariate_models <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="va">log_k_meso_free</span> <span class="op">~</span> <span class="va">pH</span><span class="op">)</span><span class="op">)</span></span> +<span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">sforb_pH_2</span><span class="op">)</span></span></code></pre></div> +<p>The model comparison of the SFORB fits includes the refined model +without covariate effect, and both versions of the SFORB fit with +covariate effect.</p> +<div class="sourceCode" id="cb64"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/stats/anova.html" class="external-link">anova</a></span><span class="op">(</span><span class="va">f_saem_2</span><span class="op">[[</span><span class="st">"SFORB"</span>, <span class="st">"const"</span><span class="op">]</span><span class="op">]</span>, <span class="va">sforb_pH</span>, <span class="va">sforb_pH_2</span>, test <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div> +<pre><code>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</code></pre> +<p>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.</p> +<div class="sourceCode" id="cb66"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">sforb_pH_2</span><span class="op">)</span><span class="op">$</span><span class="va">confint_trans</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span>digits <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="right">est.</th> +<th align="right">lower</th> +<th align="right">upper</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">meso_free_0</td> +<td align="right">93.32</td> +<td align="right">91.16</td> +<td align="right">95.48</td> +</tr> +<tr class="even"> +<td align="left">log_k_meso_free</td> +<td align="right">-6.15</td> +<td align="right">-7.43</td> +<td align="right">-4.86</td> +</tr> +<tr class="odd"> +<td align="left">beta_pH(log_k_meso_free)</td> +<td align="right">0.54</td> +<td align="right">0.33</td> +<td align="right">0.75</td> +</tr> +<tr class="even"> +<td align="left">log_k_meso_free_bound</td> +<td align="right">-3.80</td> +<td align="right">-5.20</td> +<td align="right">-2.40</td> +</tr> +<tr class="odd"> +<td align="left">log_k_meso_bound_free</td> +<td align="right">-2.95</td> +<td align="right">-4.26</td> +<td align="right">-1.64</td> +</tr> +<tr class="even"> +<td align="left">a.1</td> +<td align="right">5.08</td> +<td align="right">4.38</td> +<td align="right">5.79</td> +</tr> +<tr class="odd"> +<td align="left">SD.log_k_meso_free</td> +<td align="right">0.33</td> +<td align="right">0.22</td> +<td align="right">0.45</td> +</tr> +</tbody> +</table> +<div class="sourceCode" id="cb67"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">sforb_pH_2</span><span class="op">)</span></span></code></pre></div> +<p><img src="2023_mesotrione_parent_files/figure-html/unnamed-chunk-25-1.png" width="700" style="display: block; margin: auto;"></p> +<div class="sourceCode" id="cb68"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">sforb_pH_2</span><span class="op">)</span></span></code></pre></div> +<pre><code>$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</code></pre> +<div class="sourceCode" id="cb70"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">sforb_pH_2</span>, covariates <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span>pH <span class="op">=</span> <span class="fl">7</span><span class="op">)</span><span class="op">)</span></span></code></pre></div> +<pre><code>$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</code></pre> +</div> +<div class="section level3"> +<h3 id="hs">HS<a class="anchor" aria-label="anchor" href="#hs"></a> +</h3> +<div class="sourceCode" id="cb72"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">hs_pH</span> <span class="op"><-</span> <span class="fu"><a href="../../reference/saem.html">saem</a></span><span class="op">(</span><span class="va">f_sep_const</span><span class="op">[</span><span class="st">"HS"</span>, <span class="op">]</span>, no_random_effect <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class="st">"meso_0"</span><span class="op">)</span>,</span> +<span> covariates <span class="op">=</span> <span class="va">pH</span>,</span> +<span> covariate_models <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="va">log_k1</span> <span class="op">~</span> <span class="va">pH</span>, <span class="va">log_k2</span> <span class="op">~</span> <span class="va">pH</span>, <span class="va">log_tb</span> <span class="op">~</span> <span class="va">pH</span><span class="op">)</span><span class="op">)</span></span></code></pre></div> +<div class="sourceCode" id="cb73"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">hs_pH</span><span class="op">)</span><span class="op">$</span><span class="va">confint_trans</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span>digits <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="right">est.</th> +<th align="right">lower</th> +<th align="right">upper</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">meso_0</td> +<td align="right">93.33</td> +<td align="right">91.47</td> +<td align="right">95.19</td> +</tr> +<tr class="even"> +<td align="left">log_k1</td> +<td align="right">-5.81</td> +<td align="right">-7.27</td> +<td align="right">-4.36</td> +</tr> +<tr class="odd"> +<td align="left">beta_pH(log_k1)</td> +<td align="right">0.47</td> +<td align="right">0.23</td> +<td align="right">0.72</td> +</tr> +<tr class="even"> +<td align="left">log_k2</td> +<td align="right">-6.80</td> +<td align="right">-8.76</td> +<td align="right">-4.83</td> +</tr> +<tr class="odd"> +<td align="left">beta_pH(log_k2)</td> +<td align="right">0.54</td> +<td align="right">0.21</td> +<td align="right">0.87</td> +</tr> +<tr class="even"> +<td align="left">log_tb</td> +<td align="right">3.25</td> +<td align="right">1.25</td> +<td align="right">5.25</td> +</tr> +<tr class="odd"> +<td align="left">beta_pH(log_tb)</td> +<td align="right">-0.10</td> +<td align="right">-0.43</td> +<td align="right">0.23</td> +</tr> +<tr class="even"> +<td align="left">a.1</td> +<td align="right">4.49</td> +<td align="right">3.78</td> +<td align="right">5.21</td> +</tr> +<tr class="odd"> +<td align="left">SD.log_k1</td> +<td align="right">0.37</td> +<td align="right">0.24</td> +<td align="right">0.51</td> +</tr> +<tr class="even"> +<td align="left">SD.log_k2</td> +<td align="right">0.29</td> +<td align="right">0.10</td> +<td align="right">0.48</td> +</tr> +<tr class="odd"> +<td align="left">SD.log_tb</td> +<td align="right">0.25</td> +<td align="right">-0.07</td> +<td align="right">0.57</td> +</tr> +</tbody> +</table> +<div class="sourceCode" id="cb74"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">hs_pH</span><span class="op">)</span></span></code></pre></div> +<pre><code>[1] "sd(log_tb)" "beta_pH(log_tb)"</code></pre> +<p>According to the output of the <code>illparms</code> function, the +random effect on the break time <code>tb</code> cannot reliably be +quantified, neither can the influence of soil pH on <code>tb</code>. The +fit is repeated without the corresponding covariate model, and no +ill-defined parameters remain.</p> +<div class="sourceCode" id="cb76"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="va">hs_pH_2</span> <span class="op"><-</span> <span class="fu"><a href="https://rdrr.io/r/stats/update.html" class="external-link">update</a></span><span class="op">(</span><span class="va">hs_pH</span>, covariate_models <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/list.html" class="external-link">list</a></span><span class="op">(</span><span class="va">log_k1</span> <span class="op">~</span> <span class="va">pH</span>, <span class="va">log_k2</span> <span class="op">~</span> <span class="va">pH</span><span class="op">)</span><span class="op">)</span></span> +<span><span class="fu"><a href="../../reference/illparms.html">illparms</a></span><span class="op">(</span><span class="va">hs_pH_2</span><span class="op">)</span></span></code></pre></div> +<p>Model comparison confirms that this model is preferable to the fit +without covariate influence, and also to the first version with +covariate influence.</p> +<div class="sourceCode" id="cb77"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/stats/anova.html" class="external-link">anova</a></span><span class="op">(</span><span class="va">f_saem_2</span><span class="op">[[</span><span class="st">"HS"</span>, <span class="st">"const"</span><span class="op">]</span><span class="op">]</span>, <span class="va">hs_pH</span>, <span class="va">hs_pH_2</span>, test <span class="op">=</span> <span class="cn">TRUE</span><span class="op">)</span></span></code></pre></div> +<pre><code>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</code></pre> +<div class="sourceCode" id="cb79"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/pkg/saemix/man/summary-methods.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">hs_pH_2</span><span class="op">)</span><span class="op">$</span><span class="va">confint_trans</span> <span class="op">|></span> <span class="fu"><a href="https://rdrr.io/pkg/knitr/man/kable.html" class="external-link">kable</a></span><span class="op">(</span>digits <span class="op">=</span> <span class="fl">2</span><span class="op">)</span></span></code></pre></div> +<table class="table"> +<thead><tr class="header"> +<th align="left"></th> +<th align="right">est.</th> +<th align="right">lower</th> +<th align="right">upper</th> +</tr></thead> +<tbody> +<tr class="odd"> +<td align="left">meso_0</td> +<td align="right">93.33</td> +<td align="right">91.50</td> +<td align="right">95.15</td> +</tr> +<tr class="even"> +<td align="left">log_k1</td> +<td align="right">-5.68</td> +<td align="right">-7.09</td> +<td align="right">-4.27</td> +</tr> +<tr class="odd"> +<td align="left">beta_pH(log_k1)</td> +<td align="right">0.46</td> +<td align="right">0.22</td> +<td align="right">0.69</td> +</tr> +<tr class="even"> +<td align="left">log_k2</td> +<td align="right">-6.61</td> +<td align="right">-8.34</td> +<td align="right">-4.88</td> +</tr> +<tr class="odd"> +<td align="left">beta_pH(log_k2)</td> +<td align="right">0.50</td> +<td align="right">0.21</td> +<td align="right">0.79</td> +</tr> +<tr class="even"> +<td align="left">log_tb</td> +<td align="right">2.70</td> +<td align="right">2.33</td> +<td align="right">3.08</td> +</tr> +<tr class="odd"> +<td align="left">a.1</td> +<td align="right">4.45</td> +<td align="right">3.74</td> +<td align="right">5.16</td> +</tr> +<tr class="even"> +<td align="left">SD.log_k1</td> +<td align="right">0.36</td> +<td align="right">0.22</td> +<td align="right">0.49</td> +</tr> +<tr class="odd"> +<td align="left">SD.log_k2</td> +<td align="right">0.23</td> +<td align="right">0.02</td> +<td align="right">0.43</td> +</tr> +<tr class="even"> +<td align="left">SD.log_tb</td> +<td align="right">0.55</td> +<td align="right">0.25</td> +<td align="right">0.85</td> +</tr> +</tbody> +</table> +<div class="sourceCode" id="cb80"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/base/plot.html" class="external-link">plot</a></span><span class="op">(</span><span class="va">hs_pH_2</span><span class="op">)</span></span></code></pre></div> +<p><img src="2023_mesotrione_parent_files/figure-html/unnamed-chunk-30-1.png" width="700" style="display: block; margin: auto;"></p> +<div class="sourceCode" id="cb81"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">hs_pH_2</span><span class="op">)</span></span></code></pre></div> +<pre><code>$covariates + pH +50% 5.75 + +$distimes + DT50 DT90 DT50back DT50_k1 DT50_k2 +meso 14.68725 82.45287 24.82079 14.68725 29.29299</code></pre> +<div class="sourceCode" id="cb83"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">hs_pH_2</span>, covariates <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span>pH <span class="op">=</span> <span class="fl">7</span><span class="op">)</span><span class="op">)</span></span></code></pre></div> +<pre><code>$covariates + pH +User 7 + +$distimes + DT50 DT90 DT50back DT50_k1 DT50_k2 +meso 8.298536 38.85371 11.69613 8.298536 15.71561</code></pre> +</div> +<div class="section level3"> +<h3 id="comparison-across-parent-models">Comparison across parent models<a class="anchor" aria-label="anchor" href="#comparison-across-parent-models"></a> +</h3> +<p>After model reduction for all models with pH influence, they are +compared with each other.</p> +<div class="sourceCode" id="cb85"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="https://rdrr.io/r/stats/anova.html" class="external-link">anova</a></span><span class="op">(</span><span class="va">sfo_pH</span>, <span class="va">fomc_pH_2</span>, <span class="va">dfop_pH_2</span>, <span class="va">dfop_pH_4</span>, <span class="va">sforb_pH_2</span>, <span class="va">hs_pH_2</span><span class="op">)</span></span></code></pre></div> +<pre><code>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</code></pre> +<p>The DFOP model with pH influence on <code>k2</code> and +<code>g</code> and a random effect only on <code>k2</code> is finally +selected as the best fit.</p> +<p>The endpoints resulting from this model are listed below. Please +refer to the Appendix for a detailed listing.</p> +<div class="sourceCode" id="cb87"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">dfop_pH_2</span><span class="op">)</span></span></code></pre></div> +<pre><code>$covariates + pH +50% 5.75 + +$distimes + DT50 DT90 DT50back DT50_k1 DT50_k2 +meso 18.36876 73.51841 22.13125 4.191901 23.98672</code></pre> +<div class="sourceCode" id="cb89"><pre class="downlit sourceCode r"> +<code class="sourceCode R"><span><span class="fu"><a href="../../reference/endpoints.html">endpoints</a></span><span class="op">(</span><span class="va">dfop_pH_2</span>, covariates <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span>pH <span class="op">=</span> <span class="fl">7</span><span class="op">)</span><span class="op">)</span></span></code></pre></div> +<pre><code>$covariates + pH +User 7 + +$distimes + DT50 DT90 DT50back DT50_k1 DT50_k2 +meso 8.346428 28.34437 8.532507 4.191901 8.753618</code></pre> +</div> +</div> +<div class="section level2"> +<h2 id="conclusions">Conclusions<a class="anchor" aria-label="anchor" href="#conclusions"></a> +</h2> +<p>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.</p> +</div> +<div class="section level2"> +<h2 id="appendix">Appendix<a class="anchor" aria-label="anchor" href="#appendix"></a> +</h2> +<div class="section level3"> +<h3 id="hierarchical-fit-listings">Hierarchical fit listings<a class="anchor" aria-label="anchor" href="#hierarchical-fit-listings"></a> +</h3> +<div class="section level4"> +<h4 id="fits-without-covariate-effects">Fits without covariate effects<a class="anchor" aria-label="anchor" href="#fits-without-covariate-effects"></a> +</h4> + +</div> +<div class="section level4"> +<h4 id="fits-with-covariate-effects">Fits with covariate effects<a class="anchor" aria-label="anchor" href="#fits-with-covariate-effects"></a> +</h4> + +</div> +</div> +<div class="section level3"> +<h3 id="session-info">Session info<a class="anchor" aria-label="anchor" href="#session-info"></a> +</h3> +<pre><code>R version 4.3.1 (2023-06-16) +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/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] saemix_3.2 npde_3.3 knitr_1.43 mkin_1.2.5 + +loaded via a namespace (and not attached): + [1] sass_0.4.6 utf8_1.2.3 generics_0.1.3 stringi_1.7.12 + [5] lattice_0.20-45 digest_0.6.31 magrittr_2.0.3 evaluate_0.21 + [9] grid_4.3.1 fastmap_1.1.1 cellranger_1.1.0 rprojroot_2.0.3 +[13] jsonlite_1.8.5 mclust_6.0.0 gridExtra_2.3 purrr_1.0.1 +[17] fansi_1.0.4 scales_1.2.1 codetools_0.2-19 textshaping_0.3.6 +[21] jquerylib_0.1.4 cli_3.6.1 rlang_1.1.1 munsell_0.5.0 +[25] cachem_1.0.8 yaml_2.3.7 tools_4.3.1 memoise_2.0.1 +[29] dplyr_1.1.2 colorspace_2.1-0 ggplot2_3.4.2 vctrs_0.6.2 +[33] R6_2.5.1 zoo_1.8-12 lifecycle_1.0.3 stringr_1.5.0 +[37] fs_1.6.2 ragg_1.2.5 pkgconfig_2.0.3 desc_1.4.2 +[41] pkgdown_2.0.7 bslib_0.4.2 pillar_1.9.0 gtable_0.3.3 +[45] glue_1.6.2 systemfonts_1.0.4 highr_0.10 xfun_0.39 +[49] tibble_3.2.1 lmtest_0.9-40 tidyselect_1.2.0 htmltools_0.5.5 +[53] nlme_3.1-162 rmarkdown_2.22 compiler_4.3.1 readxl_1.4.2 </code></pre> +</div> +<div class="section level3"> +<h3 id="hardware-info">Hardware info<a class="anchor" aria-label="anchor" href="#hardware-info"></a> +</h3> +<pre><code>CPU model: Intel(R) Core(TM) i7-4710MQ CPU @ 2.50GHz</code></pre> +<pre><code>MemTotal: 12165632 kB</code></pre> +</div> +</div> + </div> + + <div class="col-md-3 hidden-xs hidden-sm" id="pkgdown-sidebar"> + + <nav id="toc" data-toggle="toc"><h2 data-toc-skip>Contents</h2> + </nav> +</div> + +</div> + + + + <footer><div class="copyright"> + <p></p> +<p>Developed by Johannes Ranke.</p> +</div> + +<div class="pkgdown"> + <p></p> +<p>Site built with <a href="https://pkgdown.r-lib.org/" class="external-link">pkgdown</a> 2.0.7.</p> +</div> + + </footer> +</div> + + + + + + + </body> +</html> diff --git a/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-14-1.png b/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-14-1.png Binary files differnew file mode 100644 index 00000000..863a48bd --- /dev/null +++ b/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-14-1.png diff --git a/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-19-1.png b/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-19-1.png Binary files differnew file mode 100644 index 00000000..256b2b68 --- /dev/null +++ b/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-19-1.png diff --git a/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-25-1.png b/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-25-1.png Binary files differnew file mode 100644 index 00000000..59011020 --- /dev/null +++ b/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-25-1.png diff --git a/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-30-1.png b/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-30-1.png Binary files differnew file mode 100644 index 00000000..f427bc39 --- /dev/null +++ b/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-30-1.png diff --git a/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-8-1.png b/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-8-1.png Binary files differnew file mode 100644 index 00000000..7c3b460b --- /dev/null +++ b/docs/articles/prebuilt/2023_mesotrione_parent_files/figure-html/unnamed-chunk-8-1.png diff --git a/docs/authors.html b/docs/authors.html index 313c86e9..8b91ee77 100644 --- a/docs/authors.html +++ b/docs/authors.html @@ -17,7 +17,7 @@ </button> <span class="navbar-brand"> <a class="navbar-link" href="index.html">mkin</a> - <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.4</span> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> </span> </div> @@ -132,13 +132,13 @@ <p>Ranke J (2023). <em>mkin: Kinetic Evaluation of Chemical Degradation Data</em>. -R package version 1.2.4, <a href="https://pkgdown.jrwb.de/mkin/">https://pkgdown.jrwb.de/mkin/</a>. +R package version 1.2.5, <a href="https://pkgdown.jrwb.de/mkin/">https://pkgdown.jrwb.de/mkin/</a>. </p> <pre>@Manual{, title = {mkin: Kinetic Evaluation of Chemical Degradation Data}, author = {Johannes Ranke}, year = {2023}, - note = {R package version 1.2.4}, + note = {R package version 1.2.5}, url = {https://pkgdown.jrwb.de/mkin/}, }</pre> diff --git a/docs/index.html b/docs/index.html index 06cdfdfb..79716087 100644 --- a/docs/index.html +++ b/docs/index.html @@ -44,7 +44,7 @@ </button> <span class="navbar-brand"> <a class="navbar-link" href="index.html">mkin</a> - <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.4</span> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> </span> </div> diff --git a/docs/news/index.html b/docs/news/index.html index 16fce355..7f7c0a6d 100644 --- a/docs/news/index.html +++ b/docs/news/index.html @@ -17,7 +17,7 @@ </button> <span class="navbar-brand"> <a class="navbar-link" href="../index.html">mkin</a> - <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.4</span> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> </span> </div> @@ -105,6 +105,12 @@ </div> <div class="section level2"> +<h2 class="page-header" data-toc-text="1.2.5" id="mkin-125">mkin 1.2.5<a class="anchor" aria-label="anchor" href="#mkin-125"></a></h2> +<ul><li><p>‘vignettes/mesotrione_parent_2023.rnw’: Prebuilt vignette showing how covariate modelling can be done for all relevant parent degradation models.</p></li> +<li><p>‘inst/testdata/mesotrione_soil_efsa_2016}.xlsx’: Another example spreadsheets for use with ‘read_spreadsheet()’, featuring pH dependent degradation</p></li> +<li><p>R/illparms.R: Fix the detection of ill-defined slope or error model parameters for the case that the estimate is negative</p></li> +</ul></div> + <div class="section level2"> <h2 class="page-header" data-toc-text="1.2.4" id="mkin-124">mkin 1.2.4<a class="anchor" aria-label="anchor" href="#mkin-124"></a></h2> <ul><li>R/endpoints.R: Fix the calculation of endpoints for user specified covariate values</li> </ul></div> diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml index fdcd875b..65d77082 100644 --- a/docs/pkgdown.yml +++ b/docs/pkgdown.yml @@ -8,6 +8,7 @@ articles: 2022_cyan_pathway: prebuilt/2022_cyan_pathway.html 2022_dmta_parent: prebuilt/2022_dmta_parent.html 2022_dmta_pathway: prebuilt/2022_dmta_pathway.html + 2023_mesotrione_parent: prebuilt/2023_mesotrione_parent.html twa: twa.html FOCUS_Z: web_only/FOCUS_Z.html NAFTA_examples: web_only/NAFTA_examples.html @@ -16,7 +17,7 @@ articles: dimethenamid_2018: web_only/dimethenamid_2018.html multistart: web_only/multistart.html saem_benchmarks: web_only/saem_benchmarks.html -last_built: 2023-05-19T09:04Z +last_built: 2023-08-09T15:42Z urls: reference: https://pkgdown.jrwb.de/mkin/reference article: https://pkgdown.jrwb.de/mkin/articles diff --git a/docs/reference/D24_2014.html b/docs/reference/D24_2014.html index fcc3cec3..1e35e864 100644 --- a/docs/reference/D24_2014.html +++ b/docs/reference/D24_2014.html @@ -22,7 +22,7 @@ constrained by data protection regulations."><!-- mathjax --><script src="https: </button> <span class="navbar-brand"> <a class="navbar-link" href="../index.html">mkin</a> - <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.4</span> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> </span> </div> diff --git a/docs/reference/Rplot001.png b/docs/reference/Rplot001.png Binary files differindex 5de2bdc7..fa2316b9 100644 --- a/docs/reference/Rplot001.png +++ b/docs/reference/Rplot001.png diff --git a/docs/reference/Rplot002.png b/docs/reference/Rplot002.png Binary files differindex 556ca0a7..fa2316b9 100644 --- a/docs/reference/Rplot002.png +++ b/docs/reference/Rplot002.png diff --git a/docs/reference/Rplot003.png b/docs/reference/Rplot003.png Binary files differindex 30cf38f3..fa2316b9 100644 --- a/docs/reference/Rplot003.png +++ b/docs/reference/Rplot003.png diff --git a/docs/reference/dimethenamid_2018.html b/docs/reference/dimethenamid_2018.html index a1c800e8..961b28d2 100644 --- a/docs/reference/dimethenamid_2018.html +++ b/docs/reference/dimethenamid_2018.html @@ -22,7 +22,7 @@ constrained by data protection regulations."><!-- mathjax --><script src="https: </button> <span class="navbar-brand"> <a class="navbar-link" href="../index.html">mkin</a> - <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.4</span> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> </span> </div> @@ -222,10 +222,10 @@ specific pieces of information in the comments.</p> <span class="r-in"><span><span class="co">#saemix::plot(f_dmta_saem_tc$so, plot.type = "convergence")</span></span></span> <span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/base/summary.html" class="external-link">summary</a></span><span class="op">(</span><span class="va">f_dmta_saem_tc</span><span class="op">)</span></span></span> <span class="r-out co"><span class="r-pr">#></span> saemix version used for fitting: 3.2 </span> -<span class="r-out co"><span class="r-pr">#></span> mkin version used for pre-fitting: 1.2.4 </span> -<span class="r-out co"><span class="r-pr">#></span> R version used for fitting: 4.3.0 </span> -<span class="r-out co"><span class="r-pr">#></span> Date of fit: Fri May 19 09:15:21 2023 </span> -<span class="r-out co"><span class="r-pr">#></span> Date of summary: Fri May 19 09:15:21 2023 </span> +<span class="r-out co"><span class="r-pr">#></span> mkin version used for pre-fitting: 1.2.5 </span> +<span class="r-out co"><span class="r-pr">#></span> R version used for fitting: 4.3.1 </span> +<span class="r-out co"><span class="r-pr">#></span> Date of fit: Wed Aug 9 17:55:36 2023 </span> +<span class="r-out co"><span class="r-pr">#></span> Date of summary: Wed Aug 9 17:55:36 2023 </span> <span class="r-out co"><span class="r-pr">#></span> </span> <span class="r-out co"><span class="r-pr">#></span> Equations:</span> <span class="r-out co"><span class="r-pr">#></span> d_DMTA/dt = - k_DMTA * DMTA</span> @@ -238,7 +238,7 @@ specific pieces of information in the comments.</p> <span class="r-out co"><span class="r-pr">#></span> </span> <span class="r-out co"><span class="r-pr">#></span> Model predictions using solution type deSolve </span> <span class="r-out co"><span class="r-pr">#></span> </span> -<span class="r-out co"><span class="r-pr">#></span> Fitted in 282.941 s</span> +<span class="r-out co"><span class="r-pr">#></span> Fitted in 796.123 s</span> <span class="r-out co"><span class="r-pr">#></span> Using 300, 100 iterations and 9 chains</span> <span class="r-out co"><span class="r-pr">#></span> </span> <span class="r-out co"><span class="r-pr">#></span> Variance model: Two-component variance function </span> diff --git a/docs/reference/index.html b/docs/reference/index.html index 4d59b3ab..a0d9e12b 100644 --- a/docs/reference/index.html +++ b/docs/reference/index.html @@ -17,7 +17,7 @@ </button> <span class="navbar-brand"> <a class="navbar-link" href="../index.html">mkin</a> - <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.4</span> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> </span> </div> diff --git a/docs/reference/read_spreadsheet.html b/docs/reference/read_spreadsheet.html index 4d1aa706..7603cee2 100644 --- a/docs/reference/read_spreadsheet.html +++ b/docs/reference/read_spreadsheet.html @@ -22,7 +22,7 @@ factors can be given in columns named 'Temperature' and 'Moisture'."><!-- mathja </button> <span class="navbar-brand"> <a class="navbar-link" href="../index.html">mkin</a> - <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.4</span> + <span class="version label label-default" data-toggle="tooltip" data-placement="bottom" title="Released version">1.2.5</span> </span> </div> @@ -154,7 +154,7 @@ and moisture normalisation factors in the sheet 'Datasets'?</p></dd> The first row read after the header read in from this sheet is assumed to contain name and acronym of the parent compound.</p> <p>The dataset sheets should be named using the dataset numbers read in from -the 'Datasets' sheet, i.e. '1', '2', ... . In each dataset sheet, name +the 'Datasets' sheet, i.e. '1', '2', ... . In each dataset sheet, the name of the observed variable (e.g. the acronym of the parent compound or one of its transformation products) should be in the first column, the time values should be in the second colum, and the observed value @@ -166,7 +166,7 @@ column and the column must have the same name as the second column in 'Datasets'. Covariates will be read in from columns four and higher. Their names should preferably not contain special characters like spaces, so they can be easily used for specifying covariate models.</p> -<p>An similar data structure is defined as the R6 class <a href="mkindsg.html">mkindsg</a>, but +<p>A similar data structure is defined as the R6 class <a href="mkindsg.html">mkindsg</a>, but is probably more complicated to use.</p> </div> diff --git a/docs/sitemap.xml b/docs/sitemap.xml index f1b20197..9a84d4c0 100644 --- a/docs/sitemap.xml +++ b/docs/sitemap.xml @@ -25,6 +25,9 @@ <loc>https://pkgdown.jrwb.de/mkin/articles/prebuilt/2022_dmta_pathway.html</loc> </url> <url> + <loc>https://pkgdown.jrwb.de/mkin/articles/prebuilt/2023_mesotrione_parent.html</loc> + </url> + <url> <loc>https://pkgdown.jrwb.de/mkin/articles/twa.html</loc> </url> <url> diff --git a/inst/testdata/mesotrione_soil_efsa_2016.xlsx b/inst/testdata/mesotrione_soil_efsa_2016.xlsx Binary files differnew file mode 100644 index 00000000..fa9ee7ae --- /dev/null +++ b/inst/testdata/mesotrione_soil_efsa_2016.xlsx diff --git a/log/build.log b/log/build.log index 30c5e432..717128fd 100644 --- a/log/build.log +++ b/log/build.log @@ -6,5 +6,5 @@ * checking for LF line-endings in source and make files and shell scripts * checking for empty or unneeded directories Removed empty directory ‘mkin/vignettes/web_only’ -* building ‘mkin_1.2.4.tar.gz’ +* building ‘mkin_1.2.5.tar.gz’ diff --git a/log/check.log b/log/check.log index 970fbc7a..64457e57 100644 --- a/log/check.log +++ b/log/check.log @@ -1,17 +1,17 @@ -* using log directory ‘/home/jranke/git/mkin/mkin.Rcheck’ -* using R version 4.3.0 Patched (2023-05-18 r84448) +* using log directory ‘/home/agsad.admin.ch/f80868656/projects/mkin/mkin.Rcheck’ +* using R version 4.3.1 (2023-06-16) * using platform: x86_64-pc-linux-gnu (64-bit) * R was compiled by - gcc (Debian 12.2.0-14) 12.2.0 - GNU Fortran (Debian 12.2.0-14) 12.2.0 -* running under: Debian GNU/Linux 12 (bookworm) + gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 + GNU Fortran (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0 +* running under: Ubuntu 22.04.3 LTS * using session charset: UTF-8 * using options ‘--no-tests --as-cran’ * checking for file ‘mkin/DESCRIPTION’ ... OK * checking extension type ... Package -* this is package ‘mkin’ version ‘1.2.4’ +* this is package ‘mkin’ version ‘1.2.5’ * package encoding: UTF-8 -* checking CRAN incoming feasibility ... [2s/10s] Note_to_CRAN_maintainers +* checking CRAN incoming feasibility ... [5s/26s] Note_to_CRAN_maintainers Maintainer: ‘Johannes Ranke <johannes.ranke@jrwb.de>’ * checking package namespace information ... OK * checking package dependencies ... OK @@ -45,7 +45,7 @@ Maintainer: ‘Johannes Ranke <johannes.ranke@jrwb.de>’ * checking S3 generic/method consistency ... OK * checking replacement functions ... OK * checking foreign function calls ... OK -* checking R code for possible problems ... OK +* checking R code for possible problems ... [14s/15s] OK * checking Rd files ... OK * checking Rd metadata ... OK * checking Rd line widths ... OK @@ -62,17 +62,22 @@ Maintainer: ‘Johannes Ranke <johannes.ranke@jrwb.de>’ * checking sizes of PDF files under ‘inst/doc’ ... OK * checking installed files from ‘inst/doc’ ... OK * checking files in ‘vignettes’ ... OK -* checking examples ... OK +* checking examples ... [20s/22s] OK * checking for unstated dependencies in ‘tests’ ... OK * checking tests ... SKIPPED * checking for unstated dependencies in vignettes ... OK * checking package vignettes in ‘inst/doc’ ... OK -* checking re-building of vignette outputs ... OK +* checking re-building of vignette outputs ... [17s/18s] OK * checking PDF version of manual ... OK -* checking HTML version of manual ... OK +* checking HTML version of manual ... NOTE +Skipping checking HTML validation: no command 'tidy' found * checking for non-standard things in the check directory ... OK * checking for detritus in the temp directory ... OK * DONE -Status: OK +Status: 1 NOTE +See + ‘/home/agsad.admin.ch/f80868656/projects/mkin/mkin.Rcheck/00check.log’ +for details. + diff --git a/log/test.log b/log/test.log index b1b4ae31..c872cb1d 100644 --- a/log/test.log +++ b/log/test.log @@ -1,62 +1,50 @@ ℹ Testing mkin ✔ | F W S OK | Context ✔ | 5 | AIC calculation -✔ | 5 | Analytical solutions for coupled models [1.5s] +✔ | 5 | Analytical solutions for coupled models [3.1s] ✔ | 5 | Calculation of Akaike weights ✔ | 3 | Export dataset for reading into CAKE -✔ | 6 | Use of precompiled symbols in mkinpredict [3.1s] -✔ | 12 | Confidence intervals and p-values [0.4s] -✔ | 1 12 | Dimethenamid data from 2018 [12.5s] -──────────────────────────────────────────────────────────────────────────────── -Skip ('test_dmta.R:88:3'): Different backends get consistent results for SFO-SFO3+, dimethenamid data -Reason: Fitting this ODE model with saemix takes about 15 minutes on my system -──────────────────────────────────────────────────────────────────────────────── -✔ | 14 | Error model fitting [2.3s] +✔ | 6 | Use of precompiled symbols in mkinpredict [5.3s] +✔ | 12 | Confidence intervals and p-values +✔ | 1 12 | Dimethenamid data from 2018 [31.5s] +✔ | 14 | Error model fitting [5.6s] ✔ | 5 | Time step normalisation -✔ | 4 | Calculation of FOCUS chi2 error levels [0.3s] -✔ | 14 | Results for FOCUS D established in expertise for UBA (Ranke 2014) [0.4s] -✔ | 4 | Test fitting the decline of metabolites from their maximum [0.2s] -✔ | 1 | Fitting the logistic model [0.1s] -✔ | 10 | Batch fitting and diagnosing hierarchical kinetic models [18.9s] -✔ | 2 16 | Nonlinear mixed-effects models [148.4s] -──────────────────────────────────────────────────────────────────────────────── -Skip ('test_mixed.R:80:3'): saemix results are reproducible for biphasic fits -Reason: Fitting with saemix takes around 10 minutes when using deSolve - -Skip ('test_mixed.R:133:3'): SFO-SFO saemix specific analytical solution work -Reason: This is seldom used, so save some time -──────────────────────────────────────────────────────────────────────────────── +✔ | 4 | Calculation of FOCUS chi2 error levels +✔ | 14 | Results for FOCUS D established in expertise for UBA (Ranke 2014) +✔ | 4 | Test fitting the decline of metabolites from their maximum +✔ | 1 | Fitting the logistic model +✔ | 10 | Batch fitting and diagnosing hierarchical kinetic models [43.1s] +✔ | 2 16 | Nonlinear mixed-effects models [441.3s] ✔ | 3 | Test dataset classes mkinds and mkindsg -✔ | 10 | Special cases of mkinfit calls [0.3s] -✔ | 3 | mkinfit features [0.5s] +✔ | 10 | Special cases of mkinfit calls +✔ | 3 | mkinfit features ✔ | 8 | mkinmod model generation and printing -✔ | 3 | Model predictions with mkinpredict [0.1s] -✔ | 12 | Multistart method for saem.mmkin models [23.3s] -✔ | 16 | Evaluations according to 2015 NAFTA guidance [1.5s] -✔ | 9 | Nonlinear mixed-effects models with nlme [3.5s] -✔ | 15 | Plotting [4.5s] +✔ | 3 | Model predictions with mkinpredict +✔ | 12 | Multistart method for saem.mmkin models [71.6s] +✔ | 16 | Evaluations according to 2015 NAFTA guidance [2.7s] +✔ | 9 | Nonlinear mixed-effects models with nlme [10.1s] +✔ | 15 | Plotting [12.1s] ✔ | 4 | Residuals extracted from mkinfit models -✔ | 1 36 | saemix parent models [30.7s] -──────────────────────────────────────────────────────────────────────────────── -Skip ('test_saemix_parent.R:143:3'): We can also use mkin solution methods for saem -Reason: This still takes almost 2.5 minutes although we do not solve ODEs -──────────────────────────────────────────────────────────────────────────────── -✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [0.5s] +✔ | 1 36 | saemix parent models [81.8s] +✔ | 2 | Complex test case from Schaefer et al. (2007) Piacenza paper [1.5s] ✔ | 11 | Processing of residue series -✔ | 10 | Fitting the SFORB model [1.7s] +✔ | 10 | Fitting the SFORB model [3.8s] ✔ | 1 | Summaries of old mkinfit objects ✔ | 5 | Summary -✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [0.8s] -✔ | 9 | Hypothesis tests [2.9s] -✔ | 4 | Calculation of maximum time weighted average concentrations (TWAs) [0.7s] +✔ | 4 | Results for synthetic data established in expertise for UBA (Ranke 2014) [2.1s] +✔ | 9 | Hypothesis tests [7.3s] +✔ | 4 | Calculation of maximum time weighted average concentrations (TWAs) [1.5s] ══ Results ═════════════════════════════════════════════════════════════════════ -Duration: 259.6 s +Duration: 731.0 s -── Skipped tests ────────────────────────────────────────────────────────────── -• Fitting this ODE model with saemix takes about 15 minutes on my system (1) -• Fitting with saemix takes around 10 minutes when using deSolve (1) -• This is seldom used, so save some time (1) -• This still takes almost 2.5 minutes although we do not solve ODEs (1) +── Skipped tests (4) ─────────────────────────────────────────────────────────── +• Fitting this ODE model with saemix takes about 15 minutes on my system (1): + 'test_dmta.R:88:3' +• Fitting with saemix takes around 10 minutes when using deSolve (1): + 'test_mixed.R:80:3' +• This is seldom used, so save some time (1): 'test_mixed.R:133:3' +• This still takes almost 2.5 minutes although we do not solve ODEs (1): + 'test_saemix_parent.R:143:3' [ FAIL 0 | WARN 0 | SKIP 4 | PASS 281 ] diff --git a/man/read_spreadsheet.Rd b/man/read_spreadsheet.Rd index 41c32108..eefda692 100644 --- a/man/read_spreadsheet.Rd +++ b/man/read_spreadsheet.Rd @@ -36,7 +36,7 @@ The first row read after the header read in from this sheet is assumed to contain name and acronym of the parent compound. The dataset sheets should be named using the dataset numbers read in from -the 'Datasets' sheet, i.e. '1', '2', ... . In each dataset sheet, name +the 'Datasets' sheet, i.e. '1', '2', ... . In each dataset sheet, the name of the observed variable (e.g. the acronym of the parent compound or one of its transformation products) should be in the first column, the time values should be in the second colum, and the observed value @@ -50,6 +50,6 @@ column and the column must have the same name as the second column in Their names should preferably not contain special characters like spaces, so they can be easily used for specifying covariate models. -An similar data structure is defined as the R6 class \link{mkindsg}, but +A similar data structure is defined as the R6 class \link{mkindsg}, but is probably more complicated to use. } diff --git a/mkin.Rproj b/mkin.Rproj new file mode 100644 index 00000000..beb8549b --- /dev/null +++ b/mkin.Rproj @@ -0,0 +1,25 @@ +Version: 1.0 + +RestoreWorkspace: No +SaveWorkspace: No +AlwaysSaveHistory: No + +EnableCodeIndexing: Yes +UseSpacesForTab: Yes +NumSpacesForTab: 2 +Encoding: UTF-8 + +RnwWeave: knitr +LaTeX: pdfLaTeX + +AutoAppendNewline: Yes +StripTrailingWhitespace: Yes + +BuildType: Makefile + +UseNativePipeOperator: Yes + +MarkdownWrap: Column +MarkdownWrapAtColumn: 80 + +SpellingDictionary: en_GB diff --git a/tests/testthat/_snaps/multistart/llhist-for-dfop-sfo-fit.svg b/tests/testthat/_snaps/multistart/llhist-for-dfop-sfo-fit.svg index 6015aed8..3b9d51fb 100644 --- a/tests/testthat/_snaps/multistart/llhist-for-dfop-sfo-fit.svg +++ b/tests/testthat/_snaps/multistart/llhist-for-dfop-sfo-fit.svg @@ -21,28 +21,26 @@ <text transform='translate(12.96,280.80) rotate(-90)' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='148.77px' lengthAdjust='spacingAndGlyphs'>Frequency of log likelihoods</text> <line x1='82.40' y1='502.56' x2='666.40' y2='502.56' style='stroke-width: 0.75;' /> <line x1='82.40' y1='502.56' x2='82.40' y2='509.76' style='stroke-width: 0.75;' /> -<line x1='199.20' y1='502.56' x2='199.20' y2='509.76' style='stroke-width: 0.75;' /> -<line x1='316.00' y1='502.56' x2='316.00' y2='509.76' style='stroke-width: 0.75;' /> -<line x1='432.80' y1='502.56' x2='432.80' y2='509.76' style='stroke-width: 0.75;' /> -<line x1='549.60' y1='502.56' x2='549.60' y2='509.76' style='stroke-width: 0.75;' /> +<line x1='179.73' y1='502.56' x2='179.73' y2='509.76' style='stroke-width: 0.75;' /> +<line x1='277.07' y1='502.56' x2='277.07' y2='509.76' style='stroke-width: 0.75;' /> +<line x1='374.40' y1='502.56' x2='374.40' y2='509.76' style='stroke-width: 0.75;' /> +<line x1='471.73' y1='502.56' x2='471.73' y2='509.76' style='stroke-width: 0.75;' /> +<line x1='569.07' y1='502.56' x2='569.07' y2='509.76' style='stroke-width: 0.75;' /> <line x1='666.40' y1='502.56' x2='666.40' y2='509.76' style='stroke-width: 0.75;' /> -<text x='82.40' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='40.70px' lengthAdjust='spacingAndGlyphs'>-1149.5</text> -<text x='199.20' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='40.70px' lengthAdjust='spacingAndGlyphs'>-1149.4</text> -<text x='316.00' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='40.70px' lengthAdjust='spacingAndGlyphs'>-1149.3</text> -<text x='432.80' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='40.70px' lengthAdjust='spacingAndGlyphs'>-1149.2</text> -<text x='549.60' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='40.70px' lengthAdjust='spacingAndGlyphs'>-1149.1</text> -<text x='666.40' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='40.70px' lengthAdjust='spacingAndGlyphs'>-1149.0</text> +<text x='82.40' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='47.38px' lengthAdjust='spacingAndGlyphs'>-1149.30</text> +<text x='179.73' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='47.38px' lengthAdjust='spacingAndGlyphs'>-1149.25</text> +<text x='277.07' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='47.38px' lengthAdjust='spacingAndGlyphs'>-1149.20</text> +<text x='374.40' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='47.38px' lengthAdjust='spacingAndGlyphs'>-1149.15</text> +<text x='471.73' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='47.38px' lengthAdjust='spacingAndGlyphs'>-1149.10</text> +<text x='569.07' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='47.38px' lengthAdjust='spacingAndGlyphs'>-1149.05</text> +<text x='666.40' y='528.48' text-anchor='middle' style='font-size: 12.00px; font-family: sans;' textLength='47.38px' lengthAdjust='spacingAndGlyphs'>-1149.00</text> <line x1='59.04' y1='486.13' x2='59.04' y2='75.47' style='stroke-width: 0.75;' /> <line x1='59.04' y1='486.13' x2='51.84' y2='486.13' style='stroke-width: 0.75;' /> -<line x1='59.04' y1='383.47' x2='51.84' y2='383.47' style='stroke-width: 0.75;' /> <line x1='59.04' y1='280.80' x2='51.84' y2='280.80' style='stroke-width: 0.75;' /> -<line x1='59.04' y1='178.13' x2='51.84' y2='178.13' style='stroke-width: 0.75;' /> <line x1='59.04' y1='75.47' x2='51.84' y2='75.47' style='stroke-width: 0.75;' /> <text x='44.64' y='490.26' text-anchor='end' style='font-size: 12.00px; font-family: sans;' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>0</text> -<text x='44.64' y='387.60' text-anchor='end' style='font-size: 12.00px; font-family: sans;' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>1</text> -<text x='44.64' y='284.93' text-anchor='end' style='font-size: 12.00px; font-family: sans;' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>2</text> -<text x='44.64' y='182.26' text-anchor='end' style='font-size: 12.00px; font-family: sans;' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>3</text> -<text x='44.64' y='79.60' text-anchor='end' style='font-size: 12.00px; font-family: sans;' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>4</text> +<text x='44.64' y='284.93' text-anchor='end' style='font-size: 12.00px; font-family: sans;' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>1</text> +<text x='44.64' y='79.60' text-anchor='end' style='font-size: 12.00px; font-family: sans;' textLength='6.67px' lengthAdjust='spacingAndGlyphs'>2</text> </g> <defs> <clipPath id='cpNTkuMDR8Njg5Ljc2fDU5LjA0fDUwMi41Ng=='> @@ -50,12 +48,13 @@ </clipPath> </defs> <g clip-path='url(#cpNTkuMDR8Njg5Ljc2fDU5LjA0fDUwMi41Ng==)'> -<rect x='82.40' y='383.47' width='116.80' height='102.67' style='stroke-width: 0.75; fill: #D3D3D3;' /> -<rect x='199.20' y='486.13' width='116.80' height='0.00' style='stroke-width: 0.75; fill: #D3D3D3;' /> -<rect x='316.00' y='486.13' width='116.80' height='0.00' style='stroke-width: 0.75; fill: #D3D3D3;' /> -<rect x='432.80' y='178.13' width='116.80' height='308.00' style='stroke-width: 0.75; fill: #D3D3D3;' /> -<rect x='549.60' y='75.47' width='116.80' height='410.67' style='stroke-width: 0.75; fill: #D3D3D3;' /> -<line x1='624.24' y1='502.56' x2='624.24' y2='59.04' style='stroke-width: 0.75; stroke: #DF536B;' /> +<rect x='82.40' y='280.80' width='97.33' height='205.33' style='stroke-width: 0.75; fill: #D3D3D3;' /> +<rect x='179.73' y='280.80' width='97.33' height='205.33' style='stroke-width: 0.75; fill: #D3D3D3;' /> +<rect x='277.07' y='280.80' width='97.33' height='205.33' style='stroke-width: 0.75; fill: #D3D3D3;' /> +<rect x='374.40' y='75.47' width='97.33' height='410.67' style='stroke-width: 0.75; fill: #D3D3D3;' /> +<rect x='471.73' y='75.47' width='97.33' height='410.67' style='stroke-width: 0.75; fill: #D3D3D3;' /> +<rect x='569.07' y='280.80' width='97.33' height='205.33' style='stroke-width: 0.75; fill: #D3D3D3;' /> +<line x1='596.13' y1='502.56' x2='596.13' y2='59.04' style='stroke-width: 0.75; stroke: #DF536B;' /> <line x1='101.38' y1='95.62' x2='122.98' y2='95.62' style='stroke-width: 0.75; stroke: #DF536B;' /> <text x='133.78' y='99.75' style='font-size: 12.00px; font-family: sans;' textLength='51.35px' lengthAdjust='spacingAndGlyphs'>original fit</text> </g> diff --git a/tests/testthat/_snaps/multistart/mixed-model-fit-for-saem-object-with-mkin-transformations.svg b/tests/testthat/_snaps/multistart/mixed-model-fit-for-saem-object-with-mkin-transformations.svg index 69fa6a4d..5e534dd1 100644 --- a/tests/testthat/_snaps/multistart/mixed-model-fit-for-saem-object-with-mkin-transformations.svg +++ b/tests/testthat/_snaps/multistart/mixed-model-fit-for-saem-object-with-mkin-transformations.svg @@ -249,7 +249,7 @@ <line x1='327.11' y1='273.11' x2='330.67' y2='276.67' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='327.11' y1='274.54' x2='330.67' y2='270.97' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='327.11' y1='270.97' x2='330.67' y2='274.54' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<polyline points='50.12,111.21 52.44,119.52 55.81,130.70 57.09,134.71 61.50,147.53 66.38,160.14 67.19,162.08 72.87,174.70 78.56,185.68 82.64,192.67 84.25,195.25 89.94,203.63 95.63,210.97 101.32,217.44 107.01,223.14 112.70,228.19 115.16,230.19 118.39,232.66 124.08,236.65 129.77,240.20 135.46,243.38 141.15,246.24 146.83,248.80 152.52,251.11 158.21,253.20 163.90,255.09 169.59,256.80 175.28,258.36 180.97,259.77 186.66,261.06 189.50,261.67 192.35,262.24 198.04,263.32 203.73,264.31 209.42,265.21 215.11,266.04 220.79,266.80 226.48,267.50 232.17,268.15 237.86,268.74 243.55,269.29 249.24,269.79 254.93,270.26 259.20,270.58 260.62,270.69 266.31,271.09 272.00,271.45 277.69,271.79 283.38,272.10 289.07,272.39 294.76,272.66 300.44,272.91 306.13,273.14 311.82,273.35 317.51,273.55 323.20,273.73 328.89,273.90 ' style='stroke-width: 0.75; stroke: #28E2E5; stroke-dasharray: 7.00,3.00;' /> +<polyline points='50.12,111.21 52.44,119.52 55.81,130.71 57.09,134.71 61.50,147.53 66.38,160.15 67.19,162.09 72.87,174.71 78.56,185.69 82.64,192.68 84.25,195.26 89.94,203.64 95.63,210.98 101.32,217.44 107.01,223.15 112.70,228.19 115.16,230.20 118.39,232.67 124.08,236.65 129.77,240.20 135.46,243.38 141.15,246.24 146.83,248.80 152.52,251.11 158.21,253.20 163.90,255.09 169.59,256.80 175.28,258.36 180.97,259.77 186.66,261.06 189.50,261.67 192.35,262.24 198.04,263.32 203.73,264.31 209.42,265.21 215.11,266.04 220.79,266.80 226.48,267.50 232.17,268.15 237.86,268.74 243.55,269.29 249.24,269.79 254.93,270.26 259.20,270.58 260.62,270.69 266.31,271.08 272.00,271.45 277.69,271.79 283.38,272.10 289.07,272.39 294.76,272.66 300.44,272.91 306.13,273.14 311.82,273.35 317.51,273.55 323.20,273.73 328.89,273.90 ' style='stroke-width: 0.75; stroke: #28E2E5; stroke-dasharray: 7.00,3.00;' /> <polygon points='47.60,102.06 50.12,99.54 52.64,102.06 50.12,104.58 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='47.60,118.49 50.12,115.97 52.64,118.49 50.12,121.01 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='49.92,120.29 52.44,117.77 54.96,120.29 52.44,122.81 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> @@ -342,7 +342,7 @@ <rect x='327.11' y='273.27' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='327.11' y1='276.84' x2='330.67' y2='273.27' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='327.11' y1='273.27' x2='330.67' y2='276.84' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<polyline points='50.12,111.20 52.44,127.01 55.81,146.51 57.09,153.01 61.50,172.19 66.38,188.72 67.19,191.06 72.87,205.10 78.56,215.70 82.64,221.74 84.25,223.84 89.94,230.20 95.63,235.28 101.32,239.42 107.01,242.85 112.70,245.76 115.16,246.89 118.39,248.27 124.08,250.46 129.77,252.41 135.46,254.15 141.15,255.73 146.83,257.16 152.52,258.48 158.21,259.69 163.90,260.81 169.59,261.84 175.28,262.80 180.97,263.70 186.66,264.53 189.50,264.92 192.35,265.30 198.04,266.02 203.73,266.69 209.42,267.31 215.11,267.90 220.79,268.44 226.48,268.95 232.17,269.42 237.86,269.86 243.55,270.27 249.24,270.66 254.93,271.02 259.20,271.27 260.62,271.35 266.31,271.67 272.00,271.96 277.69,272.23 283.38,272.48 289.07,272.72 294.76,272.94 300.44,273.15 306.13,273.34 311.82,273.52 317.51,273.69 323.20,273.85 328.89,273.99 ' style='stroke-width: 0.75; stroke: #9E9E9E; stroke-dasharray: 4.00,4.00;' /> +<polyline points='50.12,111.20 52.44,127.01 55.81,146.51 57.09,153.01 61.50,172.19 66.38,188.72 67.19,191.06 72.87,205.10 78.56,215.70 82.64,221.74 84.25,223.84 89.94,230.20 95.63,235.28 101.32,239.42 107.01,242.85 112.70,245.76 115.16,246.89 118.39,248.27 124.08,250.46 129.77,252.41 135.46,254.15 141.15,255.73 146.83,257.16 152.52,258.48 158.21,259.69 163.90,260.81 169.59,261.85 175.28,262.81 180.97,263.70 186.66,264.53 189.50,264.92 192.35,265.30 198.04,266.02 203.73,266.69 209.42,267.31 215.11,267.90 220.79,268.44 226.48,268.95 232.17,269.42 237.86,269.86 243.55,270.28 249.24,270.66 254.93,271.02 259.20,271.27 260.62,271.35 266.31,271.67 272.00,271.96 277.69,272.23 283.38,272.48 289.07,272.72 294.76,272.94 300.44,273.15 306.13,273.34 311.82,273.52 317.51,273.69 323.20,273.85 328.89,273.99 ' style='stroke-width: 0.75; stroke: #9E9E9E; stroke-dasharray: 4.00,4.00;' /> <line x1='48.34' y1='112.38' x2='51.90' y2='108.82' style='stroke-width: 0.75;' /> <line x1='48.34' y1='108.82' x2='51.90' y2='112.38' style='stroke-width: 0.75;' /> <line x1='47.60' y1='110.60' x2='52.64' y2='110.60' style='stroke-width: 0.75;' /> @@ -856,38 +856,38 @@ <line x1='687.09' y1='212.50' x2='690.66' y2='216.06' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='687.09' y1='148.45' x2='690.66' y2='144.88' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='687.09' y1='144.88' x2='690.66' y2='148.45' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='673.03' y1='214.14' x2='676.60' y2='210.58' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='673.03' y1='210.58' x2='676.60' y2='214.14' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='673.03' y1='180.17' x2='676.60' y2='176.61' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='673.03' y1='176.61' x2='676.60' y2='180.17' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='647.35' y1='191.88' x2='650.91' y2='188.32' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='647.35' y1='188.32' x2='650.91' y2='191.88' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='647.35' y1='204.37' x2='650.91' y2='200.81' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='647.35' y1='200.81' x2='650.91' y2='204.37' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='604.34' y1='196.86' x2='607.90' y2='193.30' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='604.34' y1='193.30' x2='607.90' y2='196.86' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='604.34' y1='201.05' x2='607.90' y2='197.49' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='604.34' y1='197.49' x2='607.90' y2='201.05' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='549.33' y1='210.21' x2='552.89' y2='206.64' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='549.33' y1='206.64' x2='552.89' y2='210.21' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='549.33' y1='150.15' x2='552.89' y2='146.59' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='549.33' y1='146.59' x2='552.89' y2='150.15' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='485.87' y1='172.03' x2='489.44' y2='168.46' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='485.87' y1='168.46' x2='489.44' y2='172.03' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='485.87' y1='164.67' x2='489.44' y2='161.11' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='485.87' y1='161.11' x2='489.44' y2='164.67' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='432.64' y1='115.98' x2='436.21' y2='112.42' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='432.64' y1='112.42' x2='436.21' y2='115.98' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='432.64' y1='210.72' x2='436.21' y2='207.15' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='432.64' y1='207.15' x2='436.21' y2='210.72' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='417.56' y1='252.35' x2='421.13' y2='248.79' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='417.56' y1='248.79' x2='421.13' y2='252.35' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='417.56' y1='245.67' x2='421.13' y2='242.10' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='417.56' y1='242.10' x2='421.13' y2='245.67' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='411.96' y1='205.27' x2='415.53' y2='201.71' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='411.96' y1='201.71' x2='415.53' y2='205.27' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='411.96' y1='161.18' x2='415.53' y2='157.62' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='411.96' y1='157.62' x2='415.53' y2='161.18' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='673.03' y1='214.13' x2='676.59' y2='210.57' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='673.03' y1='210.57' x2='676.59' y2='214.13' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='673.03' y1='180.16' x2='676.59' y2='176.60' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='673.03' y1='176.60' x2='676.59' y2='180.16' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='647.34' y1='191.86' x2='650.91' y2='188.30' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='647.34' y1='188.30' x2='650.91' y2='191.86' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='647.34' y1='204.35' x2='650.91' y2='200.79' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='647.34' y1='200.79' x2='650.91' y2='204.35' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='604.32' y1='196.82' x2='607.89' y2='193.26' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='604.32' y1='193.26' x2='607.89' y2='196.82' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='604.32' y1='201.01' x2='607.89' y2='197.45' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='604.32' y1='197.45' x2='607.89' y2='201.01' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='549.31' y1='210.15' x2='552.88' y2='206.59' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='549.31' y1='206.59' x2='552.88' y2='210.15' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='549.31' y1='150.09' x2='552.88' y2='146.53' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='549.31' y1='146.53' x2='552.88' y2='150.09' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='485.87' y1='171.99' x2='489.43' y2='168.43' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='485.87' y1='168.43' x2='489.43' y2='171.99' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='485.87' y1='164.64' x2='489.43' y2='161.07' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='485.87' y1='161.07' x2='489.43' y2='164.64' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='432.65' y1='116.03' x2='436.21' y2='112.46' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='432.65' y1='112.46' x2='436.21' y2='116.03' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='432.65' y1='210.76' x2='436.21' y2='207.19' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='432.65' y1='207.19' x2='436.21' y2='210.76' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='417.57' y1='252.39' x2='421.13' y2='248.83' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='417.57' y1='248.83' x2='421.13' y2='252.39' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='417.57' y1='245.70' x2='421.13' y2='242.14' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='417.57' y1='242.14' x2='421.13' y2='245.70' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='411.96' y1='205.29' x2='415.53' y2='201.73' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='411.96' y1='201.73' x2='415.53' y2='205.29' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='411.96' y1='161.21' x2='415.53' y2='157.64' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='411.96' y1='157.64' x2='415.53' y2='161.21' style='stroke-width: 0.75; stroke: #28E2E5;' /> <polygon points='686.36,149.66 688.88,147.14 691.40,149.66 688.88,152.18 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='686.36,209.50 688.88,206.98 691.40,209.50 688.88,212.02 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='664.42,167.67 666.94,165.15 669.46,167.67 666.94,170.19 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> @@ -933,51 +933,51 @@ <rect x='660.37' y='164.80' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='660.37' y1='168.36' x2='663.94' y2='164.80' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='660.37' y1='164.80' x2='663.94' y2='168.36' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='660.37' y='139.73' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='660.37' y1='143.30' x2='663.94' y2='139.73' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='660.37' y1='139.73' x2='663.94' y2='143.30' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='660.37' y='139.74' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='660.37' y1='143.30' x2='663.94' y2='139.74' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='660.37' y1='139.74' x2='663.94' y2='143.30' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <rect x='616.40' y='137.54' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='616.40' y1='141.10' x2='619.97' y2='137.54' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='616.40' y1='137.54' x2='619.97' y2='141.10' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='616.40' y1='141.11' x2='619.97' y2='137.54' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='616.40' y1='137.54' x2='619.97' y2='141.11' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <rect x='616.40' y='186.64' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='616.40' y1='190.20' x2='619.97' y2='186.64' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='616.40' y1='186.64' x2='619.97' y2='190.20' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='556.01' y='235.03' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='556.01' y1='238.60' x2='559.58' y2='235.03' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='556.01' y1='235.03' x2='559.58' y2='238.60' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='556.01' y='180.67' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='556.01' y1='184.24' x2='559.58' y2='180.67' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='556.01' y1='180.67' x2='559.58' y2='184.24' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='616.40' y1='190.21' x2='619.97' y2='186.64' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='616.40' y1='186.64' x2='619.97' y2='190.21' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='556.01' y='235.04' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='556.01' y1='238.60' x2='559.58' y2='235.04' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='556.01' y1='235.04' x2='559.58' y2='238.60' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='556.01' y='180.68' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='556.01' y1='184.24' x2='559.58' y2='180.68' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='556.01' y1='180.68' x2='559.58' y2='184.24' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <rect x='500.17' y='173.95' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='500.17' y1='177.51' x2='503.73' y2='173.95' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='500.17' y1='173.95' x2='503.73' y2='177.51' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <rect x='500.17' y='175.57' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='500.17' y1='179.14' x2='503.73' y2='175.57' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='500.17' y1='175.57' x2='503.73' y2='179.14' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='457.63' y='196.76' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='457.63' y1='200.32' x2='461.20' y2='196.76' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='457.63' y1='196.76' x2='461.20' y2='200.32' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='457.63' y='208.84' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='457.63' y1='212.41' x2='461.20' y2='208.84' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='457.63' y1='208.84' x2='461.20' y2='212.41' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='427.15' y='202.51' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='427.15' y1='206.07' x2='430.71' y2='202.51' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='427.15' y1='202.51' x2='430.71' y2='206.07' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='427.15' y='148.43' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='427.15' y1='151.99' x2='430.71' y2='148.43' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='427.15' y1='148.43' x2='430.71' y2='151.99' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='416.40' y='137.69' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='416.40' y1='141.25' x2='419.97' y2='137.69' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='416.40' y1='137.69' x2='419.97' y2='141.25' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='416.40' y='211.53' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='416.40' y1='215.09' x2='419.97' y2='211.53' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='416.40' y1='211.53' x2='419.97' y2='215.09' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='411.80' y='152.27' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='411.80' y1='155.83' x2='415.37' y2='152.27' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='411.80' y1='152.27' x2='415.37' y2='155.83' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='411.80' y='203.15' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='411.80' y1='206.71' x2='415.37' y2='203.15' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='411.80' y1='203.15' x2='415.37' y2='206.71' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='457.63' y='196.74' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='457.63' y1='200.31' x2='461.20' y2='196.74' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='457.63' y1='196.74' x2='461.20' y2='200.31' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='457.63' y='208.83' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='457.63' y1='212.39' x2='461.20' y2='208.83' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='457.63' y1='208.83' x2='461.20' y2='212.39' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='427.14' y='202.49' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='427.14' y1='206.05' x2='430.71' y2='202.49' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='427.14' y1='202.49' x2='430.71' y2='206.05' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='427.14' y='148.41' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='427.14' y1='151.97' x2='430.71' y2='148.41' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='427.14' y1='148.41' x2='430.71' y2='151.97' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='416.40' y='137.68' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='416.40' y1='141.24' x2='419.97' y2='137.68' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='416.40' y1='137.68' x2='419.97' y2='141.24' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='416.40' y='211.52' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='416.40' y1='215.08' x2='419.97' y2='211.52' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='416.40' y1='211.52' x2='419.97' y2='215.08' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='411.80' y='152.26' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='411.80' y1='155.83' x2='415.36' y2='152.26' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='411.80' y1='152.26' x2='415.36' y2='155.83' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='411.80' y='203.14' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='411.80' y1='206.71' x2='415.36' y2='203.14' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='411.80' y1='203.14' x2='415.36' y2='206.71' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='687.10' y1='182.56' x2='690.66' y2='178.99' style='stroke-width: 0.75;' /> <line x1='687.10' y1='178.99' x2='690.66' y2='182.56' style='stroke-width: 0.75;' /> <line x1='686.36' y1='180.78' x2='691.40' y2='180.78' style='stroke-width: 0.75;' /> @@ -1502,7 +1502,7 @@ <line x1='327.11' y1='375.74' x2='330.67' y2='379.30' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='327.11' y1='367.76' x2='330.67' y2='364.19' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='327.11' y1='364.19' x2='330.67' y2='367.76' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<polyline points='50.12,519.93 52.44,507.43 55.81,490.72 57.09,484.77 61.50,465.88 66.38,447.55 67.19,444.76 72.87,426.80 78.56,411.53 82.64,402.03 84.25,398.56 89.94,387.56 95.63,378.23 101.32,370.35 107.01,363.70 112.70,358.12 115.16,356.00 118.39,353.47 124.08,349.62 129.77,346.45 135.46,343.89 141.15,341.86 146.83,340.28 152.52,339.10 158.21,338.27 163.90,337.74 169.59,337.49 175.28,337.48 180.97,337.67 186.66,338.06 189.50,338.31 192.35,338.60 198.04,339.29 203.73,340.11 209.42,341.04 215.11,342.07 220.79,343.19 226.48,344.38 232.17,345.65 237.86,346.97 243.55,348.35 249.24,349.78 254.93,351.24 259.20,352.36 260.62,352.74 266.31,354.27 272.00,355.83 277.69,357.41 283.38,359.00 289.07,360.61 294.76,362.24 300.44,363.87 306.13,365.51 311.82,367.15 317.51,368.80 323.20,370.45 328.89,372.10 ' style='stroke-width: 0.75; stroke: #28E2E5; stroke-dasharray: 7.00,3.00;' /> +<polyline points='50.12,519.93 52.44,507.42 55.81,490.71 57.09,484.76 61.50,465.87 66.38,447.53 67.19,444.75 72.87,426.79 78.56,411.52 82.64,402.01 84.25,398.55 89.94,387.55 95.63,378.22 101.32,370.34 107.01,363.70 112.70,358.13 115.16,356.00 118.39,353.47 124.08,349.62 129.77,346.46 135.46,343.90 141.15,341.87 146.83,340.29 152.52,339.11 158.21,338.29 163.90,337.77 169.59,337.52 175.28,337.50 180.97,337.70 186.66,338.08 189.50,338.34 192.35,338.63 198.04,339.32 203.73,340.14 209.42,341.07 215.11,342.10 220.79,343.22 226.48,344.42 232.17,345.69 237.86,347.01 243.55,348.39 249.24,349.82 254.93,351.29 259.20,352.41 260.62,352.79 266.31,354.32 272.00,355.88 277.69,357.45 283.38,359.05 289.07,360.66 294.76,362.29 300.44,363.92 306.13,365.56 311.82,367.21 317.51,368.85 323.20,370.50 328.89,372.15 ' style='stroke-width: 0.75; stroke: #28E2E5; stroke-dasharray: 7.00,3.00;' /> <polygon points='49.92,506.25 52.44,503.73 54.96,506.25 52.44,508.77 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='49.92,510.10 52.44,507.58 54.96,510.10 52.44,512.62 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='54.57,490.00 57.09,487.48 59.61,490.00 57.09,492.52 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> @@ -1585,7 +1585,7 @@ <rect x='327.11' y='422.78' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='327.11' y1='426.35' x2='330.67' y2='422.78' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='327.11' y1='422.78' x2='330.67' y2='426.35' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<polyline points='50.12,519.93 52.44,501.23 55.81,478.37 57.09,470.82 61.50,448.81 66.38,430.31 67.19,427.74 72.87,412.69 78.56,401.93 82.64,396.17 84.25,394.25 89.94,388.78 95.63,384.91 101.32,382.21 107.01,380.38 112.70,379.20 115.16,378.85 118.39,378.51 124.08,378.20 129.77,378.19 135.46,378.42 141.15,378.84 146.83,379.42 152.52,380.13 158.21,380.95 163.90,381.87 169.59,382.87 175.28,383.94 180.97,385.08 186.66,386.27 189.50,386.89 192.35,387.51 198.04,388.80 203.73,390.12 209.42,391.47 215.11,392.85 220.79,394.25 226.48,395.68 232.17,397.12 237.86,398.57 243.55,400.04 249.24,401.52 254.93,403.00 259.20,404.11 260.62,404.48 266.31,405.97 272.00,407.46 277.69,408.95 283.38,410.44 289.07,411.92 294.76,413.40 300.44,414.87 306.13,416.33 311.82,417.78 317.51,419.23 323.20,420.66 328.89,422.09 ' style='stroke-width: 0.75; stroke: #9E9E9E; stroke-dasharray: 4.00,4.00;' /> +<polyline points='50.12,519.93 52.44,501.23 55.81,478.37 57.09,470.82 61.50,448.81 66.38,430.31 67.19,427.74 72.87,412.69 78.56,401.93 82.64,396.17 84.25,394.25 89.94,388.78 95.63,384.91 101.32,382.21 107.01,380.38 112.70,379.20 115.16,378.85 118.39,378.51 124.08,378.20 129.77,378.19 135.46,378.42 141.15,378.84 146.83,379.42 152.52,380.13 158.21,380.95 163.90,381.87 169.59,382.87 175.28,383.95 180.97,385.08 186.66,386.27 189.50,386.89 192.35,387.52 198.04,388.80 203.73,390.12 209.42,391.47 215.11,392.85 220.79,394.26 226.48,395.68 232.17,397.12 237.86,398.58 243.55,400.04 249.24,401.52 254.93,403.00 259.20,404.12 260.62,404.49 266.31,405.98 272.00,407.47 277.69,408.96 283.38,410.44 289.07,411.92 294.76,413.40 300.44,414.87 306.13,416.34 311.82,417.79 317.51,419.24 323.20,420.67 328.89,422.10 ' style='stroke-width: 0.75; stroke: #9E9E9E; stroke-dasharray: 4.00,4.00;' /> <line x1='50.66' y1='500.33' x2='54.22' y2='496.77' style='stroke-width: 0.75;' /> <line x1='50.66' y1='496.77' x2='54.22' y2='500.33' style='stroke-width: 0.75;' /> <line x1='49.92' y1='498.55' x2='54.96' y2='498.55' style='stroke-width: 0.75;' /> @@ -1940,17 +1940,17 @@ <g clip-path='url(#cpMzk4Ljk3fDcwMC4wNHwzMjIuNDV8NTI3LjUz)'> </g> <g clip-path='url(#cpMC4wMHw3MjAuMDB8MC4wMHw1NzYuMDA=)'> -<line x1='410.12' y1='527.53' x2='671.49' y2='527.53' style='stroke-width: 0.75;' /> +<line x1='410.12' y1='527.53' x2='671.53' y2='527.53' style='stroke-width: 0.75;' /> <line x1='410.12' y1='527.53' x2='410.12' y2='532.28' style='stroke-width: 0.75;' /> -<line x1='475.46' y1='527.53' x2='475.46' y2='532.28' style='stroke-width: 0.75;' /> -<line x1='540.80' y1='527.53' x2='540.80' y2='532.28' style='stroke-width: 0.75;' /> -<line x1='606.15' y1='527.53' x2='606.15' y2='532.28' style='stroke-width: 0.75;' /> -<line x1='671.49' y1='527.53' x2='671.49' y2='532.28' style='stroke-width: 0.75;' /> +<line x1='475.47' y1='527.53' x2='475.47' y2='532.28' style='stroke-width: 0.75;' /> +<line x1='540.82' y1='527.53' x2='540.82' y2='532.28' style='stroke-width: 0.75;' /> +<line x1='606.17' y1='527.53' x2='606.17' y2='532.28' style='stroke-width: 0.75;' /> +<line x1='671.53' y1='527.53' x2='671.53' y2='532.28' style='stroke-width: 0.75;' /> <text x='410.12' y='544.64' text-anchor='middle' style='font-size: 7.92px; font-family: sans;' textLength='4.41px' lengthAdjust='spacingAndGlyphs'>0</text> -<text x='475.46' y='544.64' text-anchor='middle' style='font-size: 7.92px; font-family: sans;' textLength='8.81px' lengthAdjust='spacingAndGlyphs'>10</text> -<text x='540.80' y='544.64' text-anchor='middle' style='font-size: 7.92px; font-family: sans;' textLength='8.81px' lengthAdjust='spacingAndGlyphs'>20</text> -<text x='606.15' y='544.64' text-anchor='middle' style='font-size: 7.92px; font-family: sans;' textLength='8.81px' lengthAdjust='spacingAndGlyphs'>30</text> -<text x='671.49' y='544.64' text-anchor='middle' style='font-size: 7.92px; font-family: sans;' textLength='8.81px' lengthAdjust='spacingAndGlyphs'>40</text> +<text x='475.47' y='544.64' text-anchor='middle' style='font-size: 7.92px; font-family: sans;' textLength='8.81px' lengthAdjust='spacingAndGlyphs'>10</text> +<text x='540.82' y='544.64' text-anchor='middle' style='font-size: 7.92px; font-family: sans;' textLength='8.81px' lengthAdjust='spacingAndGlyphs'>20</text> +<text x='606.17' y='544.64' text-anchor='middle' style='font-size: 7.92px; font-family: sans;' textLength='8.81px' lengthAdjust='spacingAndGlyphs'>30</text> +<text x='671.53' y='544.64' text-anchor='middle' style='font-size: 7.92px; font-family: sans;' textLength='8.81px' lengthAdjust='spacingAndGlyphs'>40</text> <line x1='398.97' y1='521.44' x2='398.97' y2='328.55' style='stroke-width: 0.75;' /> <line x1='398.97' y1='521.44' x2='394.21' y2='521.44' style='stroke-width: 0.75;' /> <line x1='398.97' y1='489.29' x2='394.21' y2='489.29' style='stroke-width: 0.75;' /> @@ -1983,290 +1983,290 @@ <circle cx='428.29' cy='376.37' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> <circle cx='459.77' cy='412.17' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> <circle cx='459.77' cy='408.97' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='507.17' cy='402.34' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='507.17' cy='434.40' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='556.94' cy='430.81' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='556.94' cy='409.17' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='595.78' cy='406.73' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='595.78' cy='456.72' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='601.27' cy='440.48' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='601.27' cy='409.66' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='583.57' cy='423.93' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='583.57' cy='482.18' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='560.71' cy='408.95' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> -<circle cx='560.71' cy='400.42' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='507.18' cy='402.34' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='507.18' cy='434.40' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='556.96' cy='430.81' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='556.96' cy='409.17' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='595.81' cy='406.73' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='595.81' cy='456.72' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='601.30' cy='440.48' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='601.30' cy='409.66' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='583.60' cy='423.93' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='583.60' cy='482.18' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='560.73' cy='408.95' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> +<circle cx='560.73' cy='400.42' r='1.78' style='stroke-width: 0.75; stroke: #DF536B;' /> <polygon points='424.45,459.87 426.85,464.02 422.05,464.02 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> <polygon points='424.45,473.64 426.85,477.80 422.05,477.80 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> <polygon points='449.54,426.58 451.94,430.73 447.14,430.73 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> <polygon points='449.54,423.29 451.94,427.45 447.14,427.45 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='488.07,437.53 490.47,441.68 485.67,441.68 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='488.07,405.76 490.47,409.92 485.67,409.92 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='529.90,408.43 532.30,412.59 527.50,412.59 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='529.90,439.97 532.30,444.12 527.50,444.12 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='564.32,392.80 566.72,396.96 561.92,396.96 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='564.32,420.08 566.72,424.24 561.92,424.24 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='571.59,424.49 573.99,428.65 569.19,428.65 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='571.59,418.38 573.99,422.54 569.19,422.54 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='558.99,443.32 561.39,447.48 556.59,447.48 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='558.99,449.76 561.39,453.92 556.59,453.92 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='541.92,393.88 544.32,398.04 539.52,398.04 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='541.92,416.93 544.32,421.09 539.52,421.09 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<line x1='425.37' y1='411.97' x2='430.41' y2='411.97' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='427.89' y1='414.49' x2='427.89' y2='409.45' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='425.37' y1='442.84' x2='430.41' y2='442.84' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='427.89' y1='445.36' x2='427.89' y2='440.32' style='stroke-width: 0.75; stroke: #2297E6;' /> +<polygon points='488.08,437.53 490.48,441.68 485.68,441.68 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='488.08,405.76 490.48,409.92 485.68,409.92 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='529.92,408.43 532.32,412.59 527.52,412.59 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='529.92,439.97 532.32,444.12 527.52,444.12 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='564.34,392.80 566.74,396.96 561.94,396.96 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='564.34,420.08 566.74,424.24 561.94,424.24 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='571.61,424.49 574.01,428.65 569.21,428.65 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='571.61,418.38 574.01,422.54 569.21,422.54 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='559.01,443.32 561.41,447.48 556.61,447.48 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='559.01,449.76 561.41,453.92 556.61,453.92 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='541.94,393.88 544.34,398.04 539.54,398.04 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='541.94,416.93 544.34,421.09 539.54,421.09 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<line x1='425.38' y1='411.97' x2='430.42' y2='411.97' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='427.90' y1='414.49' x2='427.90' y2='409.45' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='425.38' y1='442.84' x2='430.42' y2='442.84' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='427.90' y1='445.36' x2='427.90' y2='440.32' style='stroke-width: 0.75; stroke: #2297E6;' /> <line x1='456.62' y1='415.45' x2='461.66' y2='415.45' style='stroke-width: 0.75; stroke: #2297E6;' /> <line x1='459.14' y1='417.97' x2='459.14' y2='412.93' style='stroke-width: 0.75; stroke: #2297E6;' /> <line x1='456.62' y1='412.25' x2='461.66' y2='412.25' style='stroke-width: 0.75; stroke: #2297E6;' /> <line x1='459.14' y1='414.77' x2='459.14' y2='409.73' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='505.06' y1='436.07' x2='510.10' y2='436.07' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='507.58' y1='438.59' x2='507.58' y2='433.55' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='505.06' y1='396.06' x2='510.10' y2='396.06' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='507.58' y1='398.58' x2='507.58' y2='393.54' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='558.69' y1='440.36' x2='563.73' y2='440.36' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='561.21' y1='442.88' x2='561.21' y2='437.84' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='558.69' y1='438.23' x2='563.73' y2='438.23' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='561.21' y1='440.75' x2='561.21' y2='435.71' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='604.62' y1='457.84' x2='609.66' y2='457.84' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='607.14' y1='460.36' x2='607.14' y2='455.32' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='604.62' y1='395.78' x2='609.66' y2='395.78' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='607.14' y1='398.30' x2='607.14' y2='393.26' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='613.60' y1='459.75' x2='618.64' y2='459.75' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='616.12' y1='462.27' x2='616.12' y2='457.23' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='613.60' y1='401.43' x2='618.64' y2='401.43' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='616.12' y1='403.95' x2='616.12' y2='398.91' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='592.69' y1='393.93' x2='597.73' y2='393.93' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='595.21' y1='396.45' x2='595.21' y2='391.41' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='592.69' y1='390.22' x2='597.73' y2='390.22' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='595.21' y1='392.74' x2='595.21' y2='387.70' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='566.19' y1='467.69' x2='571.23' y2='467.69' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='568.71' y1='470.21' x2='568.71' y2='465.17' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='566.19' y1='426.46' x2='571.23' y2='426.46' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='568.71' y1='428.98' x2='568.71' y2='423.94' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='427.45' y1='458.43' x2='431.01' y2='454.86' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='427.45' y1='454.86' x2='431.01' y2='458.43' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='427.45' y1='410.50' x2='431.01' y2='406.94' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='427.45' y1='406.94' x2='431.01' y2='410.50' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='462.06' y1='418.01' x2='465.63' y2='414.45' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='462.06' y1='414.45' x2='465.63' y2='418.01' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='462.06' y1='455.85' x2='465.63' y2='452.29' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='462.06' y1='452.29' x2='465.63' y2='455.85' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='518.94' y1='397.16' x2='522.50' y2='393.60' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='518.94' y1='393.60' x2='522.50' y2='397.16' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='518.94' y1='407.25' x2='522.50' y2='403.69' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='518.94' y1='403.69' x2='522.50' y2='407.25' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='588.49' y1='482.95' x2='592.05' y2='479.39' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='588.49' y1='479.39' x2='592.05' y2='482.95' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='588.49' y1='405.40' x2='592.05' y2='401.84' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='588.49' y1='401.84' x2='592.05' y2='405.40' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='658.81' y1='447.82' x2='662.37' y2='444.25' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='658.81' y1='444.25' x2='662.37' y2='447.82' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='658.81' y1='384.61' x2='662.37' y2='381.04' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='658.81' y1='381.04' x2='662.37' y2='384.61' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='685.84' y1='433.10' x2='689.40' y2='429.54' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='685.84' y1='429.54' x2='689.40' y2='433.10' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='685.84' y1='462.79' x2='689.40' y2='459.22' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='685.84' y1='459.22' x2='689.40' y2='462.79' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='664.37' y1='374.55' x2='667.93' y2='370.98' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='664.37' y1='370.98' x2='667.93' y2='374.55' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='664.37' y1='432.30' x2='667.93' y2='428.73' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='664.37' y1='428.73' x2='667.93' y2='432.30' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='634.22' y1='447.04' x2='637.78' y2='443.48' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='634.22' y1='443.48' x2='637.78' y2='447.04' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='634.22' y1='403.91' x2='637.78' y2='400.34' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='634.22' y1='400.34' x2='637.78' y2='403.91' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='505.07' y1='436.07' x2='510.11' y2='436.07' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='507.59' y1='438.59' x2='507.59' y2='433.55' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='505.07' y1='396.06' x2='510.11' y2='396.06' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='507.59' y1='398.58' x2='507.59' y2='393.54' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='558.71' y1='440.36' x2='563.75' y2='440.36' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='561.23' y1='442.88' x2='561.23' y2='437.84' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='558.71' y1='438.23' x2='563.75' y2='438.23' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='561.23' y1='440.75' x2='561.23' y2='435.71' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='604.65' y1='457.84' x2='609.69' y2='457.84' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='607.17' y1='460.36' x2='607.17' y2='455.32' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='604.65' y1='395.78' x2='609.69' y2='395.78' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='607.17' y1='398.30' x2='607.17' y2='393.26' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='613.63' y1='459.75' x2='618.67' y2='459.75' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='616.15' y1='462.27' x2='616.15' y2='457.23' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='613.63' y1='401.43' x2='618.67' y2='401.43' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='616.15' y1='403.95' x2='616.15' y2='398.91' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='592.71' y1='393.93' x2='597.75' y2='393.93' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='595.23' y1='396.45' x2='595.23' y2='391.41' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='592.71' y1='390.22' x2='597.75' y2='390.22' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='595.23' y1='392.74' x2='595.23' y2='387.70' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='566.21' y1='467.69' x2='571.25' y2='467.69' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='568.73' y1='470.21' x2='568.73' y2='465.17' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='566.21' y1='426.46' x2='571.25' y2='426.46' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='568.73' y1='428.98' x2='568.73' y2='423.94' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='427.45' y1='458.45' x2='431.02' y2='454.89' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='427.45' y1='454.89' x2='431.02' y2='458.45' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='427.45' y1='410.53' x2='431.02' y2='406.96' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='427.45' y1='406.96' x2='431.02' y2='410.53' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='462.08' y1='418.08' x2='465.65' y2='414.51' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='462.08' y1='414.51' x2='465.65' y2='418.08' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='462.08' y1='455.91' x2='465.65' y2='452.35' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='462.08' y1='452.35' x2='465.65' y2='455.91' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='518.97' y1='397.24' x2='522.54' y2='393.68' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='518.97' y1='393.68' x2='522.54' y2='397.24' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='518.97' y1='407.33' x2='522.54' y2='403.77' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='518.97' y1='403.77' x2='522.54' y2='407.33' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='588.53' y1='483.00' x2='592.09' y2='479.44' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='588.53' y1='479.44' x2='592.09' y2='483.00' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='588.53' y1='405.46' x2='592.09' y2='401.89' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='588.53' y1='401.89' x2='592.09' y2='405.46' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='658.84' y1='447.81' x2='662.40' y2='444.25' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='658.84' y1='444.25' x2='662.40' y2='447.81' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='658.84' y1='384.60' x2='662.40' y2='381.04' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='658.84' y1='381.04' x2='662.40' y2='384.60' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='685.83' y1='433.01' x2='689.40' y2='429.44' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='685.83' y1='429.44' x2='689.40' y2='433.01' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='685.83' y1='462.70' x2='689.40' y2='459.14' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='685.83' y1='459.14' x2='689.40' y2='462.70' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='664.33' y1='374.39' x2='667.90' y2='370.82' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='664.33' y1='370.82' x2='667.90' y2='374.39' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='664.33' y1='432.15' x2='667.90' y2='428.58' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='664.33' y1='428.58' x2='667.90' y2='432.15' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='634.17' y1='446.84' x2='637.73' y2='443.28' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='634.17' y1='443.28' x2='637.73' y2='446.84' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='634.17' y1='403.70' x2='637.73' y2='400.13' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='634.17' y1='400.13' x2='637.73' y2='403.70' style='stroke-width: 0.75; stroke: #28E2E5;' /> <polygon points='428.27,423.73 430.79,421.21 433.31,423.73 430.79,426.26 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='428.27,454.48 430.79,451.96 433.31,454.48 430.79,457.00 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='461.65,465.08 464.17,462.56 466.69,465.08 464.17,467.60 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='461.65,376.89 464.17,374.37 466.69,376.89 464.17,379.41 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='505.85,460.51 508.37,457.99 510.89,460.51 508.37,463.03 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='505.85,417.98 508.37,415.46 510.89,417.98 508.37,420.50 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='543.86,471.43 546.38,468.91 548.90,471.43 546.38,473.95 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='543.86,360.60 546.38,358.08 548.90,360.60 546.38,363.12 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='567.69,398.35 570.21,395.83 572.73,398.35 570.21,400.87 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='567.69,441.38 570.21,438.86 572.73,441.38 570.21,443.90 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='569.14,396.94 571.66,394.42 574.18,396.94 571.66,399.46 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='569.14,445.83 571.66,443.30 574.18,445.83 571.66,448.35 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='553.27,437.91 555.79,435.39 558.31,437.91 555.79,440.43 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='553.27,457.47 555.79,454.95 558.31,457.47 555.79,459.99 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='532.71,390.55 535.23,388.03 537.75,390.55 535.23,393.07 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='532.71,435.60 535.23,433.08 537.75,435.60 535.23,438.12 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='461.66,465.08 464.18,462.56 466.70,465.08 464.18,467.60 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='461.66,376.89 464.18,374.37 466.70,376.89 464.18,379.41 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='505.86,460.51 508.38,457.99 510.90,460.51 508.38,463.03 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='505.86,417.98 508.38,415.46 510.90,417.98 508.38,420.50 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='543.88,471.43 546.40,468.91 548.92,471.43 546.40,473.95 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='543.88,360.60 546.40,358.08 548.92,360.60 546.40,363.12 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='567.71,398.35 570.23,395.83 572.75,398.35 570.23,400.87 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='567.71,441.38 570.23,438.86 572.75,441.38 570.23,443.90 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='569.17,396.94 571.69,394.42 574.21,396.94 571.69,399.46 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='569.17,445.83 571.69,443.30 574.21,445.83 571.69,448.35 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='553.29,437.91 555.81,435.39 558.33,437.91 555.81,440.43 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='553.29,457.47 555.81,454.95 558.33,457.47 555.81,459.99 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='532.73,390.55 535.25,388.03 537.77,390.55 535.25,393.07 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='532.73,435.60 535.25,433.08 537.77,435.60 535.25,438.12 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='426.04,473.69 428.44,469.53 423.64,469.53 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> <polygon points='426.04,435.88 428.44,431.73 423.64,431.73 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='452.55,417.78 454.95,413.62 450.15,413.62 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='452.55,414.52 454.95,410.36 450.15,410.36 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='489.65,381.04 492.05,376.88 487.25,376.88 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='489.65,418.35 492.05,414.19 487.25,414.19 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='524.32,484.33 526.72,480.17 521.92,480.17 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='524.32,429.68 526.72,425.52 521.92,425.52 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='548.13,432.73 550.53,428.58 545.73,428.58 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='548.13,399.05 550.53,394.90 545.73,394.90 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='553.95,493.76 556.35,489.60 551.55,489.60 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='553.95,417.07 556.35,412.92 551.55,412.92 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='545.48,428.11 547.88,423.95 543.08,423.95 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='545.48,423.57 547.88,419.41 543.08,419.41 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='532.03,397.89 534.43,393.73 529.63,393.73 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='532.03,431.54 534.43,427.38 529.63,427.38 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='436.91' y='449.25' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='436.91' y1='452.81' x2='440.47' y2='449.25' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='436.91' y1='449.25' x2='440.47' y2='452.81' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<polygon points='452.56,417.78 454.96,413.62 450.16,413.62 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='452.56,414.52 454.96,410.36 450.16,410.36 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='489.66,381.04 492.06,376.88 487.26,376.88 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='489.66,418.35 492.06,414.19 487.26,414.19 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='524.33,484.33 526.73,480.17 521.93,480.17 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='524.33,429.68 526.73,425.52 521.93,425.52 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='548.15,432.73 550.55,428.57 545.75,428.57 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='548.15,399.05 550.55,394.90 545.75,394.90 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='553.97,493.76 556.37,489.60 551.57,489.60 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='553.97,417.07 556.37,412.92 551.57,412.92 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='545.50,428.11 547.90,423.95 543.10,423.95 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='545.50,423.57 547.90,419.41 543.10,419.41 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='532.05,397.89 534.45,393.73 529.65,393.73 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='532.05,431.54 534.45,427.38 529.65,427.38 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='436.91' y='449.24' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='436.91' y1='452.81' x2='440.48' y2='449.24' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='436.91' y1='449.24' x2='440.48' y2='452.81' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <rect x='436.91' y='395.33' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='436.91' y1='398.89' x2='440.47' y2='395.33' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='436.91' y1='395.33' x2='440.47' y2='398.89' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='483.38' y='440.28' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='483.38' y1='443.84' x2='486.94' y2='440.28' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='483.38' y1='440.28' x2='486.94' y2='443.84' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='483.38' y='434.44' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='483.38' y1='438.00' x2='486.94' y2='434.44' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='483.38' y1='434.44' x2='486.94' y2='438.00' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='545.28' y='410.97' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='545.28' y1='414.54' x2='548.84' y2='410.97' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='545.28' y1='410.97' x2='548.84' y2='414.54' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='545.28' y='424.50' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='545.28' y1='428.07' x2='548.84' y2='424.50' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='545.28' y1='424.50' x2='548.84' y2='428.07' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='597.44' y='409.31' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='597.44' y1='412.88' x2='601.00' y2='409.31' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='597.44' y1='409.31' x2='601.00' y2='412.88' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='597.44' y='440.38' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='597.44' y1='443.94' x2='601.00' y2='440.38' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='597.44' y1='440.38' x2='601.00' y2='443.94' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='623.90' y='419.72' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='623.90' y1='423.29' x2='627.46' y2='419.72' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='623.90' y1='419.72' x2='627.46' y2='423.29' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='623.90' y='394.87' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='623.90' y1='398.43' x2='627.46' y2='394.87' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='623.90' y1='394.87' x2='627.46' y2='398.43' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='611.62' y='444.17' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='611.62' y1='447.74' x2='615.18' y2='444.17' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='611.62' y1='444.17' x2='615.18' y2='447.74' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='611.62' y='430.31' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='611.62' y1='433.88' x2='615.18' y2='430.31' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='611.62' y1='430.31' x2='615.18' y2='433.88' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='585.30' y='419.04' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='585.30' y1='422.60' x2='588.86' y2='419.04' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='585.30' y1='419.04' x2='588.86' y2='422.60' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='585.30' y='413.29' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='585.30' y1='416.86' x2='588.86' y2='413.29' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='585.30' y1='413.29' x2='588.86' y2='416.86' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='557.83' y='407.78' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='557.83' y1='411.34' x2='561.40' y2='407.78' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='557.83' y1='407.78' x2='561.40' y2='411.34' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<rect x='557.83' y='435.60' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='557.83' y1='439.16' x2='561.40' y2='435.60' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='557.83' y1='435.60' x2='561.40' y2='439.16' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='451.72' y1='480.11' x2='455.29' y2='476.55' style='stroke-width: 0.75;' /> -<line x1='451.72' y1='476.55' x2='455.29' y2='480.11' style='stroke-width: 0.75;' /> -<line x1='450.98' y1='478.33' x2='456.02' y2='478.33' style='stroke-width: 0.75;' /> -<line x1='453.50' y1='480.85' x2='453.50' y2='475.81' style='stroke-width: 0.75;' /> -<line x1='451.72' y1='434.57' x2='455.29' y2='431.01' style='stroke-width: 0.75;' /> -<line x1='451.72' y1='431.01' x2='455.29' y2='434.57' style='stroke-width: 0.75;' /> -<line x1='450.98' y1='432.79' x2='456.02' y2='432.79' style='stroke-width: 0.75;' /> -<line x1='453.50' y1='435.31' x2='453.50' y2='430.27' style='stroke-width: 0.75;' /> -<line x1='513.81' y1='430.44' x2='517.38' y2='426.88' style='stroke-width: 0.75;' /> -<line x1='513.81' y1='426.88' x2='517.38' y2='430.44' style='stroke-width: 0.75;' /> -<line x1='513.08' y1='428.66' x2='518.12' y2='428.66' style='stroke-width: 0.75;' /> -<line x1='515.60' y1='431.18' x2='515.60' y2='426.14' style='stroke-width: 0.75;' /> -<line x1='513.81' y1='394.35' x2='517.38' y2='390.79' style='stroke-width: 0.75;' /> -<line x1='513.81' y1='390.79' x2='517.38' y2='394.35' style='stroke-width: 0.75;' /> -<line x1='513.08' y1='392.57' x2='518.12' y2='392.57' style='stroke-width: 0.75;' /> -<line x1='515.60' y1='395.09' x2='515.60' y2='390.05' style='stroke-width: 0.75;' /> -<line x1='579.11' y1='380.34' x2='582.67' y2='376.78' style='stroke-width: 0.75;' /> -<line x1='579.11' y1='376.78' x2='582.67' y2='380.34' style='stroke-width: 0.75;' /> -<line x1='578.37' y1='378.56' x2='583.41' y2='378.56' style='stroke-width: 0.75;' /> -<line x1='580.89' y1='381.08' x2='580.89' y2='376.04' style='stroke-width: 0.75;' /> -<line x1='579.11' y1='441.19' x2='582.67' y2='437.62' style='stroke-width: 0.75;' /> -<line x1='579.11' y1='437.62' x2='582.67' y2='441.19' style='stroke-width: 0.75;' /> -<line x1='578.37' y1='439.40' x2='583.41' y2='439.40' style='stroke-width: 0.75;' /> -<line x1='580.89' y1='441.92' x2='580.89' y2='436.88' style='stroke-width: 0.75;' /> -<line x1='617.60' y1='500.08' x2='621.16' y2='496.52' style='stroke-width: 0.75;' /> -<line x1='617.60' y1='496.52' x2='621.16' y2='500.08' style='stroke-width: 0.75;' /> -<line x1='616.86' y1='498.30' x2='621.90' y2='498.30' style='stroke-width: 0.75;' /> -<line x1='619.38' y1='500.82' x2='619.38' y2='495.78' style='stroke-width: 0.75;' /> -<line x1='617.60' y1='410.25' x2='621.16' y2='406.69' style='stroke-width: 0.75;' /> -<line x1='617.60' y1='406.69' x2='621.16' y2='410.25' style='stroke-width: 0.75;' /> -<line x1='616.86' y1='408.47' x2='621.90' y2='408.47' style='stroke-width: 0.75;' /> -<line x1='619.38' y1='410.99' x2='619.38' y2='405.95' style='stroke-width: 0.75;' /> -<line x1='632.85' y1='440.56' x2='636.41' y2='437.00' style='stroke-width: 0.75;' /> -<line x1='632.85' y1='437.00' x2='636.41' y2='440.56' style='stroke-width: 0.75;' /> -<line x1='632.11' y1='438.78' x2='637.15' y2='438.78' style='stroke-width: 0.75;' /> -<line x1='634.63' y1='441.30' x2='634.63' y2='436.26' style='stroke-width: 0.75;' /> -<line x1='632.85' y1='376.36' x2='636.41' y2='372.79' style='stroke-width: 0.75;' /> -<line x1='632.85' y1='372.79' x2='636.41' y2='376.36' style='stroke-width: 0.75;' /> -<line x1='632.11' y1='374.57' x2='637.15' y2='374.57' style='stroke-width: 0.75;' /> -<line x1='634.63' y1='377.09' x2='634.63' y2='372.05' style='stroke-width: 0.75;' /> -<line x1='626.29' y1='434.25' x2='629.85' y2='430.68' style='stroke-width: 0.75;' /> -<line x1='626.29' y1='430.68' x2='629.85' y2='434.25' style='stroke-width: 0.75;' /> -<line x1='625.55' y1='432.46' x2='630.59' y2='432.46' style='stroke-width: 0.75;' /> -<line x1='628.07' y1='434.98' x2='628.07' y2='429.94' style='stroke-width: 0.75;' /> -<line x1='626.29' y1='406.32' x2='629.85' y2='402.75' style='stroke-width: 0.75;' /> -<line x1='626.29' y1='402.75' x2='629.85' y2='406.32' style='stroke-width: 0.75;' /> -<line x1='625.55' y1='404.54' x2='630.59' y2='404.54' style='stroke-width: 0.75;' /> -<line x1='628.07' y1='407.06' x2='628.07' y2='402.02' style='stroke-width: 0.75;' /> -<line x1='603.97' y1='418.56' x2='607.53' y2='415.00' style='stroke-width: 0.75;' /> -<line x1='603.97' y1='415.00' x2='607.53' y2='418.56' style='stroke-width: 0.75;' /> -<line x1='603.23' y1='416.78' x2='608.27' y2='416.78' style='stroke-width: 0.75;' /> -<line x1='605.75' y1='419.30' x2='605.75' y2='414.26' style='stroke-width: 0.75;' /> -<line x1='603.97' y1='452.43' x2='607.53' y2='448.87' style='stroke-width: 0.75;' /> -<line x1='603.97' y1='448.87' x2='607.53' y2='452.43' style='stroke-width: 0.75;' /> -<line x1='603.23' y1='450.65' x2='608.27' y2='450.65' style='stroke-width: 0.75;' /> -<line x1='605.75' y1='453.17' x2='605.75' y2='448.13' style='stroke-width: 0.75;' /> -<line x1='577.11' y1='433.29' x2='580.68' y2='429.73' style='stroke-width: 0.75;' /> -<line x1='577.11' y1='429.73' x2='580.68' y2='433.29' style='stroke-width: 0.75;' /> -<line x1='576.38' y1='431.51' x2='581.42' y2='431.51' style='stroke-width: 0.75;' /> -<line x1='578.90' y1='434.03' x2='578.90' y2='428.99' style='stroke-width: 0.75;' /> -<line x1='577.11' y1='415.49' x2='580.68' y2='411.92' style='stroke-width: 0.75;' /> -<line x1='577.11' y1='411.92' x2='580.68' y2='415.49' style='stroke-width: 0.75;' /> -<line x1='576.38' y1='413.71' x2='581.42' y2='413.71' style='stroke-width: 0.75;' /> -<line x1='578.90' y1='416.23' x2='578.90' y2='411.19' style='stroke-width: 0.75;' /> -<line x1='442.12' y1='394.50' x2='447.16' y2='394.50' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='444.64' y1='397.02' x2='444.64' y2='391.98' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='442.12,394.50 444.64,391.98 447.16,394.50 444.64,397.02 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='442.12' y1='444.40' x2='447.16' y2='444.40' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='444.64' y1='446.92' x2='444.64' y2='441.88' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='442.12,444.40 444.64,441.88 447.16,444.40 444.64,446.92 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='497.89' y1='554.63' x2='502.93' y2='554.63' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='500.41' y1='557.15' x2='500.41' y2='552.11' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='497.89,554.63 500.41,552.11 502.93,554.63 500.41,557.15 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='497.89' y1='450.22' x2='502.93' y2='450.22' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='500.41' y1='452.74' x2='500.41' y2='447.70' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='497.89,450.22 500.41,447.70 502.93,450.22 500.41,452.74 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='571.50' y1='380.26' x2='576.54' y2='380.26' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='574.02' y1='382.78' x2='574.02' y2='377.74' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='571.50,380.26 574.02,377.74 576.54,380.26 574.02,382.78 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='571.50' y1='402.45' x2='576.54' y2='402.45' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='574.02' y1='404.97' x2='574.02' y2='399.93' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='571.50,402.45 574.02,399.93 576.54,402.45 574.02,404.97 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='633.74' y1='460.24' x2='638.78' y2='460.24' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='636.26' y1='462.76' x2='636.26' y2='457.72' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='633.74,460.24 636.26,457.72 638.78,460.24 636.26,462.76 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='633.74' y1='407.57' x2='638.78' y2='407.57' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='636.26' y1='410.09' x2='636.26' y2='405.05' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='633.74,407.57 636.26,405.05 638.78,407.57 636.26,410.09 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='669.92' y1='393.10' x2='674.97' y2='393.10' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='672.44' y1='395.62' x2='672.44' y2='390.58' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='669.92,393.10 672.44,390.58 674.97,393.10 672.44,395.62 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='669.92' y1='364.80' x2='674.97' y2='364.80' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='672.44' y1='367.32' x2='672.44' y2='362.28' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='669.92,364.80 672.44,362.28 674.97,364.80 672.44,367.32 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='669.24' y1='483.71' x2='674.28' y2='483.71' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='671.76' y1='486.23' x2='671.76' y2='481.19' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='669.24,483.71 671.76,481.19 674.28,483.71 671.76,486.23 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='669.24' y1='383.03' x2='674.28' y2='383.03' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='671.76' y1='385.55' x2='671.76' y2='380.51' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='669.24,383.03 671.76,380.51 674.28,383.03 671.76,385.55 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='645.10' y1='404.23' x2='650.14' y2='404.23' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='647.62' y1='406.75' x2='647.62' y2='401.71' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='645.10,404.23 647.62,401.71 650.14,404.23 647.62,406.75 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='645.10' y1='427.25' x2='650.14' y2='427.25' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='647.62' y1='429.77' x2='647.62' y2='424.73' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='645.10,427.25 647.62,424.73 650.14,427.25 647.62,429.77 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='614.66' y1='411.12' x2='619.70' y2='411.12' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='617.18' y1='413.64' x2='617.18' y2='408.60' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='614.66,411.12 617.18,408.60 619.70,411.12 617.18,413.64 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> -<line x1='614.66' y1='462.38' x2='619.70' y2='462.38' style='stroke-width: 0.75; stroke: #DF536B;' /> -<line x1='617.18' y1='464.90' x2='617.18' y2='459.86' style='stroke-width: 0.75; stroke: #DF536B;' /> -<polygon points='614.66,462.38 617.18,459.86 619.70,462.38 617.18,464.90 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='436.91' y1='398.89' x2='440.48' y2='395.33' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='436.91' y1='395.33' x2='440.48' y2='398.89' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='483.39' y='440.28' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='483.39' y1='443.84' x2='486.95' y2='440.28' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='483.39' y1='440.28' x2='486.95' y2='443.84' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='483.39' y='434.43' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='483.39' y1='438.00' x2='486.95' y2='434.43' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='483.39' y1='434.43' x2='486.95' y2='438.00' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='545.30' y='410.97' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='545.30' y1='414.53' x2='548.86' y2='410.97' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='545.30' y1='410.97' x2='548.86' y2='414.53' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='545.30' y='424.50' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='545.30' y1='428.07' x2='548.86' y2='424.50' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='545.30' y1='424.50' x2='548.86' y2='428.07' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='597.46' y='409.32' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='597.46' y1='412.88' x2='601.03' y2='409.32' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='597.46' y1='409.32' x2='601.03' y2='412.88' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='597.46' y='440.38' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='597.46' y1='443.94' x2='601.03' y2='440.38' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='597.46' y1='440.38' x2='601.03' y2='443.94' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='623.93' y='419.73' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='623.93' y1='423.29' x2='627.49' y2='419.73' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='623.93' y1='419.73' x2='627.49' y2='423.29' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='623.93' y='394.87' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='623.93' y1='398.44' x2='627.49' y2='394.87' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='623.93' y1='394.87' x2='627.49' y2='398.44' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='611.64' y='444.16' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='611.64' y1='447.73' x2='615.21' y2='444.16' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='611.64' y1='444.16' x2='615.21' y2='447.73' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='611.64' y='430.30' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='611.64' y1='433.87' x2='615.21' y2='430.30' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='611.64' y1='430.30' x2='615.21' y2='433.87' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='585.32' y='419.02' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='585.32' y1='422.58' x2='588.88' y2='419.02' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='585.32' y1='419.02' x2='588.88' y2='422.58' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='585.32' y='413.27' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='585.32' y1='416.84' x2='588.88' y2='413.27' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='585.32' y1='413.27' x2='588.88' y2='416.84' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='557.84' y='407.74' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='557.84' y1='411.31' x2='561.41' y2='407.74' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='557.84' y1='407.74' x2='561.41' y2='411.31' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<rect x='557.84' y='435.57' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='557.84' y1='439.13' x2='561.41' y2='435.57' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='557.84' y1='435.57' x2='561.41' y2='439.13' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='451.73' y1='480.11' x2='455.29' y2='476.55' style='stroke-width: 0.75;' /> +<line x1='451.73' y1='476.55' x2='455.29' y2='480.11' style='stroke-width: 0.75;' /> +<line x1='450.99' y1='478.33' x2='456.03' y2='478.33' style='stroke-width: 0.75;' /> +<line x1='453.51' y1='480.85' x2='453.51' y2='475.81' style='stroke-width: 0.75;' /> +<line x1='451.73' y1='434.57' x2='455.29' y2='431.01' style='stroke-width: 0.75;' /> +<line x1='451.73' y1='431.01' x2='455.29' y2='434.57' style='stroke-width: 0.75;' /> +<line x1='450.99' y1='432.79' x2='456.03' y2='432.79' style='stroke-width: 0.75;' /> +<line x1='453.51' y1='435.31' x2='453.51' y2='430.27' style='stroke-width: 0.75;' /> +<line x1='513.83' y1='430.44' x2='517.39' y2='426.88' style='stroke-width: 0.75;' /> +<line x1='513.83' y1='426.88' x2='517.39' y2='430.44' style='stroke-width: 0.75;' /> +<line x1='513.09' y1='428.66' x2='518.13' y2='428.66' style='stroke-width: 0.75;' /> +<line x1='515.61' y1='431.18' x2='515.61' y2='426.14' style='stroke-width: 0.75;' /> +<line x1='513.83' y1='394.35' x2='517.39' y2='390.79' style='stroke-width: 0.75;' /> +<line x1='513.83' y1='390.79' x2='517.39' y2='394.35' style='stroke-width: 0.75;' /> +<line x1='513.09' y1='392.57' x2='518.13' y2='392.57' style='stroke-width: 0.75;' /> +<line x1='515.61' y1='395.09' x2='515.61' y2='390.05' style='stroke-width: 0.75;' /> +<line x1='579.13' y1='380.34' x2='582.69' y2='376.78' style='stroke-width: 0.75;' /> +<line x1='579.13' y1='376.78' x2='582.69' y2='380.34' style='stroke-width: 0.75;' /> +<line x1='578.39' y1='378.56' x2='583.43' y2='378.56' style='stroke-width: 0.75;' /> +<line x1='580.91' y1='381.08' x2='580.91' y2='376.04' style='stroke-width: 0.75;' /> +<line x1='579.13' y1='441.19' x2='582.69' y2='437.62' style='stroke-width: 0.75;' /> +<line x1='579.13' y1='437.62' x2='582.69' y2='441.19' style='stroke-width: 0.75;' /> +<line x1='578.39' y1='439.40' x2='583.43' y2='439.40' style='stroke-width: 0.75;' /> +<line x1='580.91' y1='441.92' x2='580.91' y2='436.88' style='stroke-width: 0.75;' /> +<line x1='617.63' y1='500.08' x2='621.19' y2='496.52' style='stroke-width: 0.75;' /> +<line x1='617.63' y1='496.52' x2='621.19' y2='500.08' style='stroke-width: 0.75;' /> +<line x1='616.89' y1='498.30' x2='621.93' y2='498.30' style='stroke-width: 0.75;' /> +<line x1='619.41' y1='500.82' x2='619.41' y2='495.78' style='stroke-width: 0.75;' /> +<line x1='617.63' y1='410.25' x2='621.19' y2='406.69' style='stroke-width: 0.75;' /> +<line x1='617.63' y1='406.69' x2='621.19' y2='410.25' style='stroke-width: 0.75;' /> +<line x1='616.89' y1='408.47' x2='621.93' y2='408.47' style='stroke-width: 0.75;' /> +<line x1='619.41' y1='410.99' x2='619.41' y2='405.95' style='stroke-width: 0.75;' /> +<line x1='632.88' y1='440.56' x2='636.44' y2='437.00' style='stroke-width: 0.75;' /> +<line x1='632.88' y1='437.00' x2='636.44' y2='440.56' style='stroke-width: 0.75;' /> +<line x1='632.14' y1='438.78' x2='637.18' y2='438.78' style='stroke-width: 0.75;' /> +<line x1='634.66' y1='441.30' x2='634.66' y2='436.26' style='stroke-width: 0.75;' /> +<line x1='632.88' y1='376.36' x2='636.44' y2='372.79' style='stroke-width: 0.75;' /> +<line x1='632.88' y1='372.79' x2='636.44' y2='376.36' style='stroke-width: 0.75;' /> +<line x1='632.14' y1='374.57' x2='637.18' y2='374.57' style='stroke-width: 0.75;' /> +<line x1='634.66' y1='377.09' x2='634.66' y2='372.05' style='stroke-width: 0.75;' /> +<line x1='626.32' y1='434.25' x2='629.88' y2='430.68' style='stroke-width: 0.75;' /> +<line x1='626.32' y1='430.68' x2='629.88' y2='434.25' style='stroke-width: 0.75;' /> +<line x1='625.58' y1='432.46' x2='630.62' y2='432.46' style='stroke-width: 0.75;' /> +<line x1='628.10' y1='434.98' x2='628.10' y2='429.94' style='stroke-width: 0.75;' /> +<line x1='626.32' y1='406.32' x2='629.88' y2='402.75' style='stroke-width: 0.75;' /> +<line x1='626.32' y1='402.75' x2='629.88' y2='406.32' style='stroke-width: 0.75;' /> +<line x1='625.58' y1='404.54' x2='630.62' y2='404.54' style='stroke-width: 0.75;' /> +<line x1='628.10' y1='407.06' x2='628.10' y2='402.02' style='stroke-width: 0.75;' /> +<line x1='604.00' y1='418.56' x2='607.56' y2='415.00' style='stroke-width: 0.75;' /> +<line x1='604.00' y1='415.00' x2='607.56' y2='418.56' style='stroke-width: 0.75;' /> +<line x1='603.26' y1='416.78' x2='608.30' y2='416.78' style='stroke-width: 0.75;' /> +<line x1='605.78' y1='419.30' x2='605.78' y2='414.26' style='stroke-width: 0.75;' /> +<line x1='604.00' y1='452.43' x2='607.56' y2='448.87' style='stroke-width: 0.75;' /> +<line x1='604.00' y1='448.87' x2='607.56' y2='452.43' style='stroke-width: 0.75;' /> +<line x1='603.26' y1='450.65' x2='608.30' y2='450.65' style='stroke-width: 0.75;' /> +<line x1='605.78' y1='453.17' x2='605.78' y2='448.13' style='stroke-width: 0.75;' /> +<line x1='577.14' y1='433.29' x2='580.70' y2='429.73' style='stroke-width: 0.75;' /> +<line x1='577.14' y1='429.73' x2='580.70' y2='433.29' style='stroke-width: 0.75;' /> +<line x1='576.40' y1='431.51' x2='581.44' y2='431.51' style='stroke-width: 0.75;' /> +<line x1='578.92' y1='434.03' x2='578.92' y2='428.99' style='stroke-width: 0.75;' /> +<line x1='577.14' y1='415.49' x2='580.70' y2='411.92' style='stroke-width: 0.75;' /> +<line x1='577.14' y1='411.92' x2='580.70' y2='415.49' style='stroke-width: 0.75;' /> +<line x1='576.40' y1='413.71' x2='581.44' y2='413.71' style='stroke-width: 0.75;' /> +<line x1='578.92' y1='416.23' x2='578.92' y2='411.19' style='stroke-width: 0.75;' /> +<line x1='442.13' y1='394.50' x2='447.17' y2='394.50' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='444.65' y1='397.02' x2='444.65' y2='391.98' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='442.13,394.50 444.65,391.98 447.17,394.50 444.65,397.02 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='442.13' y1='444.40' x2='447.17' y2='444.40' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='444.65' y1='446.92' x2='444.65' y2='441.88' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='442.13,444.40 444.65,441.88 447.17,444.40 444.65,446.92 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='497.90' y1='554.63' x2='502.94' y2='554.63' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='500.42' y1='557.15' x2='500.42' y2='552.11' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='497.90,554.63 500.42,552.11 502.94,554.63 500.42,557.15 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='497.90' y1='450.22' x2='502.94' y2='450.22' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='500.42' y1='452.74' x2='500.42' y2='447.70' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='497.90,450.22 500.42,447.70 502.94,450.22 500.42,452.74 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='571.52' y1='380.26' x2='576.56' y2='380.26' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='574.04' y1='382.78' x2='574.04' y2='377.74' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='571.52,380.26 574.04,377.74 576.56,380.26 574.04,382.78 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='571.52' y1='402.45' x2='576.56' y2='402.45' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='574.04' y1='404.97' x2='574.04' y2='399.93' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='571.52,402.45 574.04,399.93 576.56,402.45 574.04,404.97 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='633.77' y1='460.24' x2='638.81' y2='460.24' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='636.29' y1='462.76' x2='636.29' y2='457.72' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='633.77,460.24 636.29,457.72 638.81,460.24 636.29,462.76 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='633.77' y1='407.57' x2='638.81' y2='407.57' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='636.29' y1='410.09' x2='636.29' y2='405.05' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='633.77,407.57 636.29,405.05 638.81,407.57 636.29,410.09 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='669.96' y1='393.10' x2='675.00' y2='393.10' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='672.48' y1='395.62' x2='672.48' y2='390.58' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='669.96,393.10 672.48,390.58 675.00,393.10 672.48,395.62 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='669.96' y1='364.80' x2='675.00' y2='364.80' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='672.48' y1='367.32' x2='672.48' y2='362.28' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='669.96,364.80 672.48,362.28 675.00,364.80 672.48,367.32 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='669.27' y1='483.71' x2='674.31' y2='483.71' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='671.79' y1='486.23' x2='671.79' y2='481.19' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='669.27,483.71 671.79,481.19 674.31,483.71 671.79,486.23 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='669.27' y1='383.03' x2='674.31' y2='383.03' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='671.79' y1='385.55' x2='671.79' y2='380.51' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='669.27,383.03 671.79,380.51 674.31,383.03 671.79,385.55 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='645.13' y1='404.23' x2='650.17' y2='404.23' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='647.65' y1='406.75' x2='647.65' y2='401.71' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='645.13,404.23 647.65,401.71 650.17,404.23 647.65,406.75 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='645.13' y1='427.25' x2='650.17' y2='427.25' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='647.65' y1='429.77' x2='647.65' y2='424.73' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='645.13,427.25 647.65,424.73 650.17,427.25 647.65,429.77 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='614.69' y1='411.12' x2='619.73' y2='411.12' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='617.21' y1='413.64' x2='617.21' y2='408.60' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='614.69,411.12 617.21,408.60 619.73,411.12 617.21,413.64 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> +<line x1='614.69' y1='462.38' x2='619.73' y2='462.38' style='stroke-width: 0.75; stroke: #DF536B;' /> +<line x1='617.21' y1='464.90' x2='617.21' y2='459.86' style='stroke-width: 0.75; stroke: #DF536B;' /> +<polygon points='614.69,462.38 617.21,459.86 619.73,462.38 617.21,464.90 ' style='stroke-width: 0.75; stroke: #DF536B; fill: none;' /> <circle cx='428.94' cy='400.35' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> <line x1='427.16' y1='400.35' x2='430.72' y2='400.35' style='stroke-width: 0.75; stroke: #61D04F;' /> <line x1='428.94' y1='402.13' x2='428.94' y2='398.56' style='stroke-width: 0.75; stroke: #61D04F;' /> @@ -2274,47 +2274,47 @@ <line x1='427.16' y1='410.62' x2='430.72' y2='410.62' style='stroke-width: 0.75; stroke: #61D04F;' /> <line x1='428.94' y1='412.40' x2='428.94' y2='408.84' style='stroke-width: 0.75; stroke: #61D04F;' /> <circle cx='462.69' cy='451.74' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='460.91' y1='451.74' x2='464.47' y2='451.74' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='460.91' y1='451.74' x2='464.48' y2='451.74' style='stroke-width: 0.75; stroke: #61D04F;' /> <line x1='462.69' y1='453.52' x2='462.69' y2='449.96' style='stroke-width: 0.75; stroke: #61D04F;' /> <circle cx='462.69' cy='442.25' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='460.91' y1='442.25' x2='464.47' y2='442.25' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='460.91' y1='442.25' x2='464.48' y2='442.25' style='stroke-width: 0.75; stroke: #61D04F;' /> <line x1='462.69' y1='444.03' x2='462.69' y2='440.47' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='517.11' cy='408.95' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='515.33' y1='408.95' x2='518.89' y2='408.95' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='517.11' y1='410.73' x2='517.11' y2='407.17' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='517.11' cy='449.94' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='515.33' y1='449.94' x2='518.89' y2='449.94' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='517.11' y1='451.72' x2='517.11' y2='448.15' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='581.76' cy='406.76' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='579.98' y1='406.76' x2='583.54' y2='406.76' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='581.76' y1='408.55' x2='581.76' y2='404.98' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='581.76' cy='420.45' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='579.98' y1='420.45' x2='583.54' y2='420.45' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='581.76' y1='422.24' x2='581.76' y2='418.67' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='645.32' cy='426.46' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='643.54' y1='426.46' x2='647.10' y2='426.46' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='645.32' y1='428.24' x2='645.32' y2='424.68' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='645.32' cy='434.20' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='643.54' y1='434.20' x2='647.10' y2='434.20' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='645.32' y1='435.98' x2='645.32' y2='432.41' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='674.45' cy='489.01' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='672.67' y1='489.01' x2='676.24' y2='489.01' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='674.45' y1='490.79' x2='674.45' y2='487.23' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='674.45' cy='393.41' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='672.67' y1='393.41' x2='676.24' y2='393.41' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='674.45' y1='395.19' x2='674.45' y2='391.63' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='661.91' cy='371.33' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='660.13' y1='371.33' x2='663.69' y2='371.33' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='661.91' y1='373.11' x2='661.91' y2='369.55' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='661.91' cy='374.26' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='660.13' y1='374.26' x2='663.69' y2='374.26' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='661.91' y1='376.04' x2='661.91' y2='372.47' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='638.97' cy='474.37' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='637.19' y1='474.37' x2='640.75' y2='474.37' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='638.97' y1='476.15' x2='638.97' y2='472.58' style='stroke-width: 0.75; stroke: #61D04F;' /> -<circle cx='638.97' cy='420.61' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='637.19' y1='420.61' x2='640.75' y2='420.61' style='stroke-width: 0.75; stroke: #61D04F;' /> -<line x1='638.97' y1='422.39' x2='638.97' y2='418.83' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='517.12' cy='408.95' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='515.34' y1='408.95' x2='518.91' y2='408.95' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='517.12' y1='410.73' x2='517.12' y2='407.17' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='517.12' cy='449.94' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='515.34' y1='449.94' x2='518.91' y2='449.94' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='517.12' y1='451.72' x2='517.12' y2='448.15' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='581.79' cy='406.76' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='580.00' y1='406.76' x2='583.57' y2='406.76' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='581.79' y1='408.55' x2='581.79' y2='404.98' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='581.79' cy='420.45' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='580.00' y1='420.45' x2='583.57' y2='420.45' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='581.79' y1='422.24' x2='581.79' y2='418.67' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='645.35' cy='426.46' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='643.57' y1='426.46' x2='647.14' y2='426.46' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='645.35' y1='428.24' x2='645.35' y2='424.68' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='645.35' cy='434.20' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='643.57' y1='434.20' x2='647.14' y2='434.20' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='645.35' y1='435.98' x2='645.35' y2='432.41' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='674.49' cy='489.01' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='672.71' y1='489.01' x2='676.27' y2='489.01' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='674.49' y1='490.79' x2='674.49' y2='487.23' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='674.49' cy='393.41' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='672.71' y1='393.41' x2='676.27' y2='393.41' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='674.49' y1='395.19' x2='674.49' y2='391.63' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='661.94' cy='371.33' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='660.16' y1='371.33' x2='663.73' y2='371.33' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='661.94' y1='373.11' x2='661.94' y2='369.55' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='661.94' cy='374.26' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='660.16' y1='374.26' x2='663.73' y2='374.26' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='661.94' y1='376.04' x2='661.94' y2='372.47' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='639.00' cy='474.37' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='637.22' y1='474.37' x2='640.78' y2='474.37' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='639.00' y1='476.15' x2='639.00' y2='472.58' style='stroke-width: 0.75; stroke: #61D04F;' /> +<circle cx='639.00' cy='420.61' r='1.78' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='637.22' y1='420.61' x2='640.78' y2='420.61' style='stroke-width: 0.75; stroke: #61D04F;' /> +<line x1='639.00' y1='422.39' x2='639.00' y2='418.83' style='stroke-width: 0.75; stroke: #61D04F;' /> <polygon points='423.12,410.17 425.52,405.32 420.72,405.32 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> <polygon points='423.12,404.63 425.52,409.48 420.72,409.48 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> <polygon points='423.12,389.49 425.52,384.64 420.72,384.64 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> @@ -2323,174 +2323,174 @@ <polygon points='446.25,453.01 448.65,457.86 443.85,457.86 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> <polygon points='446.25,385.63 448.65,380.78 443.85,380.78 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> <polygon points='446.25,380.09 448.65,384.94 443.85,384.94 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='482.88,419.97 485.28,415.12 480.48,415.12 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='482.88,414.43 485.28,419.28 480.48,419.28 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='482.88,393.45 485.28,388.60 480.48,388.60 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='482.88,387.91 485.28,392.76 480.48,392.76 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='524.70,436.10 527.10,431.25 522.30,431.25 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='524.70,430.55 527.10,435.40 522.30,435.40 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='524.70,413.77 527.10,408.93 522.30,408.93 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='524.70,408.23 527.10,413.08 522.30,413.08 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='561.37,460.64 563.77,455.79 558.97,455.79 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='561.37,455.10 563.77,459.94 558.97,459.94 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='561.37,426.65 563.77,421.80 558.97,421.80 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='561.37,421.10 563.77,425.95 558.97,425.95 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='566.47,422.09 568.87,417.25 564.07,417.25 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='566.47,416.55 568.87,421.40 564.07,421.40 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='566.47,422.09 568.87,417.25 564.07,417.25 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='566.47,416.55 568.87,421.40 564.07,421.40 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='547.82,483.37 550.22,478.53 545.42,478.53 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='547.82,477.83 550.22,482.68 545.42,482.68 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='547.82,415.93 550.22,411.08 545.42,411.08 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='547.82,410.39 550.22,415.24 545.42,415.24 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='525.32,401.29 527.72,396.44 522.92,396.44 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='525.32,395.74 527.72,400.59 522.92,400.59 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='525.32,448.29 527.72,443.44 522.92,443.44 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> -<polygon points='525.32,442.74 527.72,447.59 522.92,447.59 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='482.89,419.97 485.29,415.12 480.49,415.12 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='482.89,414.43 485.29,419.28 480.49,419.28 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='482.89,393.45 485.29,388.60 480.49,388.60 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='482.89,387.91 485.29,392.76 480.49,392.76 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='524.72,436.10 527.12,431.25 522.32,431.25 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='524.72,430.55 527.12,435.40 522.32,435.40 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='524.72,413.77 527.12,408.93 522.32,408.93 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='524.72,408.23 527.12,413.08 522.32,413.08 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='561.39,460.64 563.79,455.79 558.99,455.79 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='561.39,455.10 563.79,459.94 558.99,459.94 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='561.39,426.65 563.79,421.80 558.99,421.80 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='561.39,421.10 563.79,425.95 558.99,425.95 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='566.49,422.09 568.89,417.25 564.09,417.25 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='566.49,416.55 568.89,421.40 564.09,421.40 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='566.49,422.09 568.89,417.25 564.09,417.25 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='566.49,416.55 568.89,421.40 564.09,421.40 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='547.84,483.37 550.24,478.53 545.44,478.53 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='547.84,477.83 550.24,482.68 545.44,482.68 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='547.84,415.93 550.24,411.08 545.44,411.08 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='547.84,410.39 550.24,415.24 545.44,415.24 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='525.33,401.29 527.73,396.44 522.93,396.44 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='525.33,395.74 527.73,400.59 522.93,400.59 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='525.33,448.29 527.73,443.44 522.93,443.44 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> +<polygon points='525.33,442.74 527.73,447.59 522.93,447.59 ' style='stroke-width: 0.75; stroke: #2297E6; fill: none;' /> <line x1='422.03' y1='442.05' x2='425.59' y2='442.05' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='423.81' y1='443.83' x2='423.81' y2='440.27' style='stroke-width: 0.75; stroke: #28E2E5;' /> <rect x='422.03' y='440.27' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='422.03' y1='414.49' x2='425.59' y2='414.49' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='423.81' y1='416.27' x2='423.81' y2='412.71' style='stroke-width: 0.75; stroke: #28E2E5;' /> <rect x='422.03' y='412.71' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='446.54' y1='413.33' x2='450.10' y2='413.33' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='446.54' y1='413.33' x2='450.11' y2='413.33' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='448.32' y1='415.11' x2='448.32' y2='411.55' style='stroke-width: 0.75; stroke: #28E2E5;' /> <rect x='446.54' y='411.55' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='446.54' y1='429.82' x2='450.10' y2='429.82' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='446.54' y1='429.82' x2='450.11' y2='429.82' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='448.32' y1='431.60' x2='448.32' y2='428.04' style='stroke-width: 0.75; stroke: #28E2E5;' /> <rect x='446.54' y='428.04' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='485.83' y1='458.55' x2='489.40' y2='458.55' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='487.61' y1='460.33' x2='487.61' y2='456.77' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='485.83' y='456.77' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='485.83' y1='461.44' x2='489.40' y2='461.44' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='487.61' y1='463.23' x2='487.61' y2='459.66' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='485.83' y='459.66' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='531.48' y1='433.26' x2='535.04' y2='433.26' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='533.26' y1='435.05' x2='533.26' y2='431.48' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='531.48' y='431.48' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='531.48' y1='418.92' x2='535.04' y2='418.92' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='533.26' y1='420.70' x2='533.26' y2='417.13' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='531.48' y='417.13' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='571.95' y1='387.42' x2='575.52' y2='387.42' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='573.74' y1='389.20' x2='573.74' y2='385.64' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='571.95' y='385.64' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='571.95' y1='415.70' x2='575.52' y2='415.70' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='573.74' y1='417.48' x2='573.74' y2='413.91' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='571.95' y='413.91' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='574.42' y1='417.33' x2='577.98' y2='417.33' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='576.20' y1='419.11' x2='576.20' y2='415.55' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='574.42' y='415.55' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='574.42' y1='403.33' x2='577.98' y2='403.33' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='576.20' y1='405.11' x2='576.20' y2='401.55' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='574.42' y='401.55' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='550.40' y1='397.20' x2='553.96' y2='397.20' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='552.18' y1='398.98' x2='552.18' y2='395.41' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='550.40' y='395.41' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='550.40' y1='441.34' x2='553.96' y2='441.34' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='552.18' y1='443.12' x2='552.18' y2='439.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='550.40' y='439.56' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='523.97' y1='464.42' x2='527.54' y2='464.42' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='525.75' y1='466.20' x2='525.75' y2='462.63' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='523.97' y='462.63' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='523.97' y1='434.79' x2='527.54' y2='434.79' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='525.75' y1='436.57' x2='525.75' y2='433.01' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='523.97' y='433.01' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='485.84' y1='458.55' x2='489.41' y2='458.55' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='487.62' y1='460.33' x2='487.62' y2='456.77' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='485.84' y='456.77' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='485.84' y1='461.44' x2='489.41' y2='461.44' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='487.62' y1='463.23' x2='487.62' y2='459.66' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='485.84' y='459.66' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='531.50' y1='433.26' x2='535.06' y2='433.26' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='533.28' y1='435.05' x2='533.28' y2='431.48' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='531.50' y='431.48' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='531.50' y1='418.92' x2='535.06' y2='418.92' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='533.28' y1='420.70' x2='533.28' y2='417.13' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='531.50' y='417.13' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='571.98' y1='387.42' x2='575.54' y2='387.42' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='573.76' y1='389.20' x2='573.76' y2='385.64' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='571.98' y='385.64' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='571.98' y1='415.70' x2='575.54' y2='415.70' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='573.76' y1='417.48' x2='573.76' y2='413.91' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='571.98' y='413.91' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='574.44' y1='417.33' x2='578.01' y2='417.33' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='576.22' y1='419.11' x2='576.22' y2='415.55' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='574.44' y='415.55' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='574.44' y1='403.33' x2='578.01' y2='403.33' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='576.22' y1='405.11' x2='576.22' y2='401.55' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='574.44' y='401.55' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='550.42' y1='397.20' x2='553.98' y2='397.20' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='552.20' y1='398.98' x2='552.20' y2='395.41' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='550.42' y='395.41' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='550.42' y1='441.34' x2='553.98' y2='441.34' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='552.20' y1='443.12' x2='552.20' y2='439.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='550.42' y='439.56' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='523.99' y1='464.42' x2='527.55' y2='464.42' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='525.77' y1='466.20' x2='525.77' y2='462.63' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='523.99' y='462.63' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='523.99' y1='434.79' x2='527.55' y2='434.79' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='525.77' y1='436.57' x2='525.77' y2='433.01' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='523.99' y='433.01' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #28E2E5;' /> <circle cx='425.42' cy='419.53' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='423.63' y1='421.31' x2='427.20' y2='417.75' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='423.63' y1='417.75' x2='427.20' y2='421.31' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='423.64' y1='421.31' x2='427.20' y2='417.75' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='423.64' y1='417.75' x2='427.20' y2='421.31' style='stroke-width: 0.75; stroke: #CD0BBC;' /> <circle cx='425.42' cy='450.48' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='423.63' y1='452.27' x2='427.20' y2='448.70' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='423.63' y1='448.70' x2='427.20' y2='452.27' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='452.36' cy='459.73' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='450.58' y1='461.51' x2='454.14' y2='457.95' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='450.58' y1='457.95' x2='454.14' y2='461.51' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='452.36' cy='410.79' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='450.58' y1='412.57' x2='454.14' y2='409.00' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='450.58' y1='409.00' x2='454.14' y2='412.57' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='494.33' cy='407.75' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='492.55' y1='409.53' x2='496.11' y2='405.97' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='492.55' y1='405.97' x2='496.11' y2='409.53' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='494.33' cy='466.90' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='492.55' y1='468.68' x2='496.11' y2='465.12' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='492.55' y1='465.12' x2='496.11' y2='468.68' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='541.31' cy='403.67' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='539.53' y1='405.46' x2='543.09' y2='401.89' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='539.53' y1='401.89' x2='543.09' y2='405.46' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='541.31' cy='438.34' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='539.53' y1='440.12' x2='543.09' y2='436.55' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='539.53' y1='436.55' x2='543.09' y2='440.12' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='583.16' cy='453.81' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='581.38' y1='455.59' x2='584.94' y2='452.03' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='581.38' y1='452.03' x2='584.94' y2='455.59' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='583.16' cy='416.86' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='581.38' y1='418.64' x2='584.94' y2='415.07' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='581.38' y1='415.07' x2='584.94' y2='418.64' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='598.00' cy='459.02' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='596.22' y1='460.81' x2='599.79' y2='457.24' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='596.22' y1='457.24' x2='599.79' y2='460.81' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='598.00' cy='453.52' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='596.22' y1='455.30' x2='599.79' y2='451.74' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='596.22' y1='451.74' x2='599.79' y2='455.30' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='587.14' cy='359.71' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='585.36' y1='361.50' x2='588.92' y2='357.93' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='585.36' y1='357.93' x2='588.92' y2='361.50' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='587.14' cy='382.69' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='585.36' y1='384.47' x2='588.92' y2='380.91' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='585.36' y1='380.91' x2='588.92' y2='384.47' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='570.34' cy='417.20' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='568.55' y1='418.98' x2='572.12' y2='415.42' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='568.55' y1='415.42' x2='572.12' y2='418.98' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<circle cx='570.34' cy='447.92' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='568.55' y1='449.70' x2='572.12' y2='446.14' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='568.55' y1='446.14' x2='572.12' y2='449.70' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<polygon points='433.40,438.94 435.18,442.51 431.61,442.51 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='431.61' y='438.94' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='433.40,340.28 435.18,343.85 431.61,343.85 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='431.61' y='340.28' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='472.10,422.76 473.88,426.33 470.32,426.33 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<line x1='423.64' y1='452.27' x2='427.20' y2='448.70' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='423.64' y1='448.70' x2='427.20' y2='452.27' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='452.37' cy='459.73' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='450.58' y1='461.51' x2='454.15' y2='457.95' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='450.58' y1='457.95' x2='454.15' y2='461.51' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='452.37' cy='410.79' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='450.58' y1='412.57' x2='454.15' y2='409.00' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='450.58' y1='409.00' x2='454.15' y2='412.57' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='494.34' cy='407.75' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='492.56' y1='409.53' x2='496.12' y2='405.97' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='492.56' y1='405.97' x2='496.12' y2='409.53' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='494.34' cy='466.90' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='492.56' y1='468.68' x2='496.12' y2='465.12' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='492.56' y1='465.12' x2='496.12' y2='468.68' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='541.33' cy='403.67' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='539.55' y1='405.46' x2='543.11' y2='401.89' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='539.55' y1='401.89' x2='543.11' y2='405.46' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='541.33' cy='438.34' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='539.55' y1='440.12' x2='543.11' y2='436.55' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='539.55' y1='436.55' x2='543.11' y2='440.12' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='583.18' cy='453.81' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='581.40' y1='455.59' x2='584.96' y2='452.03' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='581.40' y1='452.03' x2='584.96' y2='455.59' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='583.18' cy='416.86' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='581.40' y1='418.64' x2='584.96' y2='415.07' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='581.40' y1='415.07' x2='584.96' y2='418.64' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='598.03' cy='459.02' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='596.25' y1='460.81' x2='599.81' y2='457.24' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='596.25' y1='457.24' x2='599.81' y2='460.81' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='598.03' cy='453.52' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='596.25' y1='455.30' x2='599.81' y2='451.74' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='596.25' y1='451.74' x2='599.81' y2='455.30' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='587.16' cy='359.71' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='585.38' y1='361.50' x2='588.94' y2='357.93' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='585.38' y1='357.93' x2='588.94' y2='361.50' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='587.16' cy='382.69' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='585.38' y1='384.47' x2='588.94' y2='380.91' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='585.38' y1='380.91' x2='588.94' y2='384.47' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='570.36' cy='417.20' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='568.58' y1='418.98' x2='572.14' y2='415.42' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='568.58' y1='415.42' x2='572.14' y2='418.98' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<circle cx='570.36' cy='447.92' r='1.78' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='568.58' y1='449.70' x2='572.14' y2='446.14' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='568.58' y1='446.14' x2='572.14' y2='449.70' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<polygon points='433.40,438.94 435.18,442.51 431.62,442.51 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='431.62' y='438.94' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='433.40,340.28 435.18,343.85 431.62,343.85 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='431.62' y='340.28' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='472.11,422.76 473.89,426.33 470.32,426.33 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> <rect x='470.32' y='422.76' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='472.10,456.49 473.88,460.05 470.32,460.05 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='472.11,456.49 473.89,460.05 470.32,460.05 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> <rect x='470.32' y='456.49' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='526.15,387.67 527.94,391.24 524.37,391.24 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='524.37' y='387.67' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='526.15,412.32 527.94,415.88 524.37,415.88 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='524.37' y='412.32' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='576.65,404.98 578.44,408.54 574.87,408.54 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='574.87' y='404.98' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='576.65,420.95 578.44,424.51 574.87,424.51 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='574.87' y='420.95' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='610.57,442.07 612.36,445.64 608.79,445.64 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='608.79' y='442.07' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='610.57,422.82 612.36,426.38 608.79,426.38 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='608.79' y='422.82' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='609.37,438.93 611.16,442.49 607.59,442.49 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='607.59' y='438.93' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='609.37,447.72 611.16,451.29 607.59,451.29 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='607.59' y='447.72' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='585.17,451.97 586.96,455.53 583.39,455.53 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='583.39' y='451.97' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='585.17,403.73 586.96,407.29 583.39,407.29 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='583.39' y='403.73' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='556.89,439.68 558.67,443.25 555.10,443.25 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='555.10' y='439.68' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> -<polygon points='556.89,383.41 558.67,386.97 555.10,386.97 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<rect x='555.10' y='383.41' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='526.17,387.67 527.95,391.24 524.39,391.24 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='524.39' y='387.67' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='526.17,412.32 527.95,415.88 524.39,415.88 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='524.39' y='412.32' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='576.68,404.98 578.46,408.54 574.90,408.54 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='574.90' y='404.98' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='576.68,420.95 578.46,424.51 574.90,424.51 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='574.90' y='420.95' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='610.60,442.07 612.38,445.64 608.82,445.64 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='608.82' y='442.07' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='610.60,422.82 612.38,426.38 608.82,426.38 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='608.82' y='422.82' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='609.40,438.93 611.18,442.49 607.62,442.49 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='607.62' y='438.93' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='609.40,447.72 611.18,451.29 607.62,451.29 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='607.62' y='447.72' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='585.20,451.97 586.98,455.53 583.42,455.53 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='583.42' y='451.97' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='585.20,403.73 586.98,407.29 583.42,407.29 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='583.42' y='403.73' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='556.91,439.68 558.69,443.25 555.12,443.25 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='555.12' y='439.68' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> +<polygon points='556.91,383.41 558.69,386.97 555.12,386.97 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<rect x='555.12' y='383.41' width='3.56' height='3.56' style='stroke-width: 0.75; stroke: #F5C710;' /> <polygon points='431.16,361.83 434.72,361.83 434.72,358.26 431.16,358.26 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> <polygon points='431.16,460.56 434.72,460.56 434.72,457.00 431.16,457.00 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='469.18,436.36 472.74,436.36 472.74,432.79 469.18,432.79 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='469.18,430.20 472.74,430.20 472.74,426.64 469.18,426.64 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='522.52,453.48 526.09,453.48 526.09,449.91 522.52,449.91 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='522.52,413.73 526.09,413.73 526.09,410.16 522.52,410.16 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='572.96,374.33 576.52,374.33 576.52,370.77 572.96,370.77 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='572.96,414.57 576.52,414.57 576.52,411.00 572.96,411.00 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='609.60,456.45 613.16,456.45 613.16,452.89 609.60,452.89 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='609.60,463.44 613.16,463.44 613.16,459.87 609.60,459.87 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='623.36,425.24 626.93,425.24 626.93,421.68 623.36,421.68 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='623.36,411.96 626.93,411.96 626.93,408.40 623.36,408.40 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='614.64,457.13 618.20,457.13 618.20,453.57 614.64,453.57 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='614.64,428.01 618.20,428.01 618.20,424.44 614.64,424.44 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='597.77,349.96 601.33,349.96 601.33,346.40 597.77,346.40 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> -<polygon points='597.77,466.76 601.33,466.76 601.33,463.19 597.77,463.19 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='469.19,436.36 472.75,436.36 472.75,432.79 469.19,432.79 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='469.19,430.20 472.75,430.20 472.75,426.64 469.19,426.64 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='522.54,453.48 526.10,453.48 526.10,449.91 522.54,449.91 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='522.54,413.73 526.10,413.73 526.10,410.16 522.54,410.16 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='572.98,374.33 576.54,374.33 576.54,370.77 572.98,370.77 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='572.98,414.57 576.54,414.57 576.54,411.00 572.98,411.00 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='609.62,456.45 613.19,456.45 613.19,452.89 609.62,452.89 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='609.62,463.44 613.19,463.44 613.19,459.87 609.62,459.87 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='623.39,425.24 626.96,425.24 626.96,421.68 623.39,421.68 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='623.39,411.96 626.96,411.96 626.96,408.40 623.39,408.40 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='614.67,457.13 618.23,457.13 618.23,453.57 614.67,453.57 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='614.67,428.01 618.23,428.01 618.23,424.44 614.67,424.44 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='597.80,349.96 601.36,349.96 601.36,346.40 597.80,346.40 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> +<polygon points='597.80,466.75 601.36,466.75 601.36,463.19 597.80,463.19 ' style='stroke-width: 0.75; stroke: none; fill: #9E9E9E;' /> </g> <defs> <clipPath id='cpNTkuMDR8Njg5Ljc2fDU5LjA0fDUwMi41Ng=='> diff --git a/tests/testthat/_snaps/multistart/parplot-for-dfop-sfo-fit.svg b/tests/testthat/_snaps/multistart/parplot-for-dfop-sfo-fit.svg index b01dac74..ed9168fb 100644 --- a/tests/testthat/_snaps/multistart/parplot-for-dfop-sfo-fit.svg +++ b/tests/testthat/_snaps/multistart/parplot-for-dfop-sfo-fit.svg @@ -25,104 +25,104 @@ </clipPath> </defs> <g clip-path='url(#cpNTkuMDR8Njg5Ljc2fDU5LjA0fDUwMi41Ng==)'> -<polygon points='86.57,280.91 119.94,280.91 119.94,280.26 86.57,280.26 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> -<line x1='86.57' y1='280.71' x2='119.94' y2='280.71' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='103.26' y1='281.01' x2='103.26' y2='280.91' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<polygon points='86.57,280.78 119.94,280.78 119.94,280.26 86.57,280.26 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='86.57' y1='280.70' x2='119.94' y2='280.70' style='stroke-width: 2.25; stroke-linecap: butt;' /> +<line x1='103.26' y1='280.80' x2='103.26' y2='280.78' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> <line x1='103.26' y1='279.89' x2='103.26' y2='280.26' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='94.91' y1='281.01' x2='111.60' y2='281.01' style='stroke-width: 0.75;' /> +<line x1='94.91' y1='280.80' x2='111.60' y2='280.80' style='stroke-width: 0.75;' /> <line x1='94.91' y1='279.89' x2='111.60' y2='279.89' style='stroke-width: 0.75;' /> -<polygon points='86.57,280.91 119.94,280.91 119.94,280.26 86.57,280.26 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='128.29,281.88 161.66,281.88 161.66,280.33 128.29,280.33 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> -<line x1='128.29' y1='280.61' x2='161.66' y2='280.61' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='144.97' y1='282.96' x2='144.97' y2='281.88' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='144.97' y1='280.24' x2='144.97' y2='280.33' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<polygon points='86.57,280.78 119.94,280.78 119.94,280.26 86.57,280.26 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='128.29,282.92 161.66,282.92 161.66,281.57 128.29,281.57 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='128.29' y1='282.61' x2='161.66' y2='282.61' style='stroke-width: 2.25; stroke-linecap: butt;' /> +<line x1='144.97' y1='282.96' x2='144.97' y2='282.92' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='144.97' y1='280.80' x2='144.97' y2='281.57' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> <line x1='136.63' y1='282.96' x2='153.31' y2='282.96' style='stroke-width: 0.75;' /> -<line x1='136.63' y1='280.24' x2='153.31' y2='280.24' style='stroke-width: 0.75;' /> -<polygon points='128.29,281.88 161.66,281.88 161.66,280.33 128.29,280.33 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='170.00,281.69 203.37,281.69 203.37,280.53 170.00,280.53 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> -<line x1='170.00' y1='280.75' x2='203.37' y2='280.75' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='186.69' y1='282.58' x2='186.69' y2='281.69' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='186.69' y1='280.35' x2='186.69' y2='280.53' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='136.63' y1='280.80' x2='153.31' y2='280.80' style='stroke-width: 0.75;' /> +<polygon points='128.29,282.92 161.66,282.92 161.66,281.57 128.29,281.57 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='170.00,282.03 203.37,282.03 203.37,281.10 170.00,281.10 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='170.00' y1='281.44' x2='203.37' y2='281.44' style='stroke-width: 2.25; stroke-linecap: butt;' /> +<line x1='186.69' y1='282.58' x2='186.69' y2='282.03' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='186.69' y1='280.80' x2='186.69' y2='281.10' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> <line x1='178.34' y1='282.58' x2='195.03' y2='282.58' style='stroke-width: 0.75;' /> -<line x1='178.34' y1='280.35' x2='195.03' y2='280.35' style='stroke-width: 0.75;' /> -<polygon points='170.00,281.69 203.37,281.69 203.37,280.53 170.00,280.53 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='211.71,281.83 245.09,281.83 245.09,280.03 211.71,280.03 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='178.34' y1='280.80' x2='195.03' y2='280.80' style='stroke-width: 0.75;' /> +<polygon points='170.00,282.03 203.37,282.03 203.37,281.10 170.00,281.10 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='211.71,281.58 245.09,281.58 245.09,280.01 211.71,280.01 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> <line x1='211.71' y1='281.14' x2='245.09' y2='281.14' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='228.40' y1='282.17' x2='228.40' y2='281.83' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='228.40' y1='279.26' x2='228.40' y2='280.03' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='220.06' y1='282.17' x2='236.74' y2='282.17' style='stroke-width: 0.75;' /> -<line x1='220.06' y1='279.26' x2='236.74' y2='279.26' style='stroke-width: 0.75;' /> -<polygon points='211.71,281.83 245.09,281.83 245.09,280.03 211.71,280.03 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='253.43,282.21 286.80,282.21 286.80,280.57 253.43,280.57 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='228.40' y1='281.69' x2='228.40' y2='281.58' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='228.40' y1='279.21' x2='228.40' y2='280.01' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='220.06' y1='281.69' x2='236.74' y2='281.69' style='stroke-width: 0.75;' /> +<line x1='220.06' y1='279.21' x2='236.74' y2='279.21' style='stroke-width: 0.75;' /> +<polygon points='211.71,281.58 245.09,281.58 245.09,280.01 211.71,280.01 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='253.43,281.87 286.80,281.87 286.80,280.63 253.43,280.63 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> <line x1='253.43' y1='281.30' x2='286.80' y2='281.30' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='270.11' y1='282.62' x2='270.11' y2='282.21' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='270.11' y1='280.34' x2='270.11' y2='280.57' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='261.77' y1='282.62' x2='278.46' y2='282.62' style='stroke-width: 0.75;' /> -<line x1='261.77' y1='280.34' x2='278.46' y2='280.34' style='stroke-width: 0.75;' /> -<polygon points='253.43,282.21 286.80,282.21 286.80,280.57 253.43,280.57 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='295.14,281.50 328.51,281.50 328.51,278.14 295.14,278.14 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> -<line x1='295.14' y1='279.67' x2='328.51' y2='279.67' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='311.83' y1='282.20' x2='311.83' y2='281.50' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='311.83' y1='277.75' x2='311.83' y2='278.14' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='303.49' y1='282.20' x2='320.17' y2='282.20' style='stroke-width: 0.75;' /> +<line x1='270.11' y1='281.93' x2='270.11' y2='281.87' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='270.11' y1='280.47' x2='270.11' y2='280.63' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='261.77' y1='281.93' x2='278.46' y2='281.93' style='stroke-width: 0.75;' /> +<line x1='261.77' y1='280.47' x2='278.46' y2='280.47' style='stroke-width: 0.75;' /> +<polygon points='253.43,281.87 286.80,281.87 286.80,280.63 253.43,280.63 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='295.14,281.17 328.51,281.17 328.51,278.48 295.14,278.48 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='295.14' y1='280.00' x2='328.51' y2='280.00' style='stroke-width: 2.25; stroke-linecap: butt;' /> +<line x1='311.83' y1='281.54' x2='311.83' y2='281.17' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='311.83' y1='277.75' x2='311.83' y2='278.48' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='303.49' y1='281.54' x2='320.17' y2='281.54' style='stroke-width: 0.75;' /> <line x1='303.49' y1='277.75' x2='320.17' y2='277.75' style='stroke-width: 0.75;' /> -<polygon points='295.14,281.50 328.51,281.50 328.51,278.14 295.14,278.14 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='336.86,281.52 370.23,281.52 370.23,280.88 336.86,280.88 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> -<line x1='336.86' y1='281.06' x2='370.23' y2='281.06' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='353.54' y1='281.89' x2='353.54' y2='281.52' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<polygon points='295.14,281.17 328.51,281.17 328.51,278.48 295.14,278.48 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='336.86,282.43 370.23,282.43 370.23,280.88 336.86,280.88 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='336.86' y1='281.56' x2='370.23' y2='281.56' style='stroke-width: 2.25; stroke-linecap: butt;' /> +<line x1='353.54' y1='282.69' x2='353.54' y2='282.43' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> <line x1='353.54' y1='280.80' x2='353.54' y2='280.88' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='345.20' y1='281.89' x2='361.89' y2='281.89' style='stroke-width: 0.75;' /> +<line x1='345.20' y1='282.69' x2='361.89' y2='282.69' style='stroke-width: 0.75;' /> <line x1='345.20' y1='280.80' x2='361.89' y2='280.80' style='stroke-width: 0.75;' /> -<polygon points='336.86,281.52 370.23,281.52 370.23,280.88 336.86,280.88 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='378.57,281.06 411.94,281.06 411.94,280.72 378.57,280.72 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> -<line x1='378.57' y1='280.91' x2='411.94' y2='280.91' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='395.26' y1='281.09' x2='395.26' y2='281.06' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='395.26' y1='280.64' x2='395.26' y2='280.72' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<polygon points='336.86,282.43 370.23,282.43 370.23,280.88 336.86,280.88 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='378.57,280.97 411.94,280.97 411.94,280.81 378.57,280.81 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='378.57' y1='280.83' x2='411.94' y2='280.83' style='stroke-width: 2.25; stroke-linecap: butt;' /> +<line x1='395.26' y1='281.09' x2='395.26' y2='280.97' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='395.26' y1='280.80' x2='395.26' y2='280.81' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> <line x1='386.91' y1='281.09' x2='403.60' y2='281.09' style='stroke-width: 0.75;' /> -<line x1='386.91' y1='280.64' x2='403.60' y2='280.64' style='stroke-width: 0.75;' /> -<polygon points='378.57,281.06 411.94,281.06 411.94,280.72 378.57,280.72 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='420.29,106.59 453.66,106.59 453.66,-114.09 420.29,-114.09 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> -<line x1='420.29' y1='-49.57' x2='453.66' y2='-49.57' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='436.97' y1='280.80' x2='436.97' y2='106.59' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='436.97' y1='-136.13' x2='436.97' y2='-114.09' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='428.63' y1='280.80' x2='445.31' y2='280.80' style='stroke-width: 0.75;' /> -<line x1='428.63' y1='-136.13' x2='445.31' y2='-136.13' style='stroke-width: 0.75;' /> -<polygon points='420.29,106.59 453.66,106.59 453.66,-114.09 420.29,-114.09 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='462.00,281.28 495.37,281.28 495.37,276.14 462.00,276.14 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> -<line x1='462.00' y1='278.79' x2='495.37' y2='278.79' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='478.69' y1='281.75' x2='478.69' y2='281.28' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='478.69' y1='275.48' x2='478.69' y2='276.14' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='470.34' y1='281.75' x2='487.03' y2='281.75' style='stroke-width: 0.75;' /> -<line x1='470.34' y1='275.48' x2='487.03' y2='275.48' style='stroke-width: 0.75;' /> -<polygon points='462.00,281.28 495.37,281.28 495.37,276.14 462.00,276.14 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='503.71,282.81 537.09,282.81 537.09,281.44 503.71,281.44 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> -<line x1='503.71' y1='282.28' x2='537.09' y2='282.28' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='520.40' y1='283.13' x2='520.40' y2='282.81' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='386.91' y1='280.80' x2='403.60' y2='280.80' style='stroke-width: 0.75;' /> +<polygon points='378.57,280.97 411.94,280.97 411.94,280.81 378.57,280.81 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='420.29,409.00 453.66,409.00 453.66,-143.74 420.29,-143.74 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='420.29' y1='40.61' x2='453.66' y2='40.61' style='stroke-width: 2.25; stroke-linecap: butt;' /> +<line x1='436.97' y1='640.00' x2='436.97' y2='409.00' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='436.97' y1='-189.02' x2='436.97' y2='-143.74' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='428.63' y1='640.00' x2='445.31' y2='640.00' style='stroke-width: 0.75;' /> +<line x1='428.63' y1='-189.02' x2='445.31' y2='-189.02' style='stroke-width: 0.75;' /> +<polygon points='420.29,409.00 453.66,409.00 453.66,-143.74 420.29,-143.74 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='462.00,279.09 495.37,279.09 495.37,274.52 462.00,274.52 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='462.00' y1='277.09' x2='495.37' y2='277.09' style='stroke-width: 2.25; stroke-linecap: butt;' /> +<line x1='478.69' y1='280.80' x2='478.69' y2='279.09' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='478.69' y1='272.26' x2='478.69' y2='274.52' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='470.34' y1='280.80' x2='487.03' y2='280.80' style='stroke-width: 0.75;' /> +<line x1='470.34' y1='272.26' x2='487.03' y2='272.26' style='stroke-width: 0.75;' /> +<polygon points='462.00,279.09 495.37,279.09 495.37,274.52 462.00,274.52 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='503.71,282.68 537.09,282.68 537.09,281.44 503.71,281.44 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='503.71' y1='282.32' x2='537.09' y2='282.32' style='stroke-width: 2.25; stroke-linecap: butt;' /> +<line x1='520.40' y1='282.78' x2='520.40' y2='282.68' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> <line x1='520.40' y1='280.80' x2='520.40' y2='281.44' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='512.06' y1='283.13' x2='528.74' y2='283.13' style='stroke-width: 0.75;' /> +<line x1='512.06' y1='282.78' x2='528.74' y2='282.78' style='stroke-width: 0.75;' /> <line x1='512.06' y1='280.80' x2='528.74' y2='280.80' style='stroke-width: 0.75;' /> -<polygon points='503.71,282.81 537.09,282.81 537.09,281.44 503.71,281.44 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='545.43,282.16 578.80,282.16 578.80,276.63 545.43,276.63 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> -<line x1='545.43' y1='279.04' x2='578.80' y2='279.04' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='562.11' y1='283.53' x2='562.11' y2='282.16' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='562.11' y1='275.97' x2='562.11' y2='276.63' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='553.77' y1='283.53' x2='570.46' y2='283.53' style='stroke-width: 0.75;' /> +<polygon points='503.71,282.68 537.09,282.68 537.09,281.44 503.71,281.44 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='545.43,282.11 578.80,282.11 578.80,277.47 545.43,277.47 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='545.43' y1='279.88' x2='578.80' y2='279.88' style='stroke-width: 2.25; stroke-linecap: butt;' /> +<line x1='562.11' y1='283.43' x2='562.11' y2='282.11' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='562.11' y1='275.97' x2='562.11' y2='277.47' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='553.77' y1='283.43' x2='570.46' y2='283.43' style='stroke-width: 0.75;' /> <line x1='553.77' y1='275.97' x2='570.46' y2='275.97' style='stroke-width: 0.75;' /> -<polygon points='545.43,282.16 578.80,282.16 578.80,276.63 545.43,276.63 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='587.14,283.70 620.51,283.70 620.51,280.38 587.14,280.38 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<polygon points='545.43,282.11 578.80,282.11 578.80,277.47 545.43,277.47 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='587.14,282.38 620.51,282.38 620.51,279.47 587.14,279.47 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> <line x1='587.14' y1='281.36' x2='620.51' y2='281.36' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='603.83' y1='285.50' x2='603.83' y2='283.70' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='603.83' y1='279.95' x2='603.83' y2='280.38' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='595.49' y1='285.50' x2='612.17' y2='285.50' style='stroke-width: 0.75;' /> -<line x1='595.49' y1='279.95' x2='612.17' y2='279.95' style='stroke-width: 0.75;' /> -<polygon points='587.14,283.70 620.51,283.70 620.51,280.38 587.14,280.38 ' style='stroke-width: 0.75; fill: none;' /> -<polygon points='628.86,288.92 662.23,288.92 662.23,261.71 628.86,261.71 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> -<line x1='628.86' y1='272.96' x2='662.23' y2='272.96' style='stroke-width: 2.25; stroke-linecap: butt;' /> -<line x1='645.54' y1='297.26' x2='645.54' y2='288.92' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> -<line x1='645.54' y1='258.13' x2='645.54' y2='261.71' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='603.83' y1='282.85' x2='603.83' y2='282.38' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='603.83' y1='278.14' x2='603.83' y2='279.47' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='595.49' y1='282.85' x2='612.17' y2='282.85' style='stroke-width: 0.75;' /> +<line x1='595.49' y1='278.14' x2='612.17' y2='278.14' style='stroke-width: 0.75;' /> +<polygon points='587.14,282.38 620.51,282.38 620.51,279.47 587.14,279.47 ' style='stroke-width: 0.75; fill: none;' /> +<polygon points='628.86,296.96 662.23,296.96 662.23,282.03 628.86,282.03 ' style='stroke-width: 0.75; stroke: none; fill: #D3D3D3;' /> +<line x1='628.86' y1='289.88' x2='662.23' y2='289.88' style='stroke-width: 2.25; stroke-linecap: butt;' /> +<line x1='645.54' y1='297.26' x2='645.54' y2='296.96' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> +<line x1='645.54' y1='280.80' x2='645.54' y2='282.03' style='stroke-width: 0.75; stroke-dasharray: 4.00,4.00;' /> <line x1='637.20' y1='297.26' x2='653.89' y2='297.26' style='stroke-width: 0.75;' /> -<line x1='637.20' y1='258.13' x2='653.89' y2='258.13' style='stroke-width: 0.75;' /> -<polygon points='628.86,288.92 662.23,288.92 662.23,261.71 628.86,261.71 ' style='stroke-width: 0.75; fill: none;' /> +<line x1='637.20' y1='280.80' x2='653.89' y2='280.80' style='stroke-width: 0.75;' /> +<polygon points='628.86,296.96 662.23,296.96 662.23,282.03 628.86,282.03 ' style='stroke-width: 0.75; fill: none;' /> </g> <g clip-path='url(#cpMC4wMHw3MjAuMDB8MC4wMHw1NzYuMDA=)'> <line x1='103.26' y1='502.56' x2='645.54' y2='502.56' style='stroke-width: 0.75;' /> diff --git a/tests/testthat/_snaps/plot/mixed-model-fit-for-nlme-object.svg b/tests/testthat/_snaps/plot/mixed-model-fit-for-nlme-object.svg index 76fed0dc..c94012ce 100644 --- a/tests/testthat/_snaps/plot/mixed-model-fit-for-nlme-object.svg +++ b/tests/testthat/_snaps/plot/mixed-model-fit-for-nlme-object.svg @@ -813,7 +813,7 @@ <polygon points='495.59,338.28 498.61,343.51 492.57,343.51 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> <polygon points='495.59,278.47 498.61,283.70 492.57,283.70 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> <polygon points='468.31,316.26 471.32,321.49 465.29,321.49 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> -<polygon points='468.31,426.24 471.32,431.47 465.29,431.47 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> +<polygon points='468.31,426.24 471.32,431.46 465.29,431.46 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> <polygon points='451.62,304.02 454.64,309.24 448.60,309.24 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> <polygon points='451.62,287.86 454.64,293.09 448.60,293.09 ' style='stroke-width: 0.75; stroke: #61D04F; fill: none;' /> <line x1='679.89' y1='246.30' x2='686.23' y2='246.30' style='stroke-width: 0.75; stroke: #2297E6;' /> @@ -833,7 +833,7 @@ <line x1='626.22' y1='377.79' x2='632.56' y2='377.79' style='stroke-width: 0.75; stroke: #2297E6;' /> <line x1='629.39' y1='380.96' x2='629.39' y2='374.62' style='stroke-width: 0.75; stroke: #2297E6;' /> <line x1='586.08' y1='296.19' x2='592.42' y2='296.19' style='stroke-width: 0.75; stroke: #2297E6;' /> -<line x1='589.25' y1='299.36' x2='589.25' y2='293.02' style='stroke-width: 0.75; stroke: #2297E6;' /> +<line x1='589.25' y1='299.36' x2='589.25' y2='293.03' style='stroke-width: 0.75; stroke: #2297E6;' /> <line x1='586.08' y1='337.84' x2='592.42' y2='337.84' style='stroke-width: 0.75; stroke: #2297E6;' /> <line x1='589.25' y1='341.01' x2='589.25' y2='334.67' style='stroke-width: 0.75; stroke: #2297E6;' /> <line x1='531.93' y1='352.31' x2='538.27' y2='352.31' style='stroke-width: 0.75; stroke: #2297E6;' /> @@ -900,7 +900,7 @@ <polygon points='566.02,339.01 569.19,335.84 572.36,339.01 569.19,342.18 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='522.33,381.82 525.49,378.65 528.66,381.82 525.49,384.99 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='522.33,245.14 525.49,241.97 528.66,245.14 525.49,248.31 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> -<polygon points='476.30,377.33 479.47,374.17 482.64,377.33 479.47,380.50 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> +<polygon points='476.30,377.33 479.47,374.16 482.64,377.33 479.47,380.50 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='476.30,307.60 479.47,304.43 482.64,307.60 479.47,310.77 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='453.11,292.28 456.28,289.11 459.45,292.28 456.28,295.45 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> <polygon points='453.11,318.06 456.28,314.89 459.45,318.06 456.28,321.23 ' style='stroke-width: 0.75; stroke: #CD0BBC; fill: none;' /> @@ -921,7 +921,7 @@ <polygon points='503.90,402.64 506.92,397.41 500.88,397.41 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> <polygon points='503.90,291.61 506.92,286.38 500.88,286.38 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> <polygon points='477.83,272.00 480.84,266.77 474.81,266.77 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> -<polygon points='477.83,263.66 480.84,258.43 474.81,258.43 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> +<polygon points='477.83,263.66 480.84,258.44 474.81,258.44 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> <polygon points='460.40,410.08 463.42,404.85 457.38,404.85 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> <polygon points='460.40,330.79 463.42,325.57 457.38,325.57 ' style='stroke-width: 0.75; stroke: #F5C710; fill: none;' /> <rect x='677.35' y='382.94' width='4.48' height='4.48' style='stroke-width: 0.75; stroke: #9E9E9E;' /> @@ -964,8 +964,8 @@ <line x1='449.96' y1='214.56' x2='454.44' y2='210.07' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='449.96' y1='210.07' x2='454.44' y2='214.56' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <rect x='449.96' y='386.83' width='4.48' height='4.48' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='449.96' y1='391.32' x2='454.44' y2='386.83' style='stroke-width: 0.75; stroke: #9E9E9E;' /> -<line x1='449.96' y1='386.83' x2='454.44' y2='391.32' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='449.96' y1='391.31' x2='454.44' y2='386.83' style='stroke-width: 0.75; stroke: #9E9E9E;' /> +<line x1='449.96' y1='386.83' x2='454.44' y2='391.31' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <rect x='432.50' y='414.10' width='4.48' height='4.48' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='432.50' y1='418.58' x2='436.98' y2='414.10' style='stroke-width: 0.75; stroke: #9E9E9E;' /> <line x1='432.50' y1='414.10' x2='436.98' y2='418.58' style='stroke-width: 0.75; stroke: #9E9E9E;' /> @@ -1243,8 +1243,8 @@ <line x1='457.81' y1='329.91' x2='457.81' y2='325.43' style='stroke-width: 0.75; stroke: #28E2E5;' /> <rect x='455.57' y='325.43' width='4.48' height='4.48' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='440.28' y1='265.76' x2='444.76' y2='265.76' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<line x1='442.52' y1='268.00' x2='442.52' y2='263.51' style='stroke-width: 0.75; stroke: #28E2E5;' /> -<rect x='440.28' y='263.51' width='4.48' height='4.48' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<line x1='442.52' y1='268.00' x2='442.52' y2='263.52' style='stroke-width: 0.75; stroke: #28E2E5;' /> +<rect x='440.28' y='263.52' width='4.48' height='4.48' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='440.28' y1='335.48' x2='444.76' y2='335.48' style='stroke-width: 0.75; stroke: #28E2E5;' /> <line x1='442.52' y1='337.73' x2='442.52' y2='333.24' style='stroke-width: 0.75; stroke: #28E2E5;' /> <rect x='440.28' y='333.24' width='4.48' height='4.48' style='stroke-width: 0.75; stroke: #28E2E5;' /> @@ -1291,8 +1291,8 @@ <line x1='471.24' y1='273.93' x2='475.72' y2='269.45' style='stroke-width: 0.75; stroke: #CD0BBC;' /> <line x1='471.24' y1='269.45' x2='475.72' y2='273.93' style='stroke-width: 0.75; stroke: #CD0BBC;' /> <circle cx='449.95' cy='261.17' r='2.24' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='447.71' y1='263.41' x2='452.19' y2='258.93' style='stroke-width: 0.75; stroke: #CD0BBC;' /> -<line x1='447.71' y1='258.93' x2='452.19' y2='263.41' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='447.71' y1='263.42' x2='452.19' y2='258.93' style='stroke-width: 0.75; stroke: #CD0BBC;' /> +<line x1='447.71' y1='258.93' x2='452.19' y2='263.42' style='stroke-width: 0.75; stroke: #CD0BBC;' /> <circle cx='449.95' cy='397.82' r='2.24' style='stroke-width: 0.75; stroke: #CD0BBC;' /> <line x1='447.71' y1='400.06' x2='452.19' y2='395.57' style='stroke-width: 0.75; stroke: #CD0BBC;' /> <line x1='447.71' y1='395.57' x2='452.19' y2='400.06' style='stroke-width: 0.75; stroke: #CD0BBC;' /> diff --git a/tests/testthat/print_dfop_saem_1.txt b/tests/testthat/print_dfop_saem_1.txt index bdc40065..f7354320 100644 --- a/tests/testthat/print_dfop_saem_1.txt +++ b/tests/testthat/print_dfop_saem_1.txt @@ -13,11 +13,11 @@ Likelihood computed by importance sampling Fitted parameters: estimate lower upper -parent_0 99.92 98.77 101.06 -log_k1 -2.72 -2.95 -2.50 -log_k2 -4.14 -4.27 -4.01 -g_qlogis -0.35 -0.53 -0.16 -a.1 0.92 0.68 1.16 +parent_0 99.96 98.82 101.11 +log_k1 -2.71 -2.94 -2.49 +log_k2 -4.14 -4.26 -4.01 +g_qlogis -0.36 -0.54 -0.17 +a.1 0.93 0.69 1.17 b.1 0.05 0.04 0.06 SD.log_k1 0.37 0.23 0.51 SD.log_k2 0.23 0.14 0.31 diff --git a/vignettes/mesotrione_parent_2023_prebuilt.rnw b/vignettes/mesotrione_parent_2023_prebuilt.rnw new file mode 100644 index 00000000..f8a7a097 --- /dev/null +++ b/vignettes/mesotrione_parent_2023_prebuilt.rnw @@ -0,0 +1,7 @@ +\documentclass{article} +\usepackage{pdfpages} +%\VignetteIndexEntry{Testing covariate modelling in hierarchical parent degradation kinetics with residue data on mesotrione} + +\begin{document} +\includepdf[pages=-, fitpaper=true]{prebuilt/2023_mesotrione_parent.pdf} +\end{document} diff --git a/vignettes/prebuilt/2023_mesotrione_parent.pdf b/vignettes/prebuilt/2023_mesotrione_parent.pdf Binary files differnew file mode 100644 index 00000000..a7ecfe3c --- /dev/null +++ b/vignettes/prebuilt/2023_mesotrione_parent.pdf diff --git a/vignettes/prebuilt/2023_mesotrione_parent.rmd b/vignettes/prebuilt/2023_mesotrione_parent.rmd new file mode 100644 index 00000000..f11effc7 --- /dev/null +++ b/vignettes/prebuilt/2023_mesotrione_parent.rmd @@ -0,0 +1,596 @@ +--- +title: "Testing covariate modelling in hierarchical parent degradation kinetics with residue data on mesotrione" +author: Johannes Ranke +date: Last change on 4 August 2023, last compiled on `r format(Sys.time(), "%e + %B %Y")` +output: + pdf_document: + extra_dependencies: ["float", "listing"] +toc: yes +geometry: margin=2cm +--- + +```{r setup, echo = FALSE, cache = FALSE} +options(width = 80) # For summary listings +knitr::opts_chunk$set( + cache = TRUE, + comment = "", tidy = FALSE, + fig.pos = "H", fig.align = "center" +) +``` + +\clearpage + +# 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 `r packageVersion("mkin")`, 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. + +```{r packages, cache = FALSE, message = FALSE} +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) +} +``` + +\clearpage + +## Test data + +```{r 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 `r length(meso_ds)` +datasets that were read in from the spreadsheet file. + +```{r show-covar-data, dependson = "data", results = "asis"} +pH <- attr(meso_ds, "covariates") +kable(pH, caption = "Covariate data") +``` + +\clearpage + +```{r show-data, dependson = "data", results = "asis"} +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)) +} +``` + +\clearpage + +# 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. + +```{r f-sep-const, dependson = "data"} +deg_mods <- c("SFO", "FOMC", "DFOP", "SFORB", "HS") +f_sep_const <- mmkin( + deg_mods, + meso_ds, + error_model = "const", + cluster = cl, + quiet = TRUE) +``` + +```{r dependson = "f-sep-const"} +status(f_sep_const[, 1:5]) |> kable() +status(f_sep_const[, 6:18]) |> kable() +``` + +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. + +```{r f-sep-tc, dependson = "f-sep-const"} +f_sep_tc <- update(f_sep_const, error_model = "tc") +``` + +```{r dependson = "f-sep-tc"} +status(f_sep_tc[, 1:5]) |> kable() +status(f_sep_tc[, 6:18]) |> kable() +``` + +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. + +\clearpage + +# 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. + +```{r f-saem-1, dependson = c("f-sep-const", "f-sep-tc")} +f_saem_1 <- mhmkin(list(f_sep_const, f_sep_tc), cluster = cl) +status(f_saem_1) |> kable() +``` + +All fits terminate without errors (status OK). + +```{r dependson = "f-saem-1"} +anova(f_saem_1) |> kable(digits = 1) +``` +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. + +```{r dependson = "f-saem-1"} +illparms(f_saem_1) |> kable() +``` + +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. + +```{r f-saem-2, dependson = "f-saem-1"} +f_saem_2 <- update(f_saem_1, no_random_effect = illparms(f_saem_1)) +status(f_saem_2) |> kable() +``` + +The updated fits terminate without errors. + +```{r dependson = "f-saem-2"} +illparms(f_saem_2) |> kable() +``` + +No ill-defined errors remain in the fits with constant variance. + +\clearpage + +# 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 + +```{r sfo-pH, dependson = "f-sep-const"} +sfo_pH <- saem(f_sep_const["SFO", ], no_random_effect = "meso_0", covariates = pH, + covariate_models = list(log_k_meso ~ pH)) +``` + +```{r dependson = "sfo-pH"} +summary(sfo_pH)$confint_trans |> kable(digits = 2) +``` + +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. + + +```{r dependson = "sfo-pH"} +anova(f_saem_2[["SFO", "const"]], sfo_pH, test = TRUE) +``` + +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. + +\clearpage + +```{r dependson = "sfo-pH", plot.height = 5} +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. + +```{r dependson = "sfo-pH", plot.height = 5} +endpoints(sfo_pH) +endpoints(sfo_pH, covariate_quantile = 0.9) +endpoints(sfo_pH, covariates = c(pH = 7.0)) +``` + +\clearpage + +## FOMC + +```{r fomc-pH, dependson = "f-sep-const"} +fomc_pH <- saem(f_sep_const["FOMC", ], no_random_effect = "meso_0", covariates = pH, + covariate_models = list(log_alpha ~ pH)) +``` + +```{r dependson = "fomc-pH"} +summary(fomc_pH)$confint_trans |> kable(digits = 2) +``` + +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). + +```{r dependson = "fomc-pH"} +illparms(fomc_pH) +``` + +Therefore, the model is updated without this random effect, and +no ill-defined parameters remain. + +```{r fomc-pH-2, dependson = "fomc_pH"} +fomc_pH_2 <- update(fomc_pH, no_random_effect = c("meso_0", "log_alpha")) +illparms(fomc_pH_2) +``` + +```{r dependson = "fomc-pH-2"} +anova(f_saem_2[["FOMC", "const"]], fomc_pH, fomc_pH_2, test = TRUE) +``` + +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. + +```{r dependson = "fomc-pH"} +summary(fomc_pH_2)$confint_trans |> kable(digits = 2) +``` + +\clearpage + +```{r dependson = "fomc-pH", plot.height = 5} +plot(fomc_pH_2) +``` + +```{r dependson = "fomc-pH", plot.height = 5} +endpoints(fomc_pH_2) +endpoints(fomc_pH_2, covariates = c(pH = 7)) +``` + +\clearpage + +## DFOP + +In the DFOP fits without covariate effects, random effects for two degradation +parameters (`k2` and `g`) were identifiable. + +```{r dependson = "f-saem-2"} +summary(f_saem_2[["DFOP", "const"]])$confint_trans |> kable(digits = 2) +``` + +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`. + +```{r dfop-pH, dependson = "f-sep-const"} +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`. + +```{r dependson = "dfop-pH"} +summary(dfop_pH)$confint_trans |> kable(digits = 2) +illparms(dfop_pH) +``` + +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. + +```{r dfop-pH-2, dependson = "dfop-pH"} +dfop_pH_2 <- update(dfop_pH, + no_random_effect = c("meso_0", "log_k1", "g_qlogis")) +illparms(dfop_pH_2) +``` + +Now, the slope parameter for the pH effect on `g` is ill-defined. +Therefore, another attempt is made without the corresponding covariate model. + +```{r dfop-pH-3, dependson = "f-sep-const"} +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) +``` +As the random effect for `g` is again ill-defined, the fit is repeated without it. + +```{r dfop-pH-4, dependson = "dfop-pH-3"} +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. + +```{r dependson = "dfop-pH-4"} +anova(f_saem_2[["DFOP", "const"]], dfop_pH, dfop_pH_2, dfop_pH_3, dfop_pH_4) +anova(dfop_pH_2, dfop_pH_4, test = TRUE) +``` + +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. + +\clearpage + +```{r dependson = "dfop-pH-2", plot.height = 5} +plot(dfop_pH_2) +``` + +```{r dependson = "dfop-pH-2", plot.height = 5} +endpoints(dfop_pH_2) +endpoints(dfop_pH_2, covariates = c(pH = 7)) +``` + +\clearpage + +## SFORB + +```{r sforb-pH, dependson = "f-sep-const"} +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)) +``` + +```{r dependson = "sforb-pH"} +summary(sforb_pH)$confint_trans |> kable(digits = 2) +``` + +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. + +```{r dependson = "sforb-pH"} +illparms(sforb_pH) +``` + +To remove the ill-defined parameters, a second variant of the SFORB model +with pH influence is fitted. No ill-defined parameters remain. + +```{r sforb-pH-2, dependson = "f-sforb-pH"} +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. + +```{r dependson = "sforb-pH-2"} +anova(f_saem_2[["SFORB", "const"]], sforb_pH, sforb_pH_2, test = TRUE) +``` +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. + +```{r dependson = "sforb-pH-2"} +summary(sforb_pH_2)$confint_trans |> kable(digits = 2) +``` +\clearpage + +```{r dependson = "sforb-pH-2", plot.height = 5} +plot(sforb_pH_2) +``` + +```{r dependson = "sforb-pH-2", plot.height = 5} +endpoints(sforb_pH_2) +endpoints(sforb_pH_2, covariates = c(pH = 7)) +``` + +\clearpage + +## HS + +```{r hs-pH, dependson = "f-sep-const"} +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)) +``` + +```{r dependson = "hs-pH"} +summary(hs_pH)$confint_trans |> kable(digits = 2) +illparms(hs_pH) +``` + +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. + +```{r hs-pH-2, dependson = "hs-pH"} +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. + +```{r dependson = c("hs-pH-2", "hs-pH-3")} +anova(f_saem_2[["HS", "const"]], hs_pH, hs_pH_2, test = TRUE) +``` + +```{r dependson = "hs-pH-2"} +summary(hs_pH_2)$confint_trans |> kable(digits = 2) +``` + +\clearpage + +```{r dependson = "hs-pH-2", plot.height = 5} +plot(hs_pH_2) +``` + +```{r dependson = "hs-pH-2", plot.height = 5} +endpoints(hs_pH_2) +endpoints(hs_pH_2, covariates = c(pH = 7)) +``` + +\clearpage + +## Comparison across parent models + +After model reduction for all models with pH influence, they are compared with +each other. + +```{r, dependson = c("sfo-pH-2", "fomc-pH-2", "dfop-pH-4", "sforb-pH-1", "hs-pH-3")} +anova(sfo_pH, fomc_pH_2, dfop_pH_2, dfop_pH_4, sforb_pH_2, hs_pH_2) +``` + +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. + +```{r, dependson = "dfop-pH-2"} +endpoints(dfop_pH_2) +endpoints(dfop_pH_2, covariates = c(pH = 7)) +``` + +# 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. + +\clearpage + +# Appendix + +## Hierarchical fit listings + +### Fits without covariate effects + +```{r, cache = FALSE, results = "asis", echo = FALSE} +errmods <- c(const = "constant variance", tc = "two-component error") +for (deg_mod in deg_mods) { + for (err_mod in c("const")) { + fit <- f_saem_1[[deg_mod, err_mod]] + if (!inherits(fit$so, "try-error")) { + caption <- paste("Hierarchical", deg_mod, "fit with", errmods[err_mod]) + tex_listing(fit, caption) + } + } +} +``` + +### Fits with covariate effects + +```{r listing-sfo, cache = FALSE, results = "asis", echo = FALSE} +tex_listing(sfo_pH, "Hierarchichal SFO fit with pH influence") +``` + +\clearpage + +```{r, cache = FALSE, results = "asis", echo = FALSE} +tex_listing(fomc_pH, "Hierarchichal FOMC fit with pH influence") +``` + +\clearpage + +```{r, cache = FALSE, results = "asis", echo = FALSE} +tex_listing(fomc_pH_2, "Refined hierarchichal FOMC fit with pH influence") +``` + +\clearpage + +```{r, cache = FALSE, results = "asis", echo = FALSE} +tex_listing(dfop_pH, "Hierarchichal DFOP fit with pH influence") +``` + +\clearpage + +```{r, cache = FALSE, results = "asis", echo = FALSE} +tex_listing(dfop_pH_2, "Refined hierarchical DFOP fit with pH influence") +``` + +\clearpage + +```{r, cache = FALSE, results = "asis", echo = FALSE} +tex_listing(dfop_pH_4, "Further refined hierarchical DFOP fit with pH influence") +``` + +\clearpage + +```{r, cache = FALSE, results = "asis", echo = FALSE} +tex_listing(sforb_pH, "Hierarchichal SFORB fit with pH influence") +``` +\clearpage + +```{r, cache = FALSE, results = "asis", echo = FALSE} +tex_listing(sforb_pH_2, "Refined hierarchichal SFORB fit with pH influence") +``` +\clearpage + +```{r, cache = FALSE, results = "asis", echo = FALSE} +tex_listing(hs_pH, "Hierarchichal HS fit with pH influence") +``` +\clearpage + +```{r, cache = FALSE, results = "asis", echo = FALSE} +tex_listing(hs_pH_2, "Refined hierarchichal HS fit with pH influence") +``` + +\clearpage + +## Session info + +```{r, echo = FALSE, cache = FALSE} +parallel::stopCluster(cl = cl) +sessionInfo() +``` + + +## Hardware info + +```{r, echo = FALSE} +if(!inherits(try(cpuinfo <- readLines("/proc/cpuinfo")), "try-error")) { + cat(gsub("model name\t: ", "CPU model: ", cpuinfo[grep("model name", cpuinfo)[1]])) +} +if(!inherits(try(meminfo <- readLines("/proc/meminfo")), "try-error")) { + cat(gsub("model name\t: ", "System memory: ", meminfo[grep("MemTotal", meminfo)[1]])) +} +``` |