Ibrahim Komeil
☆    

Egypt,
2021-02-20 11:36
(208 d 08:34 ago)

Posting: # 22218
Views: 1,078
 

 Bioequivalence of mirabegron 50 mg extended release Tablet [Design Issues]

Dear All
I had performed a 2X2 crossover study between test and reference product of mirabegron 50 mg under fasting conditions where 34 volunteers were completed the study.

Knowing that I couldn't find an accurate data for intrasubject variability of Mirabegnon. The results showed a very high unexpected intra-subject variability as following:
Cmax: 73.8451%, AUCt: 67.6524%
I calculated study power too and it results as following:
Cmax: 38.45% and AUCt: 42.38%

Therefore, a sequential two stage study won't be applicable in that condition. My question is: If i repeat the aforementioned study again, shall i follow a partial replicated cross over design or full replicated cross over design?

My second: Shall i follow RASBE or unscaled BE limits ?

Thanks in advance
Helmut
★★★
avatar
Homepage
Vienna, Austria,
2021-02-20 14:50
(208 d 05:20 ago)

@ Ibrahim Komeil
Posting: # 22219
Views: 839
 

 Replicate designs based on information of 2×2×2 design

Hi Ibrahim,

» I had performed a 2X2 crossover study […] The results showed a very high unexpected intra-subject variability as following:
» Cmax: 73.8451%, AUCt: 67.6524%
»
» Therefore, a sequential two stage study won't be applicable in that condition.

Correct. Such a method does not exist.

» My question is: If i repeat the aforementioned study again, shall i follow a partial replicated cross over design or full replicated cross over design?

I recommend a full replicate design. If you want to have only three periods, opt for TRT|RTR or TRR|RTT. The partial replicate is nasty when it comes to heteroscedasticity (CVwT  CVwR).

It’s a little bit tricky because the CVw of the 2×2×2 is actually pooled from the (unknown) intra-subject variabilities of T and R (CVwT and CVwR). If you naïvely use the CVw in the sample size estimation (assuming that CVwT = CVwR), beware of these possibilities:
  • CVwTCVwR: All is good.
  • CVwT < CVwR: Study may be ‘overpowered’, money lost.
  • CVwT > CVwR: Study may be ‘underpowered’, risky.
Hence, if you don’t want to perform a pilot study in a replicate design (recommended!), at least explore the possibilities to be protected against surprises. Quite often CVwT < CVwR which allows for a lower sample size. [image]-script at the end.

Results with your values, variance ratios (s2wT / s2wR = 0.5 … 2), assumed T/R-ratio 0.9 (don’t use a ‘better’ one for a HVD), target power 80%, the EMA’s Average Bioequivalence with Expanding Limits (ABEL) if CVwR of Cmax > 30%, conventional ABE for AUC, various designs.
2x2x3 is a 2-sequence 3-period full replicate design (TRT|RTR or TRR|RTT),
2x2x4 is a 2-sequence 4-period full replicate design (TRTR|RTRT, TRRT|RTTR, or TTRR|RRTT),
2x3x3 is the 3-sequence 3-period partial replicate design (TRR|RTR|RRT).

 regulator Cmax    cap AUC  cap
       EMA ABEL 50.00% ABE <NA>
2x2x3 design
 Cmax
   CVwT   CVwR var.ratio method  n  power
 0.5802 0.8869    0.5000   ABEL 64 0.8008
 0.6454 0.8282    0.6667   ABEL 64 0.8007
 0.7385 0.7385    1.0000   ABEL 64 0.8001
 0.8282 0.6454    1.5000   ABEL 66 0.8088
 0.8869 0.5802    2.0000   ABEL 68 0.8099
 AUC
      CVw method   n  power
 0.676524    ABE 254 0.8019

 regulator Cmax    cap AUC  cap
       EMA ABEL 50.00% ABE <NA>
2x2x4 design
 Cmax
   CVwT   CVwR var.ratio method  n  power
 0.5802 0.8869    0.5000   ABEL 44 0.8123
 0.6454 0.8282    0.6667   ABEL 44 0.8124
 0.7385 0.7385    1.0000   ABEL 44 0.8122
 0.8282 0.6454    1.5000   ABEL 44 0.8107
 0.8869 0.5802    2.0000   ABEL 44 0.8035
 AUC
      CVw method   n  power
 0.676524    ABE 170 0.8033

 regulator Cmax    cap AUC  cap
       EMA ABEL 50.00% ABE <NA>
