Skip to content

Commit db23214

Browse files
Kyun-Seop Baecran-robot
authored andcommitted
version 0.7.2
1 parent 560b5f8 commit db23214

File tree

16 files changed

+240
-179
lines changed

16 files changed

+240
-179
lines changed

DESCRIPTION

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
Package: wnl
2-
Version: 0.7.1
2+
Version: 0.7.2
33
Title: Minimization Tool for Pharmacokinetic-Pharmacodynamic Data
44
Analysis
55
Description: This is a set of minimization tools (maximum likelihood estimation and least square fitting) to solve examples in the Johan Gabrielsson and Dan Weiner's book "Pharmacokinetic and Pharmacodynamic Data Analysis - Concepts and Applications" 5th ed. (ISBN:9198299107). Examples include linear and nonlinear compartmental model, turn-over model, single or multiple dosing bolus/infusion/oral models, allometry, toxicokinetics, reversible metabolism, in-vitro/in-vivo extrapolation, enterohepatic circulation, metabolite modeling, Emax model, inhibitory model, tolerance model, oscillating response model, enantiomer interaction model, effect compartment model, drug-drug interaction model, receptor occupancy model, and rebound phenomena model.
6-
Depends: R (>= 3.0.0), numDeriv
6+
Depends: R (>= 3.5.0), numDeriv
77
Author: Kyun-Seop Bae [aut]
88
Maintainer: Kyun-Seop Bae <[email protected]>
99
Copyright: 2017-, Kyun-Seop Bae
@@ -12,5 +12,5 @@ NeedsCompilation: no
1212
LazyLoad: yes
1313
Repository: CRAN
1414
URL: https://cran.r-project.org/package=wnl
15-
Packaged: 2022-11-29 23:50:28 UTC; Kyun-SeopBae
16-
Date/Publication: 2022-11-30 00:10:02 UTC
15+
Packaged: 2023-03-26 08:42:19 UTC; Kyun-SeopBae
16+
Date/Publication: 2023-03-26 09:00:02 UTC

