Dear all, I found if the model was defined in an analytical solution, then the system can actually start from a negative time. This is useful when we have screening samples before dose without too much processing. Now I wonder if we can use a negative time point in differential equations. So far I haven’t been successful. Appreciate any comments. Thanks. Jun
Dear Jun, I’ve asked the developers about this and will get back with you when I hear from them. Best regards, Emily
Dear Jun, It should be okay to have negative times in an input dataset when using the Phoenix model. However, the developers advise against using time “t” explicitly in your PML code. For timing specific events, it’s best to use sequence{} and sleep(). See example below (enterohepatic recirculation). test(){ double(Gbr) deriv(A1 = - (Cl * C) + (Aa * Ka)- (Cl2 * (C - C2))- (A1 * K1g) + (Ag * Kag)) urinecpt(A0 = (Cl * C)) deriv(Aa = - (Aa * Ka)) deriv(A2 = (Cl2 * (C - C2))) deriv(Abile = (A1 * K1g)- (Abile * Rate)) deriv(Ag = (Abile * Rate)- (Ag * Kag)) C = A1 / V dosepoint(Aa, idosevar = AaDose, infdosevar = AaInfDose, infratevar = AaInfRate) C2 = A2 / V2 error(CEps = 0.1) observe(CObs = C * (1 + CEps)) E = Emax * (C / (EC50 + C)) Rate = Gbr/Tau error(EEps = 0.1) observe(EObs = E * (1 + EEps)) sequence{ #Open a sequence statement with curly brackets Gbr=0; #Gall bladder is off at time=0 sleep(Tbeginbump); #Skip to when the second peak occurs Gbr=1; #Gall bladder is on and drug is recycled into gut sleep(Tau); #Skip to the end of the second peak Gbr=0; #Gall bladder is off and drug clears from body } #Close the sequence statement stparm(V = tvV * (BODYWEIGHT/mean(BODYWEIGHT))) stparm(Cl = tvCl * (BODYWEIGHT/mean(BODYWEIGHT))^0.75 * exp(dCldHEPIMPAIR1*(HEPIMPAIR==1)) * exp(nCl)) stparm(Ka = tvKa) stparm(V2 = tvV2 * (BODYWEIGHT/mean(BODYWEIGHT)) * exp(nV2)) stparm(Cl2 = tvCl2 * (BODYWEIGHT/mean(BODYWEIGHT))^0.75) stparm(EC50 = tvEC50) stparm(Emax = tvEmax) stparm(K1g = tvK1g) stparm(Kag = tvKag) stparm(Tbeginbump = tvTbeginbump) stparm(Tau = tvTau) covariate(AGE, BODYWEIGHT, GENDER, HEPIMPAIR) fixef(tvV = c(0, 8.25098, )) fixef(tvCl = c(0, 7.21632, )) fixef(tvKa = c(0, 0.467274, )) fixef(tvV2 = c(0, 25.6194, )) fixef(tvCl2 = c(0, 100, )) fixef(tvEC50 = c(0, 48.9236, )) fixef(tvEmax = c(0, 98.4884, )) fixef(tvK1g = c(0, 0.448987, )) fixef(tvKag = c(0, 0.330963, )) fixef(tvTbeginbump = c(0, 7.82371, )) fixef(tvTau = c(0, 1.99853, )) fixef(dCldHEPIMPAIR1(enable=8) = c(, -2.57624, )) ranef(diag(nCl, nV2) = c(0.012632796, 0.16087284)) } Best regards, Emily
Dear Emily, Thanks for the reply. Currently I am still on WinNonlin 5.2. It may take a while for us eventually to migrate to Phoenix. Even so we still have a lot of models defined in ASCII code. So I am very interested to figure this out in ASCII code. Now the key question in my head is, in the DIFF block, the differential equation system acts on the variable of “X” or “T” as its time. Thanks again. Jun