Re: Transit Absorption Model in NONMEM
Dear all,
Thanks very much for your answers and communications. It really helps. Now
I have a further question regarding the transit absorption model.
Apart from the code I used in a previous email, in a paper from R. Savic
(Journal of Pharmacokinetics and Pharmacodynamics, 2007: 711-726) it was
mentioned that using log transformed code could be helpful. This would be
better-off if the number of transits is large. Actually Prof. Holford also
used this log-tranformed code in one of his demo codes (see below).
*$PKIF (NEWIND.LE.1) THEN DOSE=0 TDOSE=0 TLAST=0
TINY=0.00001ENDIFIF (AMT.GT.0) THEN DOSE=AMT
TDOSE=TIMEENDIFCL=POP_CL*EXP(PPV_CL)V=POP_V*EXP(PPV_V)KA=POP_KA*EXP(PPV_KA)MTT=POP_MTT*EXP(PPV_MTT)NT=POP_NTKTR=(NT+1)/MTTLNFAC=
LOG(2.5066)+(NT+.5)*LOG(NT)-NTLNDK=LOG(DOSE+TINY)+LOG(KTR);Very
important!F1=0$DESDCP=A(2)/VRATEIN=KA*A(1)X=KTR*(T-TLAST)DADT(1)=EXP(LNDK+NT*LOG(X+TINY)-X-LNFAC)-RATEINDADT(2)=RATEIN
- CL*DCP*
I tried the code without log transformation and get an estimation of NT of
around 62. Then I used the log-transformed code as demonstrated by Prof.
Holford and Prof. Savic, but the mathematical solution is much harder to
get. The errors range from ERROR=134 to ERROR=136, even though I tried the
initial values from the previous estimation.
I want to ask if anyone has any experience on the comparison of these
two-different mathematical solutions. From my limited experience with these
different kinds of model, the log-transformation did not help much in this
case. I am wondering if this is because my NT is not large enough, so that
log-transformation did not work out in my case? Thanks a lot.
Best Regards
Quoted reply history
On 11 December 2013 04:06, Nick Holford <[email protected]> wrote:
> Siwei,
>
> Any kind of model misspecification will lead to inflation of the residual
> error. The residual error is by definition trying to describe what has not
> already been explained by the rest of the model. If the rest of the model
> is mis-specified (i.e. wrong) then the residual error must become larger.
>
> Nick
>
> On 11/12/2013 8:18 a.m., siwei Dai wrote:
>
> Hi, Nick:
>
> Have been enjoying learning from you.
>
> A follow up question: you mentioned in your last message that model
> misspecification can result in large negative simulated predictions. Can
> you be more specific on this issue? In which situation it would happen? Any
> type of model misspecification, or certain type of model misspecification?
> I run into some situations where the diagnosis plots and VPC look alright,
> but large negative predictions existed. I used exponential error
> model to avoid the negative values, but have been wondering what was going
> wrong.
>
> I appreciate your comments.
>
> Thanks!
>
> Siwei
>
>
>
>
> On Tue, Dec 10, 2013 at 1:22 PM, Nick Holford <[email protected]>wrote:
>
>> Xinting,
>>
>> You are correct. Negative simulated measurements occur when you have an
>> additive residual error component which is normally distributed with mean
>> zero. This means that half of the additive residual errors will be
>> negative. When the simulated prediction is similar in size to the standard
>> deviation of the additive error distribution then adding a negative
>> residual error to the non-negative prediction can make the simulated
>> measurement negative. This is what happens in reality when the true
>> concentration approaches the baseline noise of the measurement method.
>>
>> If the estimated additive residual error standard deviation is similar to
>> the estimated baseline noise standard deviation then it would be reasonable
>> to accept non-positive simulated measurements. On the other hand if the
>> estimated additive residual error is much larger e.g. due to model
>> misspecification, then it might be more sensible to use DOWHILE to reject
>> the non-positive simulated values.
>>
>> Best wishes,
>>
>> Nick
>>
>> On 10/12/2013 10:21 p.m., Xinting Wang wrote:
>>
>> Dear Nick,
>>
>> Thanks very much for your comment. I want to follow up with you on the
>> negative simulated measurements. From my experience, I also noticed that
>> simulation could result in negative simulated results. This usually happens
>> in the terminal elimination phase of the PK profile. I am just not very
>> familiar with the origin of these values. Is it because we have the
>> additive error in the model, so that some results might be negative?
>>
>> Thank you.
>>
>>
>> On 10 December 2013 13:38, Nick Holford <[email protected]> wrote:
>>
>>> Xinting,
>>>
>>> The use of THETA with SIGMA 1 FIX is just a matter of style. It should
>>> make no real difference to the results if you do it this way or with SIGMA
>>> to describe the residual error. Others may wish to debate that fine
>>> point.
>>>
>>> The DOWHILE loop with SIMEPS is used to enforce a simulation constraint
>>> that the simulated measured value is always positive. The NEPS is there to
>>> avoid getting stuck in the DOWHILE loop.
>>>
>>> I don't think I would bother with this DOWHILE loop today. It is quite
>>> possible to have negative measured values when you use an additive residual
>>> error component. I think its a more honest simulation of the residual error
>>> to allow negative simulated measurements.
>>>
>>> Best wishes,
>>>
>>> Nick
>>>
>>> On 10/12/2013 6:13 p.m., Xinting Wang wrote:
>>>
>>> Dear all,
>>>
>>> I have some naive questions to ask you about the implementation of
>>> transit absorption model in nonmem. Below is a demo code from Prof. Holford
>>> in which some part of it I can not understand quite well.
>>>
>>> $PROB Transit delay
>>> $DATA sd.csv
>>> $INPUT ID TIME AMT WT DV
>>> $SIM (20050830 NEW) NSUB=1
>>> $EST MAX=9990 SIG=6 ;PRINT=1
>>> METHOD=CONDITIONAL INTERACTION
>>>
>>> $THETA
>>> (0,3) ; pop_cl
>>> (1,10) ; pop_v
>>> (0.1,1) ; pop_ka h-1
>>> (0.1,1) ; pop_mtt h
>>> (1,5) ; pop_nt
>>> $OMEGA
>>> 0.09 ; ppv_cl
>>> 0.09 ; ppv_v
>>> 0.09 ; ppv_ka
>>> 0.09 ; ppv_mtt
>>>
>>> $THETA
>>> (0.001,0.1) ; RUV_CV
>>> (0.001,1) ; RUV_SD
>>> $SIGMA 1 FIX ; EPS1
>>> $SIGMA 1 FIX ; EPS2
>>>
>>> $SUBR ADVAN6 TOL=3
>>> $MODEL
>>> COMP (TRANSIT)
>>> COMP (CENTRAL)
>>>
>>> $PK
>>> IF (NEWIND.LE.1) THEN
>>> DOSE=0
>>> TDOSE=0
>>> TLAST=0
>>> ENDIF
>>> IF (AMT.GT.0) THEN
>>> DOSE=AMT
>>> TDOSE=TIME
>>> ENDIF
>>> CL=POP_CL*EXP(PPV_CL)
>>> V=POP_V*EXP(PPV_V)
>>> KA=POP_KA*EXP(PPV_KA)
>>> MTT=POP_MTT*EXP(PPV_MTT)
>>> NT=POP_NT
>>> KTR=(NT+1)/MTT
>>> NFAC= SQRT(2*3.1415)*NT**(NT+0.5)*EXP(-NT)
>>>
>>> ;Very important!
>>> F1=0
>>>
>>> $DES
>>> DCP=A(2)/V
>>> RATEIN=KA*A(1)
>>> GUT=DOSE*EXP(-KTR*(T-TLAST))
>>> DADT(1)=GUT*KTR*(KTR*(T-TLAST))**NT/NFAC - RATEIN
>>> DADT(2)=RATEIN - CL*DCP
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> *$ERROR CP=A(2)/V Y=CP*(1+RUV_CV*EPS1) + RUV_SD*EPS2 IF (ICALL.EQ.4)
>>> THEN NEPS=0 DOWHILE(Y.LE.0.AND.NEPS.LT.100) CALL SIMEPS(EPS)
>>> Y=CP*(1+RUV_CV*EPS1) + RUV_SD*EPS2 NEPS=NEPS+1 ENDDO ENDIF
>>> TLAST=TDOSE *
>>> $TABLE ID TIME
>>> CL V KA MTT
>>> CP Y
>>> ONEHEADER NOPRINT FILE=transit.fit
>>>
>>>
>>> *My questions are in the $ERROR part of this code.*
>>>
>>> 1. I noticed that EPS1 and EPS2 is fixed, and the error is simulated
>>> using RUV_CV and RUV_SD as thetas. What is the difference if I use below
>>> equation:
>>> Y=CP*EPS1+EPS2, and let the program to estimate EPS1 and EPS2?
>>>
>>> 2. What's the purpose of SIMEPS(EPS) here? From my understanding is
>>> that if ICALL equals 4, then conduct a limited number of
>>> Y=CP*(1+RUV_CV*EPS1)+RUV_SD*EPS2.
>>>
>>> Thanks to you all for your kind support.
>>>
>>> --
>>> Xinting
>>>
>>>
>>> --
>>> Nick Holford, Professor Clinical Pharmacology
>>> Dept Pharmacology & Clinical Pharmacology, Bldg 503 Room 302A
>>> University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand
>>> office:+64(9)923-6730 mobile:NZ +64(21)46 23 53
>>> email: [email protected] http://holford.fmhs.auckland.ac.nz/
>>>
>>> Holford NHG. Disease progression and neuroscience. Journal of
>>> Pharmacokinetics and Pharmacodynamics. 2013;40:369-76
>>> http://link.springer.com/article/10.1007/s10928-013-9316-2
>>> Holford N, Heo Y-A, Anderson B. A pharmacokinetic standard for babies and
>>> adults. J Pharm Sci. 2013:
>>> http://onlinelibrary.wiley.com/doi/10.1002/jps.23574/abstract
>>> Holford N. A time to event tutorial for pharmacometricians. CPT:PSP.
>>> 2013;2: http://www.nature.com/psp/journal/v2/n5/full/psp201318a.html
>>> Holford NHG. Clinical pharmacology = disease progression + drug action.
>>> British Journal of Clinical Pharmacology. 2013:
>>> http://onlinelibrary.wiley.com/doi/10.1111/bcp.12170/abstract
>>>
>>>
>>
>>
>> --
>> Xinting
>>
>>
>> --
>> Nick Holford, Professor Clinical Pharmacology
>> Dept Pharmacology & Clinical Pharmacology, Bldg 503 Room 302A
>> University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand
>> office:+64(9)923-6730 mobile:NZ +64(21)46 23 53
>> email: [email protected] http://holford.fmhs.auckland.ac.nz/
>>
>> Holford NHG. Disease progression and neuroscience. Journal of
>> Pharmacokinetics and Pharmacodynamics. 2013;40:369-76
>> http://link.springer.com/article/10.1007/s10928-013-9316-2
>> Holford N, Heo Y-A, Anderson B. A pharmacokinetic standard for babies and
>> adults. J Pharm Sci. 2013:
>> http://onlinelibrary.wiley.com/doi/10.1002/jps.23574/abstract
>> Holford N. A time to event tutorial for pharmacometricians. CPT:PSP. 2013;2:
>> http://www.nature.com/psp/journal/v2/n5/full/psp201318a.html
>> Holford NHG. Clinical pharmacology = disease progression + drug action.
>> British Journal of Clinical Pharmacology. 2013:
>> http://onlinelibrary.wiley.com/doi/10.1111/bcp.12170/abstract
>>
>>
>
> --
> Nick Holford, Professor Clinical Pharmacology
> Dept Pharmacology & Clinical Pharmacology, Bldg 503 Room 302A
> University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand
> office:+64(9)923-6730 mobile:NZ +64(21)46 23 53
> email: [email protected] http://holford.fmhs.auckland.ac.nz/
>
> Holford NHG. Disease progression and neuroscience. Journal of
> Pharmacokinetics and Pharmacodynamics. 2013;40:369-76
> http://link.springer.com/article/10.1007/s10928-013-9316-2
> Holford N, Heo Y-A, Anderson B. A pharmacokinetic standard for babies and
> adults. J Pharm Sci. 2013:
> http://onlinelibrary.wiley.com/doi/10.1002/jps.23574/abstract
> Holford N. A time to event tutorial for pharmacometricians. CPT:PSP. 2013;2:
> http://www.nature.com/psp/journal/v2/n5/full/psp201318a.html
> Holford NHG. Clinical pharmacology = disease progression + drug action.
> British Journal of Clinical Pharmacology. 2013:
> http://onlinelibrary.wiley.com/doi/10.1111/bcp.12170/abstract
>
>
--
Xinting