2x3x3 design
 Cmax
   CVwT   CVwR var.ratio method  n  power
 0.5802 0.8869    0.5000   ABEL 72 0.8324
 0.6454 0.8282    0.6667   ABEL 69 0.8224
 0.7385 0.7385    1.0000   ABEL 66 0.8119
 0.8282 0.6454    1.5000   ABEL 63 0.8020
 0.8869 0.5802    2.0000   ABEL 63 0.8035


Lessons learned: With such high variability you are far above the EMA’s upper cap of scaling (50%) and you may expand the limits only to 69.84–143.19%. Here different variabilities don’t count that much because the procedure behaves similar to the TOST (apart from the point estimate constraint).
AUC is the shown-stopper. For the EMA (and acc. to the Egyptian guideline) you are not allowed to expand the limits and have to go with ABE.

» My second: Shall i follow RASBE or unscaled BE limits ?

It depends on your ‘target’ jurisdiction.
  • ASEAN states, Australia, the East African Community, Egypt, EMA, the Eurasian Economic Union, New Zealand, Chile, Brazil:
      ABEL for Cmax, ABE for AUC.
  • Health Canada:
      ABEL for AUC, point estimate of Cmax within 80.0–125.0%.
  • WHO:
      ABEL for Cmax and AUC; full replicate design mandatory for the latter.
  • FDA, China:
      RSABE for Cmax and AUC.
Try the script with regulator <- "FDA" or "WHO" or "HC". Since in those jurisdictions you are allowed to scale AUC, doable.

 regulator  Cmax  cap   AUC  cap
       FDA RSABE <NA> RSABE <NA>
2x2x4 design
 Cmax
   CVwT   CVwR var.ratio method  n  power
 0.5802 0.8869    0.5000  RSABE 26 0.8114
 0.6454 0.8282    0.6667  RSABE 26 0.8102
 0.7385 0.7385    1.0000  RSABE 26 0.8047
 0.8282 0.6454    1.5000  RSABE 28 0.8045
 0.8869 0.5802    2.0000  RSABE 32 0.8154
 AUC
   CVwT   CVwR var.ratio method  n  power
 0.5344 0.8080    0.5000  RSABE 22 0.8023
 0.5932 0.7562    0.6667  RSABE 24 0.8146
 0.6765 0.6765    1.0000  RSABE 24 0.8029
 0.7562 0.5932    1.5000  RSABE 28 0.8158
 0.8080 0.5344    2.0000  RSABE 30 0.8036

 regulator Cmax    cap  AUC    cap
       WHO ABEL 50.00% ABEL 50.00%
2x2x4 design
 Cmax
   CVwT   CVwR var.ratio method  n  power
 0.5802 0.8869    0.5000   ABEL 44 0.8123
 0.6454 0.8282    0.6667   ABEL 44 0.8124
 0.7385 0.7385    1.0000   ABEL 44 0.8122
 0.8282 0.6454    1.5000   ABEL 44 0.8107
 0.8869 0.5802    2.0000   ABEL 44 0.8035
 AUC
   CVwT   CVwR var.ratio method  n  power
 0.5344 0.8080    0.5000   ABEL 38 0.8096
 0.5932 0.7562    0.6667   ABEL 38 0.8092
 0.6765 0.6765    1.0000   ABEL 38 0.8080
 0.7562 0.5932    1.5000   ABEL 38 0.8016
 0.8080 0.5344    2.0000   ABEL 40 0.8003

 regulator Cmax  cap  AUC    cap
        HC   PE <NA> ABEL 57.38%
2x2x4 design
 Cmax
      CVw method  n  power
 0.738451     PE 24 0.8018
 AUC
   CVwT   CVwR var.ratio method  n  power
 0.5344 0.8080    0.5000   ABEL 30 0.8159
 0.5932 0.7562    0.6667   ABEL 30 0.8137
 0.6765 0.6765    1.0000   ABEL 30 0.8040
 0.7562 0.5932    1.5000   ABEL 34 0.8151
 0.8080 0.5344    2.0000   ABEL 38 0.8067



