RE: lagged absorption and empirical input function
Dear Pierre-Olivier,
I think once you defined ALAG(1)=THETA() (as Luann suggested), the system will
delay your input. You don't have to specify anything in the $DES block. It's
worth trying.
$PK
ALAG(1)=THETA()
$DES
DADT(1)=(DOSE/V)*INPUT-K*A(1)
Best regards,
Xiao (Shelley)
Quoted reply history
-----Original Message-----
From: [email protected] [mailto:[email protected]] On
Behalf Of Tremblay, Pierre-Olivier
Sent: Wednesday, July 27, 2011 11:10 PM
To: Luann Phillips
Cc: [email protected]
Subject: RE: [NMusers] lagged absorption and empirical input function
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:[email protected]]
Envoyé : 27 juillet 2011 22:01
À : Tremblay, Pierre-Olivier
Cc : [email protected]
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 the
> 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
>