From: Alison Boeckmann <*alisonboeckmann*>

Date: Thu, 28 Jul 2011 19:55:19 -0400

Pierre-Oliver,

I pasted your code into a control stream using THEOPP as data, used all

1's as initial estimates of thetas,

with no Estimation Step, and got reasonable looking non-zero

predictions.

Maybe there is some mistake in your initial estimates for Thetas, or, if

you are running the Estimation

Step, maybe NONMEM is driving the thetas to inappropriate values.

Attached is mpast.ctl and mpast.out

On Wed, 27 Jul 2011 23:10 -0400, "Tremblay, Pierre-Olivier"

<potremblay

*> Thank you Luann and Jan-Stefan for your suggestions. If I understand
*

*> correctly you are suggesting I use ADVAN1 or another "pre-coded" ADVAN
*

*> routine which precludes the use of the $DES block. In fact, I actually
*

*> have a reasonnable fit to my data from a zero-order input (pretty sharp
*

*> peaks) and with duration (D1) set as a fixed-effect, using either ADVAN1
*

*> or ADVAN5. Obviously, with these ADVANs, lag-times are a matter of
*

*> declaring ALAGs (or sometimes using transit compartments to fit the model
*

*> to slowly increasing early concentrations as Jan-Stefan suggested).
*

*>
*

*> However, I deliberately choose to have an empirical p.d.f. (weibull,
*

*> inverse gaussian or other) as an input because that will be used in a
*

*> later IVIVC modeling and the cumulative density distribution of these
*

*> functions can be readily fitted to dissolution data. The thing is this,
*

*> one of the formulations I have to work with is enteric-coated, hence the
*

*> need to model a lag-time.
*

*>
*

*> My problem is that MTIME works perfectly fine with rate constants in
*

*> differential equations but apparently not so much with "block" functions,
*

*> so to speak. An (more probable) alternative is that the way I use MTIME
*

*> is wrong.
*

*>
*

*> From my understanding, coding discontinuous change-events with
*

*> conditional IF statements in a $DES block may not be a very good idea.
*

*> That's the reason I inquired about MTIME as an alternative.
*

*>
*

*> I paste below a larger chunck of my control file so you may see what I
*

*> mean.
*

*>
*

*> $SUBROUTINE ADVAN6 TOL=6
*

*> $MODEL NCOMP=1 COMP=(CENTRAL)
*

*> $PK
*

*> CV=THETA(1)*EXP(ETA(1))
*

*> CV2=CV**2
*

*> MDT=THETA(2)*EXP(ETA(2))
*

*> K=THETA(3)*EXP(ETA(3))
*

*> V=THETA(4)*EXP(ETA(4))
*

*> MTIME(1)=THETA(5)+ETA(5)
*

*> DOSE=1000000
*

*> $DES
*

*> P1=2*3.141593*CV2*(T+0.00001)**3
*

*> P2=((T+0.00001)-MDT)**2
*

*> P3=2*CV2*MDT*(T+0.00001)
*

*> P4=SQRT(MDT/P1)
*

*> RATIO=-1*(P2/P3)
*

*> P5=EXP(RATIO)
*

*> IG=P4*P5
*

*> INPUT=IG*MPAST(1)
*

*> DADT(1)=(DOSE/V)*INPUT-K*A(1)
*

*>
*

*> Thanks again :o)
*

*>
*

*> Pierre-Olivier
*

*>
*

*> -----Message d'origine-----
*

*> De : Luann Phillips [mailto:Luann.Phillips *

*> Envoyé : 27 juillet 2011 22:01
*

*> À : Tremblay, Pierre-Olivier
*

*> Cc : nmusers *

*> Objet : Re: [NMusers] lagged absorption and empirical input function
*

*>
*

*> Pierre-Olivier,
*

*>
*

*> NONMEM takes care of all inputs via the structure of dosing records in
*

*> the input dataset. Therefore, they are not included in the $DES block.
*

*>
*

*> Instead:
*

*>
*

*> In the input dataset
*

*>
*

*> ID TIME AMT DV etc.
*

*> 1 0 100 .
*

*> 1 1 . 5
*

*> etc.
*

*>
*

*>
*

*> $PK
*

*> ALAG1=THETA(#) ;this will be the estimate of the absorption lag
*

*> S1=1/V
*

*> etc.
*

*>
*

*> $DES
*

*> ;note NONMEM codes diff. eqs. in amount units. The scale parameter (S1)
*

*> ;in $PK is used to convert the amount (AMT) unit to the DV (or conc.)
*

*> ;unit ;NONMEM will insert the dose of 100 at the TIME of the dose in the
*

*> ;dataset + ALAG1. The input will remain zero until that time
*

*> automatically.
*

*>
*

*> DADT(1)=-K*A(1)
*

*>
*

*> ----------------
*

*>
*

*> If you are fitting a basic 1 cmt model with first-order elimination, I
*

*> would recommend using subroutine ADVAN1 TRANS1. You don't provide $DES
*

*> for this model. You just supply $PK.
*

*>
*

*> $PK
*

*> K=THETA(1)
*

*> V=THETA(2)
*

*> ALAG1=THETA(3)
*

*> S1=1/V ;or whatever is appropriate for your units of dose,v,and dv.
*

*>
*

*>
*

*> -------------
*

*>
*

*> Best Regards,
*

*>
*

*> Luann Phillips
*

*> Director, PK/PD
*

*> Cognigen Corporation
*

*>
*

*>
*

*> Tremblay, Pierre-Olivier wrote:
*

*> > Hi,
*

*> >
*

*> > I'm trying to implement an absorption lag-time into a model described=
*

*> > by differential equations and using an empirical input function.
*

*> >
*

*> > My initial idea was to define a MTIME(1) corresponding to the lag-time=
*

*> > and to use MPAST(1) to set the start of the input as below.
*

*> >
*

*> > DADT(1)=(DOSE/V)*INPUT*MPAST(1)-K*A(1)
*

*> >
*

*> > However, I only end up with no input at all in the system resulting in=
*

*> > simulated DV of 0 ± residual error. The issue seems related to th=
*

e

*> > use MPAST with the input function but I don't know how.
*

*> >
*

*> > Would anyone be kind enough to point me in the right direction?
*

*> >
*

*> > Thanks,
*

*> >
*

*> > Pierre-Olivier
*

*> >
*

*>
*

--

Alison Boeckmann

alisonboeckmann

Received on Thu Jul 28 2011 - 19:55:19 EDT

Date: Thu, 28 Jul 2011 19:55:19 -0400

Pierre-Oliver,

I pasted your code into a control stream using THEOPP as data, used all

1's as initial estimates of thetas,

with no Estimation Step, and got reasonable looking non-zero

predictions.

Maybe there is some mistake in your initial estimates for Thetas, or, if

you are running the Estimation

Step, maybe NONMEM is driving the thetas to inappropriate values.

Attached is mpast.ctl and mpast.out

On Wed, 27 Jul 2011 23:10 -0400, "Tremblay, Pierre-Olivier"

<potremblay

e

--

Alison Boeckmann

alisonboeckmann

Received on Thu Jul 28 2011 - 19:55:19 EDT