ABE: Comparative BA-calculation for Average Bioequivalence

View source: R/ABE.R

ABER Documentation

Comparative BA-calculation for Average Bioequivalence

Description

This function performs the required calculations for the BE decision via conventional (unscaled) Average Bioequivalence based on ANOVA as recommended in the EMA’s guideline.

Usage

ABE(alpha = 0.05, path.in, path.out = tempdir(), file, set = "",
    ext, na = ".", sep = ",", dec = ".", logtrans = TRUE,
    print = TRUE, details = FALSE, verbose = FALSE, ask = FALSE,
    data = NULL, theta1, theta2)

Arguments

alpha

Type I Error (TIE) probability (nominal level of the test). Conventionally set to 0.05, resulting in a 100(1 – 2α) confidence interval.

path.in

Path to the data file for import.

path.out

Path to save the result file if print = TRUE. You must have write-permission to the folder. For simplicity your home folder "~/" can be used.
If missing, R’s standard temporary folder will be used.

file

Name of the dataset for import (without extension). Must be a string (i.e., enclosed in single or double quotation marks). The name is case-sensitive.

set

Name of the sheet of an Excel-file (mandatory). Must be a string (i.e., enclosed in single or double quotation marks). The name is case-sensitive.

ext

File-extension enclosed in single or double quotation marks. Acceptable are "csv" for character delimited variables (CSV) or "xls", "xlsx" for Excel-files.
The file-extension is not case-sensitive.

na

Character string denoting missing values. Acceptable are "NA" (not available), "ND" (not determined), "." (SAS), "Missing" (Phoenix WinNonlin), and "" (Excel; empty cell). Missings will be converted to NA in the imported data. Defaults to ".".

sep

Variable separator in the CSV-file. Acceptable are "," (comma = ASCII 44), ";" (semicolon = ASCII 59), and "\t" (tabulator = ASCII 9). Defaults to ",".

dec

Decimal separator in the CSV-file. Acceptable are "." (period = ASCII 46) or "," (comma = ASCII 44). Defaults to ".".

logtrans

If TRUE (default) the raw data (provided in column PK) will be internally log-transformed and used in the calculations. If FALSE the already log-transformed data (provided in the column logPK) will be used in the calculations.

print

If TRUE (default), the function prints its results to a file. If FALSE, returns a data frame of results.

details

Defaults to FALSE. If TRUE, the function sends its results in 7-digits precision to a data frame.

verbose

Defaults to FALSE. If TRUE the ANOVA-table is send to the console.

ask

Defaults to FALSE. If TRUE the user will be asked whether an already existing result file should be overwritten.

data

Specification of one of the internal reference datasets (rds01 to rds30). If given, the arguments path.in, file, set, and ext are ignored. For its use see the examples.
If not given, defaults to NULL (i.e., import data from a file).

theta1

Lower limit of the acceptance range. Defaults to 0.80. If missing will be set to 1/theta2.

theta2

Upper limit of the acceptance range. Defaults to 1.25. If missing will be set to 1/theta1.

Details

The model for the treatment comparison is
lm(log(PK) ~ sequence + subject%in%sequence + period + treatment, data = data)
where all effects are fixed.

Tested designs

  • 4-period 2-sequence full replicates
    TRTR | RTRT
    TRRT | RTTR
    TTRR | RRTT

  • 2-period 4-sequence replicate
    TR | RT | TT | RR (Balaam’s design)

  • 4-period 4-sequence full replicates
    TRTR | RTRT | TRRT | RTTR
    TRRT | RTTR | TTRR | RRTT

  • 3-period 2-sequence full replicates
    TRT | RTR
    TRR | RTT

  • 3-period (partial) replicates
    TRR | RTR | RRT
    TRR | RTR (extra-reference design)

