f2 {disprofas} | R Documentation |
Similarity factor f2 for dissolution data
Description
The function f2()
calculates the similarity factor f_2
.
Usage
f2(data, tcol, grouping, use_ema = "yes", bounds = c(1, 85), nsf = c(1, 2))
Arguments
data |
A data frame with the dissolution profile data in wide format. |
tcol |
A vector of indices that specifies the columns in |
grouping |
A character string that specifies the column in |
use_ema |
A character string indicating whether the dissimilarity
factor |
bounds |
A numeric vector of the form |
nsf |
A vector of positive integers that specify the “number
of significant figures” (nsf) of the corresponding values of the
|
Details
Similarity of dissolution profiles is assessed using the similarity
factor f_2
according to the EMA guideline (European Medicines Agency
2010) “On the investigation of bioequivalence”. The evaluation of the
similarity factor is based on the following constraints:
A minimum of three time points (zero excluded).
The time points should be the same for the two formulations.
Twelve individual values for every time point for each formulation.
Not more than one mean value of > 85% dissolved for any of the formulations.
The relative standard deviation or coefficient of variation of any product should be less than 20% for the first time point and less than 10% from the second to the last time point.
The similarity factor f_2
is calculated by aid of the equation
f_2 = 50 \times \log \left(\frac{100}{\sqrt{1 + \frac{\sum_{t=1}^{n}
\left(\bar{R}(t) - \bar{T}(t) \right)^2}{n}}} \right) .
In this equation
f_2
is the similarity factor,
n
is the number of time points,
\bar{R}(t)
is the mean percent reference drug dissolved at time
t
after initiation of the study, and\bar{T}(t)
is the mean percent test drug dissolved at time
t
after initiation of the study.
Dissolution profiles are regarded as similar if the f_2
value is
between 50
and 100
.
Value
A list with the following elements is returned:
f2 |
A numeric value representing the similarity factor |
Profile.TP |
A named numeric vector of the columns in |
References
United States Food and Drug Administration (FDA). Guidance for industry:
dissolution testing of immediate release solid oral dosage forms. 1997.
https://www.fda.gov/media/70936/download
United States Food and Drug Administration (FDA). Guidance for industry:
immediate release solid oral dosage form: scale-up and post-approval
changes, chemistry, manufacturing and controls, in vitro dissolution
testing, and in vivo bioequivalence documentation (SUPAC-IR). 1995.
https://www.fda.gov/media/70949/download
European Medicines Agency (EMA), Committee for Medicinal Products for Human Use (CHMP). Guideline on the Investigation of Bioequivalence. 2010; CPMP/EWP/QWP/1401/98 Rev. 1.
See Also
f1
.
Examples
# Use of defaults, i.e. 'use_ema = "yes"', 'bounds = c(1, 85)'
# Comparison always involves only two groups.
f2(data = dip1, tcol = 3:10, grouping = "type")
# $f2
# [1] 40.83405
#
# $Profile.TP
# t.5 t.10 t.15 t.20 t.30 t.60 t.90
# 5 10 15 20 30 60 90
# Use of 'use_ema = "no"', 'bounds = c(5, 80)'
f2(data = dip1, tcol = 3:10, grouping = "type", use_ema = "no",
bounds = c(5, 80), nsf = c(1, 2))
# $f2
# [1] 39.24385
#
# $Profile.TP
# t.5 t.10 t.15 t.20 t.30 t.60
# 5 10 15 20 30 60
# Use of 'use_ema = "no"', 'bounds = c(1, 95)'
f2(data = dip1, tcol = 3:10, grouping = "type", use_ema = "no",
bounds = c(1, 95), nsf = c(1, 2))
# $f2
# [1] 42.11197
#
# $Profile.TP
# t.5 t.10 t.15 t.20 t.30 t.60 t.90 t.120
# 5 10 15 20 30 60 90 120
# In this case, the whole profiles are used. The same result is obtained
# when setting 'use_ema = "ignore"' (ignoring values passed to 'bounds').
f2(data = dip1, tcol = 3:10, grouping = "type", use_ema = "ignore")
# Passing in a data frame with a grouping variable with a number of levels that
# differs from two produces an error.
## Not run:
tmp <- rbind(dip1,
data.frame(type = "T2",
tablet = as.factor(1:6),
dip1[7:12, 3:10]))
tryCatch(
f2(data = tmp, tcol = 3:10, grouping = "type"),
error = function(e) message(e),
finally = message("\nMaybe you want to remove unesed levels in data."))
## End(Not run)
# Error in f1(data = tmp, tcol = 3:10, grouping = "type") :
# The number of levels in column type differs from 2.