diff options
| -rw-r--r-- | DESCRIPTION | 2 | ||||
| -rw-r--r-- | NEWS.md | 2 | ||||
| -rw-r--r-- | R/parplot.R | 19 | 
3 files changed, 15 insertions, 8 deletions
| diff --git a/DESCRIPTION b/DESCRIPTION index 6aa012b5..f35f61c3 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -2,7 +2,7 @@ Package: mkin  Type: Package  Title: Kinetic Evaluation of Chemical Degradation Data  Version: 1.2.9 -Date: 2024-04-27 +Date: 2024-09-06  Authors@R: c(    person("Johannes", "Ranke", role = c("aut", "cre", "cph"),      email = "johannes.ranke@jrwb.de", @@ -1,5 +1,7 @@  # mkin 1.2.9 +- 'R/parplot.R': Support multistart objects with covariate models and filter negative values of scaled parameters (with a warning) for plotting. +  - 'R/create_deg_func.R: Make sure that no reversible reactions are specified in the case of two observed variables, as this is not supported  # mkin 1.2.8 diff --git a/R/parplot.R b/R/parplot.R index 3da4b51a..a33112a5 100644 --- a/R/parplot.R +++ b/R/parplot.R @@ -35,9 +35,6 @@ parplot.multistart.saem.mmkin <- function(object, llmin = -Inf, llquant = NA,    scale = c("best", "median"),    lpos = "bottomleft", main = "", ...)  { -  oldpar <- par(no.readonly = TRUE) -  on.exit(par(oldpar, no.readonly = TRUE)) -    orig <- attr(object, "orig")    orig_parms <- parms(orig)    start_degparms <- orig$mean_dp_start @@ -59,11 +56,10 @@ parplot.multistart.saem.mmkin <- function(object, llmin = -Inf, llquant = NA,    selected <- which(ll > llmin)    selected_parms <- all_parms[selected, ] -  par(las = 1)    if (orig$transformations == "mkin") {      degparm_names_transformed <- names(start_degparms)      degparm_index <- which(names(orig_parms) %in% degparm_names_transformed) -    orig_parms[degparm_names_transformed] <- backtransform_odeparms( +    orig_degparms <- backtransform_odeparms(        orig_parms[degparm_names_transformed],        orig$mmkin[[1]]$mkinmod,        transform_rates = orig$mmkin[[1]]$transform_rates, @@ -74,14 +70,17 @@ parplot.multistart.saem.mmkin <- function(object, llmin = -Inf, llquant = NA,        transform_fractions = orig$mmkin[[1]]$transform_fractions)      degparm_names <- names(start_degparms) -    names(orig_parms) <- c(degparm_names, names(orig_parms[-degparm_index])) +    orig_parms_back <- orig_parms +    orig_parms_back[degparm_index] <- orig_degparms +    names(orig_parms_back)[degparm_index] <- degparm_names +    orig_parms <- orig_parms_back      selected_parms[, degparm_names_transformed] <-        t(apply(selected_parms[, degparm_names_transformed], 1, backtransform_odeparms,        orig$mmkin[[1]]$mkinmod,        transform_rates = orig$mmkin[[1]]$transform_rates,        transform_fractions = orig$mmkin[[1]]$transform_fractions)) -    colnames(selected_parms)[1:length(degparm_names)] <- degparm_names +    colnames(selected_parms)[degparm_index] <- degparm_names    }    start_errparms <- orig$so@model@error.init @@ -99,6 +98,12 @@ parplot.multistart.saem.mmkin <- function(object, llmin = -Inf, llquant = NA,    # Boxplots of all scaled parameters    selected_scaled_parms <- t(apply(selected_parms, 1, function(x) x / parm_scale)) +  i_negative <- selected_scaled_parms <= 0 +  parms_with_negative_scaled_values <- paste(names(which(apply(i_negative, 2, any))), collapse = ", ") +  if (any(i_negative)) { +    warning("There are negative values for ", parms_with_negative_scaled_values, " which are set to NA for plotting") +  } +  selected_scaled_parms[i_negative] <- NA    boxplot(selected_scaled_parms, log = "y", main = main, ,      ylab = "Normalised parameters", ...) | 
