Back to the Top
Can someone advise me how to evaluate reference scaled average
bioequivalence using Phoenix WinNonlin. If Phoenix is not capable then
can someone spare the SAS code for reference scaled average
bioequivalence for 3-way replicate or 4-way replicate designs.
Kind Regards,
Prasad NV Tata, Ph.D., FCP
2133 Seven Pines Drive
St. Louis, MO 63134
[Some references for RSBE:
Baek, I.-H., Lee, B.-Y., Kang, W., & Kwon, K.-I. (2010). Comparison of average, scaled average, and population bioequivalence methods for assessment of highly variable drugs: an experience with doxifluridine in beagle dogs European journal of pharmaceutical sciences : official journal of the European Federation for Pharmaceutical Sciences, 39(1-3), 175-180. doi:10.1016/j.ejps.2009.11.013
Davit, B. M., Nwakama, P. E., Buehler, G. J., Conner, D. P., Haidar, S. H., Patel, D. T., Yang, Y., et al. (2009). Comparing Generic and Innovator Drugs: A Review of 12 Years of Bioequivalence Data from the United States Food and Drug Administration. Annals of Pharmacotherapy, 43(10), 1583-1597. doi:10.1345/aph.1M141
Endrenyi, L., & Tothfalusi, L. (2009). Regulatory and study conditions for the determination of bioequivalence of highly variable drugs Journal of pharmacy & pharmaceutical sciences : a publication of the Canadian Society for Pharmaceutical Sciences, Societe canadienne des sciences pharmaceutiques, 12(1), 138-149.
Haidar, S. H., Davit, B., Chen, M.-L., Conner, D., Lee, L., Li, Q. H., Lionberger, R., et al. (2007). Bioequivalence Approaches for Highly Variable Drugs and Drug Products. Pharmaceutical research, 25(1), 237-241. doi:10.1007/s11095-007-9434-x
Karalis, V., Symillides, M., & Macheras, P. (2009). Comparison of the reference scaled bioequivalence semi-replicate method with other approaches: focus on human exposure to drugs European journal of pharmaceutical sciences : official journal of the European Federation for Pharmaceutical Sciences, 38(1), 55-63. doi:10.1016/j.ejps.2009.05.013
- db]
Back to the Top
Dear Mr.Prasad,
Reference:
http://www.fda.gov/downloads/Drugs/GuidanceComplianceRegulatoryInformation/Guidances/UCM209294.pdf
Method for Statistical Analysis Using the Reference-Scaled Average Bioequivalence Approach
Step 1. Determine sWR , the within-subject standard deviation (SD) of the reference
product, for the pharmacokinetic (PK) parameters AUC and Cmax.
a. If sWR < 0.294, use the two one-sided tests procedure to determine bioequivalence (BE)
for the individual PK parameter(s)
b. If sWR >= 0.294, use the reference-scaled procedure to determine BE for the individual
PK parameter(s)
Example SAS Codes: partial reference-replicated 3-way design
Dataset containing TEST observations: data test;
set pk;
if trt='T';
latt=lauct;
run; Dataset containing REFERENCE 1 observations: data ref1;set ref;if (seq=1 and per=2)
or (seq=2 and per=1) or (seq=3 and per=1);lat1r=lauct; run; Dataset containing REFERENCE 2
observations: data ref2;set ref;if (seq=1 and per=3) or (seq=2 and per=3) or (seq=3 and
per=2);lat2r=lauct; run;
Define the following quantities: Tij = the observation on T for subject j within sequence
i Rijk = kth observation (k = 1 or 2) on R for subject j within sequence i +Rij1 Rij2Iij \0x00Tij 2 and Dij = Rij1 - Rij2 Iij is the difference between a subject's (specifically
subject j within sequence i) observation on T and the mean of the subject's two
observations on R, while Dij is the difference between a subject's two observations on R.
Determine Iij and Dijdata scavbe;
merge test ref1 ref2;
by seq subj;
ilat=latt-(0.5*(lat1r+lat2r));
dlat=lat1r-lat2r;
run; Intermediate analysis - ilat proc glm data=scavbe;class seq;model ilat=seq/clparm
alpha=0.1;estimate 'average' intercept 1 seq 0.3333333333 0.3333333333 0.3333333333;ods
output overallanova=iglm1;ods output Estimates=iglm2;ods output NObs=iglm3;title1 'scaled
average BE';run; =46rom the dataset IGLM2, calculate the following: IGLM2:
pointest=exp(estimate);x=estimate**2-stderr**2;boundx=(max((abs(LowerCL)),(abs(UpperCL))))
**2; Intermediate analysis - dlat proc glm data=scavbe;
class seq;
model dlat=seq;
ods output overallanova=dglm1;
ods output NObs=dglm3;
title1 'scaled average BE';run; =46rom the dataset DGLM1, calculate the following: DGLM1:
dfd=df;s2wr=ms/2; =46rom the above parameters, calculate the final 95% upper confidence
bound: theta=((log(1.25))/0.25)**2;
y=-theta*s2wr;
boundy=y*dfd/cinv(0.95,dfd);
sWR=sqrt(s2wr);
critbound=(x+y)+sqrt(((boundx-x)**2)+((boundy-y)**2));
Dataset containing TEST 1 observations: data test1;
set test;
if (seq=1 and per=1) or (seq=2 and per=2);
lat1t=lauct;
run; Dataset containing TEST 2 observations: data test2;
set test;
if (seq=1 and per=3) or (seq=2 and per=4);
lat2t=lauct;
run; Dataset containing REFERENCE 1 observations: data ref1;
set ref;
if (seq=1 and per=2) or (seq=2 and per=1);
lat1r=lauct;
run; Dataset containing REFERENCE 2 observations: data ref2;
set ref;
if (seq=1 and per=4) or (seq=2 and per=3);
lat2r=lauct;
run;
Further assume that there are no missing observations. All subjects provide two
observations on T and two observations on R. The number of subjects in each sequence is n1
and n2 for sequences 1 and 2, respectively. Define the following quantities: Tijk = kth
observation (k = 1 or 2) on T for subject j within sequence i Rijk = kth observation (k 1 or 2) on R for subject j within sequence i Tij1 + Tij2 Rij1 + Rij2Iij = \0x00 22
and
Dij = Rij1 - Rij2 Iij is the difference between the mean of a subject's (specifically
subject j within sequence i) two observations on T and the mean of the subject's two
observations on R, while Dij is the difference between a subject's two observations on R.
Determine Iij and Dijdata scavbe;
merge test1 test2 ref1 ref2;
by seq subj;
ilat=0.5*(lat1t+lat2t-lat1r-lat2r);
dlat=lat1r-lat2r;
run; Intermediate analysis - ilat proc mixed data=scavbe;class seq;model ilat
=seq/ddfm=satterth;estimate 'average' intercept 1 seq 0.5 0.5/e cl alpha=0.1;ods output
CovParms=iout1;ods output Estimates=iout2;ods output NObs=iout3;title1 'scaled average
BE';title2 'intermediate analysis - ilat, mixed';run;
=46rom the dataset IOUT2, calculate the following: IOUT2:
pointest=exp(estimate);x=estimate**2-stderr**2;
boundx=(max((abs(lower)),(abs(upper))))**2; Intermediate analysis - dlat proc mixed
data=scavbe;class seq;model dlat=seq/ddfm=satterth;estimate 'average' intercept 1 seq 0.5
0.5/e cl alpha=0.1;ods output CovParms=dout1;ods output Estimates=dout2;ods output
NObs=dout3;title1 'scaled average BE';title2 'intermediate analysis - dlat, mixed';run;
=46rom the dataset DOUT1, calculate the following: DOUT1: s2wr=estimate/2; =46rom the dataset
DOUT2, calculate the following: DOUT2: dfd=df; =46rom the above parameters, calculate the
final 95% upper confidence bound: theta=((log(1.25))/0.25)**2;
y=-theta*s2wr;
boundy=y*dfd/cinv(0.95,dfd);
sWR=sqrt(s2wr);
critbound=(x+y)+sqrt(((boundx-x)**2)+((boundy-y)**2));
Example SAS Codes: fully replicated 4-way design
Dataset containing TEST 1 observations: data test1;
set test;
if (seq=1 and per=1) or (seq=2 and per=2);
lat1t=lauct;
run; Dataset containing TEST 2 observations: data test2;
set test;
if (seq=1 and per=3) or (seq=2 and per=4);
lat2t=lauct;
run; Dataset containing REFERENCE 1 observations: data ref1;
set ref;
if (seq=1 and per=2) or (seq=2 and per=1);
lat1r=lauct;
run; Dataset containing REFERENCE 2 observations: data ref2;
set ref;
if (seq=1 and per=4) or (seq=2 and per=3);
lat2r=lauct;
run;
Further assume that there are no missing observations. All subjects provide two
observations on T and two observations on R. The number of subjects in each sequence is n1
and n2 for sequences 1 and 2, respectively.
data scavbe;
merge test1 test2 ref1 ref2;
by seq subj;
ilat=0.5*(lat1t+lat2t-lat1r-lat2r);
dlat=lat1r-lat2r;
run; Intermediate analysis - ilat proc mixed data=scavbe;class seq;model ilat
=seq/ddfm=satterth;estimate 'average' intercept 1 seq 0.5 0.5/e cl alpha=0.1;ods output
CovParms=iout1;ods output Estimates=iout2;ods output NObs=iout3;title1 'scaled average
BE';title2 'intermediate analysis - ilat, mixed';run; =46rom the dataset IOUT2, calculate
the following: IOUT2: pointest=exp
=46rom the dataset IOUT2, calculate the following: IOUT2:
pointest=exp(estimate);x=estimate**2-stderr**2;
boundx=(max((abs(lower)),(abs(upper))))**2; Intermediate analysis - dlat proc mixed
data=scavbe;class seq;model dlat=seq/ddfm=satterth;estimate 'average' intercept 1 seq 0.5
0.5/e cl alpha=0.1;ods output CovParms=dout1;ods output Estimates=dout2;ods output
NObs=dout3;title1 'scaled average BE';title2 'intermediate analysis - dlat, mixed';run;
=46rom the dataset DOUT1, calculate the following: DOUT1: s2wr=estimate/2; =46rom the dataset
DOUT2, calculate the following: DOUT2: dfd=df; =46rom the above parameters, calculate the
final 95% upper confidence bound: theta=((log(1.25))/0.25)**2;
y=-theta*s2wr;
boundy=y*dfd/cinv(0.95,dfd);
sWR=sqrt(s2wr);
critbound=(x+y)+sqrt(((boundx-x)**2
Reference:
http://www.fda.gov/downloads/Drugs/GuidanceComplianceRegulatoryInformation/Guidances/UCM209294.pdf
Regards,
Dr.S.Gunasakaran,MD
Head - Clinical Research & Medical Affairs
[Careful, I may have introduced some carriage returns in the wrong places - db]
Back to the Top
The following message was posted to: PharmPK
Dear Prasad,
see the reference Guna already posted (= the drafted Progesterone
guidance). As David correctly guessed some characters were chewn up. For
easier copy/paste see here:
http://forum.bebac.at/forum_entry.php?id=7854
I'm currently working on porting FDA's SAS code to Phoenix (see also
Pharsight's Extranet in the 'Enhancement requests' board). As soon I
have succeeded I will post a project file there. Some preliminary
results:
Phoenix doesn't provide the Chi-sq.-distribution. As a workaround
generate a worksheet in the data section of the project with two
columns: column 1 "dfd" and column 2 "cinv" = 0.95 percentiles for dfd
degrees of freedom. You can later on merge the respective data needed in
line "boundy=y*dfd/cinv(0.95,dfd);".
The code-line "ilat=0.5*(lat1t+lat2t-lat1r-lat2r);" is tricky. I'm not
sure (yet) how SAS treats missing values (empty cells). If you simply
use this code in Phoenix you might get some unexpected results (see the
current discussion at the Extranet). If SAS throws a "." for all rows
where at least one of the input cells is empty, you can set up a filter
(4 lines: Exclude where [lat1t] is NULL Entire Row, Exclude where
[lat2t] is NULL Entire Row, Exclude where [lat1r] is NULL Entire Row,
Exclude where [lat2r] is NULL Entire Row) before calculating ilat. We
have to investigate this issue further.
Helmut
--
Ing. Helmut Schuetz
BEBAC - Consultancy Services for
Bioequivalence and Bioavailability Studies
Neubaugasse 36/11
1070 Vienna, Austria
web http://bebac.at/
forum http://forum.bebac.at/
Want to post a follow-up message on this topic?
If this link does not work with your browser send a follow-up message to PharmPK@boomer.org with "Reference scaled BE" as the subject | Support PharmPK by using the |
Copyright 1995-2011 David W. A. Bourne (david@boomer.org)