diff --git a/DESCRIPTION b/DESCRIPTION index c1a1e25be..a84bf7cf8 100644 --- a/DESCRIPTION +++ b/DESCRIPTION @@ -1,6 +1,6 @@ Package: mrgsolve Type: Package -Version: 0.8.10.9015 +Version: 0.8.11 Title: Simulate from ODE-Based Population PK/PD and Systems Pharmacology Models Authors@R: c( @@ -42,7 +42,7 @@ LinkingTo: Suggests: lattice, testthat, - xml2, + xml2 (>= 1.2.0), rmarkdown LazyLoad: yes NeedsCompilation: yes diff --git a/NAMESPACE b/NAMESPACE index 471ea9230..de6769927 100644 --- a/NAMESPACE +++ b/NAMESPACE @@ -60,7 +60,6 @@ export(bmat) export(cama) export(carry.out) export(carry_out) -export(ch) export(cmat) export(cmtn) export(cvec) @@ -128,7 +127,7 @@ export(relocate) export(rename_cols) export(req) export(revar) -export(s) +export(s_) export(see) export(simargs) export(smat) diff --git a/NEWS.md b/NEWS.md index ad327b876..844e3f314 100644 --- a/NEWS.md +++ b/NEWS.md @@ -1,3 +1,9 @@ +# mrgsove 0.8.11 +- Internal release +- Removed the function `s` and replaced with `s_`; this was not a problem +created by mrgsolve but rather by ggplot2, which calls `mgcv::s` via +`geom_smooth` under certian circumstances + # mrgsolve 0.8.10.9015 - Re-configured the list of data coming from `as.list.mrgmod` so that the names match the names that you would pass to `update.mrgmod`; also diff --git a/R/class_mrgmod.R b/R/class_mrgmod.R index 32c5b58e9..09d35d715 100644 --- a/R/class_mrgmod.R +++ b/R/class_mrgmod.R @@ -410,7 +410,6 @@ setMethod("as.list", "mrgmod", function(x, deep = FALSE, ...) { project <- project(x) model <- model(x) fixed <- as.list(x@fixed) - fixedp <- names(x@fixed) sigma <- as.list(smat(x)) omega <- as.list(omat(x)) init <- as.list(init(x)) diff --git a/R/nmxml.R b/R/nmxml.R index 2b15db7d2..4dc23860f 100644 --- a/R/nmxml.R +++ b/R/nmxml.R @@ -78,7 +78,13 @@ nmxml <- function(run=numeric(0), project=character(0), } tree <- xml2::as_list(xml2::read_xml(target)) - tree <- tree$output$nonmem$problem$estimation + + # https://github.com/r-lib/xml2/blob/master/NEWS.md#xml2-120 + if(packageVersion("xml2") >= "1.2.0") { + tree <- tree[["output"]][["nonmem"]][["problem"]][["estimation"]] + } else { + tree <- tree[["nonmem"]][["problem"]][["estimation"]] + } th <- list() om <- matrix(0,0,0) diff --git a/R/utils.R b/R/utils.R index dd98ce1c3..6ecaa3a58 100644 --- a/R/utils.R +++ b/R/utils.R @@ -244,8 +244,7 @@ tovec <- function(x,concat=TRUE) { ##' @examples ##' ##' cvec("A,B,C") -##' ch(A,B,C) -##' s(A,B,C) +##' s_(A,B,C) ##' setGeneric("cvec", function(x,...) standardGeneric("cvec")) @@ -255,11 +254,7 @@ setMethod("cvec", "character", as.cvec) ##' @export ##' @rdname cvec -ch <- function(...) as.character(match.call(expand.dots=TRUE))[-1] - -##' @export -##' @rdname cvec -s <- ch +s_ <- function(...) as.character(match.call(expand.dots=TRUE))[-1] ##' Access or clear arguments for calls to mrgsim ##' diff --git a/inst/maintenance/unit/test-request.R b/inst/maintenance/unit/test-request.R index 63eb725b9..7da8bb853 100644 --- a/inst/maintenance/unit/test-request.R +++ b/inst/maintenance/unit/test-request.R @@ -45,10 +45,10 @@ test_that("Req gets the right variables", { x2 <- names(mod %>% Req(PERIPH,GUT) %>% mrgsim) x3 <- names(mod %>% Req(PERIPH,b) %>% mrgsim) x4 <- names(mod %>% Req(b,z) %>% mrgsim) - expect_identical(x1,s(ID,time,GUT,CENT,PERIPH,b,z)) - expect_identical(x2,s(ID,time,PERIPH,GUT)) - expect_identical(x3,s(ID,time,PERIPH,b)) - expect_identical(x4,s(ID,time,b,z)) + expect_identical(x1,s_(ID,time,GUT,CENT,PERIPH,b,z)) + expect_identical(x2,s_(ID,time,PERIPH,GUT)) + expect_identical(x3,s_(ID,time,PERIPH,b)) + expect_identical(x4,s_(ID,time,b,z)) }) @@ -60,10 +60,10 @@ test_that("Req gets the right variables, with request", { x2 <- names(mod %>% Req(PERIPH,GUT) %>% mrgsim) x3 <- names(mod %>% Req(PERIPH,b) %>% mrgsim) x4 <- names(mod %>% Req(z,b) %>% mrgsim) - expect_identical(x1,s(ID,time,CENT,b,z)) - expect_identical(x2,s(ID,time,PERIPH,GUT)) - expect_identical(x3,s(ID,time,PERIPH,b)) - expect_identical(x4,s(ID,time,z,b)) + expect_identical(x1,s_(ID,time,CENT,b,z)) + expect_identical(x2,s_(ID,time,PERIPH,GUT)) + expect_identical(x3,s_(ID,time,PERIPH,b)) + expect_identical(x4,s_(ID,time,z,b)) }) diff --git a/inst/project/housemodel.RDS b/inst/project/housemodel.RDS index c9147091b..98196ab0b 100644 Binary files a/inst/project/housemodel.RDS and b/inst/project/housemodel.RDS differ diff --git a/man/cvec.Rd b/man/cvec.Rd index 518b6a589..cf4ea61e4 100644 --- a/man/cvec.Rd +++ b/man/cvec.Rd @@ -4,17 +4,14 @@ \name{cvec} \alias{cvec} \alias{cvec,character-method} -\alias{ch} -\alias{s} +\alias{s_} \title{Create create character vectors} \usage{ cvec(x, ...) \S4method{cvec}{character}(x) -ch(...) - -s(...) +s_(...) } \arguments{ \item{x}{comma-separated quoted string (for \code{cvec})} @@ -27,7 +24,6 @@ Create create character vectors \examples{ cvec("A,B,C") -ch(A,B,C) -s(A,B,C) +s_(A,B,C) } diff --git a/tests/testthat/test-as_list_mrgmod.R b/tests/testthat/test-as_list_mrgmod.R index 836aa0a4e..c989ade75 100644 --- a/tests/testthat/test-as_list_mrgmod.R +++ b/tests/testthat/test-as_list_mrgmod.R @@ -26,46 +26,44 @@ context("test-as_list_mrgmod") options(mrgsolve_mread_quiet=TRUE) test_that("check items in as.list output", { - expect_exists <- function(object,name) { - expect_true(name %in% names(object)) - } x <- as.list(mrgsolve:::house()) - expect_exists(x, "start") - expect_exists(x, "end") - expect_exists(x, "delta") - expect_exists(x, "add") - expect_exists(x, "param") - expect_exists(x, "init") - expect_exists(x, "omega") - expect_exists(x, "sigma") - expect_exists(x, "request") - expect_exists(x, "atol") - expect_exists(x, "rtol") - expect_exists(x, "hmin") - expect_exists(x, "hmax") - expect_exists(x, "maxsteps") - expect_exists(x, "tscale") - expect_exists(x, "digits") - expect_exists(x, "code") - expect_exists(x, "cmt") - expect_exists(x, "neq") - expect_exists(x, "pars") - expect_exists(x, "npar") - expect_exists(x, "preclean") - expect_exists(x, "mindt") - expect_exists(x, "debug") - expect_exists(x, "verbose") - expect_exists(x, "envir") - expect_exists(x, "cfile") - expect_exists(x, "shlib") - expect_exists(x, "capture") - expect_exists(x, "details") - expect_exists(x, "sodll") - expect_exists(x, "soloc") - expect_exists(x, "covariates") - expect_exists(x, "fixedp") - expect_exists(x, "plugins") - expect_exists(x, "random") - expect_exists(x, "model") - expect_exists(x, "project") + x_names <- names(x) + expect_true("start" %in% x_names) + expect_true("end" %in% x_names) + expect_true("delta" %in% x_names) + expect_true("add" %in% x_names) + expect_true("param" %in% x_names) + expect_true("init" %in% x_names) + expect_true("omega" %in% x_names) + expect_true("sigma" %in% x_names) + expect_true("request" %in% x_names) + expect_true("atol" %in% x_names) + expect_true("rtol" %in% x_names) + expect_true("hmin" %in% x_names) + expect_true("hmax" %in% x_names) + expect_true("maxsteps" %in% x_names) + expect_true("tscale" %in% x_names) + expect_true("digits" %in% x_names) + expect_true("code" %in% x_names) + expect_true("cmt" %in% x_names) + expect_true("neq" %in% x_names) + expect_true("pars" %in% x_names) + expect_true("npar" %in% x_names) + expect_true("preclean" %in% x_names) + expect_true("mindt" %in% x_names) + expect_true("debug" %in% x_names) + expect_true("verbose" %in% x_names) + expect_true("envir" %in% x_names) + expect_true("cfile" %in% x_names) + expect_true("shlib" %in% x_names) + expect_true("capture" %in% x_names) + expect_true("details" %in% x_names) + expect_true("sodll" %in% x_names) + expect_true("soloc" %in% x_names) + expect_true("covariates" %in% x_names) + expect_true("fixed" %in% x_names) + expect_true("plugins" %in% x_names) + expect_true("random" %in% x_names) + expect_true("model" %in% x_names) + expect_true("project" %in% x_names) }) diff --git a/tests/testthat/test-nmxml.R b/tests/testthat/test-nmxml.R index 234da2604..20cd57aeb 100644 --- a/tests/testthat/test-nmxml.R +++ b/tests/testthat/test-nmxml.R @@ -229,8 +229,8 @@ test_that("Model compiles", { }) test_that("Labels are assigned to $OMEGA and $SIGMA", { - expect_equivalent(mod@omega@labels, list(s(a,b,c,d),s(x,y,z))) - expect_equivalent(mod@sigma@labels, list(s(e,f), s(h,i,j,k,l))) + expect_equivalent(mod@omega@labels, list(s_(a,b,c,d),s_(x,y,z))) + expect_equivalent(mod@sigma@labels, list(s_(e,f), s_(h,i,j,k,l))) }) @@ -256,7 +256,7 @@ $OMEGA mod <- mcode("label2", code,warn=FALSE, compile = FALSE) test_that("Mixed labels / no labels and prefix", { - expect_equivalent(mod@omega@labels, list(s(x_a,x_b),s(.,.,.))) + expect_equivalent(mod@omega@labels, list(s_(x_a,x_b),s_(.,.,.))) }) diff --git a/tests/testthat/test-rename.R b/tests/testthat/test-rename.R index 8b656fc48..6ace33a26 100644 --- a/tests/testthat/test-rename.R +++ b/tests/testthat/test-rename.R @@ -32,26 +32,26 @@ mod <- mod %>% data_set(df) ## "Rename via carry.out #30" test_that("tran item is renamed", { out <- mod %>% carry.out(EVID=evid) %>% mrgsim - expect_true(all(is.element(s(RESP,CENT,EVID), names(out)))) + expect_true(all(is.element(c("RESP","CENT","EVID"), names(out)))) out <- mod %>% carry.out(EVID=evid,addl) %>% mrgsim - expect_true(all(is.element(s(RESP,CENT,EVID,addl), names(out)))) + expect_true(all(is.element(c("RESP","CENT","EVID","addl"), names(out)))) out <- mod %>% carry.out(X=addl) %>% mrgsim - expect_true(all(is.element(s(RESP,CENT,X), names(out)))) + expect_true(all(is.element(c("RESP","CENT","X"), names(out)))) out <- mod %>% carry.out(EVID=evid,addl) %>% mrgsim - expect_false(all(is.element(s(evid), names(out)))) + expect_false(all(is.element("evid", names(out)))) }) test_that("Item carried from data set is renamed", { out <- mod %>% carry.out(Dose,WEIGHT = WT) %>% mrgsim - expect_true(all(is.element(s(RESP,CENT,WEIGHT), names(out)))) - expect_true(all(is.element(s(Dose,WEIGHT), names(out)))) + expect_true(all(is.element(s_(RESP,CENT,WEIGHT), names(out)))) + expect_true(all(is.element(s_(Dose,WEIGHT), names(out)))) }) test_that("Item carried from data set is renamed", { out <- mod %>% carry.out(FOO=BAR) %>% mrgsim - expect_equal(s(ID,time,CENT,RESP), names(out)) + expect_equal(c("ID","time","CENT","RESP"), names(out)) })