Phoenix NLME simulation issue

Hi,

I added two simulation tables in Phoenix NLME. Table 01 uses continuous time points: seq(0,336,0.5), Table 02 uses specific time points at 310, 312, 314, etc. The simulated concentrations in Table 01 and Table 02 were different at those time points. What could be the issue?

Thanks!

can you share your pml, any time varying covariate is this pred/ipred ? if you are simulating with random effects not just outputting a “prediction” table there is no guarantee that your simulated random effect will be the same across tables

Hi Samer,

There’s a nonlinear component in the model. I use “Simulation” with No 0-Iter fit checked. The model is adapted from Denti et al. Clinical Infectious Diseases. 2022;75(1):141–51. Doses were given daily for 14 doses.

test(){

            deriv(Ah = Ka \* Aa - CLh \* Ch - Ch \* Qh\*(1-Eh) + Qh \* C )

            deriv(A1 = Ch \* Qh\*(1-Eh) - Qh \* C)

Ch = Ah / Vh

            C = A1 / V

           

            transit(Aa,mtt,ntr, max=50, out=-Ka\*Aa)

            mtt = (ntr+1)/ktr

            dosepoint(Aa, bioavail = (BA))

            BA = (PMA<3.8? 0.606+0.1036\*PMA :1)

           

            CLh = Qh \* Eh

            Eh = CLint\*fu/(CLint\*fu + Qh)

            CLint = Vmax / (Ch+km)

            Vmax = CLint_0 \* km          # max enzymatic rate from CLint = Vmax/km

                                           

            error(CEps = 0.0766)

            observe(CObs = C + CEps \* (1 + CMixRatio))

            stparm(CMixRatio = tvCMixRatio)

            fixef(tvCMixRatio = c(,2.75,))

           

            stparm(Ka = tvKa)

            stparm(V = tvV \* (TBW/12))

            stparm(ntr = tvntr)

            stparm(ktr = tvktr )

            stparm(CLint_0 = tvCLint_0 \* (FFM/9)^0.75 \* (PMA^gamma /(PMA^gamma + PMA50^gamma)) \*exp(nCLint_0))

            stparm(Qh = tvQh \* (FFM/56)^0.75)

            stparm(Vh = tvVh \* (FFM/56))

           

            fixef(tvKa = c(, 2.06, ))

            fixef(tvV = c(, 15, ))

            fixef(tvntr = c(,13,))

            fixef(tvktr = c(,38.04,))

            fixef(tvQh = c(,90,)) #L/h

            fixef(tvVh = c(,1,)) #L

            fixef(fu = c(,0.2,))

            fixef(km = c(,9.48,)) #mg/L

            fixef(tvCLint_0 = c(,54.4,)) #L/h

            fixef(gamma = c(,10.2,))

            fixef(PMA50 = c(,1.24,)) #years

           

            covariate(FFM) #kg

            covariate(PMA) #years

            covariate(TBW) #kg

            deriv(AUC = C)  

            ranef(diag(nCLint_0) = c(0.062))

}

can you the use simple run not simulation ? what is your setup in terms of run mode ? alternatively you can trun off random effects or output the PRED

I see. I actually want to evaluate whether this model can produce individual post hoc parameter estimates from only 2 or 4 concentration measurements without refitting the model. First, I plan to simulate PK profiles and extract simulated concentrations at specific time points (e.g., 312, 314, 316, 318, and 336 hours). Then assess whether those concentrations are sufficient to obtain reliable post hoc estimates. The dosing interval is q24h with ADDL 13 doses.

When I simulated PK profiles using seq(0, 336, 1), the concentrations looked correct. But, when I simulated only the specific time points, the resulting concentrations were higher than expected. I wonder whether the concentration-dependent clearance is being handled differently in the sparse-time simulation? Run options are shown below.

When I attempted to obtain individual post hoc estimates using few concentrations per subject (FOCE with ELS, zero iterations), the post hoc clearance estimates were higher than the clearance from the original model fit. Run options are shown below.

Any advice?

I would first out put a “rich ipred prediction table” then subset it to the desired time points:
Scenario 1: full table
Scenario 2: filter only to time point 1,2,3,4.

fit each subset table independently: the fit can force N iter =0 to only have the posthoc. aslo note the individual estimate shrinkage and posterior variances

(note that optimal design software might give you as well the FIM / error on population/individual estimates).

in simulation mode each table is independent and effectively you are simulating a new table in table1, table2 etc. so time 310 in table 1 will have a different simulated random number than time 310 in talbe 2 ( simulate one time and subset in data mangement and refit)

Thanks for the information. They are helpful.

I have also realized that the simulated concentrations using specific time points are mostly the same as the concentrations from the “full table” when ODE max step was increased to 100000. Is this because of the duration of the simulation (2 weeks)?