NONMEM Users Network Archive

Hosted by Cognigen

Re: NONMEM code for Mixture Model

From: Joachim.Grevel
Date: Fri, 13 Mar 2009 16:32:00 +0100

Dear Huali,

this touches basic model building. Below would be a possible way to code.
The reason why you code is not smart for a first step in model building is =

taught in any NONMEM beginner workshop. I apologize for sounding a little
terse.

TVVM = THETA(1)*TYPE+THETA(2)*(1-TYPE)
VM=TVVM*EXP(ETA(1))

Joachim
_________________________=
_________________
Joachim GREVEL, Ph.D.
Merck Serono S.A. - Genève
Human Pharmacology
1202 Geneva
Tel: +41.22.414.4751
Fax: +41.22.414.3059
Email: joachim.grevel





"Huali Wu" <hualiw
03/13/2009 03:56 PM

To
<nmusers
cc

Subject
Re: [NMusers] NONMEM code for Mixture Model






Dear Dr. Grevel:
 
Thank you very much for your detailed suggestions and comments. I have
tried the codes and it works. But as you suggested, I think I should try
to divide patients into subgroups according to their disease state. Can I
incorporate this into covariate model as below?
 
VM = THETA(1)*TYPE*EXP(ETA(1))+THETA(2)*(1-TYPE)*EXP(ETA(2))
 
Where, TYPE =0 for patients without this disease and TYPE=1 for patient=
s
with this disease.
 
Will this covariate model be acceptable?
 
Thanks again,
 
Best regards,
 
Huali


----- Original Message -----
From: Joachim.Grevel
To: nmusers
Sent: Friday, March 13, 2009 3:23 AM
Subject: Re: [NMusers] NONMEM code for Mixture Model


Dear Huali,

you also need some code which specifies what is different between the
populations. The differences could be ETAs (but do not have to be!) or
certain factors which allow a PK parameter to have a different typical
value in one population.

EST=MIXEST
IF(MIXNUM.EQ.2)THEN
V1=TVV1*EXP(ETA(3))
VM=THETA(x)*TVVM*EXP(ETA(4))
ELSE
V1=TVV1*EXP(ETA(1))
VM=TVVM*EXP(ETA(2))
ENDIF

The for the $OMEGA block you have two options:

either:
$OMEGA BLOCK(2) 0.1 ;ETA1 for V1 for population 1 =


                0.01 0.1 ;ETA2 for VM for population 1 =


$OMEGA BLOCK(2) SAME ;ETA3 ETA4 for population 2

or:
$OMEGA BLOCK(2) 0.1 ;ETA1 for V1 for population 1 =


                0.01 0.1 ;ETA2 for VM for population 1 =


$OMEGA BLOCK(2) 0.1 ;ETA3 for V1 for population 2 =


                0.01 0.1 ;ETA4 for VM for population 2 =



But you still face a more fundamental question: Why do you want to define
two populations when you already know that "patients in different disease
states seems have different distribution of clearance". I use the Mixture
models solely when the source of variability is still unknown and when it
is clear that a normal distribution will not be adequate (ETABAR message
with p<0.05). In you case I would build the knowledge about the influence
of the disease states directly into the code which specifies only one
population.

Good luck,

Joachim

_________________________=
_________________
Joachim GREVEL, Ph.D.
Merck Serono S.A. - Genève
Human Pharmacology
1202 Geneva
Tel: +41.22.414.4751
Fax: +41.22.414.3059
Email: joachim.grevel




nidal.alhuniti
Sent by: owner-nmusers
03/12/2009 08:44 PM


To
Huali Wu <hualiw
cc
nmusers
Subject
Re: [NMusers] NONMEM code for Mixture Model








Hi Huali,
You could use $MIX. Please see the NM help files for $MIX. You have to
specify the number of populations (in your case 2) so
 
$MIX
    NSPOP=2
    P(1)=THETA(4)
    P(2)=1.-THETA(4)
 
Then use
EST= MIXEST
 
Hopefully this helps.
Best,
Nidal
 
Nidal AL-Huniti, PhD
Associate Director, Modeling and Simulations
ICON Development Solutions SM


On 3/12/09, Huali Wu <hualiw
Dear NMusers:
  
I am working on dataset with high variability on clearance and patients in =

different disease states seems have different distribution of clearance.
So I want to try the mixture model but I don't know how to do the coding.
I listed the code of my base model as below:
  
$PROB 1hr IV INFUSION SINGLE DOSE WITHOUT COVARIATES
$DATA data01.CSV IGNORE=C
$INPUT ID TIME DV AMT RATE MDV
  
$SUBROUTINES ADVAN9 TRANS1 TOL=5
$MODEL NPAR=3, NCOMP=1, COMP=(CENTRAL,DEFOBS)
  
$PK
         V1 = THETA(1)*EXP(ETA(1))
         VM = THETA(2)*EXP(ETA(2))
         KM = THETA(3)
 
          S1 = V1
       
  
$ERROR

Y=F+F*EPS(1)+EPS(2)

IPRED=F
IRES=DV-IPRED
IF(AMT.NE.0)W=1
IF(AMT.EQ.0)W=F
IWRES=IRES/W
 
$DES
       C1 = A(1)/V1
       DADT(1) = - C1*VM/(KM+C1)
 
 
$THETA (0, 4.47) (0, 155) (0, 1380)
$OMEGA BLOCK (2)
0.5
0.3 0.9
 
$SIGMA (0.01) (0.1)
 
$EST POSTHOC METHOD=1 MAXEVAL=9990 PRINT=5
$COV
$TABLE ID TIME DV AMT RATE V1 VM KM IWRES IPRED NOPRINT FILE=TAB=
4
ONEHEADER
$SCAT (RES WRES) VS TIME BY ID
  
Any suggestion will be highly appreciated!
  
Best regards,
  
Huali

 

This message and any attachment are confidential and may be privileged or
otherwise protected from disclosure. If you are not the intended
recipient, you must not copy this message or attachment or disclose the
contents to any other person. If you have received this transmission in
error, please notify the sender immediately and delete the message and any =

attachment from your system. Merck KGaA, Darmstadt, Germany and any of its =

subsidiaries do not accept liability for any omissions or errors in this
message which may arise as a result of E-Mail-transmission or for damages
resulting from any unauthorized changes of the content of this message and =

any attachment thereto. Merck KGaA, Darmstadt, Germany and any of its
subsidiaries do not guarantee that this message is free of viruses and
does not accept liability for any damages caused by any virus transmitted
therewith.

Click http://disclaimer.merck.de to access the German, French, Spanish and =

Portuguese versions of this disclaimer.


Received on Fri Mar 13 2009 - 11:32:00 EDT

The NONMEM Users Network is maintained by ICON plc. Requests to subscribe to the network should be sent to: nmusers-request@iconplc.com.

Once subscribed, you may contribute to the discussion by emailing: nmusers@globomaxnm.com.