$PROBLEM  IPI PPK for PEDIACTRIC DOSE
; DESCRIPTION: Linear 2-cmpt PK model, with stationary CL
; DATASET: ppkipi2.csv
; COVMODEL: CL ~ LBM+POPN+AGE+COMBO; VC ~ LBM+POP+AGE
; DESCRPIIV: (CL, VC)
; DESCRPIOV: None
; RESERR: Combined
; NOTES: method: FOCEI
 

$INPUT ID STUDYIDN TIME=AFRELTM NFRELTM APRELTM NPRELTM EVID AMT RATE DOSEDUR DV DOSEP FREQ1 AGE SEXN WTB EGFRB POPN PS RACEN COMBO EXCLF MDV LDHB ELBMB

$DATA ../0data/ppkipi2.csv
IGNORE=@
IGNORE(EXCLF.GT.0)
IGNORE=(STUDYIDN=238) IGNORE=(STUDYIDN=915)


$SUBROUTINE ADVAN3 TRANS4 

$EST MAXEVAL=9999 METHOD=1 INTERACTION PRINT=20 NSIG=3 SIGL=9 NOABORT MSFO=msfout.msf

$COVARIANCE PRINT=E

$THETA 

(0, 0.012)  ; CL [L/h] 1
(0, 3.6)    ; VC [L] 2
(0, 0.035)  ; Q [L/h] 3
(0, 3.2)    ; VP [L] 4
(0, 0.17)   ; PERR [-] 5
(0, 1.2)    ; AERR [ug/mL] 6

; EMASTER COVARIATES
(0.8)       ; CL_LBM; [power] theta7
(0.7)       ; V_LBM; [power] theta8
(0 FIX)     ; CL_AGE; [power] theta9


(-0.8) ; CL_CNS;  Adult GBM; theta10
(-0.7) ; CL_OTH;  Adult Others;  theta11
(-0.6) ; CL_PEDOTH;  Peds solid tumor;  theta12
(-0.8) ; CL_PEDCNST; Peds CNS tumor;  theta13
(-0.9) ; CL_PEDMEL; Peds CNS tumor;  theta14

(0.037) ; CL_N1 1mg/kg Q3W;  theta15
(0.27)  ; CL_N3 3mg/kg Q3W;  theta16
(0 FIX) ; CL_chemo; BUDESONIDE QD theta17 
(0.01)  ; V1_PED ; theta18
(0.01)  ; V1_ADO ; theta19
(0 FIX) ; V1_AGE ; theta20



$OMEGA BLOCK(2)
0.14; ZCL[-]
0.026 0.06 ; ZVC [-]


$SIGMA  
1 FIXED; ERR 

$PK 
; Define fixed effects parameters
    ACL  = THETA(1)
    AV1  = THETA(2)
    AQ   = THETA(3)
    AV2  = THETA(4)
    PERR = THETA(5)  
    AERR = THETA(6)

   
; Define IIV parameters
    ZCL  = ETA(1)
    ZV1  = ETA(2)
    

; Impute covariate values and define effects
 MVAL = -99
 
; WTB
    WTB_R = 75 ; refernce value, kg
    WTB_I = WTB
    IF (WTB_I .EQ. MVAL) WTB_I = WTB_R ; imputation to reference (~median)
    ;CL_WTB = (WTB_I/WTB_R)**THETA(7) 
	;Q_WTB = CL_WTB ;constrained to be the same

;LBM
    LBM_R = 55 ; refernce value, kg
    LBM_I = ELBMB
    IF (LBM_I .EQ. MVAL) LBM_I = LBM_R ; imputation to reference (~median)
 	CL_LBM = (LBM_I/LBM_R)**THETA(7) 
	Q_LBM = CL_LBM ;constrained to be the same
	
;AGE
    AGE_R = 60; reference value, yrs
    AGE_I = AGE
    IF (AGE_I .EQ. -99) AGE_I = AGE_R; imputation to reference
    CL_AGE = (AGE_I/AGE_R)**THETA(9)
	

