125742 45 S211 M5 c4591001 A 6mth P adc19ef ve cov 7pd2 peds eval sas

Pfizer Documents (PHMPT/FDA)

Pfizer Bla Submission

Pfizer 12 15 Documents

10

Document text

file:///J/...tasets/c4591001/analysis/adam/programs-6mth/125742-45_S211_M5_c4591001-A_6mth-P-adc19ef-ve-cov-7pd2-peds-eval-sas.txt[7/5/2023 10:22:59 AM]************************************************************************************************
*****************;** Program Name   : adc19ef-ve-cov-7pd2-peds-eval.sas                                                          **;** Date Created   : 15Nov2021 **;
** Programmer Name: 
**;
** Purpose        : Create adc19ef-ve-cov-7pd2-peds-eval.html **;
** Input data     : adsl, adc19ef                                                                              **;** Output data    : adc19ef-ve-cov-7pd2-peds-eval.html **;
*****************************************************************************************************************;%let prot=/Volumes/app/cdars/prod/sites/cdars4/
prjC459/ nda2_unblinded_esub/sbla1215_esub_adam/saseng/cdisc3_0/;
libname datvprot "&prot./data_vai" access=readonly;%let codename=adc19ef-ve-cov-7pd2-peds-eval;options mprint symbolgen mlogic nocenter missing=" ";
proc datasets library=WORK kill nolist nodetails;
quit;
%let outlog=&prot./analysis/eSUB/logs/&codename..log;
%let outtable=&prot./analysis/eSUB/output/&codename..html;
proc printto log="&outlog." new;
run;
*Formating;proc format;
picture perc1b (round) 0.0='  ' 0.0<-<0.1='(<0.1)'  (noedit) 
0.1-99.9='0009.9)' (prefix='(') 100='(100.0)' (noedit);
 value ord 1="First COVID-19 occurrence from 7 days after Dose 2" 7="(*ESC*){nbspace 3}(*ESC*){unicode 
2265}7 days after Dose 2 to (*ESC*){unicode 003c}2 Months after Dose 2" 8="(*ESC*){nbspace 3}(*ESC*){unicode 
2265}2 Months after Dose 2 to (*ESC*){unicode 003c}4 Months after Dose 2" 
11="(*ESC*){nbspace 3}(*ESC*){unicode 2265}4 Months after Dose 2";
run;
/*** Population Flag **/
proc sql;
create table popf as select distinct usubjid, evaleffl, trt01pn, trt01p, 
aai2effl, dvstdt from datvprot.adsl where EVALEFFL='Y' and PHASEN ne 1 and 
HIVFL='N' and 12 <=agetr01 <=15 order by usubjid;
quit;
proc sql;
create table adc19ef as select * from datvprot.adc19ef order by usubjid;
quit;data tpop;
merge adc19ef (in=a) popf (in=b);
by usubjid;
if a*b;
run;
(b) (4), (b) 
(6)
FDA-CBER-2022-5812-0071774
file:///J/...tasets/c4591001/analysis/adam/programs-6mth/125742-45_S211_M5_c4591001-A_6mth-P-adc19ef-ve-cov-7pd2-peds-eval-sas.txt[7/5/2023 10:22:59 AM]/***** Total Population ****/
proc sql;
 create table dsin as select distinct subjid, trt01pn, trt01p, paramn, paramcd, 
  param, adt, vax101dt, vax102dt, pdrmupfl, dvstdt, aval, avalc, evaleffl, 
  PDP1FL, PDP27FL, pdrmufl, ILD1FL, ILD27FL, filocrfl, usubjid, aai2effl, 
  PDP214FL, ILD214FL, astdt, aendt, unblnddt from tpop;
quit;
proc sort data=dsin out=case_pos (keep=adt usubjid rename=adt=adt_s) nodupkey;
 by usubjid adt;
 where paramcd in ("C19ONST") and upcase(ILD27FL)="Y" and upcase(FILOCRFL)="Y" 
  and ((not missing(DVSTDT) and adt <=DVSTDT) or missing(DVSTDT));