MD5

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
8ff22a4a870171d4b3a47ffc0b0e9b48 *DESCRIPTION
2-
ee3bb2eb18e141b2c4e9490e06578bc7 *NAMESPACE
3-
272b0f9cff1702c382130e84e0b02fd3 *R/BasicUtil.R
1+
c9516afbbbaa87491b313b106c506057 *DESCRIPTION
2+
390de0872c5e034f3bb65922b8b78051 *NAMESPACE
3+
83d6bb93ca7f2ebe336d3d1c70e6d5de *R/BasicUtil.R
44
ba1255e411249f4db6f2caa66ee30cfe *R/Comp1.R
5+
6ee187dd007ec9a4d1193101fb331c53 *R/EnvObj.R
56
cf5ef0c31a8433b8f966716f203471b9 *R/ExpandDH.R
67
82c430639b2aec87a2d8257e1ed87b19 *R/Objs.R
78
f7a61f78602501325418063cc00df4d4 *R/Secondary.R
@@ -11,17 +12,18 @@ b801ef09ac2e1d9c931f1d08fe4a6b90 *R/cmpChi.R
1112
752433b1b66c620b33c3def811efdc8f *R/dx.R
1213
9bf4095904c0bf59982cb603c2b69e5c *R/hSkew.R
1314
ca032758dcb79150beac3ef4564b7cb8 *R/nComp.R
14-
704803c86f0249b33ac74f5854471253 *R/nlr.R
15+
93e6378dd2b8a641a72a71c2a3177071 *R/nlr.R
1516
969cb4bf5cab158d9f4b9fbd260ae4e1 *R/pComp.R
16-
93992a72ede869c9d1980d0c4f2151ac *R/sysdata.rda
17-
4d4407fdd2c2a05691dcff5a9e26d18f *R/wnl5.R
18-
b5a08d37bc6fe85f346b6d2f6a9e59de *inst/NEWS.Rd
17+
d937f14557cd2f6a8416f6e1bd5c2ca5 *R/pProf.R
18+
3a85a468ae0dc2bbb899524ea01feccf *R/sysdata.rda
19+
1c9e1b28728c0f1fc96017efc560b0d6 *R/wnl5.R
20+
bfc553c5d4e48153218304487a993cc1 *inst/NEWS.Rd
1921
75463c4d3bd42432719b597f93dd859d *inst/doc/Compartment-vignette.pdf
20-
846bed422184b36f2aaf96a2894bf9f6 *inst/doc/NCA.pdf
21-
ee2fd12b6324d60dc40613252ef9078c *inst/doc/wnl-manual.pdf
22-
40e13ff56df7c96e607461bcb32b4b86 *man/BasicUtil.Rd
22+
bcc928b45c5b3565a7eb37ffb9ec41dc *inst/doc/wnl-manual.pdf
23+
57010db082832f52da4856e4b3521524 *man/BasicUtil.Rd
2324
f9ab397c3e89d4acba0f7c5f06e91923 *man/Comp1.Rd
2425
6c87b1f721849279be48c7474dee83b5 *man/DAT.Rd
26+
e13ddd41e50eb0c2aa0a6fe811650f58 *man/EnvObj.Rd
2527
1d89dcf882509be8a127789a9d87c4c3 *man/ExpandDH.Rd
2628
4c8010f47e5cd1f1c27e78b5b0337e06 *man/Objs.Rd
2729
473916c208b3d722e54944b5f2a4a18f *man/Secondary.Rd
@@ -32,7 +34,8 @@ e1e7543809d439770aa7d1cb6e897193 *man/dx.Rd
3234
ee0ea2d2db69f309039e2d70a791ac0a *man/e.Rd
3335
d60a1682e9d37ff616877f1ce4738665 *man/hSkew.Rd
3436
62aedc1f108c168426e5402b454b82e1 *man/nComp.Rd
35-
adc2a17ef835341750000347246dfbe2 *man/nlr.Rd
37+
ce1ed05a960198b528a52d5009c50d24 *man/nlr.Rd
3638
3a1b70982f3cf42a7bd0a912b81ca182 *man/pComp.Rd
39+
5fb26ef5fe3aa387797a8b26d2785da0 *man/pProf.Rd
3740
8640ba18696633870f706cd63f6d440c *man/wnl-package.Rd
3841
902adeb3c4af0439299bbd830aa6ed04 *man/wnl5.Rd

NAMESPACE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
exportPattern("^[[:alpha:]]+")
2-
importFrom("stats", "cov2cor", "optim", "deriv", "pchisq", "coef", "formula", "resid", "sigma", "qnorm", "qt", "uniroot", "terms")
2+
importFrom("stats", "cov2cor", "optim", "deriv", "pchisq", "coef", "formula", "resid", "sigma", "qnorm", "qt", "qf", "uniroot", "terms")
33
importFrom("numDeriv", "hessian")
44
importFrom("graphics", "par", "plot", "abline", "arrows", "polygon", "text", "title")
55
importFrom("grDevices", "dev.new", "dev.cur")

R/BasicUtil.R

Lines changed: 31 additions & 81 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
#Note = function() file.show(system.file("NOTE.txt", package="NonCompart"))
44

5-
UT = function(x) toupper(gsub("^\\s+|\\s+$", "", x))
6-
75
s2o = function(vPara) # scaled to original parameters
86
{
97
b0 = exp(vPara - e$alpha)
@@ -166,43 +164,43 @@ nHessian = function(fx, x)
166164
return(H)
167165
}
168166