; PS
 PS_I = PS
 IF (PS .EQ. MVAL) PS_I = 1 ; impute missing PS to 1 
 ;CL_PS_1 = THETA(13); effect of PS 1+:0
 
; Tumor type
 POP_I = POPN
 IF(POP_I .EQ. MVAL) POP_I = 4 ; Adult other
 
; Combination
 COMBO_I = COMBO
 IF(COMBO_I .EQ. MVAL) COMBO_I = 0 ;no missing

; VC
 V1_LBM = (LBM_I/LBM_R)**THETA(8)
 V2_LBM = V1_LBM ;constrain to be the same 
 V1_AGE = (AGE_I/AGE_R)**THETA(20)


	
; Define model parameters: add covariate effect
; CL
    TVCL= ACL* CL_LBM * CL_AGE ;


;effect of tumor type and pediatric
   CL_CNS = THETA(10)
   CL_OTH = THETA(11)
   CL_PEDOTH = THETA(12)
   CL_PEDCNST =THETA(13)
   CL_PEDMEL =THETA(14)
   
   V1_PED = THETA(18)
   V1_ADO = THETA(19)
   

   IF (POP_I .EQ. 3) TVCL = TVCL * EXP(CL_CNS)
   IF (POP_I .EQ. 4) TVCL = TVCL * EXP(CL_OTH)
   IF (POP_I .EQ. 5) TVCL = TVCL * EXP(CL_PEDOTH)
   IF (POP_I .EQ. 6) TVCL = TVCL * EXP(CL_PEDCNST)
   IF (POP_I .EQ. 7) TVCL = TVCL * EXP(CL_PEDMEL)

; Effect of COMBO    
   CL_N1 = THETA(15)
   CL_N3 = THETA(16)
   CL_chemo = THETA(17)
   
   IF(COMBO_I.EQ.1) TVCL=TVCL*EXP(CL_N1) ;effect of Nivo 1 mg/kg; reference is mono 
   IF(COMBO_I.EQ.2) TVCL=TVCL*EXP(CL_N3) ;effect of Nivo 3 mg/kg;  reference is mono 
   IF(COMBO_I.EQ.3) TVCL=TVCL*EXP(CL_chemo) ;effect of BUDESONIDE 9 mg QD;  reference is mono 

; V1, V2 and Q
  TVV1 = AV1 * V1_LBM * V1_AGE
  IF (AGE_I.LE.11) TVV1 = TVV1 * EXP(V1_PED)
  IF (AGE_I.LE.17.AND.AGE_I.GE.12) TVV1 = TVV1 * EXP(V1_ADO)

  TVQ = AQ * Q_LBM
  TVV2 = AV2 * V2_LBM
  
	    
; Calculate PK parameters  
    CL = TVCL*EXP(ZCL)
    V1 = TVV1*EXP(ZV1)
    Q  = TVQ  
    V2 = TVV2
    S1 = V1
	
; Calculate alpha and beta half-life
 KE = CL/V1
 K23 = Q/V1
 K32 = Q/V2
 AA = KE+K23+K32
 ALPH = (AA+SQRT(AA*AA-4*KE*K32))/2
 BETA = (AA-SQRT(AA*AA-4*KE*K32))/2
 
$ERROR 
; Define Residual Error Weight
  REWT = SQRT((PERR*F)**2 + AERR**2) ;... combined error model

  IPRED = F
  IRES = DV - IPRED
  IWRE = IRES/REWT
  Y = IPRED + REWT*EPS(1)


$TABLE ID AFRELTM NFRELTM APRELTM NPRELTM EVID MDV AMT RATE DV
       PRED CIPRED RES CIRES CWRES CIWRES CL V1 Q V2  
       ZCL ZV1 STUDYIDN EXCLF
       AGE_I WTB_I POP_I PS_I COMBO_I LBM_I SEXN RACEN LDHB
       NOPRINT ONEHEADER FORMAT=s1PE17.10 FILE=nm.tab