run;data dsin;
 length flg flg1 flg2 $15.;
 merge dsin (in=a) case_pos (in=b);
 by usubjid;
 if a and b then
  do;
   if (not missing(vax102dt) and not missing(vax101dt) and 
   
 vax101dt <=adt_s < vax102dt) or 
   (missing(vax102dt) and not missing(vax101dt) and vax101dt <=adt_s) then
     do;
     flgn=1;
     flg='PD1BD2';
    end;
   else if not missing(vax102dt) and vax102dt <=adt_s < vax102dt + 7 then
    do;
     flgn=2;
     flg='PD2';
    end;
   else if not missing(vax102dt) and adt_s >=vax102dt + 7 then
    do;
     flgn=3;
     flg='PD2A7';
    end;
   if not missing(vax101dt) and vax101dt <=adt_s < vax101dt + 11 then
    do;
     flg1n=1.4;
     flg1='PD10PD1';
    end;
   if (not missing(vax102dt) and not missing(vax101dt) and 
   
 vax101dt + 11 <=adt_s < vax102dt) or 
   (missing(vax102dt) and not missing(vax101dt) and adt_s >=vax101dt + 11) 
    then
     do;
     flg1n=1.5;
     flg1='PD10BD2';
    end;
FDA-CBER-2022-5812-0071775
file:///J/...tasets/c4591001/analysis/adam/programs-6mth/125742-45_S211_M5_c4591001-A_6mth-P-adc19ef-ve-cov-7pd2-peds-eval-sas.txt[7/5/2023 10:22:59 AM]   if not missing(vax102dt) and vax102dt + 7 <=adt_s < vax102dt + 56 then
    do;
     flg1n=3.1;
     flg1='PD2A72M';
    end;
   if not missing(vax102dt) and vax102dt + 56 <=adt_s < vax102dt + 112 then
    do;
     flg1n=3.2;
     flg1='PD2A2M4M';
    end;
   if not missing(vax102dt) and adt_s >=vax102dt + 112 then
    do;
     flg1n=3.3;
     flg1='PD2A4M';
    end;
   if not missing(vax102dt) and vax102dt + 56 <=adt_s < vax102dt + 84 then
    do;
     flg2n=3.21;
     flg2='PD2A2M3M';
    end;
   if not missing(vax102dt) and vax102dt + 84 <=adt_s < vax102dt + 112 then
    do;
     flg2n=3.22;
     flg2='PD2A3M4M';
    end;
   if not missing(vax102dt) and vax102dt + 112 <=adt_s < vax102dt + 140 then
    do;
     flg2n=3.31;
     flg2='PD2A4M5M';
    end;
   if not missing(vax102dt) and adt_s >=vax102dt + 140 then
    do;
     flg2n=3.32;
     flg2='PD2A5M';
    end;
  end;
 else if a and not b then
  do;
   flgn=4;
   flg='RISK';
  end;
