Modelling variable infusion rates

Hi,

I want to model (or rather simulate) a dosing regimen including variable infusion rates, but cannot figure out how to do this in PML.

The dosing dataset could e.g. include start and end time, and start and end rate of the infusions and the model should be based on that the rate is gradually adjusted between the start and end rates, linearly over the infusion time. Is there a way to do this?

Thanks,

/Martin

Martin - are you saying you are proposing an infusion that changes it rate over time for the same individual for a single dose event?

eg start at 10mL per minute and rises to eg 20mL per minute? over the course of eg 20 minutes?

Yes, but I also want to be able to simulate multiple variable rates of infusion over time for the same subject, e.g:

Subject StartTime StopTime StartRate StopRate

1 0 10 0 50 #linear incr. in rate from 0-50

1 10 30 50 50 #maintain on rate 50

1 30 60 50 0 #linear decr. in rate from 50-0

If this makes any sense…

/Martin

you an try to time of rate as an interpolated covariate:

#in pml code
interpolate(ratetime) #

Subject ratetime time

1 0 0

1 5

1 10 10

the ratetime value is lineary interpolated between timepoints

I am not sure the built in phoenix rate can handle that you might need to code it in ode and take care of the input rate yourself with adequate flags to start and stop it e.g. sequence statement.

Bests,

Samer

Dear Martin,
We were discussing this offline between Serge, Simon and myself and Serge suggested the following code:

Basically, you need to bypass the dosepoint and come up with “manual” dosepoint that stops when cumulative amount infused has consumed all the dose amount we are currently testing it but I thought to give you the opportunity to do some testing on your end as well

test(){

rate=(cuma<a1cov?a*t+b:0)

deriv(A1 = rate- Cl * C)

deriv(cuma=rate)

cumagraph=cuma

covariate(a1cov)

C = A1 / V

error(CEps = 0.1)

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

stparm(V = tvV * exp(nV))

stparm(Cl = tvCl * exp(nCl))

fixef(tvV = c(, 1, ))

fixef(tvCl = c(, 1, ))

fixef(a=c(,1,))

fixef(b=c(,1,))

ranef(diag(nV, nCl) = c(0.1, 0.1))

}