$PROB NIVOLUMAB PPK COMBO
; DESCRIPTION: Linear 2-cmpt PK model, with time-varying CL (sigmoid-Emax)
; DATASET: ppknivo2.csv
; COVMODEL: CL ~ POPN+AGE+COMBO+SEX+RACE+PS+GFR+WTB; VC ~ LBM+SEX+POPN+AGE; EMAX ~ PS+POPN+AGE+COMBO 
; DESCRPIIV: (CL, VC), VP
; DESCRPIOV: None
; RESERR: proportional
; NOTES: method: FOCEI


$INPUT ID STUDYIDN TIME=AFRELTM NFRELTM APRELTM NPRELTM EVID AMT RATE DOSEDUR DV DOSEP1 DOSEPSS FREQ1 FREQSS NDOSEDUR AGE SEXN WTB EGFRB POPN PS RACEN COMBO EXCLF MDV ELBMB BMIB

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

$SUBROUTINE ADVAN3 TRANS4

$EST MAXEVAL=9999 METHOD=1 INTERACTION NSIG=3 SIGL=10 PRINT=20 NOABORT POSTHOC
  MSFO=nm.msf

$COVARIANCE PRINT=ER

$THETA
 (0, 10) ; CL [mL/h] ; theta1
 (0, 4) ; VC [L] ; theta2
 (0, 35) ; Q [mL/h] ; theta3
 (0, 3) ; VP [L] ; theta4
 0 FIX ; AERR [ug/mL] ; theta5
 (0, 0.2) ; PERR [-] ; theta6

; EMASTER COVARIATES
 (0.6) ; CL_WTB ; theta7
 0 FIX ; CL_AGE ; theta8
 (0.2)  ; CL_GFR ; theta9
 0 FIX ; CL_BLDH ; theta10
 0 FIX  ; CL_ALBB; theta11
 (-0.2)  ; CL_FEMALE ; theta12
 (0.1) ; CL_PS_1 ; theta13
 (0.1)   ; CL_RAAA; theta14
 (0.1) ; CL_RAAS; theta15
 (0.7) ; V1_LBM ; theta16
 (-0.2)  ; V1_FEMALE ; theta17

 (-0.2) ; CL_EMAX ; theta18
 (2500) ; CL_T50 ; theta19
 (2.5)    ; CL_HILL; theta20

 0 FIX; CL_ADJMEL ; theta21
 (-0.3); CL_HL ; theta22
 (-0.5); CL_GBM ; theta23
 (0.1); CL_OTH ; theta24
 (-0.3); CL_PEDST ; theta25
 (-0.3); CL_PEDHL ; theta26
 (-0.6); CL_PEDCNST ; theta27

 (0.2); CL_I1Q3; theta28
 (0.3); CL_I3Q3; theta29
 0 FIX; CL_I1Q6; theta30
 (-0.1); CL_BVCO; theta31
 0 FIX; CL_RT; theta32
 0 FIX; CL_RTTMZ; theta33


 (-0.2); EMAX_PS_1; theta34
 (-0.1); EMAX_IPICO; theta35

 (0.2); EMAX_HL ; theta36
 (0.2); EMAX_OTH ; theta37
 0 FIX; EMAX_PEDST ; theta38
 0 FIX; EMAX_PEDHL ; theta39
 (0.6); EMAX_PEDCNST ; theta40
 (-0.1); CL_ADOST ; theta41
 (-0.4); V1_PED ; theta42
 (-0.2); V1_ADO ; theta43


$OMEGA BLOCK(2)
 0.1 ; ZCL [-]
 0.05 0.1 ; ZV1 [-]
$OMEGA BLOCK(2) SAME
 ;0.5 ; ZQ [-]
 ;0.1 0.3 ; ZV2 [-]
$OMEGA
 0.1 ; ZEMAX [h]

$SIGMA  
 1 FIX ; RESERR

$PK 
; Define fixed effects parameters
 ACL = THETA(1)/1000
 AV1 = THETA(2)
 AQ = THETA(3)/1000
 AV2 = THETA(4)
 AEMAX = THETA(18)
 AT50 = THETA(19)
 HILL = THETA(20)

 AERR = THETA(5)
 PERR = THETA(6)  

; Define IIV parameters
 ZCL = ETA(1)
 ZV1 = ETA(2)
 ZQ = ETA(3)
 ZV2 = ETA(4)
 ZEMAX = ETA(5)
 

; 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)

;LBM
 LBM_R = 55 ; refernce value, kg
 LBM_I = ELBMB
 IF (LBM_I .EQ. MVAL) LBM_I = LBM_R ; imputation to reference (~median)

;
 CL_WTB = (WTB_I/WTB_R)**THETA(7) 
 Q_WTB = CL_WTB ;constrained to be the same

;AGE
 AGE_R = 60; reference value, yrs
 AGE_I = AGE
 IF (AGE_I .EQ. MVAL) AGE_I = AGE_R; imputation to reference
 CL_AGE = (AGE_I/AGE_R)**THETA(8)

;GFR
 EGFRB_R = 90 ; reference value, mL/min
 EGFRB_I = EGFRB
 IF (EGFRB_I .EQ. MVAL) EGFRB_I = EGFRB_R; GFR imputation to median
 CL_EGFRB = (EGFRB_I/EGFRB_R)**THETA(9)


; SEX
 SEX_I = SEXN
 IF (SEX_I .EQ. MVAL) SEX_I = 1; male
 CL_FEMALE = THETA(12) ; effect of female:male