run;
***** First COVID-19 occurrence after Dose 1 *****;
***** >=7 days after Dose 2 to <2 Months after Dose 2 *****;
data c19_chk6 (keep=usubjid subjid paramcd astdt aendt aval vax101dt vax102dt 
FDA-CBER-2022-5812-0071776
file:///J/...tasets/c4591001/analysis/adam/programs-6mth/125742-45_S211_M5_c4591001-A_6mth-P-adc19ef-ve-cov-7pd2-peds-eval-sas.txt[7/5/2023 10:22:59 AM]  unblnddt flg: adt_s _: trt01p: PDRMUPFL PDP27FL dvstdt);
 set dsin (rename=(astdt=_astdt aendt=_aendt aval=_aval));
 where paramcd='ST27PD';
 paramcd='PD2A72M';
 astdt=vax102dt + 7;
 if missing(vax102dt) or . < _aendt < vax102dt + 56 then
  do;
   aendt=_aendt;
   aval=AENDT - ASTDT + 1;
  end;
 else if not missing(vax102dt) and  . < vax102dt + 56 <=_aendt then
  do;
   aendt=vax102dt + 
55;
   aval=AENDT - ASTDT + 1;
  end;
 if aval < 0 then
  AVAL=0;
 format ASTDT AENDT date9.;
run;
***** >=2 Months after Dose 2 to <4 Months after Dose 2 *****;data c19_chk7 (keep=usubjid subjid paramcd astdt aendt aval vax101dt vax102dt 
  unblnddt flg: adt_s _: trt01p: PDRMUPFL PDP27FL dvstdt);
 set dsin (rename=(astdt=_astdt aendt=_aendt aval=_aval));
 where paramcd='ST27PD';
 paramcd='PD2A2M4M';
 astdt=vax102dt + 56;
 if missing(vax102dt) or . < _aendt < vax102dt + 112 then
  do;
   aendt=_aendt;
   aval=AENDT - ASTDT + 1;
  end;
 else if not missing(vax102dt) and  . < vax102dt + 112 <=_aendt then
  do;
   aendt=vax102dt + 
111;
   aval=AENDT - ASTDT + 1;
  end;
 if aval < 0 then
  AVAL=0;
 format ASTDT AENDT date9.;
run;***** >=4 Months after Dose 2 *****;data c19_chk8 (keep=usubjid subjid paramcd astdt aendt aval vax101dt vax102dt 
  unblnddt flg: adt_s _: trt01p: PDRMUPFL PDP27FL dvstdt);
 set dsin (rename=(astdt=_astdt aendt=_aendt aval=_aval));
 where paramcd='ST27PD';
 paramcd='PD2A4M';
FDA-CBER-2022-5812-0071777
file:///J/...tasets/c4591001/analysis/adam/programs-6mth/125742-45_S211_M5_c4591001-A_6mth-P-adc19ef-ve-cov-7pd2-peds-eval-sas.txt[7/5/2023 10:22:59 AM] astdt=vax102dt + 112;
 aendt=_aendt;
 aval=AENDT - ASTDT + 1;
 if aval < 0 then
  AVAL=0;
 format ASTDT AENDT date9.;
run;
proc sql noprint;
 select bign into :n1 - :n2 from (select count(distinct usubjid) as bign, 
  trt01pn from dsin group by trt01pn) order by trt01pn;
quit;%let alpha=0.05;%macro sbgrp (cond=, ord=, out=, grp=, st1=, st2=, g_a_subset2=, g_a_subset4=, 
  dsin1=);
 /*** Subjects at Risk ****/
 proc sql;
  create table riskp as select distinct usubjid, trt01pn, trt01p, aval 
   from &dsin1.
where &g_a_subset2. and &st1.;
 quit;
 /*** If there are no subjects in a subgroup, populate 0 ****/
 proc sql noprint;
  select count(*) into :tobs from riskp;
 quit;
 %put &tobs.;
 %if &tobs > 0 %then
  %do;
   data dmny;
    do trt01pn=8 
to 9;
     output;
    end;
   run;
   proc sql;
   
 create table n2 as select count(distinct usubjid) as n2, trt01pn from riskp 
   
  group by trt01pn order by trt01pn;
   quit;
   data n2;
    merge dmny 
(in=a)n2;
    by trt01pn;
    if a;
    if missing(n2) 
then
     n2=0;
FDA-CBER-2022-5812-0071778
file:///J/...tasets/c4591001/analysis/adam/programs-6mth/125742-45_S211_M5_c4591001-A_6mth-P-adc19ef-ve-cov-7pd2-peds-eval-sas.txt[7/5/2023 10:22:59 AM]   run;
   /***** Events (n1) ****/
   proc sql;
   
 create table evnts as select distinct usubjid, param, avalc, trt01pn from 
   
  dsin where paramcd in ("C19ONST") and upcase(ILD27FL)="Y" and 
   
  upcase(FILOCRFL)="Y" and ((not missing(DVSTDT) and adt <=DVSTDT) or 
   
  missing(DVSTDT)) and &st2. and usubjid in (select distinct usubjid from 
     riskp) order 
by usubjid;
   quit;
   proc sql;
   
 create table evtn as select count(distinct usubjid) as smln, trt01pn from 
   
  evnts group by trt01pn order by trt01pn;
   quit;
   data evtn;
    merge dmny 
(in=a) evtn;
    by trt01pn;
    if a;
    if missing(smln) 
then
     smln=0;
   run;
   /*** Surveillance Time ****/
   proc sql;
   
 create table st as select distinct usubjid, aval, trt01pn, trt01p, paramcd 
     from &dsin1.
where &g_a_subset4. and usubjid in (select distinct usubjid from riskp);
   quit;
   proc sql;
   
 create table riskn as select a.*, b.ptyrs from n2 a inner join
(select (sum(aval)/365.25/1000) as ptyrs, trt01pn from st group by trt01pn) b 
     on a.trt01pn=b.trt01pn;
   quit;
   data riskn;
    merge dmny 
(in=a) riskn;
    by trt01pn;
    if a;
    if missing(ptyrs) 
then
     ptyrs=0;
    if missing(n2) 
then
     n2=0;
   run;
   proc sql;
    create table &out._pt as select strip(put(a.smln, best.)) as evtn, b.*, 
FDA-CBER-2022-5812-0071779
file:///J/...tasets/c4591001/analysis/adam/programs-6mth/125742-45_S211_M5_c4591001-A_6mth-P-adc19ef-ve-cov-7pd2-peds-eval-sas.txt[7/5/2023 10:22:59 AM]     smln/ptyrs as ir, a.smln, (put(ptyrs, 7.3) || " (" || strip(put(n2, 
     best.))) || ")" as ptyb from evtn a left join riskn b on 
     a.trt01pn=b.trt01pn;
   quit;
   /**** Total cases ****/
   proc sql 