Data structure

  • Columns must have the headers subject, period, sequence, treatment, PK, and/or logPK.
    Any order of columns is acceptable.
    Uppercase and mixed case headers will be internally converted to lowercase headers.

    • subject must be integer numbers or (any combination of) alphanumerics
      [A-Z, a-z, -, _, #, 0-9]

    • period must be integer numbers.

    • sequence must be contained in the tested designs (numbers or e.g., ABAB are not acceptable).

    • The Test treatment must be coded T and the Reference R.

Value

Prints results to a file if argument print = TRUE (default).
If argument print = FALSE, returns a data frame with the elements:

Design e.g., TRTR|RTRT
Method ABE
n total number of subjects
nTT number of subjects with two treatments of T (full replicates only)
nRR number of subjects with two treatments of R
Sub/seq number of subjects per sequence
Miss/seq if the design is unbalanced, number of missings per sequence
Miss/per if the design is incomplete, number of missings per period
alpha nominal level of the test
DF degrees of freedom of the treatment comparison
CVwT(%) intra-subject coefficient of variation of the test treatment (full replicates only)
CVwR(%) intra-subject coefficient of variation of the reference treatment
BE.lo(%) lower bioequivalence limit (e.g., 80)
BE.hi(%) upper bioequivalence limit (e.g., 125)
CI.lo(%) lower confidence limit of the treatment comparison
CI.hi(%) upper confidence limit of the treatment comparison
PE(%) point estimate of the treatment comparison (aka GMR)
BE assessment whether the 100(1 – 2α) CI lies entirely within the acceptance range (pass|fail)

Warning

Files may contain a commentary header. If reading from a CSV-file, each line of the commentary header must start with "# " (hashmark space = ASCII 35 ASCII 32). If reading from an Excel-file all lines preceding the column headers are treated as a comment.

Clarification

The ‘ASCII line chart’ in the result file gives the confidence limits with filled black squares and the point estimate as a white rhombus. If a confidence limit exceeds the drawing range, it is shown as a triangle. The BE limits and 100% are given with single vertical lines. The ‘resolution’ is approximatelly 0.5% and therefore, not all symbols might be shown. The CI and PE take presedence over the limits.

Disclaimer

Program offered for Use without any Guarantees and Absolutely No Warranty. No Liability is accepted for any Loss and Risk to Public Health Resulting from Use of this R-Code.

Note

The EMA’s model assumes equal [sic!] intra-subject variances of test and reference (like in 2×2×2 trials) – even if proven false in one of the full replicate designs (were both CVwT and CVwR can be estimated). Hence, amongst biostatisticians it is called the ‘crippled model’ because the replicative nature of the study is ignored.
Conventional unscaled ABE has to be employed for Cmax (if widening of the acceptance range is clinically not justifiable), AUC0–t, AUC0–72 (immediate release products) and Cmax,ss, Cτ,ss, partialAUC (if widening of the acceptance range is clinically not justifiable), and AUC0–t, AUC0–∞, AUC0–τ (modified release products).

Author(s)

Helmut Schütz

References

European Medicines Agency, Committee for Medicinal Products for Human Use. Guideline on the Investigation of Bioequivalence. CPMP/EWP/QWP/1401/98 Rev. 1/ Corr **. London. 20 January 2010. online

European Medicines Agency, Committee for Medicinal Products for Human Use. Guideline on the pharmacokinetic and clinical evaluation of modified release dosage forms. EMA/CPMP/EWP/280/96 Corr1. London. 20 November 2014. online

See Also

method.A evaluation for ABEL by a fixed effects model (ANOVA)
method.B evaluation for ABEL by a linear mixed effects model

Examples


# Importing from a CSV-file, using most of the defaults: variable
# separator comma, decimal separator period, print to file.
# Note: You must adapt the path-variables. The example reads from
# the data provided by the library. Write-permissions must be granted
# for 'path.out' in order to save the result file. Here the deafault
# (R's temporary folder) is used. If you don't know where it is,
# type tempdir() in the console.
path.in <- paste0(find.package("replicateBE"), "/extdata/")
ABE(path.in = path.in, file = "DS", set = "02", ext = "csv")
# Should result in:
#   BE-limits          :  80.00% ... 125.00%
#   Confidence interval:  97.32% ... 107.46%  pass
#   Point estimate     : 102.26%
# Generate the data.frame of results (7-digits precision) and show
# in the console. Use an internal dataset.
x <- ABE(details = TRUE, print = FALSE, data = rds02)
print(x, row.names = FALSE)

# Assuming a NTID and assess BE with narrower limits for one
# of the internal datasets.
ABE(data = rds02, theta1 = 0.90)
# Should result in:
#   BE-limits          :  90.00% ... 111.11%
#   Confidence interval:  97.32% ... 107.46%  pass
#   Point estimate     : 102.26%

replicateBE documentation built on May 3, 2022, 1:06 a.m.