library(PowerTOST)
CV.p.Cmax <- 0.738451 # CVw of 2x2x2 study (pooled from unknown CVwT and CVwR)
CV.p.AUC  <- 0.676524 # CVw of 2x2x2 study (pooled from unknown CVwT and CVwR)
regulator <- "EMA"    # select from "EMA", "HC" (Health Canada),
                      # "GCC" (Gulf Cooperation Council), "WHO", "FDA"

theta0    <- 0.90     # assumed T/R-ratio
target    <- 0.80     # target (desired) power
design    <- "2x2x3"  # 2-sequence 3-period full replicate design
                      # alternatively:
                      # "2x2x4" 2-sequence 4-period full replicate design
                      # "2x3x3" 2-sequence 3-period partial replicate design

ratio     <- unique(sort(c(1/seq(1, 2, 0.5), seq(1, 2, 0.5))))
                      # assumed variance ratios: s2wT / s2wR
                      # CVwT and CVwR

CV.Cmax   <- CVp2CV(CV = CV.p.Cmax, ratio = ratio)
CV.AUC    <- CVp2CV(CV = CV.p.AUC, ratio = ratio)
if (regulator == "HC") {
  res.Cmax <- data.frame(CVw = CV.p.Cmax, method = "PE", n = NA,
                         power = NA, stringsAsFactors = FALSE)
} else {
res.Cmax  <- data.frame(CVwT = CV.Cmax[, 1], CVwR = CV.Cmax[, 2],
                        var.ratio = ratio, method = NA, n = NA,
                        power = NA, stringsAsFactors = FALSE)
}
if (regulator %in% c("HC", "WHO", "FDA")) {
  res.AUC <- data.frame(CVwT = CV.AUC[, 1], CVwR = CV.AUC[, 2],
                        var.ratio = ratio, method = NA, n = NA,
                        power = NA, stringsAsFactors = FALSE)
} else {
  res.AUC <- data.frame(CVw = CV.p.AUC, method = "ABE", n = NA,
                        power = NA, stringsAsFactors = FALSE)
}
cond      <- data.frame(regulator = c("EMA", "WHO", "GCC", "HC", "FDA"),
                        Cmax = c(rep("ABEL", 3), "PE", "RSABE"),
                        V1 = c(rep(sprintf("%.2f%%",
                                   100*reg_const(regulator = "EMA")$CVcap), 2),
                                   NA, NA, NA),
                        AUC = c("ABE", "ABEL", "ABE", "ABEL", "RSABE"),
                        V2 = c(NA, sprintf("%.2f%%",
                               100*reg_const(regulator = "EMA")$CVcap),
                               NA, sprintf("%.2f%%",
                               100*reg_const(regulator = "HC")$CVcap), NA))
