+--------------------------------------------------------------------+
 |                                                                    |
 |                           NWPRI EXAMPLES                           |
 |                                                                    |
 +--------------------------------------------------------------------+

 These  examples illustrate the use of the NONMEM utility routine NWPRI
 by the NM-TRAN $PRIOR record, and also by an equivalent  user-supplied
 routine PRIOR.  For a discussion of PRIOR: (See prior).  For a discus-
 sion of the NWPRI routine and  in  particular,  a  discussion  of  the
 $THETA, $OMEGA, $SIGMA records: (See nwpri).

 Example 1

 Use of PRIOR and NWPRI and a control stream for single-subject data:

 This  example  obtains  parameter  estimates from single subject data,
 using a two-compartment PK model, and it  incorporates  a  frequentist
 prior of multivariate normal form for all of the THETA vector.

 $PROB SINGLE SUBJECT DATA WITH PRIOR ON THETA
 $INPUT ID DOSE TIME DV WT
 $DATA data1
 $PRIOR NWPRI NTHETA=3,NETA=1,NTHP=3,NPEXP=1
 $PRED
 ;
 ;     THETA(1)=MEAN ABSORPTION RATE CONSTANT
 ;     THETA(2)=MEAN ELIM. RATE CONSTANT (1/HR)
 ;     THETA(3)=CLEARANCE (LITERS/HR)
 ;     DOSE=WEIGHT-ADJUSTED DOSE (MG/KG)
 ;
       IF (NEWIND.EQ.0) AMT=DOSE*WT
       T1=THETA(1)
       T2=THETA(2)
       T3=THETA(3)
       A=EXP(-T2*TIME)
       B=EXP(-T1*TIME)
       C=T1-T2
       D=A-B
       E=T3*C
       Y=AMT*T1*T2/E*D+ETA(1)

 $THETA  (.4,1.7,7) (.025,.102,.4) (.3,3,30)
 ;mode for prior with THETA:
 $THETA 2.77 FIX .0781 FIX 2.63 FIX
 $OMEGA .388
 ;var-cov for prior with THETA:
 $OMEGA BLOCK (3) 5.55 .00524 .00024 -.128 .00911 .515 FIX

 $EST

 Instead of a $PRIOR record, the following may be used:

 $SUBROUTINE PRIOR=prior

 The prior routine is as follows:

       SUBROUTINE PRIOR (ICALL,CNT)
       USE SIZES,     ONLY: DPSIZE,ISIZE
       REAL(KIND=DPSIZE) :: CNT
       REAL(KIND=DPSIZE) :: PLEV
       INTEGER(KIND=ISIZE) :: ICALL
       NTHETA=3
       NETA=1
       NTHP=3
       NPEXP=1
       PLEV=0.
       ITYP=0
       NSAM=0
       ISS=0
       NEPS=0
       NETP=0
       NEPP=0
       CALL NWPRI(NTHETA,NETA,NEPS,NTHP,NETP,NEPP,NPEXP,ITYP,PLEV, &
                   NSAM,ISS,CNT)
       RETURN
       END

 Example 2

 First example of use of PRIOR and NWPRI and a control stream for popu-
 lation data:

 This example obtains parameter estimates from population data, using a
 two-compartment  PK  model, and it incorporates a frequentist prior of
 multivariate normal/inverse Wishart form for all of the  THETA  vector
 and OMEGA matrix.

 $PROB POPULATION DATA WITH PRIOR ON THETA AND OMEGA
 $INPUT ID DOSE TIME DV WT
 $DATA data2
 $PRIOR NWPRI NTHETA=3 NETA=3 NTHP=3 NETP=3 NPEXP=1
 $PRED
 ;
 ;     THETA(1)=MEAN ABSORPTION RATE CONSTANT - MEAN ELIM. RATE CONSTANT (l/HR)
 ;     THETA(2)=MEAN ELIM. RATE CONSTANT (1/HR)
 ;     THETA(3)=SLOPE OF CLEARANCE VS WEIGHT RELATIONSHIP (LITERS/HR/KG)
 ;     DOSE=WEIGHT-ADJUSTED DOSE (MG/KG)
 ;
       IF (NEWIND.NE.2) THEN
          AMT=DOSE*WT
          W=WT
       ENDIF
       T0=THETA(1)*EXP(ETA(1))
       T2=THETA(2)*EXP(ETA(2))
       T1=T2+T0
       T3=THETA(3)*W*EXP(ETA(3))
       A=EXP(-T2*TIME)
       B=EXP(-T1*TIME)
       C=T1-T2
       D=A-B
       E=T3*C
       Y=AMT*T1*T2/E*D+EPS(1)
 $THETA  (0,4,5) (0,.09,.5) (.004,.01,.9)
 ;mode for prior on THETA:
 $THETA 3 FIX .08 FIX .04 FIX
 ;df for prior on OMEGA:
 $THETA 12 FIX
 $OMEGA BLOCK (3) .7 .04 .05 .02 .06 .08
 ;var-cov for prior on THETA:
 $OMEGA BLOCK (3) .494 .00207 .0000847 .000692 .0000471 .0000292 FIX
 ;mode for prior on OMEGA:
 $OMEGA BLOCK (3) .7 .04 .05 .02 .06 .08 FIX
 $SIGMA  .4

 $EST

 Instead of a $PRIOR record, the following may be used:

 $SUBROUTINE PRIOR=prior

 The prior routine is as follows:

       SUBROUTINE PRIOR (ICALL,CNT)
       USE SIZES,     ONLY: DPSIZE,ISIZE
       REAL(KIND=DPSIZE) :: CNT
       REAL(KIND=DPSIZE) :: PLEV
       INTEGER(KIND=ISIZE) :: ICALL
       NTHETA=3
       NETA=3
       NTHP=3
       NETP=3
       NPEXP=1
       PLEV=0.
       ITYP=0
       NSAM=0
       ISS=0
       NEPS=0
       NEPP=0
       CALL NWPRI(NTHETA,NETA,NEPS,NTHP,NETP,NEPP,NPEXP,ITYP,PLEV, &
                   NSAM,ISS,CNT)
       RETURN
       END

 Example 3

 Second example of use of PRIOR and NWPRI and a control stream for pop-
 ulation data:

 This example simulates the THETA and OMEGA parameters of the same two-
 compartment  population  PK model, as well as the population data from
 this model.  During problem finalization, the  entire  post-simulation
 theta  vector and omega array in common NMPR16 are written to external
 files.

 $PROB POPULATION DATA WITH PRIOR ON THETA AND OMEGA
 $INPUT ID DOSE TIME DV WT
 $DATA data2
 $PRIOR NWPRI
        NTHETA=3 NETA=3 NTHP=3 NETP=3 NPEXP=1 ITYP=0 PLEV=.9999
 $PRED
 ;
 ;     THETA(1)=MEAN ABSORPTION RATE CONSTANT - MEAN ELIM. RATE CONSTANT (l/HR)
 ;     THETA(2)=MEAN ELIM. RATE CONSTANT (1/HR)
 ;     THETA(3)=SLOPE OF CLEARANCE VS WEIGHT RELATIONSHIP (LITERS/HR/KG)
 ;     DOSE=WEIGHT-ADJUSTED DOSE (MG/KG)
 ;
       IF (NEWIND.NE.2) THEN
          AMT=DOSE*WT
          W=WT
       ENDIF
       T0=THETA(1)*EXP(ETA(1))
       T2=THETA(2)*EXP(ETA(2))
       T1=T2+T0
       T3=THETA(3)*W*EXP(ETA(3))
       A=EXP(-T2*TIME)
       B=EXP(-T1*TIME)
       C=T1-T2
       D=A-B
       E=T3*C
       Y=AMT*T1*T2/E*D+EPS(1)
       IF (ICALL.EQ.3) THEN
         WRITE (97,*) THSIMP,THSIMPR
         WRITE (98,*) OMSIMP(BLOCK)
       ENDIF

 $THETA  (0,4,5) (0,.09,.5) (.004,.01,.9)
 ;mode for prior on THETA:
 $THETA 3 FIX .08 FIX .04 FIX
 ;df for prior on OMEGA:
 $THETA 12 FIX
 $OMEGA BLOCK (3) .7 .04 .05 .02 .06 .08
 ;var-cov for prior on THETA:
 $OMEGA BLOCK (3) .494 .00207 .0000847 .000692 .0000471 .0000292 FIX
 ;mode for prior on OMEGA:
 $OMEGA BLOCK (3) .7 .04 .05 .02 .06 .08 FIX
 $SIGMA  .4

 $SIM (547676) ONLY

 Suppose a $TABLE record is added to  the  above  control  stream.   To
 obtain  values  of  DV  computed  with  the  simlulated values of eta,
 include the following code:

       IF (ICALL.EQ.4) THEN
       T0=THSIMP(1)*EXP(ETA(1))
       T2=THSIMP(2)*EXP(ETA(2))
       T3=THSIMP(3)*W*EXP(ETA(3))
       ELSE
       T0=THETA(1)*EXP(ETA(1))
       T2=THETA(2)*EXP(ETA(2))
       T3=THETA(3)*W*EXP(ETA(3))
       ENDIF

 Instead of a $PRIOR record, the following may be used:

 $SUBROUTINE PRIOR=prior

 The prior routine is as follows:

       SUBROUTINE PRIOR (ICALL,CNT)
       USE SIZES,     ONLY: DPSIZE,ISIZE
       REAL(KIND=DPSIZE) :: CNT
       REAL(KIND=DPSIZE) :: PLEV
       INTEGER(KIND=ISIZE) :: ICALL
       PLEV=.9999
       NTHETA=3
       NETA=3
       NTHP=3
       NETP=3
       NPEXP=1
       NEPS=0
       NEPP=0
       ITYP=0
       NSAM=0
       ISS=0
       CALL NWPRI(NTHETA,NETA,NEPS,NTHP,NETP,NEPP,NPEXP,ITYP,PLEV, &
                   NSAM,ISS,CNT)
       RETURN
       END

 REFERENCES: none.


  
Go to main index.
  
Created by nmhelp2html v. 1.0 written by Niclas Jonsson (Modified by AJB 5/2006,11/2007,10/2012)