tensfeldt / openNCA

openNCA computation engine is an R package that provides for generation of pharmacokinetic parameter estimates using non-compartmental (NCA) pharmacokinetic analysis methods.
MIT License
27 stars 5 forks source link

2020-09-10 tc1669_M4SS fails to execute #267

Closed TomTensfeldt closed 4 years ago

TomTensfeldt commented 4 years ago

Testcase tc1669_M4SS was generated to confirm implementation of Body Size normalized dose capabilities for scope item 3.11 for computation engine v3 development.

tc1669_M4SS is configured for 2 dosing intervals. However, execution of run_computation fails with this configuration.

To determine whether this is the issue, the second dosing interval was removed prior to execution to hopefully illustrate where the issue lies. However run_computation fails even with a single dosing interval.

> #' Save original mct\$NORMBS and mct\$NORMBSU
> savedwt   <- d[,mct$NORMBS]
> savedunit <- d[,mct$NORMBSU]
> 
> #' ## Remove Second Dosing Interval Configuration since run_computation Fails with it defined  
> mct.saved <- mct
> mct <- mct[,-match(c("TAU2", "TAU2U", "TOLD2", "TOLD2U", "DOSE2", "DOSE2U"), names(mct))]
> 
> d.saved <- d
> d <- d[,-match(c("TOLD2", "TOLD2U", "TAU2", "TAU2U"), names(d))]
> 
> #' Identify Missing Elements of Dataset from MCT specification for DOSE, TAU, TOLD  
> k <- parameter_required("^DOF((i)*?|[1-5]*?)(U)*?$|DOSE((i)*?|[1-5]*?)(U)*?$|(^TAU|^TOLD)((i)*?|[1-5]*?)(U)*?$", names(mct), simplify=FALSE)
> k <- mct[,names(k)]
> checknames(d,varlist=k)
Matched entries: 
  DOSE1  DOSE1U TOLD1 TOLD1U TAU1 TAU1U
1  DOSE DOSEUNI TOLD1 TOLD1U TAU1 TAU1U
Non-Matched entries: 
  DOF1 DOF1U DOF2 DOF2U
1  DOF  DOFU DOF2 DOF2U
     DOSE DOSEUNI TOLD1 TOLD1U TAU1 TAU1U
1 1098776     DPM     0     HR   24    HR
2 1098776     DPM     0     HR   24    HR
3 1098776     DPM     0     HR   24    HR
4 1098776     DPM     0     HR   24    HR
5 1098776     DPM     0     HR   24    HR
6 1098776     DPM     0     HR   24    HR
[1] "DOSE1"  "DOSE1U" "TOLD1"  "TOLD1U" "TAU1"   "TAU1U" 
> 
> #' ## Display Available `r mct$TIME` from `r mct$NOMTIME` in input dataset:  
> table(d[,timevar])

  0   1  12  24  48  72  96 120 144 168 192 216 
  6   5  11  11  11  11  11  11   6   6   1   1 
> 
> #' ## Execute with parameterset==`r parameterset` and TIME==`r mct$TIME` and AUCMETHOD==`r mct$AUCMETHOD`  
> #+ execute1, echo=TRUE
> (tclabel <- paste0("results.", testcase.id, ".", mct$MODEL, ".", mct$DOSINGTYPE, ".", mct$AUCMETHOD))
[1] "results.tc1669.M4.SS.LINLOG"
> if(exists("results_list")) { rm(results_list) }
> results_list <- run_computation(data=d, map=mct, flag=flags, parameterset=parameterset)
openNCA computation engine version 3.0.0
Computation Run Date/Time: 2020-09-10 09:06:04
Error in create_dosing_intervals(merged_data, map_data, flag_data, maxdosingintervals) : 
  8 Unable to generate dosing interval for Steady State data! TOLD value not found in the provided TIME data
In addition: Warning messages:
1: In run_computation(data = d, map = mct, flag = flags, parameterset = parameterset) :
  Map 'OPTMIZEKEL' does not have a valid value! Not using KEL optmization for this computation
2: In run_computation(data = d, map = mct, flag = flags, parameterset = parameterset) :
  'TAUs and TOLDs values are not provided via 'flag'! Using values provided via 'data' instead (if present)!
jhhughes256 commented 4 years ago

As of commit 9776da2 this testcase now executes successfully.