names(cond)[c(3, 5)] <- "cap"
pb        <- txtProgressBar(0, 1, 0, char = "\u2588", width = NA, style = 3)
i         <- 0
for (j in 1:nrow(res.Cmax)) {
  i <- i + 1
  if (regulator == "HC") {     # only PE within 80.0-125.0%
      res.Cmax[j, 3:4]   <- sampleN.TOST(alpha = 0.5, CV = CV.p.Cmax,
                                         theta0 = theta0, targetpower = target,
                                         design = design, print = FALSE)[7:8]
  } else {                     # others
    CV <- as.numeric(c(res.Cmax[j, 1:2]))
    if (!regulator == "FDA") { # all but the FDA
      res.Cmax$method[j] <- "ABEL"
      if (!design == "2x3x3" & (res.Cmax[j, 1] > res.Cmax[j, 2])) {
        res.Cmax[j, 5:6] <- sampleN.scABEL(CV = CV, theta0 = theta0,
                                           targetpower = target,
                                           design = design, details = FALSE,
                                           print = FALSE)[8:9]
      } else { # if partial replicate and CVwT > CVwR: subject simulations
        res.Cmax[j, 5:6] <- sampleN.scABEL.sdsims(CV = CV, theta0 = theta0,
                                                  targetpower = target,
                                                  design = design,
                                                  details = FALSE, print = FALSE,
                                                  progress = FALSE)[8:9]
      }
    } else {                   # FDA (subject simulations not implemented)
      res.Cmax$method[j] <- "RSABE"
      res.Cmax[j, 5:6] <- sampleN.RSABE(CV = CV, theta0 = theta0,
                                        targetpower = target, design = design,
                                        details = FALSE, print = FALSE)[8:9]     }
  }
  setTxtProgressBar(pb, i/(nrow(res.Cmax)+nrow(res.AUC)))
} # estimating results for Cmax
if (regulator == "WHO") reg <- "EMA"
for (j in 1:nrow(res.AUC)) {
  i <- i + 1
  if (regulator %in% c("EMA", "GCC")) { # ABE
    res.AUC[j, 3:4]   <- sampleN.TOST(CV = CV.p.AUC, theta0 = theta0,
                                      targetpower = target, design = design,
                                      details = FALSE, print = FALSE)[7:8]
  } else {                              # others
    CV <- as.numeric(c(res.AUC[j, 1:2]))
    if (!regulator == "FDA") {          # all but the FDA
      res.AUC$method[j] <- "ABEL"
      if (!design == "2x3x3" & (res.AUC[j, 1] <= res.AUC[j, 2]) | reg == "HC") {
        res.AUC[j, 5:6] <- sampleN.scABEL(CV = CV, theta0 = theta0,
                                          targetpower = target, design = design,
                                          regulator = reg, details = FALSE,
                                          print = FALSE)[8:9]
      } else { # if partial replicate and CVwT > CVwR: subject simulations
        res.AUC[j, 5:6] <- sampleN.scABEL.sdsims(CV = CV, theta0 = theta0,
                                                 targetpower = target,
                                                 design = design,
                                                 regulator = reg,
                                                 details = FALSE,
                                                 print = FALSE,
                                                 progress = FALSE)[8:9]
      }
    } else {                   # FDA (subject simulations not implemented)
      res.AUC$method[j] <- "RSABE"
      res.AUC[j, 5:6] <- sampleN.RSABE(CV = CV, theta0 = theta0,
                                       targetpower = target, design = design,
                                       details = FALSE, print = FALSE)[8:9]
    }
  }
  setTxtProgressBar(pb, i/(nrow(res.Cmax)+nrow(res.AUC)))
} # estimating results for AUC
close(pb)
if (regulator == "HC") {
  res.Cmax[, 4] <- signif(res.Cmax[, 4], 4)
} else {
  res.Cmax[, c(1:3, 6)] <- signif(res.Cmax[, c(1:3, 6)], 4)
}
if (!regulator %in% c("EMA", "GCC")) {
  res.AUC[, c(1:3, 6)] <- signif(res.AUC[, c(1:3, 6)], 4)
} else {
  res.AUC[, 4] <- signif(res.AUC[, 4], 4)
}
info <- paste(design, "design", "\n Cmax\n")
print(cond[cond$regulator == regulator, ], row.names = FALSE);cat(info);print(res.Cmax, row.names = FALSE);cat(" AUC\n"); print(res.AUC, row.names = FALSE)


Dif-tor heh smusma 🖖
Helmut Schütz
[image]

The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes
Ibrahim Komeil
☆    

Egypt,
2021-02-20 18:34
(208 d 01:36 ago)

@ Helmut
Posting: # 22220
Views: 801
 

 Replicate designs based on information of 2×2×2 design

Thank you very much Dr. Helmut for your detailed explanation

Best Regards,
Ibrahim
Helmut
★★★
avatar
Homepage
Vienna, Austria,
2021-02-20 20:50
(207 d 23:20 ago)

@ Ibrahim Komeil
Posting: # 22221
Views: 803
 

 Assumption of authority 😉

Hi Ibrahim,

» Thank you very much …

You are welcome.

» … Dr. Helmut

Not a Dr.

Dif-tor heh smusma 🖖
Helmut Schütz
[image]

The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes
Activity
 Admin contact
21,678 posts in 4,533 threads, 1,541 registered users;
online 6 (0 registered, 6 guests [including 4 identified bots]).
Forum time: Thursday 21:11 CEST (Europe/Vienna)

Ignorance more frequently begets confidence
than does knowledge.    Charles Darwin

The Bioequivalence and Bioavailability Forum is hosted by
BEBAC Ing. Helmut Schütz
HTML5