rxTest({
test_that("rename for ui makes sense", {
ocmt <- function() {
ini({
tka <- exp(0.45)
tcl <- exp(1)
tv <- exp(3.45)
add.sd <- 0.7
})
model({
ka <- tka
cl <- tcl
v <- tv
d/dt(depot) = -ka * depot
d/dt(center) = ka * depot - cl / v * center
cp = center / v
cp ~ add(add.sd)
})
}
expect_error(rxRename(ocmt, d/dt(cp1) ~ cp))
expect_error(rxRename(ocmt, cp1 ~ cp))
expect_error(rxRename(ocmt, cp1=3))
expect_error(rxRename(ocmt, cp=cp1))
expect_error(rxRename(ocmt, cp2=cp1))
f <- rxRename(ocmt, cpParent=cp, parentDepot=depot, parentCentral=center, parentKa=ka,
parentTka=tka, parent.sd=add.sd)
expect_true("parent.sd" %in% f$iniDf$name)
expect_true("parentTka" %in% f$iniDf$name)
expect_true("parentKa" %in% f$mv0$lhs)
expect_true("parentCentral" %in% f$mv0$state)
expect_true("parentDepot" %in% f$mv0$state)
expect_true("cpParent" %in% f$mv0$lhs)
expect_true("cpParent" %in% f$predDf$var)
expect_true("cpParent" %in% f$predDf$cond)
f <- dplyr::rename(ocmt, cp.parent=cp)
expect_true("cp.parent" %in% f$mv0$lhs)
expect_true("cp.parent" %in% f$predDf$var)
expect_true("cp.parent" %in% f$predDf$cond)
f2 <- dplyr::rename(f, depot.parent=depot)
expect_true("depot.parent" %in% f2$mv0$state)
ocmt <- function() {
ini({
tka <- exp(0.45)
tcl <- exp(1)
tv <- exp(3.45)
add.sd <- 0.7
})
model({
ka <- tka
cl <- tcl
v <- tv
d/dt(depot) = -ka * depot
d/dt(center) = ka * depot - cl / v * center
cp = center / v
cp ~ add(add.sd) | parent
})
}
f <- rxRename(ocmt, metabolite=parent)
expect_true("metabolite" %in% f$predDf$cond)
# now test that functions remain intact
ocmt <- function() {
ini({
tka <- exp(0.45)
tcl <- exp(1)
tv <- exp(3.45)
lag <- 1
add.sd <- 0.7
})
model({
ka <- tka
cl <- tcl
v <- tv
d/dt(depot) = -ka * depot
d/dt(center) = ka * depot - cl / v * center
lag(depot) <- lag
cp = center / v
cp ~ add(add.sd) | parent
})
}
f <- dplyr::rename(ocmt, alag=lag)
expect_equal(f$lstExpr[[6]], quote(lag(depot) <- alag))
# now test that d/dt(item) remains intact
ocmt <- function() {
ini({
tka <- exp(0.45)
tcl <- exp(1)
tv <- exp(3.45)
d <- 1
add.sd <- 0.7
})
model({
ka <- tka
cl <- tcl
v <- tv
d/dt(depot) = -ka * depot
d/dt(center) = ka * depot - cl / v * center
lag(depot) <- d
cp = center / v
cp ~ add(add.sd) | parent
})
}
f <- dplyr::rename(ocmt, alag=d)
expect_equal(f$lstExpr[[6]], quote(lag(depot) <- alag))
ocmt <- function() {
ini({
tka <- exp(0.45)
tcl <- exp(1)
tv <- exp(3.45)
add.sd <- 0.7
})
model({
ka <- tka
cl <- tcl
v <- tv
d/dt(depot) = -ka * depot
depot(0) <- 1
rate(depot) <- 1
dur(depot) <- 1
alag(depot) <- 1
d/dt(center) = ka * depot - cl / v * center
cp = center / v
cp ~ add(add.sd)
})
}
tmp <- rxRename(rxode2(ocmt), dcmt=depot)
expect_equal(tmp$lstExpr[[5]], quote(dcmt(0) <- 1))
expect_equal(tmp$lstExpr[[6]], quote(rate(dcmt) <- 1))
expect_equal(tmp$lstExpr[[7]], quote(dur(dcmt) <- 1))
expect_equal(tmp$lstExpr[[8]], quote(alag(dcmt) <- 1))
})
test_that("rename with sigma and thetaMat", {
f <- function() {
description <- "BOLUS_2CPT_CLV1QV2 SINGLE DOSE FOCEI (120 Ind/2280 Obs) runODE032"
dfObs <- 2280
dfSub <- 120
sigma <- lotri({
eps1 ~ 1
})
thetaMat <- lotri({
theta1 + theta2 + theta3 + theta4 + RSV + eps1 + eta1 +
omega.2.1 + eta2 + omega.3.1 + omega.3.2 + eta3 +
omega.4.1 + omega.4.2 + omega.4.3 + eta4 ~
c(0.000887681,
-0.00010551, 0.000871409, 0.000184416, -0.000106195,
0.00299336, -0.000120234, -5.06663e-05, 0.000165252,
0.00121347, 5.2783e-08, -1.56562e-05, 5.99331e-06,
-2.53991e-05, 9.94218e-06, 0, 0, 0, 0, 0, 0, -4.71273e-05,
4.69667e-05, -3.64271e-05, 2.54796e-05, -8.16885e-06,
0, 0.000169296, 0, 0, 0, 0, 0, 0, 0, 0, -7.37156e-05,
2.56634e-05, -8.08349e-05, 1.37e-05, -4.36564e-06,
0, 8.75181e-06, 0, 0.00015125, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6.63383e-05,
-8.19002e-05, 0.000548985, 0.000168356, 1.59122e-06,
0, 3.48714e-05, 0, 4.31593e-07, 0, 0, 0.000959029,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, -9.49661e-06, 0.000110108,
-0.000306537, -9.12897e-05, 3.1877e-06, 0, 1.36628e-05,
0, -1.95096e-05, 0, 0, -0.00012977, 0, 0, 0, 0.00051019)
})
ini({
theta1 <- 1.37034036528946
label("log Cl")
theta2 <- 4.19814911033061
label("log Vc")
theta3 <- 1.38003493562413
label("log Q")
theta4 <- 3.87657341967489
label("log Vp")
RSV <- c(0, 0.196446108190896, 1)
label("RSV")
eta1 ~ 0.101251418415006
eta2 ~ 0.0993872449483344
eta3 ~ 0.101302674763154
eta4 ~ 0.0730497519364148
})
model({
cmt(CENTRAL)
cmt(PERI)
cl <- exp(theta1 + eta1)
v <- exp(theta2 + eta2)
q <- exp(theta3 + eta3)
v2 <- exp(theta4 + eta4)
v1 <- v
scale1 <- v
k21 <- q/v2
k12 <- q/v
d/dt(CENTRAL) <- k21 * PERI - k12 * CENTRAL - cl * CENTRAL/v1
d/dt(PERI) <- -k21 * PERI + k12 * CENTRAL
f <- CENTRAL/scale1
ipred <- f
rescv <- RSV
w <- ipred * rescv
ires <- DV - ipred
iwres <- ires/w
y <- ipred + w * eps1
})
}
f <- f()
f2 <- rxRename(f, eta.cl=eta1, eta.v=eta2, eta.q=eta3, eta.v2=eta4, eps=eps1)
expect_equal(sort(intersect(dimnames(f2$omega)[[1]],
c("eta.cl", "eta.v", "eta.q", "eta.v2"))),
c("eta.cl", "eta.q", "eta.v", "eta.v2"))
expect_equal(sort(intersect(dimnames(f2$thetaMat)[[1]],
c("eta.cl", "eta.v", "eta.q", "eta.v2", "eps"))),
c("eps", "eta.cl", "eta.q", "eta.v", "eta.v2"))
expect_equal(dimnames(f2$sigma)[[1]], "eps")
f <- rxUiDecompress(f)
f$sigma <- f$meta$sigma
f$thetaMat <- f$meta$thetaMat
rm("sigma", envir=f$meta)
rm("thetaMat", envir=f$meta)
f <- rxUiCompress(f)
f3 <- rxRename(f, eta.cl=eta1, eta.v=eta2, eta.q=eta3, eta.v2=eta4, eps=eps1)
expect_equal(sort(intersect(dimnames(f3$omega)[[1]],
c("eta.cl", "eta.v", "eta.q", "eta.v2"))),
c("eta.cl", "eta.q", "eta.v", "eta.v2"))
expect_equal(sort(intersect(dimnames(f3$thetaMat)[[1]],
c("eta.cl", "eta.v", "eta.q", "eta.v2", "eps"))),
c("eps", "eta.cl", "eta.q", "eta.v", "eta.v2"))
expect_equal(dimnames(f3$sigma)[[1]], "eps")
})
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.