; 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 = 5 ; other
 
 
 ; Combination
 COMBO_I = COMBO
 IF(COMBO_I .EQ. MVAL) COMBO_I = 0 ;no missing

  
 CL_ADJMEL = THETA(21)
 CL_HL = THETA(22)
 CL_GBM = THETA(23)
 CL_OTH = THETA(24)
 CL_PEDST = THETA(25)
 CL_PEDHL = THETA(26)
 CL_PEDCNST = THETA(27)

 CL_I1Q3 = THETA(28)
 CL_I3Q3 = THETA(29)
 CL_I1Q6 = THETA(30)
 CL_BVCO = THETA(31)
 CL_RT = THETA(32)
 CL_RTTMZ = THETA(33)
 
 EMAX_PS_1 = THETA(34)
 EMAX_IPICO = THETA(35)
 EMAX_HL = THETA(36)
 EMAX_OTH = THETA(37)
 EMAX_PEDST = THETA(38)
 EMAX_PEDHL = THETA(39)
 EMAX_PEDCNST = THETA(40)

 CL_ADOST = THETA(41)
 V1_PED = THETA(42)
 V1_ADO = THETA(43)


  
; Race
 RACE_I = RACEN
 IF (RACE_I .EQ. MVAL) RACE_I = 1; White
 CL_RAAA = THETA(14) ; effect of African American: White/Other
 CL_RAAS = THETA(15) ; effect of Asian:White/Other


; VC
 V1_LBM = (LBM_I/LBM_R)**THETA(16)
 V2_LBM = V1_LBM ;constrain to be the same
 
 V1_FEMALE = THETA(17)

; Time-varying CL
 EMAX = AEMAX + ZEMAX
 T50 = AT50

IF (COMBO_I.LE.3.AND.COMBO_I.GE.1) EMAX = EMAX + EMAX_IPICO
IF (PS_I.GE.1) EMAX = EMAX + EMAX_PS_1
IF (POP_I .EQ. 2) EMAX = 0
IF (POP_I .EQ. 3) EMAX = EMAX + EMAX_HL
IF (POP_I .EQ. 4) EMAX = 0
IF (POP_I .EQ. 5) EMAX = EMAX + EMAX_OTH
IF (POP_I .EQ. 6) EMAX = EMAX + EMAX_PEDST
IF (POP_I .EQ. 7) EMAX = EMAX + EMAX_PEDHL
IF (POP_I .EQ. 8) EMAX = EMAX + EMAX_PEDCNST



 CL_TIME = EXP(EMAX*(TIME/T50)**HILL/(1+(TIME/T50)**HILL))

; Define model parameters: add covariate effect
 TVCL = ACL * CL_WTB * CL_EGFRB * CL_TIME * CL_AGE 
 IF (SEX_I .EQ. 2) TVCL = TVCL * EXP(CL_FEMALE) ; reference is SEX=1 (Male)
 IF (PS_I .GE. 1) TVCL = TVCL * EXP(CL_PS_1) ; reference is PS=0


IF (POP_I .EQ. 2) TVCL = TVCL * EXP(CL_ADJMEL); reference is PON=1 (Adult MEL)
IF (POP_I .EQ. 3) TVCL = TVCL * EXP(CL_HL)
IF (POP_I .EQ. 4) TVCL = TVCL * EXP(CL_GBM)
IF (POP_I .EQ. 5) TVCL = TVCL * EXP(CL_OTH)
IF (POP_I .EQ. 6.AND.AGE_I.LE.11) TVCL = TVCL * EXP(CL_PEDST)
IF (POP_I .EQ. 7) TVCL = TVCL * EXP(CL_PEDHL)
IF (POP_I .EQ. 8) TVCL = TVCL * EXP(CL_PEDCNST)
IF (POP_I .EQ. 6.AND.AGE_I.LE.17.AND.AGE_I.GE.12) TVCL = TVCL * EXP(CL_ADOST)
 
 IF (RACE_I .EQ. 2) TVCL = TVCL * EXP(CL_RAAA) ; reference is White/Others
 IF (RACE_I .EQ. 3) TVCL = TVCL * EXP(CL_RAAS) ; reference is White/Others

 ; Effect of COMBO
IF (COMBO_I .EQ. 1) TVCL = TVCL*EXP(CL_I1Q3) ; reference is mono
IF (COMBO_I .EQ. 2) TVCL = TVCL*EXP(CL_I3Q3) ; reference is mono
IF (COMBO_I .EQ. 3) TVCL = TVCL*EXP(CL_I1Q6) ; reference is mono
IF (COMBO_I .EQ. 4) TVCL = TVCL*EXP(CL_BVCO) ; reference is mono
IF (COMBO_I .EQ. 5) TVCL = TVCL*EXP(CL_RT) ; reference is mono
IF (COMBO_I .EQ. 6) TVCL = TVCL*EXP(CL_RTTMZ) ; reference is mono



 TVV1 = AV1 * V1_LBM
 IF (SEX_I .EQ. 2) TVV1 = TVV1 * EXP(V1_FEMALE) ; reference is SEX=1 (Male)
 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_WTB
 TVV2 = AV2 * V2_LBM

; Calculate PK parameters
  CL = TVCL*EXP(ZCL)
  V1 = TVV1*EXP(ZV1)
  Q  = TVQ*EXP(ZQ)   
  V2 = TVV2*EXP(ZV2)
  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(F**2*PERR**2 + AERR**2) ;combined error model

 IPRED = F
 IRES = DV - IPRED
 IWRES = 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 EMAX T50  
       HILL ZCL ZV1 ZV2 ZEMAX ZQ STUDYIDN EXCLF AGE_I SEX_I WTB_I 
       EGFRB_I RACE_I POP_I PS_I COMBO_I LBM_I BMIB
       NOPRINT ONEHEADER FORMAT=s1PE17.10 FILE=nm.tab







