inst/doc/noncompartmental_analysis.R

## ----setup, include=FALSE-----------------------------------------------------
knitr::opts_chunk$set(echo = TRUE, message=FALSE, eval=FALSE)
require(ggplot2)
require(rhandsontable)
require(flextable)
require(ruminate)
require(dplyr)
# Determining if ubiquity is installed
if(system.file(package="ubiquity") == ""){
  ubiquity_found = FALSE
} else {
  require(ubiquity)
  ubiquity_found = TRUE
}
if(system.file(package="gridExtra") == ""){
  gridExtra_found = FALSE
} else {
  require(gridExtra)
  gridExtra_found = TRUE
}

# The presim variable will contain presimulated data when eval is set to true
presim_loaded = FALSE

## ----echo=FALSE, results=FALSE------------------------------------------------
#  presim= list()
#  if(file.exists("NCA_presim.RData")){
#    file.remove("NCA_presim.RData")
#  }

## ----echo=FALSE, results=FALSE, eval=TRUE-------------------------------------
if(file.exists("NCA_presim.RData")){
  load("NCA_presim.RData")
  presim_loaded = TRUE
}

NCA_yaml = yaml::read_yaml(system.file(package="ruminate", "templates","NCA.yaml"))

## ----warning=FALSE, message=FALSE, echo=FALSE, error=FALSE, results="hide", fig.width=8, fig.height=4----
#  polydf     = NULL
#  som_smooth = NULL
#  som_sample = NULL
#  
#  
#  
#  if(ubiquity_found){
#    system_new(system_file="mab_pk", overwrite=TRUE, output_directory=tempdir())
#  
#    cfg = build_system(system_file         =file.path(tempdir(), "system.txt"),
#                       output_directory    =file.path(tempdir(), "output"),
#                       temporary_directory =file.path(tempdir(), "transient"))
#  
#    parameters = system_fetch_parameters(cfg)
#    cfg = system_zero_inputs(cfg)
#    cfg = system_set_bolus(cfg, state   ="At",
#                                times   = c(  0.0),  #  day
#                                values  = c(400.0))  #  mg
#  
#    cfg=system_set_option(cfg, group  = "simulation",
#                               option = "output_times",
#                               linspace(0,30,100))
#  
#    som_smooth = run_simulation_ubiquity(parameters, cfg)
#    som_smooth$simout$time_C_ng_ml = som_smooth$simout$C_ng_ml*som_smooth$simout$ts.days
#  
#    cfg=system_set_option(cfg, group  = "simulation",
#                                option = "include_important_output_times",
#                                value  = "no")
#  
#    cfg=system_set_option(cfg, group  = "simulation",
#                               option = "output_times",
#                               c(0,.25, .5, 1, 2,7,14,21,28))
#    som_sample = run_simulation_ubiquity(parameters, cfg)
#    som_sample$simout$time_C_ng_ml = som_sample$simout$C_ng_ml*som_sample$simout$ts.days
#  
#  
#    for(tidx in 1:(nrow(som_sample$simout)-1)){
#      xv = c(som_sample$simout$ts.days[tidx], som_sample$simout$ts.days[tidx+1],  som_sample$simout$ts.days[tidx+1], som_sample$simout$ts.days[tidx] )
#      yvC = c(som_sample$simout$C_ng_ml[tidx], som_sample$simout$C_ng_ml[tidx+1], 0, 0)
#      yvTC = c(som_sample$simout$time_C_ng_ml[tidx], som_sample$simout$time_C_ng_ml[tidx+1], 0, 0)
#      tmpdf = data.frame(xv = xv, yvC=yvC, yvTC=yvTC, sp=tidx)
#      if(is.null(polydf)){
#        polydf = tmpdf
#      } else {
#        polydf = rbind(tmpdf, polydf)
#      }
#    }
#  }

## ----results="hide", warning=FALSE, echo=FALSE--------------------------------
#  # When eval is set to TRUE we save the presimulated results
#    presim$plots$som_smooth = som_smooth
#    presim$plots$som_sample = som_sample
#    presim$plots$polydf     = polydf

## ----results="hide", warning=FALSE, echo=FALSE, eval=TRUE---------------------
if(presim_loaded){
  som_smooth = presim$plots$som_smooth 
  som_sample = presim$plots$som_sample 
  polydf     = presim$plots$polydf
}

## ----warning=FALSE, message=FALSE, echo=FALSE, error=FALSE, eval=TRUE, results="hide", fig.width=8, fig.height=4----
if(ubiquity_found){
  p_C = ggplot()
  p_C = p_C +  geom_line(data=som_smooth$simout, aes(x=ts.days, y=C_ng_ml))
  p_C = p_C + geom_point(data=som_sample$simout, aes(x=ts.days, y=C_ng_ml), color="blue")
  p_C = p_C + xlab("Time") + ylab("Concentration") + ggtitle("AUC")
  p_C = p_C +  geom_polygon(data=polydf, aes(x=xv, y=yvC, group=sp), color="blue", linetype='dashed', fill="lightblue")
  p_C = p_C + theme(plot.title = element_text(hjust = 0.5))
  p_C = prepare_figure(fo=p_C, purpose="shiny")
  
  
  p_TC = ggplot()
  p_TC = p_TC +  geom_line(data=som_smooth$simout, aes(x=ts.days, y=time_C_ng_ml))
  p_TC = p_TC + geom_point(data=som_sample$simout, aes(x=ts.days, y=time_C_ng_ml), color="blue")
  p_TC = p_TC + xlab("Time") + ylab("Time x Concentration") + ggtitle("AUMC")
  p_TC = p_TC +  geom_polygon(data=polydf, aes(x=xv, y=yvTC, group=sp), color="blue", linetype='dashed', fill="lightblue")
  p_TC = p_TC + theme(plot.title = element_text(hjust = 0.5))
  p_TC = prepare_figure(fo=p_TC, purpose="shiny")
  
  
  p_AUC = p_C
  p_AUMC = p_TC
} else {
  p_AUC = ggplot2::ggplot()
  p_AUMC = ggplot2::ggplot()
}

## ----warning=FALSE, message=FALSE, echo=FALSE, error=FALSE, eval=TRUE, fig.width=8, fig.height=3.5----
if(gridExtra_found & ubiquity_found){
  gridExtra::grid.arrange(p_AUC, p_AUMC, ncol=2)
}

## ----warning=FALSE, message=FALSE, echo=FALSE---------------------------------
#  save(presim, file="NCA_presim.RData")

## ----warning=FALSE, message=FALSE, echo=FALSE, eval=TRUE----------------------
NCA_meta = NCA_fetch_PKNCA_meta()
NCA_meta = NCA_meta[["parameters"]] |>
  dplyr::select(-data_type) |>
  dplyr::rename("PKNCA Parameter"    = parameter)    |>
  dplyr::rename("App Parameter Name" = pretty_name)  |>
  dplyr::rename("Type of Units"      = unit_type)    |>
  dplyr::rename("Description"        = desc)      

DT::datatable(NCA_meta)

## ----echo=FALSE, message=FALSE, warning=FALSE, eval=TRUE,  style="max-height: 100px;", comment=""----
#yaml= file.path(system.file(package="ruminate"), "templates", "NCA.yaml")
cat(readLines(file.path(system.file(package="ruminate"), "templates", "NCA.yaml")), sep="\n")

Try the ruminate package in your browser

Any scripts or data that you put into this service are public.

ruminate documentation built on May 29, 2024, 11:09 a.m.