diff --git a/articles/examples.html b/articles/examples.html index acee157..e683b8e 100644 --- a/articles/examples.html +++ b/articles/examples.html @@ -786,9 +786,9 @@

ODE solution of PK model, mult of describing the same model.

 tic(); eval <- evaluate_design(poped.db); toc()
-#> Elapsed time: 2.759 seconds.
+#> Elapsed time: 2.855 seconds.
 tic(); eval <- evaluate_design(poped.db.Rcpp); toc()
-#> Elapsed time: 1.318 seconds.
+#> Elapsed time: 1.359 seconds.

The difference is noticeable and gets larger for more complex ODE models.

@@ -1129,7 +1129,7 @@

Model with continuous covariates
 ev <- evaluate_design(poped_db_2) 
 round(ev$ofv,1)
-#> [1] 42.3
+#> [1] 42.6
 round(ev$rse)
@@ -1148,11 +1148,11 @@

Model with continuous covariates

- + - + @@ -1214,51 +1214,51 @@

Model with continuous covariates0%

- - + + - + - - + + - + - - - - + + + + - - - - + + + + - - - - + + + + - - + +
WT_CL2826
WT_V2220
d_CL3.25 3.3222.5817.3220.8416.06 21.0221.9521.94 10.06
25% 3.25 3.3227.1020.7627.4321.03 21.03 21.9510.0710.06
50%3.263.3329.0622.273.273.3429.2122.38 21.03 21.96 10.07
75%3.323.3931.4524.103.313.3832.9125.22 21.03 21.96 10.07
100%3.433.5040.5331.053.693.7741.2331.59 21.0321.9610.0721.9710.08
@@ -1935,7 +1935,7 @@

#> 5.030673 2.983917 14.014958 29.787587 36.758952 26.753311 31.645011 #> SIGMA[2,2] #> 25.341368 -#> Elapsed time: 0.142 seconds. +#> Elapsed time: 0.141 seconds.

We can see that the result, based on MC sampling, is somewhat variable with so few samples.

@@ -1968,7 +1968,7 @@ 

#> 5.021700 2.980981 14.068646 29.765030 36.691675 26.754137 31.469425 #> SIGMA[2,2] #> 25.311870 -#> Elapsed time: 0.135 seconds.

+#> Elapsed time: 0.131 seconds.

