| Title: | Adaptive Bioequivalence Design for In-Vitro Permeation Tests |
|---|---|
| Description: | Contains functions carrying out adaptive procedures using mixed scaling approach to establish bioequivalence for in-vitro permeation test (IVPT) data. Currently, the package provides procedures based on parallel replicate design and balanced data, according to the U.S. Food and Drug Administration's "Draft Guidance on Acyclovir" <https://www.accessdata.fda.gov/drugsatfda_docs/psg/Acyclovir_topical%20cream_RLD%2021478_RV12-16.pdf>. Potvin et al. (2008) <doi:10.1002/pst.294> provides the basis for our adaptive design (see Method B). For a comprehensive overview of the method, refer to Lim et al. (2023) <doi:10.1002/pst.2333>. This package reflects the views of the authors and should not be construed to represent the views or policies of the U.S. Food and Drug Administration. |
| Authors: | Daeyoung Lim [aut, cre], Elena Rantou [ctb], Jessica Kim [ctb], Sungwoo Choi [ctb], Nam Hee Choi [ctb], Stella Grosser [ctb] |
| Maintainer: | Daeyoung Lim <[email protected]> |
| License: | GPL (>= 3) |
| Version: | 1.1.0 |
| Built: | 2026-05-20 10:39:37 UTC |
| Source: | https://github.com/daeyounglim/adaptivpt |
This package helps design and analyze adaptive bioequivalence studies. Main functions are msabe, rss, prms, and PRsurface.
This function runs hypothesis testing for bioequivalence using the mixed criterion
msabe(Test, Reference, params = list())msabe(Test, Reference, params = list())
Test |
An n-by-r matrix of test product data. |
Reference |
An n-by-r matrix of reference product data. |
params |
(Optional) The list of tuning parameters for running the test.
|
A list of lists
parameters - A list of true parameter settings.
fout - The test result and related estimators.
runtime - The total elapsed time charged for the execution of the program.
Daeyoung Lim, [email protected]
Davit, B. M., Chen, M. L., Conner, D. P., Haidar, S. H., Kim, S., Lee, C. H., Lionberger, R. A., Makhlouf, F. T., Nwakama, P. E., Patel, D. T., Schuirmann, D. J., & Yu, L. X. (2012). Implementation of a reference-scaled average bioequivalence approach for highly variable generic drug products by the US Food and Drug Administration. The AAPS journal, 14(4), 915-924.
n <- 6 r <- 3 Test <- matrix(runif(n*r), nrow = n, ncol = r) Reference <- matrix(runif(n*r), nrow = n, ncol = r) out <- msabe(Test, Reference)n <- 6 r <- 3 Test <- matrix(runif(n*r), nrow = n, ncol = r) Reference <- matrix(runif(n*r), nrow = n, ncol = r) out <- msabe(Test, Reference)
This function runs Monte Carlo simulations to compute the passing rate (PR) of the mixed scaling (MS) approach.
prms(n, r, params = list(), nsim = 1000, ncores = NULL)prms(n, r, params = list(), nsim = 1000, ncores = NULL)
n |
The number of donors in each simulation. |
r |
The number of replicates from each donor for each simulated dataset. |
params |
(Optional) The list of true parameters to be assumed in data generation.
|
nsim |
(Optional) The number of total simulations to be conducted. Defaults to 1,000. |
ncores |
(Optional) The number of CPU cores to use for parallel processing (OpenMP). If R hasn't been installed with OpenMP configured, this will not take effect. When OpenMP is available, it should not exceed the number of existing cores. If unspecified, it will default to 2 cores or the number of existing cores, whichever is smaller. |
A list of lists
parameters - A list of true parameter settings.
passing_rate - The estimated passing rate.
runtime - The total elapsed time charged for the execution of the program.
Daeyoung Lim, [email protected]
Davit, B. M., Chen, M. L., Conner, D. P., Haidar, S. H., Kim, S., Lee, C. H., Lionberger, R. A., Makhlouf, F. T., Nwakama, P. E., Patel, D. T., Schuirmann, D. J., & Yu, L. X. (2012). Implementation of a reference-scaled average bioequivalence approach for highly variable generic drug products by the US Food and Drug Administration. The AAPS journal, 14(4), 915-924.
out <- prms(10, 6, nsim = 2)out <- prms(10, 6, nsim = 2)
This function plots the power (passing-rate) curve and power (passing-rate) surface of the mixed scaling (MS) approach. A power curve shows the statistical power across different effect sizes. In IVPT studies, the effect size is captured by the difference between the means of log-measurements of the test and reference products (i.e., logGMR). For the passing-rate surface, the corresponding function considers different values of the standard deviation.
PRsurface( n, r, observed_GMR = 0.95, observed_sigmaWR = 0.294, GMR_grid = seq(0.75, 1.3, length.out = 100), sigmaWR_grid = seq(0.2, 1, length.out = 100), params = list(), nsim = 1000, ncores = NULL, verbose = FALSE, plot = TRUE )PRsurface( n, r, observed_GMR = 0.95, observed_sigmaWR = 0.294, GMR_grid = seq(0.75, 1.3, length.out = 100), sigmaWR_grid = seq(0.2, 1, length.out = 100), params = list(), nsim = 1000, ncores = NULL, verbose = FALSE, plot = TRUE )
n |
The number of donors in each simulation. |
r |
The number of replicates from each donor for each simulated dataset. |
observed_GMR |
The observed (estimated) GMR of the user's data. Along with the observed sigmaWR, the corresponding passing rate will be displayed in the 3D plot as a vertical line parallel to the z-axis. |
observed_sigmaWR |
The observed (estimated) sigmaWR of the user's data. Along with the observed GMR, the corresponding passing rate will be displayed in the 3D plot as a vertical line parallel to the z-axis. |
GMR_grid |
The grid of GMR values to be used for plotting the 3D surface of passing rates. |
sigmaWR_grid |
The grid of sigmaWR values to be used for plotting the 3D surface of passing rates. |
params |
(Optional) The list of true parameters to be assumed in data generation.
|
nsim |
(Optional) The number of total simulations to be conducted. Defaults to 1,000. |
ncores |
(Optional) The number of CPU cores to use for parallel processing (OpenMP). If R hasn't been installed with OpenMP configured, this will not take effect. When OpenMP is available, it should not exceed the number of existing cores. If unspecified, it will default to 2 cores or the number of existing cores, whichever is smaller. |
verbose |
(Optional) A logical value ( |
plot |
(Optional) A logical value ( |
A list
GMR - A list of true parameter settings.
passing_rate - The estimated passing rate.
runtime - The total elapsed time charged for the execution of the program.
Daeyoung Lim, [email protected]
Davit, B. M., Chen, M. L., Conner, D. P., Haidar, S. H., Kim, S., Lee, C. H., Lionberger, R. A., Makhlouf, F. T., Nwakama, P. E., Patel, D. T., Schuirmann, D. J., & Yu, L. X. (2012). Implementation of a reference-scaled average bioequivalence approach for highly variable generic drug products by the US Food and Drug Administration. The AAPS journal, 14(4), 915-924.
out <- PRsurface(6, 3, GMR_grid = c(0.90, 1), sigmaWR_grid = c(0.2, 0.5), nsim = 2, plot = FALSE)out <- PRsurface(6, 3, GMR_grid = c(0.90, 1), sigmaWR_grid = c(0.2, 0.5), nsim = 2, plot = FALSE)
This function reestimates the sample size using mixed criterion required for target power, using binary search. The power (passing rate) function of mixed criterion testing lacks a closed-form expression. Thus, sample size (re-)estimation requires a binary search, after identifying an n where the passing rate exceeds the desired level.
rss(n, r, S_WR, params = list(), nsim = 1000, ncores = NULL)rss(n, r, S_WR, params = list(), nsim = 1000, ncores = NULL)
n |
The number of donors in each simulation. |
r |
The number of replicates from each donor for each simulated dataset. |
S_WR |
The estimated standard deviation of the reference measurements. The reference-scaled average bioequivalence approach is used if S_WR > 0.249 and the average bioequivalence approach otherwise. |
params |
(Optional) The list of true parameters to be assumed in data generation.
|
nsim |
(Optional) The number of total simulations to be conducted. Defaults to 1,000. |
ncores |
(Optional) The number of CPU cores to use for parallel processing (OpenMP). If R hasn't been installed with OpenMP configured, this will not take effect. When OpenMP is available, it should not exceed the number of existing cores. If unspecified, it will default to 2 cores or the number of existing cores, whichever is smaller. |
A list of lists
parameters - A list of true parameter settings.
rss - The reestimated sample size.
runtime - The total elapsed time charged for the execution of the program.
Daeyoung Lim, [email protected]
Potvin, D., DiLiberti, C. E., Hauck, W. W., Parr, A. F., Schuirmann, D. J., & Smith, R. A. (2008). Sequential design approaches for bioequivalence studies with crossover designs. Pharmaceutical Statistics: The Journal of Applied Statistics in the Pharmaceutical Industry, 7(4), 245-262.
out <- rss(10, 6, S_WR = 0.22, nsim = 2)out <- rss(10, 6, S_WR = 0.22, nsim = 2)
'summary' method for class "'msabe'"
## S3 method for class 'msabe' summary(object, ...)## S3 method for class 'msabe' summary(object, ...)
object |
an output from 'msabe' |
... |
additional arguments for print |
Does not return anything; print a summary of the output