Greetings,
I have a rifampicin PK dataset combining sparse and rich sampling data. The
dataset includes ABCB1 3435 and 2677 genotype information, but these data
are available only for 70 individuals in the sparse-sampling group, while
the remaining 46 individuals in the rich-sampling group have missing
genotype data. I attempted to use $PRIOR and $MIX to quantify the effects
of ABCB1 3435 and 2677 on the PK parameters of rifampicin, but I am
currently encountering a zero-gradient issue. The results are as follows.
0ITERATION NO.: 2 OBJECTIVE VALUE: 273052.291852277 NO. OF
FUNC. EVALS.: 0
CUMULATIVE NO. OF FUNC. EVALS.: 30
NPARAMETR: 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02
1.0000E-02 1.0000E-01 1.0000E-02 1.0000E-02 1.0000E-02
1.0000E-02
PARAMETER: 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01
1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01
1.0000E-01
GRADIENT: -3.9851E+04 -1.2262E+04 5.1571E+04 -1.9717E+03 -2.1652E+05
-1.6134E+04 -8.0853E+01 NaN NaN NaN
and the code I am using:
$INPUT ID TIME AMT ODV DV BLQ MDV EVID CMT OCC ABCB11 MISS ABCB12
MDR12 ABCB13 RACE AGE CXR_BASE GENDER WT SMOK
$DATA RIF_NEW_02_PGX03.csv IGNORE=#
$SUBROUTINE ADVAN2 TRANS2
$PRIOR NWPRI
$PK
EST = MIXEST
IF(MISS.EQ.0.AND.ABCB11.LE.2) ABCB = 1
IF(MISS.EQ.0.AND.ABCB11.EQ.3) ABCB = 0
IF(MISS.EQ.1.AND.MIXNUM.EQ.1) ABCB = 1
IF(MISS.EQ.1.AND.MIXNUM.EQ.2) ABCB = 0
TVCL = THETA(1)*(WT/70)**0.75**ABCB
TVV = THETA(2)*(WT/70)**1
TVKA = THETA(3)
TVALAG1 = THETA(4)
CL = TVCL*EXP(ETA(1))
V = TVV*EXP(ETA(2))
KA = TVKA*EXP(ETA(3))
ALAG1 = TVALAG1*EXP(ETA(4))
S2 = V
$MIX
NSPOP = 2
P(1) = THETA(7)
P(2) = 1-P(1)
$ERROR
IPRED = LOG(F + 0.000001)
IRES = DV-IPRED
W = SQRT(THETA(5)**2 + (THETA(6)/F)**2)
IF(W.EQ.0) W = 1
IWRES = IRES/W
Y = IPRED + W*EPS(1)
$THETA
(0,0.01) ; TVCL
(0,0.01) ; TVV
(0,0.01) ; TVKA
(0,0.01) ; ALAG1
(0,0.01) ; PROPRUV
(0,0.01) ; ADDRUV
(0,0.1) ; P (1)
;(0,0.001) ; ABCB
$OMEGA
0.01 ; BSVCL (initial estimate)
0.01 ; BSVV
0.01 ; BSVKA
0.01 ; ALAG1
$SIGMA 1 FIX ; ADDRUV (initial estimate)
$THETAP 13.8441 FIX ; PRIOR OF Cl
$THETAP 76.3173 FIX ; PRIOR OF Vd
$THETAP 0.95741 FIX ; PRIOR OF Ka
;$THETAP 0.11603 FIX ; PRIOR OF Tlag
$THETAPV 0.1806 FIX ; PRIOR UNCERTAINTY - Cl
$THETAPV 0.2489 FIX ; PRIOR UNCERTAINTY - Vd
$THETAPV 1.2538 FIX ; PRIOR UNCERTAINTY - Ka
;$THETAPV 0.1183 FIX ; PRIOR UNCERTAINTY - Tlag
$ESTIMATION METHOD=COND INTER SIGDIGITS=3 MAXEVAL=9999 PRINT=1 NOABORT
$COVARIANCE MATRIX=R ; COVARIANCE STEP
$TABLE ID TIME DV IPRED CWRES WRES IWRES PRED NOPRINT ONEHEADER
FILE=sdtab560
$TABLE ID TIME DV ETA(1) ETA(2) ETA(3) NOPRINT ONEHEADER
FILE=patab560
$TABLE ID TIME AMT ODV DV BLQ MDV EVID CMT OCC ABCB11 MISS ABCB12 MDR12
ABCB13 RACE AGE CXR_BASE GENDER WT SMOK
KA CL V NOPRINT ONEHEADER FILE=xptab560
Any input or suggestions would be greatly appreciated, as I have been
trying to resolve this issue for several weeks. Thank you.
*MOHD. RAHIMI BIN MUDA*
$PRIOR and $MIX for ABCB1 3435 and 2677 data
4 messages
4 people
Latest: Mar 16, 2026
Dear Mohd,
This one I am not sure about but you might want to try use the mixnum in every of the four IF statements. This way there may be a gradient for all subjects. Please refer to our model at
https://ascpt.onlinelibrary.wiley.com/action/downloadSupplement?doi=10.1002%2Fpsp4.12140&file=psp412140-sup-0001-suppinfoS01.docx
for an example that did work with mixnum and a covariate driven assignment together.
I do not know about the impact of using a prior in this setting. An option would be to first test without.
Hope this helps,
Jeroen
http://pd-value.com [email protected] @PD_value +31 6 23118438 -- More value out of your data!
Quoted reply history
> Op 15 mrt 2026 om 20:49 heeft Mohd Rahimi <
>
> [email protected]
>
> > het volgende geschreven:
>
>
> Greetings,
>
> I have a rifampicin PK dataset combining sparse and rich sampling data. The dataset includes ABCB1 3435 and 2677 genotype information, but these data are available only for 70 individuals in the sparse-sampling group, while the remaining 46 individuals in the rich-sampling group have missing genotype data. I attempted to use
>
> $PRIOR
>
> and
>
> $MIX
>
> to quantify the effects of ABCB1 3435 and 2677 on the PK parameters of rifampicin, but I am currently encountering a zero-gradient issue. The results are as follows.
>
> 0ITERATION NO.: 2 OBJECTIVE VALUE: 273052.291852277 NO. OF FUNC. EVALS.: 0 CUMULATIVE NO. OF FUNC. EVALS.: 30 NPARAMETR: 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-01 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 PARAMETER: 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 GRADIENT: -3.9851E+04 -1.2262E+04 5.1571E+04 -1.9717E+03 -2.1652E+05 -1.6134E+04 -8.0853E+01 NaN NaN NaN
>
> and the code I am using:
>
> $INPUT ID TIME AMT ODV DV BLQ MDV EVID CMT OCC ABCB11 MISS ABCB12 MDR12 ABCB13 RACE AGE CXR_BASE GENDER WT SMOK $DATA RIF_NEW_02_PGX03.csv IGNORE=# $SUBROUTINE ADVAN2 TRANS2 $PRIOR NWPRI $PK EST = MIXEST IF(MISS.EQ.0.AND.ABCB11.LE.2) ABCB = 1 IF(MISS.EQ.0.AND.ABCB11.EQ.3) ABCB = 0 IF(MISS.EQ.1.AND.MIXNUM.EQ.1) ABCB = 1 IF(MISS.EQ.1.AND.MIXNUM.EQ.2) ABCB = 0 TVCL = THETA(1)*(WT/70)**0.75**ABCB TVV = THETA(2)*(WT/70)**1 TVKA = THETA(3) TVALAG1 = THETA(4) CL = TVCL*EXP(ETA(1)) V = TVV*EXP(ETA(2)) KA = TVKA*EXP(ETA(3)) ALAG1 = TVALAG1*EXP(ETA(4)) S2 = V $MIX NSPOP = 2 P(1) = THETA(7) P(2) = 1-P(1) $ERROR IPRED = LOG(F + 0.000001) IRES = DV-IPRED W = SQRT(THETA(5)**2 + (THETA(6)/F)**2) IF(W.EQ.0) W = 1 IWRES = IRES/W Y = IPRED + W*EPS(1) $THETA (0,0.01) ; TVCL (0,0.01) ; TVV (0,0.01) ; TVKA (0,0.01) ; ALAG1 (0,0.01) ; PROPRUV (0,0.01) ; ADDRUV (0,0.1) ; P (1) ;(0,0.001) ; ABCB $OMEGA 0.01 ; BSVCL (initial estimate) 0.01 ; BSVV 0.01 ; BSVKA 0.01 ; ALAG1 $SIGMA 1 FIX ; ADDRUV (initial estimate) $THETAP 13.8441 FIX ; PRIOR OF Cl $THETAP 76.3173 FIX ; PRIOR OF Vd $THETAP 0.95741 FIX ; PRIOR OF Ka ;$THETAP 0.11603 FIX ; PRIOR OF Tlag $THETAPV 0.1806 FIX ; PRIOR UNCERTAINTY - Cl $THETAPV 0.2489 FIX ; PRIOR UNCERTAINTY - Vd $THETAPV 1.2538 FIX ; PRIOR UNCERTAINTY - Ka ;$THETAPV 0.1183 FIX ; PRIOR UNCERTAINTY - Tlag $ESTIMATION METHOD=COND INTER SIGDIGITS=3 MAXEVAL=9999 PRINT=1 NOABORT $COVARIANCE MATRIX=R ; COVARIANCE STEP $TABLE ID TIME DV IPRED CWRES WRES IWRES PRED NOPRINT ONEHEADER FILE=sdtab560 $TABLE ID TIME DV ETA(1) ETA(2) ETA(3) NOPRINT ONEHEADER FILE=patab560 $TABLE ID TIME AMT ODV DV BLQ MDV EVID CMT OCC ABCB11 MISS ABCB12 MDR12 ABCB13 RACE AGE CXR_BASE GENDER WT SMOK KA CL V NOPRINT ONEHEADER FILE=xptab560
>
> Any input or suggestions would be greatly appreciated, as I have been trying to resolve this issue for several weeks. Thank you.
>
> MOHD. RAHIMI BIN MUDA
Try copilot or Gemini to resolve your coding issues.
Sam
Quoted reply history
> On 03/15/2026 12:38 PM PDT Mohd Rahimi <
>
> [email protected]
>
> > wrote:
>
> Greetings,
>
> I have a rifampicin PK dataset combining sparse and rich sampling data. The dataset includes ABCB1 3435 and 2677 genotype information, but these data are available only for 70 individuals in the sparse-sampling group, while the remaining 46 individuals in the rich-sampling group have missing genotype data. I attempted to use
>
> $PRIOR
>
> and
>
> $MIX
>
> to quantify the effects of ABCB1 3435 and 2677 on the PK parameters of rifampicin, but I am currently encountering a zero-gradient issue. The results are as follows.
>
> 0ITERATION NO.: 2 OBJECTIVE VALUE: 273052.291852277 NO. OF FUNC. EVALS.: 0 CUMULATIVE NO. OF FUNC. EVALS.: 30 NPARAMETR: 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-01 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 PARAMETER: 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 GRADIENT: -3.9851E+04 -1.2262E+04 5.1571E+04 -1.9717E+03 -2.1652E+05 -1.6134E+04 -8.0853E+01 NaN NaN NaN
>
> and the code I am using:
>
> $INPUT ID TIME AMT ODV DV BLQ MDV EVID CMT OCC ABCB11 MISS ABCB12 MDR12 ABCB13 RACE AGE CXR_BASE GENDER WT SMOK $DATA RIF_NEW_02_PGX03.csv IGNORE=# $SUBROUTINE ADVAN2 TRANS2 $PRIOR NWPRI $PK EST = MIXEST IF(MISS.EQ.0.AND.ABCB11.LE.2) ABCB = 1 IF(MISS.EQ.0.AND.ABCB11.EQ.3) ABCB = 0 IF(MISS.EQ.1.AND.MIXNUM.EQ.1) ABCB = 1 IF(MISS.EQ.1.AND.MIXNUM.EQ.2) ABCB = 0 TVCL = THETA(1)*(WT/70)**0.75**ABCB TVV = THETA(2)*(WT/70)**1 TVKA = THETA(3) TVALAG1 = THETA(4) CL = TVCL*EXP(ETA(1)) V = TVV*EXP(ETA(2)) KA = TVKA*EXP(ETA(3)) ALAG1 = TVALAG1*EXP(ETA(4)) S2 = V $MIX NSPOP = 2 P(1) = THETA(7) P(2) = 1-P(1) $ERROR IPRED = LOG(F + 0.000001) IRES = DV-IPRED W = SQRT(THETA(5)**2 + (THETA(6)/F)**2) IF(W.EQ.0) W = 1 IWRES = IRES/W Y = IPRED + W*EPS(1) $THETA (0,0.01) ; TVCL (0,0.01) ; TVV (0,0.01) ; TVKA (0,0.01) ; ALAG1 (0,0.01) ; PROPRUV (0,0.01) ; ADDRUV (0,0.1) ; P (1) ;(0,0.001) ; ABCB $OMEGA 0.01 ; BSVCL (initial estimate) 0.01 ; BSVV 0.01 ; BSVKA 0.01 ; ALAG1 $SIGMA 1 FIX ; ADDRUV (initial estimate) $THETAP 13.8441 FIX ; PRIOR OF Cl $THETAP 76.3173 FIX ; PRIOR OF Vd $THETAP 0.95741 FIX ; PRIOR OF Ka ;$THETAP 0.11603 FIX ; PRIOR OF Tlag $THETAPV 0.1806 FIX ; PRIOR UNCERTAINTY - Cl $THETAPV 0.2489 FIX ; PRIOR UNCERTAINTY - Vd $THETAPV 1.2538 FIX ; PRIOR UNCERTAINTY - Ka ;$THETAPV 0.1183 FIX ; PRIOR UNCERTAINTY - Tlag $ESTIMATION METHOD=COND INTER SIGDIGITS=3 MAXEVAL=9999 PRINT=1 NOABORT $COVARIANCE MATRIX=R ; COVARIANCE STEP $TABLE ID TIME DV IPRED CWRES WRES IWRES PRED NOPRINT ONEHEADER FILE=sdtab560 $TABLE ID TIME DV ETA(1) ETA(2) ETA(3) NOPRINT ONEHEADER FILE=patab560 $TABLE ID TIME AMT ODV DV BLQ MDV EVID CMT OCC ABCB11 MISS ABCB12 MDR12 ABCB13 RACE AGE CXR_BASE GENDER WT SMOK KA CL V NOPRINT ONEHEADER FILE=xptab560
>
> Any input or suggestions would be greatly appreciated, as I have been trying to resolve this issue for several weeks. Thank you.
>
> MOHD. RAHIMI BIN MUDA
If prior on CL is 13.8441, why initial value on 0.01 (etc.)? I would start with prior values on all parameters.
Also, what is your indented use of
TVCL = THETA(1)*(WT/70)**0.75**ABCB
Why would ABCB1 affect dependence of WT on CL?
I think you need to fit the model with available data first (was it done?) and then start from the solution with fixed population parameters + mixture model and include those with missing info (was it done?), and only if this is working, attempt to combine mixture + priors, starting from the final values of the simpler model.
Thank you
Leonid
Quoted reply history
On 3/15/2026 8:01 PM, Sam Liao wrote:
> Try copilot or Gemini to resolve your coding issues.
> Sam
>
> > On 03/15/2026 12:38 PM PDT Mohd Rahimi <[email protected]> wrote:
> > Greetings,
> >
> > I have a rifampicin PK dataset combining sparse and rich sampling data. The dataset includes ABCB1 3435 and 2677 genotype information, but these data are available only for 70 individuals in the sparse- sampling group, while the remaining 46 individuals in the rich- sampling group have missing genotype data. I attempted to use |$PRIOR| and |$MIX| to quantify the effects of ABCB1 3435 and 2677 on the PK parameters of rifampicin, but I am currently encountering a zero- gradient issue. The results are as follows.
> >
> > 0ITERATION NO.: 2 OBJECTIVE VALUE: 273052.291852277 NO. OF FUNC. EVALS.: 0
> >
> > CUMULATIVE NO. OF FUNC. EVALS.: 30
> >
> > NPARAMETR: 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-02 1.0000E-01 1.0000E-02 1.0000E-02 1.0000E-02
> >
> > 1.0000E-02
> >
> > PARAMETER: 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01 1.0000E-01
> >
> > 1.0000E-01
> >
> > GRADIENT: -3.9851E+04 -1.2262E+04 5.1571E+04 -1.9717E+03 -2.1652E+05 -1.6134E+04 -8.0853E+01 NaN NaN NaN
> >
> > and the code I am using:
> >
> > $INPUT ID TIME AMT ODV DV BLQ MDV EVID CMT OCC ABCB11 MISS ABCB12 MDR12 ABCB13 RACE AGE CXR_BASE GENDER WT SMOK
> >
> > $DATA RIF_NEW_02_PGX03.csv IGNORE=#
> >
> > $SUBROUTINE ADVAN2 TRANS2
> > $PRIOR NWPRI
> > $PK
> >
> > EST = MIXEST
> >
> > IF(MISS.EQ.0.AND.ABCB11.LE.2) ABCB = 1
> > IF(MISS.EQ.0.AND.ABCB11.EQ.3) ABCB = 0
> > IF(MISS.EQ.1.AND.MIXNUM.EQ.1) ABCB = 1
> > IF(MISS.EQ.1.AND.MIXNUM.EQ.2) ABCB = 0
> >
> > TVCL = THETA(1)*(WT/70)**0.75**ABCB
> > TVV = THETA(2)*(WT/70)**1
> > TVKA = THETA(3)
> > TVALAG1 = THETA(4)
> >
> > CL = TVCL*EXP(ETA(1))
> > V = TVV*EXP(ETA(2))
> > KA = TVKA*EXP(ETA(3))
> > ALAG1 = TVALAG1*EXP(ETA(4))
> >
> > S2 = V
> >
> > $MIX
> > NSPOP = 2
> > P(1) = THETA(7)
> > P(2) = 1-P(1)
> >
> > $ERROR
> > IPRED = LOG(F + 0.000001)
> > IRES = DV-IPRED
> > W = SQRT(THETA(5)**2 + (THETA(6)/F)**2)
> > IF(W.EQ.0) W = 1
> > IWRES = IRES/W
> > Y = IPRED + W*EPS(1)
> >
> > $THETA
> > (0,0.01) ; TVCL
> > (0,0.01) ; TVV
> > (0,0.01) ; TVKA
> > (0,0.01) ; ALAG1
> > (0,0.01) ; PROPRUV
> > (0,0.01) ; ADDRUV
> > (0,0.1) ; P (1)
> > ;(0,0.001) ; ABCB
> >
> > $OMEGA
> > 0.01 ; BSVCL (initial estimate)
> > 0.01 ; BSVV
> > 0.01 ; BSVKA
> > 0.01 ; ALAG1
> >
> > $SIGMA 1 FIX ; ADDRUV (initial estimate)
> >
> > $THETAP 13.8441 FIX ; PRIOR OF Cl
> > $THETAP 76.3173 FIX ; PRIOR OF Vd
> > $THETAP 0.95741 FIX ; PRIOR OF Ka
> > ;$THETAP 0.11603 FIX ; PRIOR OF Tlag
> > $THETAPV 0.1806 FIX ; PRIOR UNCERTAINTY - Cl
> > $THETAPV 0.2489 FIX ; PRIOR UNCERTAINTY - Vd
> > $THETAPV 1.2538 FIX ; PRIOR UNCERTAINTY - Ka
> > ;$THETAPV 0.1183 FIX ; PRIOR UNCERTAINTY - Tlag
> >
> > $ESTIMATION METHOD=COND INTER SIGDIGITS=3 MAXEVAL=9999 PRINT=1 NOABORT
> > $COVARIANCE MATRIX=R ; COVARIANCE STEP
> >
> > $TABLE ID TIME DV IPRED CWRES WRES IWRES PRED NOPRINT ONEHEADER
> > FILE=sdtab560
> > $TABLE ID TIME DV ETA(1) ETA(2) ETA(3) NOPRINT ONEHEADER
> > FILE=patab560
> >
> > $TABLE ID TIME AMT ODV DV BLQ MDV EVID CMT OCC ABCB11 MISS ABCB12 MDR12 ABCB13 RACE AGE CXR_BASE GENDER WT SMOK
> >
> > KA CL V NOPRINT ONEHEADER FILE=xptab560
> >
> > Any input or suggestions would be greatly appreciated, as I have been trying to resolve this issue for several weeks. Thank you.
> >
> > *MOHD. RAHIMI BIN MUDA*