Description Usage Arguments Details Value References See Also Examples
The function f1()
calculates the dissimilarity factor f_1.
1 |
data |
A data frame with the dissolution profile data in wide format. |
tcol |
A vector of indices specifying the columns in |
grouping |
A character string specifying the column in |
use_EMA |
A character string indicating if the dissimilarity factor
f_1 should be calculated following the EMA guideline “On
the investigation of bioequivalence” ( |
bounds |
A numeric vector of the form |
Similarity of dissolution profiles is often assessed using the similarity factor f_2, as recommended by 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 dissimilarity factor, or difference factor, f_1, is the counterpart of the similarity factor f_2. The difference factor f_1 is a measure of the relative error between two curves. Current FDA guidelines suggest that two profiles can be considered similar if f_1 is less than 15 (0 - 15) and f_2 is greater than 50 (50 - 100), which is equivalent to an average difference of 10% at all sampling time points. The dissimilarity factor f_1 is calculated by aid of the equation
f_1 = 100 (sum(abs(R.bar(t) - T.bar(t))) / sum(R.bar(t))) .
In this equation
is the dissimilarity factor,
is the number of time points,
is the mean percent reference drug dissolved at time t after initiation of the study, and
is the mean percent test drug dissolved at time t after initiation of the study.
A list with the following elements is returned:
f1 |
A numeric value representing the similarity factor f_1. |
Profile.TP |
A named numeric vector of the columns in |
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.
https://www.ema.europa.eu/en/documents/scientific-guideline/guideline-investigation-bioequivalence-rev1_en.pdf
f2
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | # Dissolution data of one reference batch and one test batch of n = 6
# tablets each:
str(dip1)
# 'data.frame': 12 obs. of 10 variables:
# $ type : Factor w/ 2 levels "R","T": 1 1 1 1 1 1 2 2 2 2 ...
# $ tablet: Factor w/ 6 levels "1","2","3","4",..: 1 2 3 4 5 6 1 2 3 4 ...
# $ t.5 : num 42.1 44.2 45.6 48.5 50.5 ...
# $ t.10 : num 59.9 60.2 55.8 60.4 61.8 ...
# $ t.15 : num 65.6 67.2 65.6 66.5 69.1 ...
# $ t.20 : num 71.8 70.8 70.5 73.1 72.8 ...
# $ t.30 : num 77.8 76.1 76.9 78.5 79 ...
# $ t.60 : num 85.7 83.3 83.9 85 86.9 ...
# $ t.90 : num 93.1 88 86.8 88 89.7 ...
# $ t.120 : num 94.2 89.6 90.1 93.4 90.8 ...
# Use of defaults, i.e. 'use_EMA = "yes"', 'bounds = c(1, 85)'
# Comparison always involves only two groups.
f1(data = dip1, tcol = 3:10, grouping = "type")
# $f1
# [1] 18.19745
#
# $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)'
f1(data = dip1, tcol = 3:10, grouping = "type", use_EMA = "no",
bounds = c(5, 80))
# $f1
# [1] 21.333
#
# $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)'
f1(data = dip1, tcol = 3:10, grouping = "type", use_EMA = "no",
bounds = c(1, 95))
# $f1
# [1] 16.22299
#
# $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').
f1(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.
tmp <- rbind(dip1,
data.frame(type = "T2",
tablet = as.factor(1:6),
dip1[7:12, 3:10]))
tryCatch(
f1(data = tmp, tcol = 3:10, grouping = "type"),
error = function(e) message(e),
finally = message("\nMaybe you want to remove unesed levels in data."))
# Error in f1(data = tmp, tcol = 3:10, grouping = "type") :
# The number of levels in column type differs from 2.
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.