Takes a CTS state and element and simulates the current set of rules.
Arguments
- state
CTS state from
CTS_fetch_state()
- element
Element list from
CTS_fetch_current_element()
Value
Simulation element with plot results stored in the '"plotres"
element.
isgood Boolean value indicating the state of the figure generation code.
msgs Any messages to be passed to the user.
capture Captured figure generation output from
plot_sr_tc()
Examples
# For more information see the Clinical Trial Simulation vignette:
# https://ruminate.ubiquity.tools/articles/clinical_trial_simulation.html
# None of this will work if rxode2 isn't installed:
library(formods)
if( Sys.getenv("ruminate_rxfamily_found") == "TRUE"){
# This will populate the session variable with the model building (MB) module
sess_res = MB_test_mksession(session=list(), full_session=FALSE)
session = sess_res[["session"]]
id = "CTS"
id_ASM = "ASM"
id_MB = "MB"
input = list()
# Configuration files
FM_yaml_file = system.file(package = "formods", "templates", "formods.yaml")
MOD_yaml_file = system.file(package = "ruminate", "templates", "CTS.yaml")
state = CTS_fetch_state(id = id,
id_ASM = id_ASM,
id_MB = id_MB,
input = input,
session = session,
FM_yaml_file = FM_yaml_file,
MOD_yaml_file = MOD_yaml_file,
react_state = NULL)
# Fetch a list of the current element
current_ele = CTS_fetch_current_element(state)
# You can modify the element
current_ele[["element_name"]] = "A more descriptive name"
# Defining the source model
state[["CTS"]][["ui"]][["source_model"]] = "MB_obj_1_rx"
current_ele = CTS_change_source_model(state, current_ele)
# Single visit
current_ele[["ui"]][["visit_times"]] = "0"
current_ele[["ui"]][["cts_config_nsteps"]] = "5"
# Creating a dosing rule
state[["CTS"]][["ui"]][["rule_condition"]] = "time == 0"
state[["CTS"]][["ui"]][["rule_type"]] = "dose"
state[["CTS"]][["ui"]][["action_dosing_state"]] = "central"
state[["CTS"]][["ui"]][["action_dosing_values"]] = "c(1)"
state[["CTS"]][["ui"]][["action_dosing_times"]] = "c(0)"
state[["CTS"]][["ui"]][["action_dosing_durations"]] = "c(0)"
state[["CTS"]][["ui"]][["rule_name"]] = "Single_Dose"
# Adding the rule:
current_ele = CTS_add_rule(state, current_ele)
# Appending the plotting details as well
current_ele[["ui"]][["fpage"]] = "1"
current_ele[["ui"]][["dvcols"]] = "Cc"
# Reducing the number of subjects and steps to speed things up on CRAN
current_ele[["ui"]][["nsub"]] = "2"
current_ele[["ui"]][["cts_config_nsteps"]] = "5"
# Putting the element back in the state forcing code generation
state = CTS_set_current_element(
state = state,
element = current_ele)
# Now we pull out the current element, and simulate it
current_ele = CTS_fetch_current_element(state)
#current_ele = CTS_simulate_element(state, current_ele)
# Next we plot the element
current_ele = CTS_plot_element(state, current_ele)
# Now we save those results back into the state:
state = CTS_set_current_element(
state = state,
element = current_ele)
# This will extract the code for the current module
code = CTS_fetch_code(state)
code
# This will update the checksum of the module state
state = CTS_update_checksum(state)
# Access the datasets generated from simulations
ds = CTS_fetch_ds(state)
# CTS_add_covariate
state[["CTS"]][["ui"]][["covariate_value"]] = "70, .1"
state[["CTS"]][["ui"]][["covariate_type_selected"]] = "cont_lognormal"
state[["CTS"]][["ui"]][["selected_covariate"]] = "WT"
current_ele = CTS_add_covariate(state, current_ele)
# Creates a new empty element
state = CTS_new_element(state)
# Delete the current element
state = CTS_del_current_element(state)
}
#> → MB: including file
#> → MB: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → MB: dest: file.path("config","report.docx")
#> → MB: including file
#> → MB: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → MB: dest: file.path("config","report.pptx")
#> → MB: including file
#> → MB: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → MB: dest: file.path("config","report.yaml")
#> ! MB: User-defined model: /Users/jmh/projects/ruminate/github/ruminate/docs/reference/user_model.R not found (skipping)
#> ! MB: User-defined model: /Users/jmh/projects/ruminate/github/ruminate/docs/reference/user_model.ctl not found (skipping)
#> → MB: module checksum updated:24933f86b657b9503f22440e8c4d3cac
#> → MB: State initialized
#> ! MB: User-defined model: /Users/jmh/projects/ruminate/github/ruminate/docs/reference/user_model.R not found (skipping)
#> ! MB: User-defined model: /Users/jmh/projects/ruminate/github/ruminate/docs/reference/user_model.ctl not found (skipping)
#>
#>
#> ℹ parameter labels from comments are typically ignored in non-interactive mode
#> ℹ Need to run with the source intact to parse comments
#> → MB: model checksum updated: cc37b764ee3c117dfce1f1d7bd0e6e12
#> → MB: module checksum updated:2ae8d3386b5fee38596e0104e04bc151
#> → CTS: including file
#> → CTS: source: file.path(system.file(package="onbrand"), "templates", "report.docx")
#> → CTS: dest: file.path("config","report.docx")
#> → CTS: including file
#> → CTS: source: file.path(system.file(package="onbrand"), "templates", "report.pptx")
#> → CTS: dest: file.path("config","report.pptx")
#> → CTS: including file
#> → CTS: source: file.path(system.file(package="onbrand"), "templates", "report.yaml")
#> → CTS: dest: file.path("config","report.yaml")
#> → CTS: source model change detected
#> → CTS: > covariates reset
#> → CTS: cohort checksum updated: 98890dc17c3d5a8008f5fd879ab1368c
#> → CTS: module checksum updated: 875396d76b918e9df1255e19976d2034
#> → CTS: State initialized
#> → CTS: add rule success
#> → CTS: rule added
#> → CTS: cohort checksum updated: f5d8b74c951b40344f9b602d4dedaf32
#> → CTS: module checksum updated: fe1245000fc84915ae1f97091cd30f98
#> → CTS: CTS_plot_element()
#> → CTS: # Plotting timecourse
#> → CTS: CTS_obj_1_fgtc =
#> → CTS: plot_sr_tc(sro = CTS_obj_1_simres,
#> → CTS: xcol = "time",
#> → CTS: xlab_str = "Time",
#> → CTS: fncol = 4,
#> → CTS: fnrow = 2,
#> → CTS: dvcols = "Cc",
#> → CTS: fpage = 1)
#> → CTS:
#> → CTS: # Plotting events
#> → CTS: CTS_obj_1_fgev =
#> → CTS: plot_sr_ev(sro = CTS_obj_1_simres,
#> → CTS: xcol = "time",
#> → CTS: xlab_str = "Time",
#> → CTS: fncol = 4,
#> → CTS: fnrow = 2,
#> → CTS: evplot = 1,
#> → CTS: fpage = 1)
#> → CTS: No simulation available, you need to run the simulation first.
#> → CTS: cohort checksum updated: 6e437b4011bc96f5c3a5f41f706e4926
#> → CTS: module checksum updated: 5579e6c2af603854146eb3c7668b4503
#> → CTS: source model change detected
#> → CTS: > covariates reset
#> → CTS: cohort checksum updated: 945edb5c5cd21f9c01edbf75d4dafe8b
#> → CTS: module checksum updated: 74bc409f7ddb476bc88b607946b7f98b