Create a complete shiny application for exploring dosing regimens given a (hardcoded) PK/PD model.
genShinyApp.template(
appDir = "shinyExample",
verbose = TRUE,
ODE.config = list(ode = "model", params = c(KA = 0.294), inits = c(eff = 1), method =
"lsoda", atol = 1e-08, rtol = 1e-06)
)write.template.server(appDir)
write.template.ui(appDir, statevars)
a string with a directory where to store the shiny
app, by default is "shinyExample"
. The directory
appDir
will be created if it does not exist.
logical specifying whether to write messages as the
shiny app is generated. Defaults to TRUE
.
model name compiled and list of parameters sent to rxSolve()
.
List of statevars passed to to the write.template.ui()
function. This usually isn't called directly.
A PK/PD model is defined using rxode2()
, and
a set of parameters and initial values are defined. Then
the appropriate R scripts for the shiny's user interface ui.R
and the server logic server.R
are created in the
directory appDir
.
The function evaluates the following PK/PD model by default:
C2 = centr/V2; C3 = peri/V3; d/dt(depot) =-KA*depot; d/dt(centr) = KA*depot - CL*C2 - Q*C2 + Q*C3; d/dt(peri) = Q*C2 - Q*C3; d/dt(eff) = Kin - Kout*(1-C2/(EC50+C2))*eff;
This can be changed by the ODE.config
parameter.
To launch the shiny app, simply issue the runApp(appDir)
R command.
None, these functions are used for their side effects.
rxode2()
,eventTable()
, and the package shiny (https://shiny.rstudio.com).
# NOT RUN {
# remove myapp when the example is complete
on.exit(unlink("myapp", recursive = TRUE, force = TRUE))
# create the shiny app example (template)
genShinyApp.template(appDir = "myapp")
# run the shiny app
if (requireNamespace("shiny", quietly=TRUE)) {
library(shiny)
# runApp("myapp") # Won't launch in environments without browsers
}
# }
Run the code above in your browser using DataLab