noprint;
   
 select sum(smln) into :ncases from &out._pt;
   quit;
   %let ncases = &ncases.;
   /***** Cases in Vacination Group ****/
   proc sql 
noprint;
   
 select smln into :nv1-:nv2 from &out._pt;
   quit;
   %let nv1 = &nv1;
   %let nv2 = &nv2;
   %let ncases = &ncases;
   %put No. of Cases in Vacination group are &nv1.;
   %put Total No. of Cases in the trial are &ncases.;
   proc transpose data=&out._pt out=&out._tr prefix=trt;
    var ptyrs;
    id trt01pn;
   run;
   %put &nv1 
&nv2;
   data &out._tr;
    set &out._tr;
   
 if &nv1 > 0 or &nv2 > 0 then
     do;
      r=trt8/trt9;
      n_p=&ncases - 
&nv1.;
      ir_v=&nv1./trt8;
      ir_p=n_p/trt9;
      alpha=&alpha.;
      length ve 
lcl ucl $25.;
      VE=strip(put(100*(1-ir_v/ir_p), 10.1));
      fu=finv(1- alpha/2, 
2*(&nv1.+1), 2*N_P);
      ucl_pi=(&nv1 +1)*fu/(N_P 
+ (&nv1.+1)*fu);
      fl=finv(1-alpha/2, 2*(N_P+1), 
2*&nv1.);
      if &nv1=0 
then
       lcl_pi=0;
      else
       lcl_pi=&nv1./(&nv1. + 
fl*(N_P+1));
      ucl_theta=ucl_pi/(r*(1-ucl_pi));
      lcl_theta=lcl_pi/(r*(1-lcl_pi));
      qu=100*(1 - 
lcl_theta);
      ql=100*(1 - ucl_theta);
FDA-CBER-2022-5812-0071780
file:///J/...tasets/c4591001/analysis/adam/programs-6mth/125742-45_S211_M5_c4591001-A_6mth-P-adc19ef-ve-cov-7pd2-peds-eval-sas.txt[7/5/2023 10:22:59 AM]      /* vci = "(" || strip(put(ql,8.1)) || ", " || strip(put(qu,8.1)) || ")"; */
      if not 
missing(ql) then
       lcl=strip(put(ql, 8.1));
      else
       lcl="-(*ESC*){unicode 221e}";
      if not 
missing(qu) then
       ucl=strip(put(qu, 8.1));
      else
       ucl='NE';
   
   vci="(" || strip(lcl) || ", " || strip(ucl) || ")";
     end;
    else
     do;
      ve="NE";
      call missing(pr, 
vci);
     end;
    grp=&grp;
    ord=&ord;
   
 *drop ql qh irr qu_:;
    if strip(ve)='.' 
then
     do;
      ve="-(*ESC*){unicode 221e}";
      vci="(NA, NA)";
     end;
   run;
   proc transpose data=&out._pt out=trn prefix=trtn;
    var evtn;
    id trt01pn;
   run;
   proc transpose data=&out._pt out=try prefix=trty;
    var ptyb;
    id trt01pn;
   run;
   proc sql;
   
 create table f_&out. as select a.*, b.*, c.* from trn (drop=_name_) a, 
   
  try (drop=_name_) b, &out._tr (drop=_name_) c;
   quit;
  %end;
 %else
  %do;
   data f_&out.;
   
 length ve vci trtn8 trtn9 $50 trty8 trty9 $100;
    grp=&grp;
    ord=&ord.;
    ve="NE";
    vci=" ";
FDA-CBER-2022-5812-0071781
file:///J/...tasets/c4591001/analysis/adam/programs-6mth/125742-45_S211_M5_c4591001-A_6mth-P-adc19ef-ve-cov-7pd2-peds-eval-sas.txt[7/5/2023 10:22:59 AM]    trtn8="0";
    trtn9="0";
    trty8=" 0.00 
(0)";
    trty9=" 0.00 
(0)";
   run;
  %end;
%mend sbgrp;
*** Overall ***;
%sbgrp (cond=%str(), ord=1, grp=1, out=ovr, st1=flgn in (1, 2, 3, 4), st2=flgn 
 in (1, 2, 3, 4), g_a_subset2=PDRMUPFL="N" and paramcd in ("ST27PD") and 
 aval > 0, dsin1=dsin, g_a_subset4=paramcd in ("ST27PD"));
*** >=7 days after Dose 2 to <2 Months after Dose 2 ***;%sbgrp (cond=%str(), ord=7, grp=1, out=pd6, st1=flgn in (3, 4), st2=flg1n 
 in (3.1), g_a_subset2=PDRMUPFL="N" and paramcd in ("PD2A72M") and aval > 0, 
 dsin1=c19_chk6, g_a_subset4=paramcd in ("PD2A72M"));