Design evaluation for a subset of model parameters of interest (Ds diff --git a/articles/handling_LOQ.html b/articles/handling_LOQ.html index c725e53..41f73d7 100644 --- a/articles/handling_LOQ.html +++ b/articles/handling_LOQ.html @@ -103,16 +103,16 @@

Andrew -
-library(PopED)
-packageVersion("PopED")
-#> [1] '0.6.0.9002'

Define a model

Here we define, as an example, a one-compartment pharmacokinetic model with linear absorption (analytic solution) in PopED (Nyberg et al. 2012).

+
+library(PopED)
+packageVersion("PopED")
+#> [1] '0.6.0.9002'
 ff <- function(model_switch,xt,parameters,poped.db){
   with(as.list(parameters),{
@@ -138,10 +138,9 @@ 

Define a modelDefine an initial design and design space

Now we define the model parameter values, the initial design and -design space for optimization.

-

We define model parameters similar to the Warfarin example from the -software comparison in Nyberg et al. (2015) and an -arbitrary design of two groups of 20 individuals.

+design space for optimization. We define model parameters similar to the +Warfarin example from the software comparison in Nyberg et al. (2015) and an arbitrary design of one +group of 32 individuals.

 poped_db <- 
   create.poped.database(
@@ -164,9 +163,9 @@ 

Define an initial design and

Simulation

-

First it may make sense to check your model and design to make sure -you get what you expect when simulating data. Here we plot the model -typical values for the two groups:

+

First it may make sense to check the model and design to make sure we +get what we expect when simulating data. Here we plot the model typical +value and a 95% prediction interval (PI) for the intial design:

 plot_model_prediction(poped_db, model_num_points = 500,facet_scales = "free",PI=T)

@@ -177,12 +176,87 @@

Design evaluation
 eval_full <- evaluate_design(poped_db)
-round(eval_full$rse)
-#>       CL        V       KA     d_CL      d_V     d_KA sig_prop  sig_add 
-#>        5        4       15       34       70       28       89       36

+round(eval_full$rse)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +RSE +
+CL + +5 +
+V + +4 +
+KA + +15 +
+d_CL + +34 +
+d_V + +70 +
+d_KA + +28 +
+sig_prop + +89 +
+sig_add + +36 +

We see that the relative standard error of the parameters (in percent) are relatively well estimated with this initial design except -for the proportional RUV parameter (sig_prop).

+for the between subject variability parameter for volume of distribution +(d_V) and the proportional RUV parameter +(sig_prop).

LOQ handling @@ -194,25 +268,37 @@

LOQ handlingplot_model_prediction(poped_db, model_num_points = 500,facet_scales = "free",PI=T) + geom_hline(yintercept = 2,color="red",linetype="dotted",linewidth=1)

-

We use optimization criteria based on the D6 -(loq_method=1 which is the default) and D2 -(loq_method=2) methods from Vong et -al. (2012). For -the D6 method, which has been shown to be a better method in comparison -to SSE studies, we have updated the method to only investigate points -where the 95% PI overlaps LOQ, otherwise we set the design point to -either no information or full information. Further we filter out -situations with very low probabilities -(loq_prob_limit = 0.001). Both the CI% and the low -probability limit can be specified in the calculation (default values -are loq_PI_conf_level = 0.95 and -loq_prob_limit = 0.001). In this way we can get the D6 -method to compute in reasonable time-frames even for larger number of -design samples.

-

Here we can evaluate the design with both methods and test the speed -of computation. We see that D6 is significantly slower than D2 (but D6 -should be a more accurate representation of the RSE expected using M3 -estimation methods).

+

To evaluate the designs we use the design evaluation criteria based +on the “integration and FIM scaling” method (loq_method=1 +which is the default) and the “omit observations where PRED<LOQ” +method (loq_method=2) from Vong et +al. (2012) +(referred to as the D6 and D2 methods, respectively, in the presentation +by Vong et al.). In the D6 method we:

+
    +
  1. Enumerate all permutations of each sample point being +quantifiable or not (below the lower LOQ, or above the upper LOQ). If +sample points have an expected prediction interval (default is 95%, +loq_PI_conf_level = 0.95) that does not overlap the LOQ +then the design point is assumed to either always be observed or to +always be outside the limit of quantification.

  2. +
  3. Compute the probability of each permutation occurring, filtering +out potential realized designs with very low probabilities (default is +loq_prob_limit = 0.001).

  4. +
  5. Evalaute the Fisher Information Matrix (FIM) for all remaining +design permutations, assuming no information from any design point if, +for that permutation, it is not in within the limits of +quantification.

  6. +
  7. Take the weighted sum of the resulting information +matrices.

  8. +
+

The D2 method is a simplification of this process where all samples +with a typical value prediction (PRED) below the lower LOQ or above +upper LOQ are removed from the design before calculating the FIM.

+

Here we evaluate the initial design with both methods and test the +speed of the computations. We see that D6 is significantly slower than +D2 (but D6 should be a more accurate representation of the RSE expected +using M3 estimation methods).

 set.seed(1234)
 e_time_D6 <- system.time(
@@ -223,11 +309,12 @@ 

LOQ handlingeval_D2 <- evaluate_design(poped_db,loq=2, loq_method=2) ) -cat("D6 evaluation time: ",e_time_D6[1],"\n" ) -cat("D2 evaluation time: ",e_time_D2[1],"\n" ) -#> D6 evaluation time: 0.047 -#> D2 evaluation time: 0.007

-

The D2 nmethod is the same as removing the last data point

+cat("D6 evaluation time: ",e_time_D6[1],"seconds \n" ) +cat("D2 evaluation time: ",e_time_D2[1],"deconds \n" ) +#> D6 evaluation time: 0.047 seconds +#> D2 evaluation time: 0.007 deconds
+

The D2 method is the same as removing the last design point, as you +can se below.

 poped_db_2 <- create.poped.database(
     ff_fun=ff,
@@ -247,12 +334,17 @@ 

LOQ handlingeval_red <- evaluate_design(poped_db_2) testthat::expect_equal(eval_red$ofv,eval_D2$ofv) testthat::expect_equal(eval_red$rse,eval_D2$rse)

-

Predicted parameter uncertainty for the three methods is shown in the -table below (as relative standard error, RSE, in percent). We see that -the uncertainty is generally higher with the LOQ evaluations (as -expected). We also see that because the D2 method ignores data that is -below LOQ (the last observation in the design), then the predictions of -uncertainty are significantly larger.

+

The predicted parameter uncertainty for the three methods is shown in +the table below (as relative standard error, RSE, in percent). We see +that the uncertainty is generally higher with the LOQ evaluations (as +expected). We also see that the predictions of uncertainty are +significantly larger than the D6 method. This too is expected, because +the D2 method ignores design points where the model PRED is below LOQ +(the last observation in the design), whereas it appears from the +previous figure that ~25% of the observations from the last design point +will be above LOQ. The M6 method accounts for this probability that the +last design point will have data above LOQ and is thus a more realistic +assessment of the expected parameter uncertainty.

@@ -396,6 +488,7 @@

ULOQ handlinggeom_hline(yintercept = 2,color="red",linetype="dotted",linewidth=1) + geom_hline(yintercept = 7,color="blue",linetype="dotted",linewidth=1)

+

We can then evaluate the design based on the D2 and D6 methods.

 eval_ul_D6 <-evaluate_design(poped_db,
                 loq=2,
@@ -407,11 +500,17 @@ 

ULOQ handling=7, uloq_method=2) #> Problems inverting the matrix. Results could be misleading.

+

And then look at the predicted RSE in percent.

+
+eval_rse_2 <-
+  tibble::tibble("Parameter"=names(eval_full$rse),
+                 "No LOQ"=round(eval_full$rse),
+                 "D6 (only LLOQ)"=round(eval_D6$rse),
+                 "D2 (only LLOQ)"=round(eval_D2$rse),
+                 "D6 (ULOQ and LLOQ)"=round(eval_ul_D6$rse),
+                 "D2 (ULOQ and LLOQ)"=round(eval_ul_D2$rse))
+eval_rse_2
-
-RSE (in %) for the initial design using different methods of handling -LOQ and ULOQ. -
Parameter @@ -600,9 +699,9 @@

ULOQ handling

Design optimization

-

We can then optimize the design using the different methods of -computing the FIM. Here we optimize only using lower LOQ.

-
+

Next, we optimize the design using the different methods of computing +the FIM. Here we optimize only using the lower LOQ.

+
 optim_D6 <- poped_optim(poped_db, opt_xt = TRUE,
                         parallel=T,
                         loq=2)
@@ -614,20 +713,16 @@ 

Design optimizationoptim_full <- poped_optim(poped_db, opt_xt = TRUE, parallel=T)

-All designs together in one plot show how the different handling of BLQ -data results in different optimal designs. -
-Design points for the apraoch ignoring LOQ, using the D2 method, and using the D6 method

-Design points for the apraoch ignoring LOQ, using the D2 method, and -using the D6 method -

-
-

Predictions using the D6 method from each of the optimizations shows -the expected %RSE of the parameters if each design is used and the LOQ -is at 2 concentration units. We see that D2 may be a reasonable strategy -to optimize designs that are “good enough” if the D6 method is too slow -for optimization.

-
+

All designs points shown together in one plot to demonstrate how the +different handling of BLQ data results in different optimal designs. The +“full” design, ignoring LOQ, places a design point at the end of the +sampling space, which will results in many observations below LOQ. Both +the D2 and D6 methods push the design points to regions where fewer LOQ +observations will occur.

+

To compare the effects of these different designs on parameter +precision, we evaluate each of the optimal designs above using the D6 +method.

+
 optim_full_D6<- with(optim_full, 
   evaluate_design(poped.db,
                   loq=2))
@@ -639,10 +734,18 @@ 

Design optimizationoptim_D6_D6<- with(optim_D6, evaluate_design(poped.db, loq=2))

+

The expected %RSE of the parameters is shown below. We see that the +D6 optimized design gives, on average, the best parameter precision. The +D2 optimal design stragetgy may be a reasonable obtain designs that are +“good enough” if the D6 method is too slow for optimization.

+
+optim_rse_D6 <-
+  tibble::tibble("Parameter"=names(eval_full$rse),
+                 "No LOQ"=round(optim_full_D6$rse),
+                 "D6"=round(optim_D6_D6$rse),
+                 "D2"=round(optim_D2_D6$rse))
+optim_rse_D6
-
-RSE (in %) for the optimized designs evaluated using the D6 method. -
Parameter @@ -802,7 +905,7 @@

References

Version information

-
+
 sessionInfo()
 #> R version 4.3.2 (2023-10-31)
 #> Platform: x86_64-pc-linux-gnu (64-bit)
diff --git a/articles/handling_LOQ_files/figure-html/unnamed-chunk-15-1.png b/articles/handling_LOQ_files/figure-html/unnamed-chunk-15-1.png
index d651cef..045cdac 100644
Binary files a/articles/handling_LOQ_files/figure-html/unnamed-chunk-15-1.png and b/articles/handling_LOQ_files/figure-html/unnamed-chunk-15-1.png differ
diff --git a/articles/intro-poped.html b/articles/intro-poped.html
index 6bdb676..9209f98 100644
--- a/articles/intro-poped.html
+++ b/articles/intro-poped.html
@@ -460,7 +460,7 @@ 

Design optimization#> d_CL 0.0625 28 26 #> sig_prop 0.04 14 15 #> -#> Total running time: 17.17 seconds +#> Total running time: 17.252 seconds plot_model_prediction(output$poped.db)

We see that there are four distinct sample times for this design. @@ -518,7 +518,7 @@

Optimize over a discrete design s #> d_CL 0.0625 28 27 #> sig_prop 0.04 14 15 #> -#> Total running time: 10.479 seconds +#> Total running time: 10.495 seconds plot_model_prediction(output_discrete$poped.db, model_num_points = 300)

Here we see that the optimization ran somewhat quicker, but gave a @@ -583,7 +583,7 @@

Cost function to optimize dose#> d_CL 0.0625 28 28 #> sig_prop 0.04 14 14 #> -#> Total running time: 3.866 seconds +#> Total running time: 3.904 seconds

We see that the optimal doses are 31.6 and 55.2 for the two groups. This leads to population trough concentrations of 0.2 and 0.35 for the two groups of patients at 240 hours:

diff --git a/pkgdown.yml b/pkgdown.yml index c98124c..ae8d248 100644 --- a/pkgdown.yml +++ b/pkgdown.yml @@ -6,7 +6,7 @@ articles: model_def_other_pkgs: model_def_other_pkgs.html examples: examples.html intro-poped: intro-poped.html -last_built: 2023-11-16T13:23Z +last_built: 2023-11-16T16:00Z urls: reference: https://andrewhooker.github.io/PopED/reference article: https://andrewhooker.github.io/PopED/articles diff --git a/reference/Doptim.html b/reference/Doptim.html index fd847d0..441fb42 100644 --- a/reference/Doptim.html +++ b/reference/Doptim.html @@ -352,7 +352,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function diff --git a/reference/Dtrace.html b/reference/Dtrace.html index 00edd90..64ea047 100644 --- a/reference/Dtrace.html +++ b/reference/Dtrace.html @@ -215,7 +215,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function diff --git a/reference/LEDoptim.html b/reference/LEDoptim.html index 806448a..bf9e2a4 100644 --- a/reference/LEDoptim.html +++ b/reference/LEDoptim.html @@ -289,7 +289,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function diff --git a/reference/LinMatrixL.html b/reference/LinMatrixL.html index d53557b..21a9ed7 100644 --- a/reference/LinMatrixL.html +++ b/reference/LinMatrixL.html @@ -152,7 +152,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function diff --git a/reference/LinMatrixLH.html b/reference/LinMatrixLH.html index b9ee760..69bcc5b 100644 --- a/reference/LinMatrixLH.html +++ b/reference/LinMatrixLH.html @@ -179,7 +179,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function diff --git a/reference/LinMatrixL_occ.html b/reference/LinMatrixL_occ.html index 1041faf..f12d506 100644 --- a/reference/LinMatrixL_occ.html +++ b/reference/LinMatrixL_occ.html @@ -176,7 +176,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function diff --git a/reference/RS_opt.html b/reference/RS_opt.html index 87b44ba..93e5f10 100644 --- a/reference/RS_opt.html +++ b/reference/RS_opt.html @@ -346,7 +346,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function @@ -466,7 +466,7 @@

Examples#> SIGMA[1,1] 0.01 33 33 #> SIGMA[2,2] 0.25 26 26 #> -#> Total running time: 0.036 seconds +#> Total running time: 0.039 seconds if (FALSE) { diff --git a/reference/a_line_search.html b/reference/a_line_search.html index 6d9bdd1..ffa0106 100644 --- a/reference/a_line_search.html +++ b/reference/a_line_search.html @@ -215,7 +215,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function @@ -256,7 +256,6 @@

Examples#> ***************************** #> Line Search #> -#> Searching xt8 on group 1 #> Searching xt6 on group 1 #> group 1 -- xt[6] changed from 36 to 0.01 #> OFV(MF) changed from 55.3964 to 55.7162 @@ -264,42 +263,43 @@

Examples#> OFV(MF) changed from 55.7162 to 55.7556 #> group 1 -- xt[6] changed from 90.0025 to 120 #> OFV(MF) changed from 55.7556 to 55.7972 -#> Searching xt5 on group 1 -#> Searching xt3 on group 1 -#> Searching xt4 on group 1 +#> Searching xt8 on group 1 #> Searching xt7 on group 1 #> group 1 -- xt[7] changed from 72 to 90.0025 #> OFV(MF) changed from 55.7972 to 55.8529 -#> Searching xt2 on group 1 -#> group 1 -- xt[2] changed from 1 to 0.01 -#> OFV(MF) changed from 55.8529 to 55.89 -#> group 1 -- xt[2] changed from 0.01 to 30.0075 -#> OFV(MF) changed from 55.89 to 55.9369 -#> group 1 -- xt[2] changed from 30.0075 to 90.0025 -#> OFV(MF) changed from 55.9369 to 55.9441 -#> group 1 -- xt[2] changed from 90.0025 to 120 -#> OFV(MF) changed from 55.9441 to 55.9617 +#> Searching xt5 on group 1 #> Searching xt1 on group 1 -#> OFV(MF): 55.9617 +#> group 1 -- xt[1] changed from 0.5 to 0.01 +#> OFV(MF) changed from 55.8529 to 55.8913 +#> group 1 -- xt[1] changed from 0.01 to 30.0075 +#> OFV(MF) changed from 55.8913 to 55.9353 +#> group 1 -- xt[1] changed from 30.0075 to 90.0025 +#> OFV(MF) changed from 55.9353 to 55.9487 +#> group 1 -- xt[1] changed from 90.0025 to 120 +#> OFV(MF) changed from 55.9487 to 55.9661 +#> Searching xt3 on group 1 +#> Searching xt4 on group 1 +#> Searching xt2 on group 1 +#> OFV(MF): 55.9661 #> -#> Best value for OFV(MF) = 55.9617 +#> Best value for OFV(MF) = 55.9661 #> #> Best value for xt: -#> Group 1: 0.5 2 6 24 90 120 120 120 +#> Group 1: 1 2 6 24 90 120 120 120 #> #> Searching a1 on individual/group 1 #> group 1 -- a[1] changed from 70 to 75.0025 -#> OFV(MF) changed from 55.9617 to 56.1549 +#> OFV(MF) changed from 55.9661 to 56.1502 #> group 1 -- a[1] changed from 75.0025 to 100 -#> OFV(MF) changed from 56.1549 to 56.7447 -#> OFV(MF): 56.7447 -#> Best value for OFV(MF) = 56.7447 +#> OFV(MF) changed from 56.1502 to 56.7067 +#> OFV(MF): 56.7067 +#> Best value for OFV(MF) = 56.7067 #> #> Best value for a: #> Group 1: 100 [0.01,100] #> #> -#> Line search run time: 0.314 seconds +#> Line search run time: 0.316 seconds #> *************************** #> diff --git a/reference/bfgsb_min.html b/reference/bfgsb_min.html index 7c1a7f9..eaaaa60 100644 --- a/reference/bfgsb_min.html +++ b/reference/bfgsb_min.html @@ -164,7 +164,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function diff --git a/reference/blockexp.html b/reference/blockexp.html index d6d3b62..942154b 100644 --- a/reference/blockexp.html +++ b/reference/blockexp.html @@ -154,7 +154,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function diff --git a/reference/blockfinal.html b/reference/blockfinal.html index e7d10bc..d02eecf 100644 --- a/reference/blockfinal.html +++ b/reference/blockfinal.html @@ -254,7 +254,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function @@ -332,7 +332,7 @@

Examples#> sig_prop 0.01 32 32 #> sig_add 0.25 26 26 #> -#> Total running time: 1.531 seconds +#> Total running time: 1.561 seconds diff --git a/reference/blockheader.html b/reference/blockheader.html index 33637d7..c90cbb5 100644 --- a/reference/blockheader.html +++ b/reference/blockheader.html @@ -240,7 +240,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function diff --git a/reference/blockopt.html b/reference/blockopt.html index 140673f..827b755 100644 --- a/reference/blockopt.html +++ b/reference/blockopt.html @@ -125,7 +125,7 @@

Examples#> return(list(y = y, poped.db = poped.db)) #> }) #> } -#> <bytecode: 0x55eddf040570> +#> <bytecode: 0x5639cc3a7808> #> <environment: namespace:PopED> ## -- parameter definition function diff --git a/reference/build_sfg.html b/reference/build_sfg.html index 702f7cc..a50a9b3 100644 --- a/reference/build_sfg.html +++ b/reference/build_sfg.html @@ -121,7 +121,7 @@

Examples#> function (x, a, bpop, b, bocc) #> parameters = c(CL = bpop[1] * exp(b[1]), Favail = bpop[2], KA = bpop[3] * #> exp(b[2]), V = bpop[4] * exp(b[3]), DOSE = a[1], TAU = a[2]) -#> <environment: 0x55eddd17c190> +#> <environment: 0x5639ca53cbb0> etas <- c(Favail="exp",KA="exp",V="add",CL="exp") build_sfg(model="ff.PK.1.comp.oral.md.CL",etas = etas) @@ -129,7 +129,7 @@

Examples#> parameters = c(CL = bpop[1] * exp(b[1]), Favail = bpop[2] * exp(b[2]), #> KA = bpop[3] * exp(b[3]), V = bpop[4] + b[4], DOSE = a[1], #> TAU = a[2]) -#> <environment: 0x55eddd17c190> +#> <environment: 0x5639ca53cbb0>