Closed mattfidler closed 5 months ago
Here is the reprex; the underlying model without etas solves correctly:
library(nlmixr2est)
#> Loading required package: nlmixr2data
#> detected new version of nlmixr2est, cleaning rxode2 cache
## The basic model consists of an ini block that has initial estimates
one.compartment <- function() {
ini({
tka <- log(1.57); label("Ka")
tcl <- log(2.72); label("Cl")
tv <- log(31.5); label("V")
eta.ka ~ 0.6
eta.cl ~ 0.3
eta.v ~ 0.1
add.sd <- 0.7
})
# and a model block with the error specification and model specification
model({
ka <- exp(tka + eta.ka)
cl <- exp(tcl + eta.cl)
v <- exp(tv + eta.v)
d/dt(depot) <- -ka * depot
d/dt(center) <- ka * depot - cl / v * center
cp <- center / v
cp ~ add(add.sd)
})
}
dat<-theo_md
dat[dat$EVID==101,]$EVID<-1
dat$MDV<-dat$EVID
dat[6:8,]$MDV=1 # example, set line 6-8 observation MDV as 1
## The fit is performed by the function nlmixr/nlmixr2 specifying the model, data and estimate
fit0 <- nlmixr2(one.compartment,dat, est="saem", saemControl(print=0))
#> → loading into symengine environment...
#> → pruning branches (`if`/`else`) of saem model...
#> ✔ done
#> → finding duplicate expressions in saem model...
#> [====|====|====|====|====|====|====|====|====|====] 0:00:00
#> → optimizing duplicate expressions in saem model...
#> [====|====|====|====|====|====|====|====|====|====] 0:00:00
#> ✔ done
#> using C compiler: ‘gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0’
#> rxode2 2.1.2 using 8 threads (see ?getRxThreads)
#> no cache: create with `rxCreateCache()`
#> Calculating covariance matrix
#> [====|====|====|====|====|====|====|====|====|====] 0:00:00
#> → loading into symengine environment...
#> → pruning branches (`if`/`else`) of saem model...
#> ✔ done
#> → finding duplicate expressions in saem predOnly model 0...
#> [====|====|====|====|====|====|====|====|====|====] 0:00:00
#> → finding duplicate expressions in saem predOnly model 1...
#> [====|====|====|====|====|====|====|====|====|====] 0:00:00
#> → optimizing duplicate expressions in saem predOnly model 1...
#> [====|====|====|====|====|====|====|====|====|====] 0:00:00
#> → finding duplicate expressions in saem predOnly model 2...
#> [====|====|====|====|====|====|====|====|====|====] 0:00:00
#> ✔ done
#> using C compiler: ‘gcc (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0’
#> → Calculating residuals/tables
#> ✔ done
#> → compress origData in nlmixr2 object, save 17312
#> → compress phiM in nlmixr2 object, save 63528
#> → compress parHistData in nlmixr2 object, save 14304
#> → compress saem0 in nlmixr2 object, save 29160
fit0[1:10,c("ID", "EVID", "TIME", "tad")] |> as.data.frame()
#> ID EVID TIME tad
#> 1 1 0 0.00 0.00
#> 2 1 0 0.25 0.25
#> 3 1 0 0.57 0.57
#> 4 1 0 1.12 1.12
#> 5 1 2 2.02 0.00
#> 6 1 2 3.82 0.00
#> 7 1 2 5.10 0.00
#> 8 1 0 7.03 1.93
#> 9 1 0 9.05 3.95
#> 10 1 0 12.12 7.02
# Using the underlying rxode2 model with no eta gives the right results:
library(rxode2)
mod <- rxode2({
param(THETA[1], THETA[2], THETA[3], THETA[4], ETA[1], ETA[2],
ETA[3])
cmt(depot)
cmt(center)
rx_pred_ = NA
rx_r_ = NA
tka = THETA[1] + ETA[1]
tcl = THETA[2] + ETA[2]
tv = THETA[3] + ETA[3]
add.sd = THETA[4]
rx_yj_ ~ 2
rx_lambda_ ~ 1
rx_hi_ ~ 1
rx_low_ ~ 0
rx_expr_0 ~ exp(tka)
d/dt(depot) = -rx_expr_0 * depot
d/dt(center) = rx_expr_0 * depot - exp(tcl - tv) * center
rx_pred_ = exp(-tv) * center
rx_r_ = Rx_pow_di(add.sd, 2)
ka = exp(tka)
cl = exp(tcl)
v = exp(tv)
cp = exp(-tv) * center
tad = tad()
dosenum = dosenum()
tka = THETA[1]
tcl = THETA[2]
tv = THETA[3]
add.sd = THETA[4]
eta.ka = ETA[1]
eta.cl = ETA[2]
eta.v = ETA[3]
cmt(cp)
dvid(3)
})
par <- c("THETA[1]" = 0.271646397929738, "THETA[2]" = 1.04837208911781, "THETA[3]" = 3.41786691697643, "THETA[4]" = 1.02739485488012, "ETA[1]" = 0, "ETA[2]" = 0, "ETA[3]" = 0)
dat <- nlmixr2data::theo_md
dat[dat$EVID==101,]$EVID<-1
dat$MDV<-dat$EVID
dat[6:8,]$MDV=1 # example, set line 6-8 observation MDV as 1
df <- rxSolve(mod, par, dat)
df[1:10,c("id", "evid", "time", "tad")]
#> id evid time tad
#> 1 1 0 0.00 0.00
#> 2 1 0 0.25 0.25
#> 3 1 0 0.57 0.57
#> 4 1 0 1.12 1.12
#> 5 1 2 2.02 2.02
#> 6 1 2 3.82 3.82
#> 7 1 2 5.10 5.10
#> 8 1 0 7.03 7.03
#> 9 1 0 9.05 9.05
#> 10 1 0 12.12 12.12
Created on 2024-02-05 with reprex v2.1.0
Even when you add the etas the rxode2
solve seems OK.
library(rxode2)
#> rxode2 2.1.2 using 8 threads (see ?getRxThreads)
#> no cache: create with `rxCreateCache()`
lst <- "un]\"BAAA@QRtHACAAAAAAA@QhDAABdk1kuexR.9BZ`OJh:tI{pd.>eQzdt9noLy`2(%Uh8w?F\"O?<|>D0UX0.*&?TRmumusLuWg6oADt~`gUgDr8\"qprP%]B<[|Y!o[p@L%x;OB#iA([IvqF<kn){wXwGnYMa=qli.Ct6WDB+PguQ!W$0:8>]#?%#}Y|khf2|k<Z7>_:b8b%w?Zs43ad{S>?:^?|>3jan3bh1wG_ShVoNWY%q(?G9Q%Hu*j[xp@P2wW~6=<Oo>c1>H0ff3X4n|hW$9LxJqO<3|~i>]z+6~m^RS,&c~z+$P,};^~qk>`]7m&PxKX5khX_Ur2r\"|J[EmFbUxI`8^T_q#|#/6,oGw4^l&tWN98_rw5<jct;e1Ya2d{h$4,?hp7hedj5l|uv_`_]O1jYl?as7t=}M*qpwXn{eseV=eY^xjHHOLu.?[J0,<~EeIMxNv\"~}][;T%p~xM:JXKv=hn+RJzg[U}Z_+^8g?=\"%/?%jh]^n_x_gT%MmBou(*+p,,l@{s(r%LGcQ,wU}~o(gY384x5N}X}ZoQ|T%r5rT41YWC!jc.8AR/22}M];Y{[A\"?h`T,f;3Z1Nf9BY4)$[B|=kuA%!Jb$lY7TbltkMLUR6l9a=Z_KQi\"*Sol*SoNNde[zy.MH.wzWx(CuBW;W!W4eP*wn@2jtl4Am4Y^B|Q(Fguh\"]2|D4AacN&We7l5ICDuMyGzw9txUbJpI)A~>`QMAmnM7kH?DnaR2KV{OI)kFqM@QuBRj#n&Z`tUMR9=b4Y1nuW>W+A9(j*T\"3Ivp^H>i=hSKlAa,4IUHuOJVkEEMFhu264@Jo;p_rIM?{3{><IRFLj$rNBAu3+|LbiwJX*},rD&RSKDXr\"X75L4\"[hmB^uZLd|Mc(BJy2G6YJF(XceI.YcXN{[MceG{L$}8knn?OeLqCDDKKyI08ry+([7c0YR[)/h1[i:$wfz#P[t3L#r9ZOaZc6rqi^5#TkuvV>GA5}QBzXYB5}0ZF1GGz$yCI&Dj7EyuG3.:F4k[v?j+e\">@jPv~J[wnLL7K+/hw^EH<xmNuzl@bqRZ.^RbFj=4n9C3D78Lem}8>o_fTOC,P<<WSZArk@F;E$Tc_4wJJ!q:Et)qYYQ1`W6t~zX!&KPigTCf,jJAUmn4vl:4`I*f|4p_KOFa{P+CM{Y4TR3G7_Vq$iVwleo?ILq:T|sMF\"94Hi<#x^tMB%S?S=EN5!z!%^RbJHLLg?9vre*Rn4i+$C}W%EE7GN(Al$_<W@EN#V0U|xngKy;I#Tr/tMYi#}#bX7R#tkt4;!4pvXkgVJ8o},C@?h@yW0[5FNR<bvl,sXzwTO!4!uTj3unYkqvZfZXz8Mcg)@X5QP^TVtCgOQXMiUl>a~e?diVj^0!9)%mwnw_W>Md{,~!|=}4W)ls~4<H_(KS|jO)&OLp?bMaMaMY>n8A99U38UaO(ec!izig;VPUPgr[.Dda0U6y7y7bQO1`nxI_5FaNX!rS(s5mxrJo`!/!rmSV2L.ILHodxti`F4x<k8YYRBTBTBTE+KKro48Uf{nU.?hoqOnNQ|$?#~;q0)d]0B1ttvJFmqocS<0>POJ_fy!>PJ4KB@USt,aMw1(0H9?,$zK+H<kI^:afnZwpLCF+cIvN!#6hfjnqtna+CBtnD)*4=RlZ5r$.jxbE564*1r`KI?RVNA:/[(HN?0yijt*/Ap:[{+`<0;c/FOt+O#OqjS?c[.0}^>o[{9uO%?GAM2j=,:TMwA_.a=vh2jHC6y)E#CVk6~*Y7KOiJ)qCF,jN?MwSo<6L3cM&bq}@Z7y}5^H<(wlR?$Tk,$47b)q?e(vv3kp`6Y~ot:6vc^&g*<@}F^=HI9ivM|h/T)qgzR:g}zTHq,&,nhob>%eEKj~p!&FN$f:aY=MK9doNW~U|s@G[+]5fb*NLB/efP^s}%h*[M)+Cxl`i.TVzRS`_K;pMrU5{Mr~yai@83>C}]sRoz8$)`nB}lj5W;|MQb~rX{I8L1/+\"3}kM&b_?~GIfon@as:k])#)WSL_of_G>3mT1mHc3`P53;QfaORn}Jq}JvB?X.*ME/@nEDR3}Q3qrVW~2g<O#=aTSPuMg9^~o*n}$&^_2sav\"NU&Wzf$jr3}UlS4}=J|`;f3169{F5.*trGnB/c]e?V^KWd_9QU;PkQ9nq1,aTB6M_.pmM]Z#p?CNn]fjo&;2r[<Ib&3TYO5#&1S0>m^D~VUS=Kg^6G{V*`=>Ya%o1Tw8:i8]pNoT}?Ht{|82*]rt;>sfJRk:~t}:D{<h>@]L~S;{<AN?+?=@7@[,mu;:ErVUl36Mer}?~u<F#>qC5jT@g4:xOS.aRvoj}F)(!VFgve!*^N9vh9,xni;eW)LtEH=q^RSq])VE1F7!xV^NhVS@j}1Jkg9q$Se#kCrvhp,A)~pRuh?H9f_J.%?Hsgp!SePS`Nq]^o8Wdd@X=fi{cPsadY%:tf!rE0lh>Hub!79^$R^L5>.piN;=39wT1@4w`_@dzZS]6~a|w{{1#?vS.Pv\"!A3$l)>><F.~D=4#_HdKJM2u_#eH[D/U$r6f^wrAR[)gV^#{#cxRPxy:~A8b0(Ds27Uea4S{=llsk?(eHLTc/)6^<`#=9,B=m}TuPebk[7~>@]0@)f3d_`]{bfKy.Ys>om^97g$zo$,GlGQ?fTV5a#:w~Uz#I1&pcDbt]MnL(UL^7{t`56:`r&PSJFHzm/lub&{V8d>\"#{#x9R.p%Og~u{<Mvv>!=1;&3>%#040Xh`}2#$hB(qkGrfV;Z:Zov*,b(M(kQ@<4vE#sx[O&ln$qkMu8#%(NlX1A{Mav$q<>qdr$L;dQNWzDSk1@:\"7s^xy!q.9sP5<A/OkN05eL9>r|7qH$f`#g,fi_SW([/>|*lqn}HxP(Gzmbxj*=+).b$V%p%5}*fYv>_/^PsCl_J,=uY:eOH[4`{MHQd\"9:7oH/<okKNMRHsdk@rHkx6@`Tr0:Y.~:!0jl.5~r`/_#{dYi|^~7qWo>55HPc^9x\"*=ZIaz@AaKsFlFfo2`tQD4:WG=:!ItUS6?1Ud+d00om5xP%(dk6?8z@Kb]cJI>NZ8y@JP:uL|2}QSW^v6^yc{1)}+F*!JUxA<ev3Dcj%/VgRP?ZRMCiE%>5lO;O{HzSzSJ,e|1D&Ytcm7]D|c_a#jIaC}4PMy$LiYL(1yu0[1WaOs3+9}Px$/Vs5&zR+f4+u]Y3v0,1ore[G,\"eyyHJcQ\"h`/gz\"`YfX3SY{NwwsPsei?|0rsxdOv4GoGFGLF<>/apBbLi!pXl$zlfJu\"lj^P$=d/Kf%AE,^VM)SW&!!Svj}3s7IL:_4z^F.mqZUcf`w;b4+B=YQth##x<!L<FcD3T7t4AUKpBD{AFtGGF%~$[DbX\"ZjN5<B*E]=2H;YWFNI:PLI`nqb&sy+n2d#DCw$GxFOD_KoAx#nLRtV![Qgk0pAw)LD1u,YrR^hFvD/7}3{t9^xlTPeo\"CQDE;EN=L{Ku7qVdZ`Wk)=V@|@D^4WR&6Jt_YuuQkhS+CPtlZ2B!x44UXndxWU@|d$)UvHH6eT/+rs:4E#zPi:&RfpzPP=(1K&_PDpLgzHUuM9!wpRFP)dxIwh@CK*X9($TqCoccY,5+m<Ei?F^gk;UK)C<tJx5VK{F\"F5L|Bu\"mc3k0E4R~RWCwLpu^v[7h3a4lB&FgAdExA.hyy8Zp0`KmDhF:>SqLCoAz(v(8v#k*UwMH$i7#2slgM>,9KxG.t@O}4!K)M}H!wYzq4~L}y|Z&FdYMI|$]uheo0xbOUe%PfLaSo0@OM2dKCA3}iCTqMVjuY7R6)*TtRy*mqnfp`3R<4j:0bPGgJiD&qPmgS`74D78z(fDGT))pna2[waadxN3fdkNpje*W!o0YMgSJ)Z.11vBHGqDhwexw4R.!dHj`A<1B.{+%fI<LbN<aj~RAJ;d7,9K;wRjr5$mrzpI/dq1Yt~ID2_,el7i7?aRx\"P24+3Dnd,HAfsY}ccEn/;jTV<OgM#<mlqCp#*8RMeI67Fk%2LwfW8O3Xl:%R)Lsiyt~In/)!mxfVBPTd;I0SH?2S/O1XnOLv$kZ3^?3KBG#z9Y$kt!3ODA4w1Y{QKutb@10u$*cSt!T]FT3n8)^*5X/Orj@J)1)HLMHdaTVE@d/nw,{IuvN%!|eQxtDEU5}(<9u)wGn;~YK%kbbz(S\"bopn,wZ7;i[WN@bFC9h#<_3M)2pr_;=?!m8tG!,Ee~b:7q`{1?:t3H8RXO!P816Sc>&M80EU~/PQ;Uvnb>on]}Dq3*eg:L9U\"5X`nx#dlz5#Gq3,Ny}5j&y9syxhxcLU*/GM}7b;mk>)PzEqv#h&STk(+l}n,\"{M{aR/9%b_g]}16V^*P;)qp!vv$q]ikxr=!).*fmkH9=?j(k#!6_b@RGFzm<|vkgzK|7t{RR|pHFF9>}DUzGJmm.:]Lvd/8%{u6i$Jp<7K~b>+`BJ`h8cY3T0qu~J9iCM|hTj@Pe\"gI2uqi.y#/lVU\"!3ZEL*#GVXtB\"L_XiGlZiG1w>M!Rdtea06KYBk0%_,YE)(vVB6ptRAvC~A]%.Xc?vC&FmF*m^zrW+9x4,YRYk+6\",$95Vj=k|eN)[LEww_Q:6Y`XR0NC,4r$.8!ZFrBf}Za6,ksN:%4<*{!y\"d[1l.F&TYLyi~FtCZtJ2,_(/#0Hh,/,1f9?spA1CrV:z+NtC]aAlaS]d<+=<9H{?w[ho/\"u~Vl6Rmi$%d}VfmCdJiiGkXbP>8[T4CBN,sl\"[36\"E`.<i8/1c0#hf|ss_6kS}Rpk4N^TsB;UNUI>)[mJVXy/}1#gCo[wbSl>$7\".?/qh!lc`GUYqjTJeM<KlfJJ0wHhfdsd}HoKM?j,g{{=vp9jIf=0;vOkm,uph~pYI#yhV8S=Uo?hYOy5`H19)$DD])}nJ~n}C^:}D5^dM]]Uee$dX6wNg9L?e`SNx}Mgy&2n3cqoMOpWBD=r.#V~0];{FUe#4.=M~1zhMk_j~CG?i[M=xiGIGS_[RCy0h+gEVqsGN@71^Qd_zQmo>@4I0NKb2z/L)pE;WH~fwu[AM%9_Gc5AbP?f${zRts>kMguf:BCd:WwQ[fRyC!q%aBz#LiJLgy%3fGx+J*2=?=[6?=R$FIl#?_*=b^plI[sLkZsO8>KRGM_,tzqE\"N#8%9zpJV~=`R3{gxGG%mWSJ?J}a|c`0&=kB_w7z7rZE(BRolN{Ge[{I,>OIoR5Cc;O1$<i+e>5LxBC0~]pC>A{az5=PSOk]*]@8JkUR$5*~YxAERlr4,2P<l5ukCIpq/nawMGvtO4Otgze)~2(sg7hL!z3W~Q.e]1GZZ=d*6pb\"KO6SJ`4M%knBUSs2Jd>vikX+rb]/5)S/5f(TqO!<~iWR\"N5&^roR$?\";Qjp:~wOfpy[z=!\"%_T3lSZU4di]H0U*E=#HhhAt>hYjaU#NNL&+{0.PXIX=Z=M|L[X;SZO]y(]}$)en@979fPg6JXhs8U$e4@!a[(>~4))u>SkQDgub=w+IyBGamb_F8TvM]3!+RDay$}TPcqeX|tL+E+C~EF!6Rzc3/Ur/RpV*HoYE\"C#VaA8\"zd^#zle{d{(}_8p871D9I@0bhv0`Y=amkE5pDh_{D|}0T`bxgJSd=xmSN@p*9@L!fqNo>x_50g@5[id3YC2\"H<&AR<*$On_1?UE.0a(|bOwk+#~6g(W14EZi,/IfaEGlm$Q_vBBXwaX{Pp1VUO;/`7/eE>[*9a~f<|igs*8hL31w5#@lxPNDwSTh1|XZ?ltd~.FdHWFs1A#W(B(A@PwmD0_wf`Q$8ds;r94~q`1`bI,Vm3La3PH.|(Q>cHdo]l|n<b9Psa*nXA30`[5=g%&j$a_o&fvGzdE43j3t86EIk8$swX$E3fcmOTuc9f1tGCBc4)Df6t~/^t0vdf>{OAjz_j4`HRH5:W57W9.]@_=D>:rAJA(zrctx]fmHh&vBJ(%<5Tq?KcCpp^k)dM|IS6C)e;vz(raaEm4ozg.$fBOheIicUpa+nBu~8>3Qdc[oWN[hsTC7B^Tu@P#JZq4c`glGT1_[G5/>)sIuOwz(BK>Kj_QcDb;_{L.EnVz`sZD?/[`]#Jz3gX{$Fn((K4%TtoQr+u0nIg],YQYE"
lst <- qs::qdeserialize(qs::base91_decode(lst))
lst[[1]] <- rxode2(lst[[1]])
tmp <- do.call(rxSolve, lst)
tmp[, c("id", "evid", "time", "tad")]
#> id evid time tad
#> 1 1 0 0.00 0.00
#> 2 1 0 0.25 0.25
#> 3 1 0 0.57 0.57
#> 4 1 0 1.12 1.12
#> 5 1 2 2.02 0.00
#> 6 1 2 3.82 0.00
#> 7 1 2 5.10 0.00
#> 8 1 0 7.03 1.93
#> 9 1 0 9.05 3.95
#> 10 1 0 12.12 7.02
#> 11 1 0 24.37 0.37
#> 12 1 0 144.00 0.00
#> 13 1 0 144.25 0.25
#> 14 1 0 144.57 0.57
#> 15 1 0 145.12 1.12
#> 16 1 0 146.02 2.02
#> 17 1 0 147.82 3.82
#> 18 1 0 149.10 5.10
#> 19 1 0 151.03 7.03
#> 20 1 0 153.05 9.05
#> 21 1 0 156.12 12.12
#> 22 1 0 168.37 24.37
#> 23 2 0 0.00 0.00
#> 24 2 0 0.27 0.27
#> 25 2 0 0.52 0.52
#> 26 2 0 1.00 1.00
#> 27 2 0 1.92 1.92
#> 28 2 0 3.50 3.50
#> 29 2 0 5.02 5.02
#> 30 2 0 7.03 7.03
#> 31 2 0 9.00 9.00
#> 32 2 0 12.00 12.00
#> 33 2 0 24.30 0.30
#> 34 2 0 144.00 0.00
#> 35 2 0 144.27 0.27
#> 36 2 0 144.52 0.52
#> 37 2 0 145.00 1.00
#> 38 2 0 145.92 1.92
#> 39 2 0 147.50 3.50
#> 40 2 0 149.02 5.02
#> 41 2 0 151.03 7.03
#> 42 2 0 153.00 9.00
#> 43 2 0 156.00 12.00
#> 44 2 0 168.30 24.30
#> 45 3 0 0.00 0.00
#> 46 3 0 0.27 0.27
#> 47 3 0 0.58 0.58
#> 48 3 0 1.02 1.02
#> 49 3 0 2.02 2.02
#> 50 3 0 3.62 3.62
#> 51 3 0 5.08 5.08
#> 52 3 0 7.07 7.07
#> 53 3 0 9.00 9.00
#> 54 3 0 12.15 12.15
#> 55 3 0 24.17 0.17
#> 56 3 0 144.00 0.00
#> 57 3 0 144.27 0.27
#> 58 3 0 144.58 0.58
#> 59 3 0 145.02 1.02
#> 60 3 0 146.02 2.02
#> 61 3 0 147.62 3.62
#> 62 3 0 149.08 5.08
#> 63 3 0 151.07 7.07
#> 64 3 0 153.00 9.00
#> 65 3 0 156.15 12.15
#> 66 3 0 168.17 24.17
#> 67 4 0 0.00 0.00
#> 68 4 0 0.35 0.35
#> 69 4 0 0.60 0.60
#> 70 4 0 1.07 1.07
#> 71 4 0 2.13 2.13
#> 72 4 0 3.50 3.50
#> 73 4 0 5.02 5.02
#> 74 4 0 7.02 7.02
#> 75 4 0 9.02 9.02
#> 76 4 0 11.98 11.98
#> 77 4 0 24.65 0.65
#> 78 4 0 144.00 0.00
#> 79 4 0 144.35 0.35
#> 80 4 0 144.60 0.60
#> 81 4 0 145.07 1.07
#> 82 4 0 146.13 2.13
#> 83 4 0 147.50 3.50
#> 84 4 0 149.02 5.02
#> 85 4 0 151.02 7.02
#> 86 4 0 153.02 9.02
#> 87 4 0 155.98 11.98
#> 88 4 0 168.65 24.65
#> 89 5 0 0.00 0.00
#> 90 5 0 0.30 0.30
#> 91 5 0 0.52 0.52
#> 92 5 0 1.00 1.00
#> 93 5 0 2.02 2.02
#> 94 5 0 3.50 3.50
#> 95 5 0 5.02 5.02
#> 96 5 0 7.02 7.02
#> 97 5 0 9.10 9.10
#> 98 5 0 12.00 12.00
#> 99 5 0 24.35 0.35
#> 100 5 0 144.00 0.00
#> 101 5 0 144.30 0.30
#> 102 5 0 144.52 0.52
#> 103 5 0 145.00 1.00
#> 104 5 0 146.02 2.02
#> 105 5 0 147.50 3.50
#> 106 5 0 149.02 5.02
#> 107 5 0 151.02 7.02
#> 108 5 0 153.10 9.10
#> 109 5 0 156.00 12.00
#> 110 5 0 168.35 24.35
#> 111 6 0 0.00 0.00
#> 112 6 0 0.27 0.27
#> 113 6 0 0.58 0.58
#> 114 6 0 1.15 1.15
#> 115 6 0 2.03 2.03
#> 116 6 0 3.57 3.57
#> 117 6 0 5.00 5.00
#> 118 6 0 7.00 7.00
#> 119 6 0 9.22 9.22
#> 120 6 0 12.10 12.10
#> 121 6 0 23.85 23.85
#> 122 6 0 144.00 0.00
#> 123 6 0 144.27 0.27
#> 124 6 0 144.58 0.58
#> 125 6 0 145.15 1.15
#> 126 6 0 146.03 2.03
#> 127 6 0 147.57 3.57
#> 128 6 0 149.00 5.00
#> 129 6 0 151.00 7.00
#> 130 6 0 153.22 9.22
#> 131 6 0 156.10 12.10
#> 132 6 0 167.85 23.85
#> 133 7 0 0.00 0.00
#> 134 7 0 0.25 0.25
#> 135 7 0 0.50 0.50
#> 136 7 0 1.02 1.02
#> 137 7 0 2.02 2.02
#> 138 7 0 3.48 3.48
#> 139 7 0 5.00 5.00
#> 140 7 0 6.98 6.98
#> 141 7 0 9.00 9.00
#> 142 7 0 12.05 12.05
#> 143 7 0 24.22 0.22
#> 144 7 0 144.00 0.00
#> 145 7 0 144.25 0.25
#> 146 7 0 144.50 0.50
#> 147 7 0 145.02 1.02
#> 148 7 0 146.02 2.02
#> 149 7 0 147.48 3.48
#> 150 7 0 149.00 5.00
#> 151 7 0 150.98 6.98
#> 152 7 0 153.00 9.00
#> 153 7 0 156.05 12.05
#> 154 7 0 168.22 24.22
#> 155 8 0 0.00 0.00
#> 156 8 0 0.25 0.25
#> 157 8 0 0.52 0.52
#> 158 8 0 0.98 0.98
#> 159 8 0 2.02 2.02
#> 160 8 0 3.53 3.53
#> 161 8 0 5.05 5.05
#> 162 8 0 7.15 7.15
#> 163 8 0 9.07 9.07
#> 164 8 0 12.10 12.10
#> 165 8 0 24.12 0.12
#> 166 8 0 144.00 0.00
#> 167 8 0 144.25 0.25
#> 168 8 0 144.52 0.52
#> 169 8 0 144.98 0.98
#> 170 8 0 146.02 2.02
#> 171 8 0 147.53 3.53
#> 172 8 0 149.05 5.05
#> 173 8 0 151.15 7.15
#> 174 8 0 153.07 9.07
#> 175 8 0 156.10 12.10
#> 176 8 0 168.12 24.12
#> 177 9 0 0.00 0.00
#> 178 9 0 0.30 0.30
#> 179 9 0 0.63 0.63
#> 180 9 0 1.05 1.05
#> 181 9 0 2.02 2.02
#> 182 9 0 3.53 3.53
#> 183 9 0 5.02 5.02
#> 184 9 0 7.17 7.17
#> 185 9 0 8.80 8.80
#> 186 9 0 11.60 11.60
#> 187 9 0 24.43 0.43
#> 188 9 0 144.00 0.00
#> 189 9 0 144.30 0.30
#> 190 9 0 144.63 0.63
#> 191 9 0 145.05 1.05
#> 192 9 0 146.02 2.02
#> 193 9 0 147.53 3.53
#> 194 9 0 149.02 5.02
#> 195 9 0 151.17 7.17
#> 196 9 0 152.80 8.80
#> 197 9 0 155.60 11.60
#> 198 9 0 168.43 24.43
#> 199 10 0 0.00 0.00
#> 200 10 0 0.37 0.37
#> 201 10 0 0.77 0.77
#> 202 10 0 1.02 1.02
#> 203 10 0 2.05 2.05
#> 204 10 0 3.55 3.55
#> 205 10 0 5.05 5.05
#> 206 10 0 7.08 7.08
#> 207 10 0 9.38 9.38
#> 208 10 0 12.10 12.10
#> 209 10 0 23.70 23.70
#> 210 10 0 144.00 0.00
#> 211 10 0 144.37 0.37
#> 212 10 0 144.77 0.77
#> 213 10 0 145.02 1.02
#> 214 10 0 146.05 2.05
#> 215 10 0 147.55 3.55
#> 216 10 0 149.05 5.05
#> 217 10 0 151.08 7.08
#> 218 10 0 153.38 9.38
#> 219 10 0 156.10 12.10
#> 220 10 0 167.70 23.70
#> 221 11 0 0.00 0.00
#> 222 11 0 0.25 0.25
#> 223 11 0 0.50 0.50
#> 224 11 0 0.98 0.98
#> 225 11 0 1.98 1.98
#> 226 11 0 3.60 3.60
#> 227 11 0 5.02 5.02
#> 228 11 0 7.03 7.03
#> 229 11 0 9.03 9.03
#> 230 11 0 12.12 12.12
#> 231 11 0 24.08 0.08
#> 232 11 0 144.00 0.00
#> 233 11 0 144.25 0.25
#> 234 11 0 144.50 0.50
#> 235 11 0 144.98 0.98
#> 236 11 0 145.98 1.98
#> 237 11 0 147.60 3.60
#> 238 11 0 149.02 5.02
#> 239 11 0 151.03 7.03
#> 240 11 0 153.03 9.03
#> 241 11 0 156.12 12.12
#> 242 11 0 168.08 24.08
#> 243 12 0 0.00 0.00
#> 244 12 0 0.25 0.25
#> 245 12 0 0.50 0.50
#> 246 12 0 1.00 1.00
#> 247 12 0 2.00 2.00
#> 248 12 0 3.52 3.52
#> 249 12 0 5.07 5.07
#> 250 12 0 7.07 7.07
#> 251 12 0 9.03 9.03
#> 252 12 0 12.05 12.05
#> 253 12 0 24.15 0.15
#> 254 12 0 144.00 0.00
#> 255 12 0 144.25 0.25
#> 256 12 0 144.50 0.50
#> 257 12 0 145.00 1.00
#> 258 12 0 146.00 2.00
#> 259 12 0 147.52 3.52
#> 260 12 0 149.07 5.07
#> 261 12 0 151.07 7.07
#> 262 12 0 153.03 9.03
#> 263 12 0 156.05 12.05
#> 264 12 0 168.15 24.15
Created on 2024-02-06 with reprex v2.1.0
I get a question on the tad (time after the dose) calculation provided by nlmixr2 output. I will be appreciated if you have any idea on it
I find that when I try to set part of observations' MDV to 1 (keep EVID=0) in the PopPK dataset, the tad (time after the last dose) calculated by nlmixr2 become confused. (This wont happen when I use LinCMT(), only happen when it is ODE)
I use theo_md as example, most of the following code are same with the nlmixr2 website's. The only difference is I try to set row 6-8 observation MDV as 1
I select part of columns from nlmxir2 output after running. and it can be seen that the tad is totally changed, and it seems that those observation lines (MDV=1,EVID=0) were considered as a dosing line/event line as well. After line 6-8, all of the tad and dosenum were wrong actually.
The interesting thing is that when I use vpcSim(fit,n = no.sim) to see the simulation results, the tad become normal again.
Have you met this issue before?