*** >=2 Months after Dose 2 to <4 Months after Dose 2 ***;%sbgrp (cond=%str(), ord=8, grp=1, out=pd7, st1=flgn in (3, 4), st2=flg1n 
 in (3.2), g_a_subset2=PDRMUPFL="N" and paramcd in ("PD2A2M4M") and aval > 0, 
 dsin1=c19_chk7, g_a_subset4=paramcd in ("PD2A2M4M"));
*** >=4 Months after Dose 2 ***;%sbgrp (cond=%str(), ord=11, grp=1, out=pd8, st1=flgn in (3, 4), st2=flg1n 
 in (3.3), g_a_subset2=PDRMUPFL="N" and paramcd in ("PD2A4M") and aval > 0, 
 dsin1=c19_chk8, g_a_subset4=paramcd in ("PD2A4M"));
data final;
 length vci $100. trtn8 trtn9 $50.;
 set f_:;
run;
proc sort data=final;
 by ord grp;
run;data dummy;
 do ord=1 to 13;
  output;
 end;
run;data dummy;
 set dummy;
 grp=1;
run;proc sort;
 by ord grp;
run;data rf;
 merge dummy (in=a) final;
 by ord grp;
FDA-CBER-2022-5812-0071782
file:///J/...tasets/c4591001/analysis/adam/programs-6mth/125742-45_S211_M5_c4591001-A_6mth-P-adc19ef-ve-cov-7pd2-peds-eval-sas.txt[7/5/2023 10:22:59 AM] if a;
 text=put(ord, ord.);
 if strip(trtn8)='0' and strip(trtn9)='0' then
  delete;
 if ord in (1, 7, 8, 11);
run;
/* Output report */
ods escapechar="~";ods html file="&outtable.";title1 "Vaccine Efficacy (*ESC*){unicode 2013} First COVID-19 Occurrence From 7 Days After Dose 2";title2 "(*ESC*){unicode 2013} Blinded Placebo-Controlled Follow-up Period";title3 "(*ESC*){unicode 2013} Subjects 12 Through 15 Years of Age and With or Without Evidence of Infection Prior to 7 Days After Dose 2";title4 "(*ESC*){unicode 2013} Evaluable Efficacy (7 Days) Population";footnote1 "Abbreviation: VE = vaccine efficacy.";footnote2 "a.(*ESC*){nbspace 5}N = number of subjects in the specified group. ~nb.(*ESC*){nbspace 5}n1 = Number of subjects meeting the endpoint definition.";footnote3 "c.(*ESC*){nbspace 5}Total surveillance time in 1000 person-years for the given endpoint across all subjects within each group at risk for the endpoint. Time period for COVID-19 case accrual is from 7 days after Dose 2 to the end of the surveillance period for the overall row and from start to the end of the range stated for each time interval.";footnote4 
 "d.(*ESC*){nbspace 5}n2 = Number of subjects at risk for the endpoint.";
footnote5 "e.(*ESC*){nbspace 5}Confidence interval (CI) for VE is derived based on the Clopper and Pearson method adjusted for surveillance time.";
proc report data=rf nowd headline headskip split="*" 
  style(report)=[borderwidth=10];
 column grp ord (text ("Vaccine Group (as Randomized)~{line}" ("BNT162b2 (30 ~{unicode 03BC}g)*(N~{super 
a}=&n1.)" 
  trtn8 trty8) ("Placebo*(N~{super a}=&n2.)" trtn9 trty9)) ve vci);
 define ord / order noprint;
 define grp / order noprint;
 define text / "Efficacy Endpoint*~{nbspace 5}Subgroup" flow 
  style(header)=[just=l] style(column)=[cellwidth=3in just=l];
 define trtn8 / " n1~{super b}" style(column)=[cellwidth=0.8in just=c];
 define trty8 / "Surveillance*Time~{super c} (n2~{super d})" 
  style(column)=[cellwidth=1.5in just=c];
 define trtn9 / " n1~{super b}" style(column)=[cellwidth=0.8in just=c];
 define trty9 / "Surveillance*Time~{super c} (n2~{super d})" 
  style(column)=[cellwidth=1.5in just=c];
 define ve / "  VE (%)" style(column)=[cellwidth=0.5in just=c];
 define vci / "(95% CI~{super e})" style(column)=[cellwidth=0.5in just=c];
run;ods markup close;
ods HTML close;
proc printto;
run;
FDA-CBER-2022-5812-0071783