NONMEM Users Network Archive

Hosted by Cognigen

Re: [NMusers] Use of ACCEPT in $DATA

From: Devin Pastoor <devin.pastoor_at_gmail.com>
Date: Thu, 24 Aug 2017 23:07:33 +0000

Similar to Bill, I also have an inelegant, but workable, solution, which is
to brute force the ignore times by templating them in R.

For example, you can use a simple glue template to churn out ignore
statements. For simplicity this could then be then just copied into control
streams.

library(whisker)
all_times <- c(0, 1, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24)keep_times <-
c(0, 1, 2, 4, 6, 24)drop_times <- all_times[!(all_times %in%
keep_times)]glue::glue(
  "IGNORE=(TIME.EQN.{time})", time = drop_times
  )#> IGNORE=(TIME.EQN.8)#> IGNORE=(TIME.EQN.10)#>
IGNORE=(TIME.EQN.12)#> IGNORE=(TIME.EQN.14)#> IGNORE=(TIME.EQN.16)#>
IGNORE=(TIME.EQN.20)

# make multiple time scenarios and generate the ignores for all of
them in one goscenarios = list(
  c(0, 1, 2, 4, 6, 24),
  c(0, 2, 4, 8, 24))
lapply(scenarios, function(.s) {
  all_times <- c(0, 1, 2, 4, 6, 8, 10, 12, 14, 16, 20, 24)
  keep_times <- .s
  drop_times <- all_times[!(all_times %in% keep_times)]
  glue::glue(
    "IGNORE=(TIME.EQN.{time})", time = drop_times
  )})#> [[1]]#> IGNORE=(TIME.EQN.8)#> IGNORE=(TIME.EQN.10)#>
IGNORE=(TIME.EQN.12)#> IGNORE=(TIME.EQN.14)#> IGNORE=(TIME.EQN.16)#>
IGNORE=(TIME.EQN.20)#> #> [[2]]#> IGNORE=(TIME.EQN.1)#>
IGNORE=(TIME.EQN.6)#> IGNORE=(TIME.EQN.10)#> IGNORE=(TIME.EQN.12)#>
IGNORE=(TIME.EQN.14)#> IGNORE=(TIME.EQN.16)#> IGNORE=(TIME.EQN.20)


If you want something more automated and powerful, at the expense of more R
code, you can use the whisker library to actually use full templates. I've
done some bayesian prior sensitivity analysis generating 1000's of control
streams to great success that way. If this is of interest, speak up and I
can provide a more complete example.

Cheers,

Devin

On Thu, Aug 24, 2017 at 6:48 PM Bill Denney <wdenney_at_humanpredictions.com>
wrote:

> Hi Dennis,
>
>
>
> I don’t have an elegant solution for you (and I’ve been p=
ining for the use
> of combined Boolean operations like “TIME.GT.5.9.AND.TIME.LT.6.1=
” for a
> long time).
>
>
>
> An inelegant solution could be to run the model once with a write
> statement to see if you can identify the value like 6.0000001 and use it.
> That would probably be fragile to different processor/compiler/math libra=
ry
> combinations, so I’d probably end up making the additional indica=
tor column
> for certainty.
>
>
> Thanks,
>
>
>
> Bill
>
>
>
> *From:* owner-nmusers_at_globomaxnm.com [mailto:owner-nmusers_at_globomaxnm.com=
]
> *On Behalf Of *Dennis Fisher
> *Sent:* Thursday, August 24, 2017 6:16 PM
> *To:* nmusers_at_globomaxnm.com
> *Subject:* [NMusers] Use of ACCEPT in $DATA
>
>
>
> NONMEM 7.4.1
>
>
>
> Colleagues
>
>
>
> I am trying to use the ACCEPT option in $DATA in order to select a subset
> of records (to evaluate the impact of the # of samples/subject on
> confidence intervals).
>
>
>
> I used the following code:
>
> ACCEPT=(TIME=0, TIME=1, TIME=2, TIME=4, TIME=6=
, TIME=24)
>
>
>
> NMTRAN then creates a dataset but — to my surprise — TIME=
=6 is not in the
> dataset (all the others are).
>
>
>
> I am copying the first few rows of the input dataset so that you can see
> what is being provided to NMTRAN:
>
>
>
> ID,AGE,MONTHS,SEX,WT,AMT,RATE,*TIME*
> ,EVID,MDV,REPLICATE,IPRED,CWRES,DV,PRED,RES,WRES
> 1101,12,144,1,30.054,210.38,841.51,0,1,1,1,0,0,0,0,0,0
> 1101,12,144,1,30.054,0,0,1,0,0,1,187.42,0,179.28,199.26,-19.979,0
> 1101,12,144,1,30.054,0,0,2,0,0,1,180.92,0,187.92,194.09,-6.1659,0
> 1101,12,144,1,30.054,0,0,4,0,0,1,169.84,0,177.66,184.37,-6.712,0
> 1101,12,144,1,30.054,0,0,*6*,0,0,1,160.61,0,153.43,175.39,-21.96,0
>
>
>
> The underlined / boldfaced value (6) in the final row is the problem.
>
>
>
> I assume that NMTRAN is reading that value as something other than 6.0
> (e.g., 6.000001) and thereby omitting it.
>
>
>
> I have reviewed NMHELP to see if there is some other way to accomplish
> this. Ideally, there would be something like:
>
> TIME.GT.5.9.AND.TIME.LT.6.1
>
> but that does not appear to be supported.
>
>
>
> The alternative is to modify the dataset to include many possible MDV/EVI=
D
> columns. However, it would be more elegant to do this in the control
> stream.
>
> Or, if there is some way to find out the exact value that NMTRAN sees, I
> could specify that value.
>
>
>
> Any help would be appreciated.
>
>
>
> Dennis
>
>
>
> Dennis Fisher MD
> P < (The "P Less Than" Company)
> Phone / Fax: 1-866-PLessThan (1-866-753-7784 <(866)%20753-7784>)
> www.PLessThan.com <http://www.plessthan.com/>
>
>
>
>
>
>
>


Received on Thu Aug 24 2017 - 19:07:33 EDT

The NONMEM Users Network is maintained by ICON plc. Requests to subscribe to the network should be sent to: nmusers-request_at_iconplc.com. Once subscribed, you may contribute to the discussion by emailing: nmusers@globomaxnm.com.