167+
g2inv = function(A, Augmented=FALSE, eps=1e-8)
168+
{
169+
idx = abs(diag(A)) > eps
170+
p = sum(idx, na.rm=T)
171+
p0 = ifelse(Augmented, p - 1, p)
172+
if (p == 0 | p0 < 1) { A[, ] = 0 ; attr(A, "rank") = 0 ; return(A) }
173+
B = A[idx, idx, drop=F]
174+
175+
r = 0
176+
for (k in 1:p0) {
177+
d = B[k, k]
178+
if (abs(d) < eps) { B[k, ] = 0 ; B[, k] = 0 ; next }
179+
B[k, ] = B[k, ]/d
180+
r = r + 1
181+
for (i in 1:p) {
182+
if (i != k) {
183+
c0 = B[i, k]
184+
B[i, ] = B[i, ] - c0*B[k, ]
185+
B[i, k] = -c0/d
186+
}
187+
}
188+
B[k, k] = 1/d
189+
}
190+
191+
A[!idx, !idx] = 0
192+
A[idx, idx] = B
193+
attr(A, "rank") = r
194+
return(A)
195+
}
196+
169197
Hougaard = function(J, H, ssq)
170198
{# J : graident, H: hessian, ssq: sigma square
171199
z = NCOL(J)
172200
m = NROW(J)
173201
if (z*m == 0) stop("No graident information!")
174202

175-
G2SWEEP = function(A, Augmented=FALSE, eps=1e-8)
176-
{
177-
idx = abs(diag(A)) > eps
178-
p = sum(idx, na.rm=T)
179-
p0 = ifelse(Augmented, p - 1, p)
180-
if (p == 0 | p0 < 1) { A[, ] = 0 ; attr(A, "rank") = 0 ; return(A) }
181-
B = A[idx, idx, drop=F]
182-
183-
r = 0
184-
for (k in 1:p0) {
185-
d = B[k, k]
186-
if (abs(d) < eps) { B[k, ] = 0 ; B[, k] = 0 ; next }
187-
B[k, ] = B[k, ]/d
188-
r = r + 1
189-
for (i in 1:p) {
190-
if (i != k) {
191-
c0 = B[i, k]
192-
B[i, ] = B[i, ] - c0*B[k, ]
193-
B[i, k] = -c0/d
194-
}
195-
}
196-
B[k, k] = 1/d
197-
}
198-
199-
A[!idx, !idx] = 0
200-
A[idx, idx] = B
201-
attr(A, "rank") = r
202-
return(A)
203-
}
204-
205-
L = G2SWEEP(crossprod(J))
203+
L = g2inv(crossprod(J))
206204
if (attr(L, "rank") < ncol(L)) warning("Crossproduct of gradient is singular!")
207205

208206
W = rep(0, z^3)
@@ -233,51 +231,3 @@ Hougaard = function(J, H, ssq)
233231
names(SK) = colnames(J)
234232
return(SK)
235233
}
236-
237-
pProf = function(Title = "", ...)
238-
{
239-
mfRow = ceiling(sqrt(e$nPara))
240-
mfCol = ceiling(e$nPara/mfRow)
241-
oPar = par(mfrow=c(mfRow, mfCol))
242-
Args = list(...)
243-
if (is.null(Args$ylab)) Args$ylab = "-2LL"
244-
if (is.null(Args$type)) Args$type = "l"
245-
246-
for (j in 1:e$nPara) {
247-
x = e$mPar[, j]
248-
y = e$mOFV[, j]
249-
if (is.finite(min(x)) & is.finite(max(x)) & is.finite(min(y, na.rm=T)) & is.finite(max(y, na.rm=T))) {
250-
Args$x = x
251-
Args$y = y
252-
RdUdL = format((e$LI[2, j] - e$PE[j])/(e$PE[j] - e$LI[1, j]), digits=3)
253-
Args$xlab = paste0(e$pNames[j], " = ", format(e$PE[j], digits=2), ", dU/dL = ", RdUdL)
254-
do.call(plot, Args)
255-
abline(h = e$'-2LL' + e$fCut, lty=2)
256-
abline(v = e$PE[j], lty=3)
257-
text(e$LI[, j], e$'-2LL', labels = format(e$LI[, j], digits=2))
258-
}
259-
}
260-
if (trimws(Title) != "") title(Title, outer=TRUE)
261-
par(oPar)
262-
}
263-
264-
265-
266-
267-
268-
269-
270-
271-
272-
273-
274-
275-
276-
277-
278-
279-
280-
281-
282-
283-

R/EnvObj.R

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
EnvObj = function(envir = e)
2+
{
3+
Name0 = ls(envir)
4+
nObj = length(Name0)
5+
Result = list()
6+
for (i in 1:nObj) Result[[i]] = get(Name0[i], envir=envir)
7+
names(Result) = Name0
8+
return(Result)
9+
}

0 commit comments

Comments
 (0)