Re: Cmax/Tmax in the DES block

From: Leonid Gibiansky Date: May 05, 2018 technical Source: mail-archive.com
Thanks! Looking on ADVAN6 code I cannot figure out whether it has the same problem (with over-shooting the time interval). I guess not, could you confirm? Thanks Leonid
Quoted reply history
On 5/4/2018 2:57 PM, Bauer, Robert wrote: > Leonid and Kyle: > > The code of ..\pr\ADVAN13.f90 (LSODA) is viewable and modifiable to the user, and it shows that ITASK=1 is always set. While for the short term you can change this setting and recompile ADVAN13, for the long term, I will look into adding an option at the control stream level, where the user may be able to set a different behavior (ITASK value) for a particular time interval. I suspect it might be inefficient for ITASK to always be set to 4. > > Robert J. Bauer, Ph.D. > > Senior Director > > Pharmacometrics R&D > > ICON Early Phase > > 820 W. Diamond Avenue > > Suite 100 > > Gaithersburg, MD 20878 > > Office: (215) 616-6428 > > Mobile: (925) 286-0769 > > [email protected] <mailto:[email protected]> > > www.iconplc.com http://www.iconplc.com/ > > *From:* [email protected] [ mailto: [email protected] ] *On Behalf Of *Leonid Gibiansky > > *Sent:* Friday, May 04, 2018 10:16 AM > *To:* Kyle Baron; Paolo Denti > *Cc:* Bob Leary; [email protected] > *Subject:* Re: [NMusers] Cmax/Tmax in the DES block > > Interesting links. > > So looks like one can provide tcrit=TIME (where TIME is the next EVENT > time) to LSODA, and this will fix the over-shoot problem (as in > ITASK=4). I wonder whether ADVAN13 and ADVAN6 use different settings for > tcrit (or the difference in the results is just the difference in the > amount of over-shooting) > > Leonid > > On 5/4/2018 12:58 PM, Kyle Baron wrote: > > I agree with Paolo's explanation, but I suspect it isn't something > > specific to NONMEM. When LSODA integrates up to the time of the > > end of the infusion, there is no guarantee that it will never go > > past that time. Rather, it's likely that it will "overshoot" that > > time and interpolate back to the place where it was supposed to > > stop (the end of the infusion). That might be why Leonid is seeing the > > bias. > > > > I couldn't find the docs that specifically discuss this, but maybe > > NONMEM uses ITASK 1 when it advances the system? > > > > > https://github.com/metrumresearchgroup/mrgsolve/blob/master/src/opk_dlsoda_mrg.f#L378-L381 > > > > > You can also see the overshoot discussed in the deSolve docs: > > > > > https://www.rdocumentation.org/packages/deSolve/versions/1.20/topics/lsoda > > > > > (see the tcrit argument) > > > > Kyle > > > > On Fri, May 4, 2018 at 11:03 AM, Paolo Denti <[email protected] > <mailto:[email protected]%20%0b>> <mailto:[email protected]>> wrote: > > > > Dear all, > > Very interesting, just adding my two cents, but not sure it's 100% > > relevant. > > > > When I played with ADVAN13 before and asked NONMEM to print out all > > the steps in a file, I could see that the time (T) was not always > > going forward, but sometimes NONMEM was taking some steps back in > > time and then proceeding again. > > > > Not sure if this is because of how LSODA is implemented in NONMEM. I > > remember - but I am happy to stand corrected - that some DES work in > > such a way that they rework the size of the time steps dynamically > > when they solve the ODEs and if the TOL (precision) criterion is not > > met, they go back and retry with a small step size. So I was > > thinking that maybe the difference in Cmax could be from one of > > those "faux pas" when NONMEM has overshot the solution and then it > > would take a step back? > > > > Just an idea on something to check. But I guess the NONMEM > > developers may have a quick answer to this one (hint hint). > > > > Paolo > > > > > > On 2018/05/04 17:32, Leonid Gibiansky wrote: > >> The procedure described in the original post is working without extra > >> points. It is working fine, just have a small bias, and the bias > >> seems > >> to be zero with ADVAN6. For all the practical purposes it can be used > >> without extra points. I was just surprised that it is not exact in > >> some > >> cases, so extra check is warranted each time when it is used (may > >> be we > >> can switch to ADVAN6 rather than ADVAN13 when computing Cmax/Cmin > >> in the > >> DES block). > >> > >> Latest NONMEM versions have "finedata" Utility Program that can be > >> used > >> to add extra points to the dataset (nm741.pdf, page 237). > >> > >> Leonid > >> > >> > >> On 5/4/2018 11:01 AM, Bob Leary wrote: > >> > One of the problems with all of this is that the user must > >> manually enter artificial time points (or at least in 2007 had to > >> do this - I don't know if this has been fixed in > >> > The latest NM versions) in the data set in order to evaluate the > >> fitted model over more grid points than are in the original data. > >> > To get a fine grid and good resolution on Cmax and Tmax > >> > You have to enter a lot of extra time points., which is a pain > >> in the neck. The various ODE routines are also remarkably > >> sensitive to how the grid is set up. > >> > > >> > Much better would be to have a grid generator within NMTRAN that > >> lets you just specify beginning and end points and number of > >> points in the grid. > >> > I would point out that Phoenix NLME PML has always had this > >> capability. > >> > Bob Leary > >> > > >> > -----Original Message----- > > >> > From: [email protected] < mailto: [email protected] > > > >> <mailto:[email protected]> > >> <[email protected] <mailto:[email protected]>> > >> <mailto:[email protected]> On Behalf Of Leonid Gibiansky > >> > Sent: Thursday, May 3, 2018 7:59 PM > > >> > To: [email protected] < mailto: [email protected] > < mailto: [email protected] > > > >> > Subject: [NMusers] Cmax/Tmax in the DES block > >> > > >> > Interesting experience concerning computation of Cmax and Tmax > >> (and probably other stats) in the DES block. We used to use this way: > >> > > >> > http://cognigencorp.com/nonmem/current/2007-December/4125.html > >> https://protect-za.mimecast.com/s/L8T-CAnX51ilA2ops83Si8 > >> > > >> > Specifically, reserved the place in the memory: > >> > > >> > $ABB COMRES=2 > >> > > >> > Set these values to zero for each new subject: > >> > $PK > >> > IF(NEWIND.LE.1) THEN > >> > COM(1)=0 > >> > COM(2)=0 > >> > ENDIF > >> > > >> > and computed Cmax/TMAX as > >> > $DES > >> > IF(CONC.GT.COM http://CONC.GT.COM http://CONC.GT.COM(1)) THEN > >> > COM(1)=CONC > >> > COM(2)=T > >> > ENDIF > >> > > >> > $ERROR > >> > CMAX=COM(1) > >> > TMAX=COM(2) > >> > > >> > Recently I applied the same procedure to compute Cmax following > >> 1 hr IV infusion. Unexpectedly, Tmax was estimated at times > 1 > >> hr, and Cmax was higher than 1-hr concentration (true Cmax is at 1 > >> hr). > >> > > >> > After some experiments, the explanation was that Nonmem computes > >> concentration-time course (with infusion ON) for longer than 1 hr, > >> and resulting Cmax/Tmax are at the end of the "computation window" > >> rather than at 1 hr. > >> > > >> > Turns out that the results also depend on ADVAN routine. The > >> largest deviation (still small, 1-3 percents) was for ADVAN8, > >> ADVAN9, and ADVAN13. ADVAN15 was better but still off. ADVAN14 was > >> almost perfect but still slightly (0.01%) off. ADVAN6 provided > >> correct answer (up to the precision of the output). So, the > >> discrepancy is small but if 1-2% difference is important, one has > >> to be careful when using DES block computations. > >> > > >> > Thanks > >> > Leonid > >> > > >> > > >> >
May 03, 2018 Leonid Gibiansky Cmax/Tmax in the DES block
May 04, 2018 Leonid Gibiansky Cmax/Tmax in the DES block
May 04, 2018 Bob Leary RE: Cmax/Tmax in the DES block
May 04, 2018 Brian Sadler RE: Cmax/Tmax in the DES block
May 04, 2018 Paolo Denti Re: Cmax/Tmax in the DES block
May 04, 2018 Kyle Baron Re: Cmax/Tmax in the DES block
May 04, 2018 Robert Bauer RE: Cmax/Tmax in the DES block
May 04, 2018 Kevin Feng RE: Cmax/Tmax in the DES block
May 05, 2018 Leonid Gibiansky Re: Cmax/Tmax in the DES block
May 06, 2018 Robert Bauer RE: Cmax/Tmax in the DES block
Jun 06, 2018 Daren Austin RE: Cmax/Tmax in the DES block