From f4522ad0e968bc1f4a3fc2b8761c920bdaa992b0 Mon Sep 17 00:00:00 2001 From: Justin Wilkins Date: Tue, 25 Aug 2020 10:11:50 +0200 Subject: [PATCH] Add docs --- .gitignore | 1 - docs/404.html | 160 ++++ docs/articles/index.html | 159 ++++ docs/articles/pk-curves.html | 750 ++++++++++++++++++ .../figure-html/1cptdemo-1.png | Bin 0 -> 52713 bytes .../figure-html/1cptssdemo-1.png | Bin 0 -> 53887 bytes .../figure-html/2cptdemo-1.png | Bin 0 -> 51999 bytes .../figure-html/2cptssdemo-1.png | Bin 0 -> 54172 bytes .../figure-html/3cptdemo-1.png | Bin 0 -> 53435 bytes .../figure-html/3cptssdemo-1.png | Bin 0 -> 54806 bytes .../figure-html/pkcurve1-1.png | Bin 0 -> 15957 bytes docs/authors.html | 187 +++++ docs/bootstrap-toc.css | 60 ++ docs/bootstrap-toc.js | 159 ++++ docs/docsearch.css | 148 ++++ docs/docsearch.js | 85 ++ docs/index.html | 149 ++++ docs/link.svg | 12 + docs/news/index.html | 181 +++++ docs/pkgdown.css | 367 +++++++++ docs/pkgdown.js | 108 +++ docs/pkgdown.yml | 7 + docs/reference/calc_derived.html | 308 +++++++ docs/reference/calc_sd_1cmt.html | 228 ++++++ docs/reference/calc_sd_2cmt.html | 238 ++++++ docs/reference/calc_sd_3cmt.html | 234 ++++++ docs/reference/calc_ss_1cmt.html | 233 ++++++ docs/reference/calc_ss_2cmt.html | 238 ++++++ docs/reference/calc_ss_3cmt.html | 238 ++++++ docs/reference/gcv_convert.html | 188 +++++ docs/reference/get_auc.html | 197 +++++ docs/reference/get_est_table.html | 207 +++++ docs/reference/get_omega.html | 203 +++++ docs/reference/get_probinfo.html | 190 +++++ docs/reference/get_shrinkage.html | 207 +++++ docs/reference/get_sigma.html | 211 +++++ docs/reference/get_theta.html | 213 +++++ docs/reference/gm.html | 180 +++++ docs/reference/index.html | 379 +++++++++ docs/reference/pcv.html | 184 +++++ docs/reference/pk_curve-1.png | Bin 0 -> 13651 bytes docs/reference/pk_curve.html | 213 +++++ docs/reference/plot_nmprogress.html | 211 +++++ docs/reference/plot_scm.html | 364 +++++++++ docs/reference/read_nm.html | 205 +++++ docs/reference/read_nm_all.html | 206 +++++ docs/reference/read_nm_multi_table.html | 211 +++++ docs/reference/read_nm_std_ext.html | 197 +++++ docs/reference/read_nmcov.html | 207 +++++ docs/reference/read_nmext.html | 236 ++++++ docs/reference/read_nmtables.html | 242 ++++++ docs/reference/read_scm.html | 212 +++++ docs/reference/rnm.html | 262 ++++++ docs/reference/sample_omega.html | 194 +++++ docs/reference/sample_sigma.html | 194 +++++ docs/reference/sample_uncert.html | 195 +++++ docs/reference/table_rtf.html | 212 +++++ 57 files changed, 10169 insertions(+), 1 deletion(-) create mode 100644 docs/404.html create mode 100644 docs/articles/index.html create mode 100644 docs/articles/pk-curves.html create mode 100644 docs/articles/pk-curves_files/figure-html/1cptdemo-1.png create mode 100644 docs/articles/pk-curves_files/figure-html/1cptssdemo-1.png create mode 100644 docs/articles/pk-curves_files/figure-html/2cptdemo-1.png create mode 100644 docs/articles/pk-curves_files/figure-html/2cptssdemo-1.png create mode 100644 docs/articles/pk-curves_files/figure-html/3cptdemo-1.png create mode 100644 docs/articles/pk-curves_files/figure-html/3cptssdemo-1.png create mode 100644 docs/articles/pk-curves_files/figure-html/pkcurve1-1.png create mode 100644 docs/authors.html create mode 100644 docs/bootstrap-toc.css create mode 100644 docs/bootstrap-toc.js create mode 100644 docs/docsearch.css create mode 100644 docs/docsearch.js create mode 100644 docs/index.html create mode 100644 docs/link.svg create mode 100644 docs/news/index.html create mode 100644 docs/pkgdown.css create mode 100644 docs/pkgdown.js create mode 100644 docs/pkgdown.yml create mode 100644 docs/reference/calc_derived.html create mode 100644 docs/reference/calc_sd_1cmt.html create mode 100644 docs/reference/calc_sd_2cmt.html create mode 100644 docs/reference/calc_sd_3cmt.html create mode 100644 docs/reference/calc_ss_1cmt.html create mode 100644 docs/reference/calc_ss_2cmt.html create mode 100644 docs/reference/calc_ss_3cmt.html create mode 100644 docs/reference/gcv_convert.html create mode 100644 docs/reference/get_auc.html create mode 100644 docs/reference/get_est_table.html create mode 100644 docs/reference/get_omega.html create mode 100644 docs/reference/get_probinfo.html create mode 100644 docs/reference/get_shrinkage.html create mode 100644 docs/reference/get_sigma.html create mode 100644 docs/reference/get_theta.html create mode 100644 docs/reference/gm.html create mode 100644 docs/reference/index.html create mode 100644 docs/reference/pcv.html create mode 100644 docs/reference/pk_curve-1.png create mode 100644 docs/reference/pk_curve.html create mode 100644 docs/reference/plot_nmprogress.html create mode 100644 docs/reference/plot_scm.html create mode 100644 docs/reference/read_nm.html create mode 100644 docs/reference/read_nm_all.html create mode 100644 docs/reference/read_nm_multi_table.html create mode 100644 docs/reference/read_nm_std_ext.html create mode 100644 docs/reference/read_nmcov.html create mode 100644 docs/reference/read_nmext.html create mode 100644 docs/reference/read_nmtables.html create mode 100644 docs/reference/read_scm.html create mode 100644 docs/reference/rnm.html create mode 100644 docs/reference/sample_omega.html create mode 100644 docs/reference/sample_sigma.html create mode 100644 docs/reference/sample_uncert.html create mode 100644 docs/reference/table_rtf.html diff --git a/.gitignore b/.gitignore index 0d7f03b..c833a2c 100644 --- a/.gitignore +++ b/.gitignore @@ -2,5 +2,4 @@ .Rhistory .RData .Ruserdata -docs inst/doc diff --git a/docs/404.html b/docs/404.html new file mode 100644 index 0000000..3d50b30 --- /dev/null +++ b/docs/404.html @@ -0,0 +1,160 @@ + + + + + + + + +Page not found (404) • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + +Content not found. Please use links in the navbar. + +
+ + + +
+ + + +
+ + +
+

Site built with pkgdown 1.5.1.

+
+ +
+
+ + + + + + + + diff --git a/docs/articles/index.html b/docs/articles/index.html new file mode 100644 index 0000000..d160e97 --- /dev/null +++ b/docs/articles/index.html @@ -0,0 +1,159 @@ + + + + + + + + +Articles • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + +
+

All vignettes

+

+ +
+
Drawing PK curves with pmxTools
+
+
+
+
+
+ + +
+ + +
+

Site built with pkgdown 1.5.1.

+
+ +
+
+ + + + + + + + diff --git a/docs/articles/pk-curves.html b/docs/articles/pk-curves.html new file mode 100644 index 0000000..853294b --- /dev/null +++ b/docs/articles/pk-curves.html @@ -0,0 +1,750 @@ + + + + + + + +Drawing PK curves with pmxTools • pmxTools + + + + + + + + + + +
+
+ + + + +
+
+ + + + +
library(pmxTools)
+library(gridExtra)
+

pmxTools includes functions for constructing pharmacokinetic (PK) concentration-time curves for a range of common compartmental systems using PK parameters and microconstants. The underlying solutions are based on Julie Bertrand and France Mentré’s Mathematical Expressions of the Pharmacokinetic and Pharmacodynamic Models implemented in the Monolix software, published in 2008.

+

The options available are by necessity confined to one-, two- and three-compartmental linear models with intravenous bolus, infusion or oral dosing (the latter with zero- or first-order absorption). If more complex systems are needed, you are probably better off using an ODE-based simulation package such as RxODE or mrgSolve.

+
+

+Specifying model parameters

+

Models take dose, time and PK parameters as inputs. Names for some PK parameters, especially volumes and intercompartmental clearances, vary by model type.

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ParameterDescriptionUsed for
tTimeSingle-dose
tadTime after last doseSteady state
doseDoseAll
CLClearanceAll
+V, V1 +Central volume of distributionAll
V2First peripheral volume of distributionTwo- and three-compartment models
V3Second peripheral volume of distributionThree-compartment models
+Q, Q1, Q2 +Intercompartmental clearance (between V1 and V2)Two- and three-compartment models
Q3Intercompartmental clearance (between V1 and V3)Three-compartment models
tlagLag timeModels with lag time
tinfDuration of infusionModels with infusion
durDuration of zero-order absorptionModels with zero-order absorption
kaFirst-order absorption rateModels with first-order absorption
+
+
+

+One-compartment, single dose

+

Available functions include:

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModelVariantCall
1-compartmentSingle-dose, boluscalc_sd_1cmt_linear_bolus(t, dose, CL, V)
 Single-dose, infusioncalc_sd_1cmt_linear_infusion(t, dose, CL, V, tinf)
 Single-dose, zero-order oral absorptioncalc_sd_1cmt_linear_oral_0(t, dose, CL, V, dur)
 Single-dose, zero-order oral absorption with lag timecalc_sd_1cmt_linear_oral_0_lag(t, dose, CL, V, dur, tlag)
 Single-dose, first-order oral absorptioncalc_sd_1cmt_linear_oral_1(t, dose, CL, V, ka)
 Single-dose, first-order oral absorption with lag timecalc_sd_1cmt_linear_oral_1_lag(t, dose, CL, V, ka, tlag)
+

For example -

+
+library(ggplot2)
+
+t <- seq(0, 24, by=0.1)
+
+df1 <- data.frame(t = t,
+                  Cp1 = calc_sd_1cmt_linear_bolus(t = t, dose = 600, CL = 5, V = 20),
+                  Cp2 = calc_sd_1cmt_linear_infusion(t = t, dose = 600, CL = 5, V = 20, tinf=2),
+                  Cp3 = calc_sd_1cmt_linear_oral_0(t = t, dose = 600, CL = 5, V = 20, dur=2),
+                  Cp4 = calc_sd_1cmt_linear_oral_0_lag(t = t, dose = 600, CL = 5, V = 20, dur=2, tlag=1),
+                  Cp5 = calc_sd_1cmt_linear_oral_1(t = t, dose = 600, CL = 5, V = 20, ka=1.5),
+                  Cp6 = calc_sd_1cmt_linear_oral_1_lag(t = t, dose = 600, CL = 5, V = 20, ka=1.5, tlag=1))
+
+p1.1 <- ggplot(df1, aes(t, Cp1)) +
+  geom_line() +
+  labs(title="Bolus dose")
+
+p1.2 <- ggplot(df1, aes(t, Cp2)) +
+  geom_line() +
+  labs(title="Infusion")
+
+p1.3 <- ggplot(df1, aes(t, Cp3)) +
+  geom_line() +
+  labs(title="Zero-order oral")
+
+p1.4 <- ggplot(df1, aes(t, Cp4)) +
+  geom_line() +
+  labs(title="Zero-order oral with lag time")
+
+p1.5 <- ggplot(df1, aes(t, Cp5)) +
+  geom_line() +
+  labs(title="First-order oral")
+
+p1.6 <- ggplot(df1, aes(t, Cp6)) +
+  geom_line() +
+  labs(title="First-order oral with lag time")
+
+grid.arrange(p1.1, p1.2, p1.3, p1.4, p1.5, p1.6, nrow=3)
+

+
+
+

+One-compartment, steady state

+

Available functions include:

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModelVariantCall
1-compartmentSteady state, boluscalc_ss_1cmt_linear_bolus(tad, tau, dose, CL, V)
 Steady state, infusioncalc_ss_1cmt_linear_infusion(tad, tau, dose, CL, V, tinf)
 Steady state, zero-order oral absorptioncalc_ss_1cmt_linear_oral_0(tad, tau, dose, CL, V, dur)
 Steady state, zero-order oral absorption with lag timecalc_ss_1cmt_linear_oral_0_lag(tad, tau, dose, CL, V, dur, tlag)
 Steady state, first-order oral absorptioncalc_ss_1cmt_linear_oral_1(tad, tau, dose, CL, V, ka)
 Steady state, first-order oral absorption with lag timecalc_ss_1cmt_linear_oral_1_lag(tad, tau, dose, CL, V, ka, tlag)
+

For example -

+
+t <- seq(0, 24, by=0.1)
+
+df1ss <- data.frame(t = t,
+                  Cp1 = calc_ss_1cmt_linear_bolus(t = t, tau = 24, dose = 600, CL = 1, V = 20),
+                  Cp2 = calc_ss_1cmt_linear_infusion(t = t, tau = 24, dose = 600, CL = 1, V = 20, tinf=2),
+                  Cp3 = calc_ss_1cmt_linear_oral_0(t = t, tau = 24, dose = 600, CL = 1, V = 20, dur=2),
+                  Cp4 = calc_ss_1cmt_linear_oral_0_lag(t = t, tau = 24, dose = 600, CL = 1, V = 20, dur=2, tlag=1.5),
+                  Cp5 = calc_ss_1cmt_linear_oral_1(t = t, tau = 24, dose = 600, CL = 1, V = 20, ka=1.5),
+                  Cp6 = calc_ss_1cmt_linear_oral_1_lag(t = t, tau = 24, dose = 600, CL = 1, V = 20, ka=1.5, tlag=1.5))
+
+p1.1ss <- ggplot(df1ss, aes(t, Cp1)) +
+  geom_line() +
+  labs(title="Bolus dose")
+
+p1.2ss <- ggplot(df1ss, aes(t, Cp2)) +
+  geom_line() +
+  labs(title="Infusion")
+
+p1.3ss <- ggplot(df1ss, aes(t, Cp3)) +
+  geom_line() +
+  labs(title="Zero-order oral")
+
+p1.4ss <- ggplot(df1ss, aes(t, Cp4)) +
+  geom_line() +
+  labs(title="Zero-order oral with lag time")
+
+p1.5ss <- ggplot(df1ss, aes(t, Cp5)) +
+  geom_line() +
+  labs(title="First-order oral")
+
+p1.6ss <- ggplot(df1ss, aes(t, Cp6)) +
+  geom_line() +
+  labs(title="First-order oral with lag time")
+
+grid.arrange(p1.1ss, p1.2ss, p1.3ss, p1.4ss, p1.5ss, p1.6ss, nrow=3)
+

+
+
+

+Two-compartment, single dose

+

Available functions include:

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModelVariantCall
2-compartmentSingle-dose, boluscalc_sd_2cmt_linear_bolus(t, dose, CL, V1, V2, Q)
 Single-dose, infusioncalc_sd_2cmt_linear_infusion(t, dose, CL, V1, V2, Q, tinf)
 Single-dose, zero-order oral absorptioncalc_sd_2cmt_linear_oral_0(t, dose, CL, V1, V2, Q, dur)
 Single-dose, zero-order oral absorption with lag timecalc_sd_2cmt_linear_oral_0_lag(t, dose, CL, V1, V2, Q, dur, tlag)
 Single-dose, first-order oral absorptioncalc_sd_2cmt_linear_oral_1(t, dose, CL, V1, V2, Q, ka)
 Single-dose, first-order oral absorption with lag timecalc_sd_2cmt_linear_oral_1_lag(t, dose, CL, V1, V2, Q, ka, tlag)
+

For example -

+
+t <- seq(0, 24, by=0.1)
+
+df2 <- data.frame(t = t,
+                  Cp1 = calc_sd_2cmt_linear_bolus(t = t, dose = 600, CL = 5, V1 = 20, V2 = 80, Q = 1),
+                  Cp2 = calc_sd_2cmt_linear_infusion(t = t, dose = 600, CL = 5, V1 = 20, V2 = 80, Q = 1, tinf=2),
+                  Cp3 = calc_sd_2cmt_linear_oral_0(t = t, dose = 600, CL = 5, V1 = 20, V2 = 80, Q = 1, dur=2),
+                  Cp4 = calc_sd_2cmt_linear_oral_0_lag(t = t, dose = 600, CL = 5, V1 = 20, V2 = 80, Q = 1, dur=2, tlag=1),
+                  Cp5 = calc_sd_2cmt_linear_oral_1(t = t, dose = 600, CL = 5, V1 = 20, V2 = 80, Q = 1, ka=1.5),
+                  Cp6 = calc_sd_2cmt_linear_oral_1_lag(t = t, dose = 600, CL = 5, V1 = 20, V2 = 80, Q = 1, ka=1.5, tlag=1))
+
+p2.1 <- ggplot(df2, aes(t, Cp1)) +
+  geom_line() +
+  labs(title="Bolus dose")
+
+p2.2 <- ggplot(df2, aes(t, Cp2)) +
+  geom_line() +
+  labs(title="Infusion")
+
+p2.3 <- ggplot(df2, aes(t, Cp3)) +
+  geom_line() +
+  labs(title="Zero-order oral")
+
+p2.4 <- ggplot(df2, aes(t, Cp4)) +
+  geom_line() +
+  labs(title="Zero-order oral with lag time")
+
+p2.5 <- ggplot(df2, aes(t, Cp5)) +
+  geom_line() +
+  labs(title="First-order oral")
+
+p2.6 <- ggplot(df2, aes(t, Cp6)) +
+  geom_line() +
+  labs(title="First-order oral with lag time")
+
+grid.arrange(p2.1, p2.2, p2.3, p2.4, p2.5, p2.6, nrow=3)
+

+
+
+

+Two-compartment, steady state

+

Available functions include:

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModelVariantCall
2-compartmentSteady state, boluscalc_ss_2cmt_linear_bolus(tad, tau, dose, CL, V1, V2, Q)
 Steady state, infusioncalc_ss_2cmt_linear_infusion(tad, tau, dose, CL, V1, V2, Q, tinf)
 Steady state, zero-order oral absorptioncalc_ss_2cmt_linear_oral_0(tad, tau, dose, CL, V1, V2, Q, dur)
 Steady state, zero-order oral absorption with lag timecalc_ss_2cmt_linear_oral_0_lag(tad, tau, dose, CL, V1, V2, Q, dur, tlag)
 Steady state, first-order oral absorptioncalc_ss_2cmt_linear_oral_1(tad, tau, dose, CL, V1, V2, Q, ka)
 Steady state, first-order oral absorption with lag timecalc_ss_2cmt_linear_oral_1_lag(tad, tau, dose, CL, V1, V2, Q, ka, tlag)
+

For example -

+
+t <- seq(0, 24, by=0.1)
+
+df2ss <- data.frame(t = t,
+                  Cp1 = calc_ss_2cmt_linear_bolus(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 80, Q = 0.25),
+                  Cp2 = calc_ss_2cmt_linear_infusion(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 80, Q = 0.25, tinf=2),
+                  Cp3 = calc_ss_2cmt_linear_oral_0(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 80, Q = 0.25, dur=2),
+                  Cp4 = calc_ss_2cmt_linear_oral_0_lag(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 80, Q = 0.25, dur=2, tlag=1.5),
+                  Cp5 = calc_ss_2cmt_linear_oral_1(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 80, Q = 0.25, ka=1.5),
+                  Cp6 = calc_ss_2cmt_linear_oral_1_lag(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 80, Q = 0.25, ka=1.5, tlag=1.5))
+
+p2.1ss <- ggplot(df2ss, aes(t, Cp1)) +
+  geom_line() +
+  labs(title="Bolus dose")
+
+p2.2ss <- ggplot(df2ss, aes(t, Cp2)) +
+  geom_line() +
+  labs(title="Infusion")
+
+p2.3ss <- ggplot(df2ss, aes(t, Cp3)) +
+  geom_line() +
+  labs(title="Zero-order oral")
+
+p2.4ss <- ggplot(df2ss, aes(t, Cp4)) +
+  geom_line() +
+  labs(title="Zero-order oral with lag time")
+
+p2.5ss <- ggplot(df2ss, aes(t, Cp5)) +
+  geom_line() +
+  labs(title="First-order oral")
+
+p2.6ss <- ggplot(df2ss, aes(t, Cp6)) +
+  geom_line() +
+  labs(title="First-order oral with lag time")
+
+grid.arrange(p2.1ss, p2.2ss, p2.3ss, p2.4ss, p2.5ss, p2.6ss, nrow=3)
+

+
+
+

+Three-compartment, single dose

+

Available functions include:

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModelVariantCall
3-compartmentSingle-dose, boluscalc_sd_3cmt_linear_bolus(t, dose, CL, V1, V2, V3, Q2, Q3)
 Single-dose, infusioncalc_sd_3cmt_linear_infusion(t, dose, CL, V1, V2, V3, Q2, Q3, tinf)
 Single-dose, zero-order oral absorptioncalc_sd_3cmt_linear_oral_0(t, dose, CL, V1, V2, V3, Q2, Q3, dur)
 Single-dose, zero-order oral absorption with lag timecalc_sd_3cmt_linear_oral_0_lag(t, dose, CL, V1, V2, V3, Q2, Q3, dur, tlag)
 Single-dose, first-order oral absorptioncalc_sd_3cmt_linear_oral_1(t, dose, CL, V1, V2, V3, Q2, Q3, ka)
 Single-dose, first-order oral absorption with lag timecalc_sd_3cmt_linear_oral_1_lag(t, dose, CL, V1, V2, V3, Q2, Q3, ka, tlag)
+

For example -

+
+t <- seq(0, 24, by=0.1)
+
+df3 <- data.frame(t = t,
+                  Cp1 = calc_sd_3cmt_linear_bolus(t = t, CL = 3.5, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, dose = 600),
+                  Cp2 = calc_sd_3cmt_linear_infusion(t = t, CL = 3.5, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, dose = 600, tinf=2),
+                  Cp3 = calc_sd_3cmt_linear_oral_0(t = t, CL = 3.5, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, dose = 600, dur=2),
+                  Cp4 = calc_sd_3cmt_linear_oral_0_lag(t = t, CL = 3.5, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, dose = 600, dur=2, tlag=1),
+                  Cp5 = calc_sd_3cmt_linear_oral_1(t = t, CL = 3.5, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, dose = 600, ka=1.5),
+                  Cp6 = calc_sd_3cmt_linear_oral_1_lag(t = t, CL = 3.5, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, dose = 600, ka=1.5, tlag=1))
+
+p3.1 <- ggplot(df3, aes(t, Cp1)) +
+  geom_line() +
+  labs(title="Bolus dose")
+
+p3.2 <- ggplot(df3, aes(t, Cp2)) +
+  geom_line() +
+  labs(title="Infusion")
+
+p3.3 <- ggplot(df3, aes(t, Cp3)) +
+  geom_line() +
+  labs(title="Zero-order oral")
+
+p3.4 <- ggplot(df3, aes(t, Cp4)) +
+  geom_line() +
+  labs(title="Zero-order oral with lag time")
+
+p3.5 <- ggplot(df3, aes(t, Cp5)) +
+  geom_line() +
+  labs(title="First-order oral")
+
+p3.6 <- ggplot(df3, aes(t, Cp6)) +
+  geom_line() +
+  labs(title="First-order oral with lag time")
+
+grid.arrange(p3.1, p3.2, p3.3, p3.4, p3.5, p3.6, nrow=3)
+

+
+
+

+Three-compartment, steady state

+

Available functions include:

+ +++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ModelVariantCall
3-compartmentSingle-dose, boluscalc_ss_3cmt_linear_bolus(tad, tau, dose, CL, V1, V2, V3, Q2, Q3)
 Single-dose, infusioncalc_ss_3cmt_linear_infusion(tad, tau, dose, CL, V1, V2, V3, Q2, Q3, tinf)
 Single-dose, zero-order oral absorptioncalc_ss_3cmt_linear_oral_0(tad, tau, dose, CL, V1, V2, V3, Q2, Q3, dur)
 Single-dose, zero-order oral absorption with lag timecalc_ss_3cmt_linear_oral_0_lag(tad, tau, dose, CL, V1, V2, V3, Q2, Q3, dur, tlag)
 Single-dose, first-order oral absorptioncalc_ss_3cmt_linear_oral_1(tad, tau, dose, CL, V1, V2, V3, Q2, Q3, ka)
 Single-dose, first-order oral absorption with lag timecalc_ss_3cmt_linear_oral_1_lag(tad, tau, dose, CL, V1, V2, V3, Q2, Q3, ka, tlag)
+

For example -

+
+t <- seq(0, 24, by=0.1)
+
+df3ss <- data.frame(t = t,
+                  Cp1 = calc_ss_3cmt_linear_bolus(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05),
+                  Cp2 = calc_ss_3cmt_linear_infusion(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, tinf=2),
+                  Cp3 = calc_ss_3cmt_linear_oral_0(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, dur=2),
+                  Cp4 = calc_ss_3cmt_linear_oral_0_lag(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, dur=2, tlag=1.5),
+                  Cp5 = calc_ss_3cmt_linear_oral_1(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, ka=1.5),
+                  Cp6 = calc_ss_3cmt_linear_oral_1_lag(tad = t, tau = 24, dose = 600, CL = 1, V1 = 20, V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, ka=1.5, tlag=1.5))
+
+p3.1ss <- ggplot(df3ss, aes(t, Cp1)) +
+  geom_line() +
+  labs(title="Bolus dose")
+
+p3.2ss <- ggplot(df3ss, aes(t, Cp2)) +
+  geom_line() +
+  labs(title="Infusion")
+
+p3.3ss <- ggplot(df3ss, aes(t, Cp3)) +
+  geom_line() +
+  labs(title="Zero-order oral")
+
+p3.4ss <- ggplot(df3ss, aes(t, Cp4)) +
+  geom_line() +
+  labs(title="Zero-order oral with lag time")
+
+p3.5ss <- ggplot(df3ss, aes(t, Cp5)) +
+  geom_line() +
+  labs(title="First-order oral")
+
+p3.6ss <- ggplot(df3ss, aes(t, Cp6)) +
+  geom_line() +
+  labs(title="First-order oral with lag time")
+
+grid.arrange(p3.1ss, p3.2ss, p3.3ss, p3.4ss, p3.5ss, p3.6ss, nrow=3)
+

+
+
+

+Multiple dosing

+

Being able to display single-dose and steady state curves for various commonly-seen systems is all very well but it is often more useful to show a concentration-time curve which demonstrates accumulation and time to steady state. The pk_curve() function makes this straightforward by using the principle of superposition.

+
+dfcurve1 <- pk_curve(t=seq(0,168,by=0.1), model="3cmt_oral", ii=24, addl=12,
+                     params=list(CL=1.5, V1=25, V2=2, V3=5, Q2=0.5, Q3=0.25, ka=1))
+
+ggplot(dfcurve1, aes(t, cp)) +
+  geom_line()
+

+
+
+ + + +
+ + + +
+ +
+

Site built with pkgdown 1.5.1.

+
+ +
+
+ + + + + + diff --git a/docs/articles/pk-curves_files/figure-html/1cptdemo-1.png b/docs/articles/pk-curves_files/figure-html/1cptdemo-1.png new file mode 100644 index 0000000000000000000000000000000000000000..9d008f0169525446b1e587a7cf70bc276dfbae56 GIT binary patch literal 52713 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 bG39>Hr6h@;Xeas${M)Z~c=uD);~xJPC4*lD literal 0 HcmV?d00001 diff --git a/docs/articles/pk-curves_files/figure-html/2cptssdemo-1.png b/docs/articles/pk-curves_files/figure-html/2cptssdemo-1.png new file mode 100644 index 0000000000000000000000000000000000000000..22b4754194838e42d2bceded731117aba10ab3a1 GIT binary patch literal 54172 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 E030I8TmS$7 literal 0 HcmV?d00001 diff --git a/docs/articles/pk-curves_files/figure-html/3cptssdemo-1.png b/docs/articles/pk-curves_files/figure-html/3cptssdemo-1.png new file mode 100644 index 0000000000000000000000000000000000000000..f00c6c6fef123689159adeba3e5121948cdb6599 GIT binary patch literal 54806 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 literal 0 HcmV?d00001 diff --git a/docs/articles/pk-curves_files/figure-html/pkcurve1-1.png b/docs/articles/pk-curves_files/figure-html/pkcurve1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..4cc144daeacbc9b605a647a0f20d63c2c2bbdf78 GIT binary patch literal 15957 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 z

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 literal 0 HcmV?d00001 diff --git a/docs/authors.html b/docs/authors.html new file mode 100644 index 0000000..7798383 --- /dev/null +++ b/docs/authors.html @@ -0,0 +1,187 @@ + + + + + + + + +Authors • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + +
+ +
+
+ + +
    +
  • +

    Justin Wilkins. Author, maintainer. +

    +
  • +
  • +

    Bill Denney. Author. +

    +
  • +
  • +

    Rik Schoemaker. Author. +

    +
  • +
  • +

    Leonid Gibiansky. Contributor. +

    +
  • +
  • +

    Andrew Hooker. Contributor. +

    +
  • +
  • +

    E. Niclas Jonsson. Contributor. +

    +
  • +
  • +

    Mats O. Karlsson. Contributor. +

    +
  • +
  • +

    John Johnson. Contributor. +

    +
  • +
+ +
+ +
+ + + +
+ + +
+

Site built with pkgdown 1.5.1.

+
+ +
+
+ + + + + + + + diff --git a/docs/bootstrap-toc.css b/docs/bootstrap-toc.css new file mode 100644 index 0000000..5a85941 --- /dev/null +++ b/docs/bootstrap-toc.css @@ -0,0 +1,60 @@ +/*! + * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/) + * Copyright 2015 Aidan Feldman + * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ + +/* modified from https://github.com/twbs/bootstrap/blob/94b4076dd2efba9af71f0b18d4ee4b163aa9e0dd/docs/assets/css/src/docs.css#L548-L601 */ + +/* All levels of nav */ +nav[data-toggle='toc'] .nav > li > a { + display: block; + padding: 4px 20px; + font-size: 13px; + font-weight: 500; + color: #767676; +} +nav[data-toggle='toc'] .nav > li > a:hover, +nav[data-toggle='toc'] .nav > li > a:focus { + padding-left: 19px; + color: #563d7c; + text-decoration: none; + background-color: transparent; + border-left: 1px solid #563d7c; +} +nav[data-toggle='toc'] .nav > .active > a, +nav[data-toggle='toc'] .nav > .active:hover > a, +nav[data-toggle='toc'] .nav > .active:focus > a { + padding-left: 18px; + font-weight: bold; + color: #563d7c; + background-color: transparent; + border-left: 2px solid #563d7c; +} + +/* Nav: second level (shown on .active) */ +nav[data-toggle='toc'] .nav .nav { + display: none; /* Hide by default, but at >768px, show it */ + padding-bottom: 10px; +} +nav[data-toggle='toc'] .nav .nav > li > a { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 30px; + font-size: 12px; + font-weight: normal; +} +nav[data-toggle='toc'] .nav .nav > li > a:hover, +nav[data-toggle='toc'] .nav .nav > li > a:focus { + padding-left: 29px; +} +nav[data-toggle='toc'] .nav .nav > .active > a, +nav[data-toggle='toc'] .nav .nav > .active:hover > a, +nav[data-toggle='toc'] .nav .nav > .active:focus > a { + padding-left: 28px; + font-weight: 500; +} + +/* from https://github.com/twbs/bootstrap/blob/e38f066d8c203c3e032da0ff23cd2d6098ee2dd6/docs/assets/css/src/docs.css#L631-L634 */ +nav[data-toggle='toc'] .nav > .active > ul { + display: block; +} diff --git a/docs/bootstrap-toc.js b/docs/bootstrap-toc.js new file mode 100644 index 0000000..1cdd573 --- /dev/null +++ b/docs/bootstrap-toc.js @@ -0,0 +1,159 @@ +/*! + * Bootstrap Table of Contents v0.4.1 (http://afeld.github.io/bootstrap-toc/) + * Copyright 2015 Aidan Feldman + * Licensed under MIT (https://github.com/afeld/bootstrap-toc/blob/gh-pages/LICENSE.md) */ +(function() { + 'use strict'; + + window.Toc = { + helpers: { + // return all matching elements in the set, or their descendants + findOrFilter: function($el, selector) { + // http://danielnouri.org/notes/2011/03/14/a-jquery-find-that-also-finds-the-root-element/ + // http://stackoverflow.com/a/12731439/358804 + var $descendants = $el.find(selector); + return $el.filter(selector).add($descendants).filter(':not([data-toc-skip])'); + }, + + generateUniqueIdBase: function(el) { + var text = $(el).text(); + var anchor = text.trim().toLowerCase().replace(/[^A-Za-z0-9]+/g, '-'); + return anchor || el.tagName.toLowerCase(); + }, + + generateUniqueId: function(el) { + var anchorBase = this.generateUniqueIdBase(el); + for (var i = 0; ; i++) { + var anchor = anchorBase; + if (i > 0) { + // add suffix + anchor += '-' + i; + } + // check if ID already exists + if (!document.getElementById(anchor)) { + return anchor; + } + } + }, + + generateAnchor: function(el) { + if (el.id) { + return el.id; + } else { + var anchor = this.generateUniqueId(el); + el.id = anchor; + return anchor; + } + }, + + createNavList: function() { + return $(''); + }, + + createChildNavList: function($parent) { + var $childList = this.createNavList(); + $parent.append($childList); + return $childList; + }, + + generateNavEl: function(anchor, text) { + var $a = $(''); + $a.attr('href', '#' + anchor); + $a.text(text); + var $li = $('
  • '); + $li.append($a); + return $li; + }, + + generateNavItem: function(headingEl) { + var anchor = this.generateAnchor(headingEl); + var $heading = $(headingEl); + var text = $heading.data('toc-text') || $heading.text(); + return this.generateNavEl(anchor, text); + }, + + // Find the first heading level (`

    `, then `

    `, etc.) that has more than one element. Defaults to 1 (for `

    `). + getTopLevel: function($scope) { + for (var i = 1; i <= 6; i++) { + var $headings = this.findOrFilter($scope, 'h' + i); + if ($headings.length > 1) { + return i; + } + } + + return 1; + }, + + // returns the elements for the top level, and the next below it + getHeadings: function($scope, topLevel) { + var topSelector = 'h' + topLevel; + + var secondaryLevel = topLevel + 1; + var secondarySelector = 'h' + secondaryLevel; + + return this.findOrFilter($scope, topSelector + ',' + secondarySelector); + }, + + getNavLevel: function(el) { + return parseInt(el.tagName.charAt(1), 10); + }, + + populateNav: function($topContext, topLevel, $headings) { + var $context = $topContext; + var $prevNav; + + var helpers = this; + $headings.each(function(i, el) { + var $newNav = helpers.generateNavItem(el); + var navLevel = helpers.getNavLevel(el); + + // determine the proper $context + if (navLevel === topLevel) { + // use top level + $context = $topContext; + } else if ($prevNav && $context === $topContext) { + // create a new level of the tree and switch to it + $context = helpers.createChildNavList($prevNav); + } // else use the current $context + + $context.append($newNav); + + $prevNav = $newNav; + }); + }, + + parseOps: function(arg) { + var opts; + if (arg.jquery) { + opts = { + $nav: arg + }; + } else { + opts = arg; + } + opts.$scope = opts.$scope || $(document.body); + return opts; + } + }, + + // accepts a jQuery object, or an options object + init: function(opts) { + opts = this.helpers.parseOps(opts); + + // ensure that the data attribute is in place for styling + opts.$nav.attr('data-toggle', 'toc'); + + var $topContext = this.helpers.createChildNavList(opts.$nav); + var topLevel = this.helpers.getTopLevel(opts.$scope); + var $headings = this.helpers.getHeadings(opts.$scope, topLevel); + this.helpers.populateNav($topContext, topLevel, $headings); + } + }; + + $(function() { + $('nav[data-toggle="toc"]').each(function(i, el) { + var $nav = $(el); + Toc.init($nav); + }); + }); +})(); diff --git a/docs/docsearch.css b/docs/docsearch.css new file mode 100644 index 0000000..e5f1fe1 --- /dev/null +++ b/docs/docsearch.css @@ -0,0 +1,148 @@ +/* Docsearch -------------------------------------------------------------- */ +/* + Source: https://github.com/algolia/docsearch/ + License: MIT +*/ + +.algolia-autocomplete { + display: block; + -webkit-box-flex: 1; + -ms-flex: 1; + flex: 1 +} + +.algolia-autocomplete .ds-dropdown-menu { + width: 100%; + min-width: none; + max-width: none; + padding: .75rem 0; + background-color: #fff; + background-clip: padding-box; + border: 1px solid rgba(0, 0, 0, .1); + box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .175); +} + +@media (min-width:768px) { + .algolia-autocomplete .ds-dropdown-menu { + width: 175% + } +} + +.algolia-autocomplete .ds-dropdown-menu::before { + display: none +} + +.algolia-autocomplete .ds-dropdown-menu [class^=ds-dataset-] { + padding: 0; + background-color: rgb(255,255,255); + border: 0; + max-height: 80vh; +} + +.algolia-autocomplete .ds-dropdown-menu .ds-suggestions { + margin-top: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion { + padding: 0; + overflow: visible +} + +.algolia-autocomplete .algolia-docsearch-suggestion--category-header { + padding: .125rem 1rem; + margin-top: 0; + font-size: 1.3em; + font-weight: 500; + color: #00008B; + border-bottom: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--wrapper { + float: none; + padding-top: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--subcategory-column { + float: none; + width: auto; + padding: 0; + text-align: left +} + +.algolia-autocomplete .algolia-docsearch-suggestion--content { + float: none; + width: auto; + padding: 0 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--content::before { + display: none +} + +.algolia-autocomplete .ds-suggestion:not(:first-child) .algolia-docsearch-suggestion--category-header { + padding-top: .75rem; + margin-top: .75rem; + border-top: 1px solid rgba(0, 0, 0, .1) +} + +.algolia-autocomplete .ds-suggestion .algolia-docsearch-suggestion--subcategory-column { + display: block; + padding: .1rem 1rem; + margin-bottom: 0.1; + font-size: 1.0em; + font-weight: 400 + /* display: none */ +} + +.algolia-autocomplete .algolia-docsearch-suggestion--title { + display: block; + padding: .25rem 1rem; + margin-bottom: 0; + font-size: 0.9em; + font-weight: 400 +} + +.algolia-autocomplete .algolia-docsearch-suggestion--text { + padding: 0 1rem .5rem; + margin-top: -.25rem; + font-size: 0.8em; + font-weight: 400; + line-height: 1.25 +} + +.algolia-autocomplete .algolia-docsearch-footer { + width: 110px; + height: 20px; + z-index: 3; + margin-top: 10.66667px; + float: right; + font-size: 0; + line-height: 0; +} + +.algolia-autocomplete .algolia-docsearch-footer--logo { + background-image: url("data:image/svg+xml;utf8,"); + background-repeat: no-repeat; + background-position: 50%; + background-size: 100%; + overflow: hidden; + text-indent: -9000px; + width: 100%; + height: 100%; + display: block; + transform: translate(-8px); +} + +.algolia-autocomplete .algolia-docsearch-suggestion--highlight { + color: #FF8C00; + background: rgba(232, 189, 54, 0.1) +} + + +.algolia-autocomplete .algolia-docsearch-suggestion--text .algolia-docsearch-suggestion--highlight { + box-shadow: inset 0 -2px 0 0 rgba(105, 105, 105, .5) +} + +.algolia-autocomplete .ds-suggestion.ds-cursor .algolia-docsearch-suggestion--content { + background-color: rgba(192, 192, 192, .15) +} diff --git a/docs/docsearch.js b/docs/docsearch.js new file mode 100644 index 0000000..b35504c --- /dev/null +++ b/docs/docsearch.js @@ -0,0 +1,85 @@ +$(function() { + + // register a handler to move the focus to the search bar + // upon pressing shift + "/" (i.e. "?") + $(document).on('keydown', function(e) { + if (e.shiftKey && e.keyCode == 191) { + e.preventDefault(); + $("#search-input").focus(); + } + }); + + $(document).ready(function() { + // do keyword highlighting + /* modified from https://jsfiddle.net/julmot/bL6bb5oo/ */ + var mark = function() { + + var referrer = document.URL ; + var paramKey = "q" ; + + if (referrer.indexOf("?") !== -1) { + var qs = referrer.substr(referrer.indexOf('?') + 1); + var qs_noanchor = qs.split('#')[0]; + var qsa = qs_noanchor.split('&'); + var keyword = ""; + + for (var i = 0; i < qsa.length; i++) { + var currentParam = qsa[i].split('='); + + if (currentParam.length !== 2) { + continue; + } + + if (currentParam[0] == paramKey) { + keyword = decodeURIComponent(currentParam[1].replace(/\+/g, "%20")); + } + } + + if (keyword !== "") { + $(".contents").unmark({ + done: function() { + $(".contents").mark(keyword); + } + }); + } + } + }; + + mark(); + }); +}); + +/* Search term highlighting ------------------------------*/ + +function matchedWords(hit) { + var words = []; + + var hierarchy = hit._highlightResult.hierarchy; + // loop to fetch from lvl0, lvl1, etc. + for (var idx in hierarchy) { + words = words.concat(hierarchy[idx].matchedWords); + } + + var content = hit._highlightResult.content; + if (content) { + words = words.concat(content.matchedWords); + } + + // return unique words + var words_uniq = [...new Set(words)]; + return words_uniq; +} + +function updateHitURL(hit) { + + var words = matchedWords(hit); + var url = ""; + + if (hit.anchor) { + url = hit.url_without_anchor + '?q=' + escape(words.join(" ")) + '#' + hit.anchor; + } else { + url = hit.url + '?q=' + escape(words.join(" ")); + } + + return url; +} diff --git a/docs/index.html b/docs/index.html new file mode 100644 index 0000000..9aa80e4 --- /dev/null +++ b/docs/index.html @@ -0,0 +1,149 @@ + + + + + + + +Pharmacometric and Pharmacokinetic Toolkit • pmxTools + + + + + + + + + + +
    +
    + + + + +
    +
    +
    + +

    Pharmacometric Tools for Modeling & Simulation

    +

    Build Status contributions welcome

    + +

    Developed by Justin Wilkins, Bill Denney and Rik Schoemaker, with contributions from a host of others.

    +

    Pharmacometric tools for common data analytical tasks; closed-form solutions for calculating concentrations at given times after dosing based on compartmental PK models (1-compartment, 2-compartment and 3-compartment, covering infusions, zero- and first-order absorption, and lag times, after single doses and at steady state, per Bertrand & Mentre (2008) http://lixoft.com/wp-content/uploads/2016/03/PKPDlibrary.pdf); parametric simulation from NONMEM-generated parameter estimates and other output; and parsing, tabulating and plotting results generated by Perl-speaks-NONMEM (PsN).

    +

    To install:

    +
    devtools::install_github("kestrel99/pmxTools")
    +

    or download directly from CRAN.

    +
    +
    + + +
    + + +
    + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + diff --git a/docs/link.svg b/docs/link.svg new file mode 100644 index 0000000..88ad827 --- /dev/null +++ b/docs/link.svg @@ -0,0 +1,12 @@ + + + + + + diff --git a/docs/news/index.html b/docs/news/index.html new file mode 100644 index 0000000..9258c6b --- /dev/null +++ b/docs/news/index.html @@ -0,0 +1,181 @@ + + + + + + + + +Changelog • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    +pmxTools 1.21 Unreleased +

    + +
    +
    +

    +pmxTools 1.20 Unreleased +

    +
      +
    • Rewrote plot_scm function to produce tree diagrams via DiagrammeR.

    • +
    • Fixed a rare bug in get_auc in which measurements from different individuals could be erroneously mixed.

    • +
    • Amended (or added) read_nm(), read_nm_all(), read_nmext(), read_nmcov(), read_nmtables() functions to allow reading of multiple NONMEM estimation steps.

    • +
    • Clarified documentation for calc_derived().

    • +
    • Now using xml2 to read NONMEM-generated XML files.

    • +
    • Fixed partial argument match warnings encountered during tests.

    • +
    • Add function for calculting geometric CV.

    • +
    +
    +
    + + + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/pkgdown.css b/docs/pkgdown.css new file mode 100644 index 0000000..c01e592 --- /dev/null +++ b/docs/pkgdown.css @@ -0,0 +1,367 @@ +/* Sticky footer */ + +/** + * Basic idea: https://philipwalton.github.io/solved-by-flexbox/demos/sticky-footer/ + * Details: https://github.com/philipwalton/solved-by-flexbox/blob/master/assets/css/components/site.css + * + * .Site -> body > .container + * .Site-content -> body > .container .row + * .footer -> footer + * + * Key idea seems to be to ensure that .container and __all its parents__ + * have height set to 100% + * + */ + +html, body { + height: 100%; +} + +body { + position: relative; +} + +body > .container { + display: flex; + height: 100%; + flex-direction: column; +} + +body > .container .row { + flex: 1 0 auto; +} + +footer { + margin-top: 45px; + padding: 35px 0 36px; + border-top: 1px solid #e5e5e5; + color: #666; + display: flex; + flex-shrink: 0; +} +footer p { + margin-bottom: 0; +} +footer div { + flex: 1; +} +footer .pkgdown { + text-align: right; +} +footer p { + margin-bottom: 0; +} + +img.icon { + float: right; +} + +img { + max-width: 100%; +} + +/* Fix bug in bootstrap (only seen in firefox) */ +summary { + display: list-item; +} + +/* Typographic tweaking ---------------------------------*/ + +.contents .page-header { + margin-top: calc(-60px + 1em); +} + +dd { + margin-left: 3em; +} + +/* Section anchors ---------------------------------*/ + +a.anchor { + margin-left: -30px; + display:inline-block; + width: 30px; + height: 30px; + visibility: hidden; + + background-image: url(./link.svg); + background-repeat: no-repeat; + background-size: 20px 20px; + background-position: center center; +} + +.hasAnchor:hover a.anchor { + visibility: visible; +} + +@media (max-width: 767px) { + .hasAnchor:hover a.anchor { + visibility: hidden; + } +} + + +/* Fixes for fixed navbar --------------------------*/ + +.contents h1, .contents h2, .contents h3, .contents h4 { + padding-top: 60px; + margin-top: -40px; +} + +/* Navbar submenu --------------------------*/ + +.dropdown-submenu { + position: relative; +} + +.dropdown-submenu>.dropdown-menu { + top: 0; + left: 100%; + margin-top: -6px; + margin-left: -1px; + border-radius: 0 6px 6px 6px; +} + +.dropdown-submenu:hover>.dropdown-menu { + display: block; +} + +.dropdown-submenu>a:after { + display: block; + content: " "; + float: right; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; + border-width: 5px 0 5px 5px; + border-left-color: #cccccc; + margin-top: 5px; + margin-right: -10px; +} + +.dropdown-submenu:hover>a:after { + border-left-color: #ffffff; +} + +.dropdown-submenu.pull-left { + float: none; +} + +.dropdown-submenu.pull-left>.dropdown-menu { + left: -100%; + margin-left: 10px; + border-radius: 6px 0 6px 6px; +} + +/* Sidebar --------------------------*/ + +#pkgdown-sidebar { + margin-top: 30px; + position: -webkit-sticky; + position: sticky; + top: 70px; +} + +#pkgdown-sidebar h2 { + font-size: 1.5em; + margin-top: 1em; +} + +#pkgdown-sidebar h2:first-child { + margin-top: 0; +} + +#pkgdown-sidebar .list-unstyled li { + margin-bottom: 0.5em; +} + +/* bootstrap-toc tweaks ------------------------------------------------------*/ + +/* All levels of nav */ + +nav[data-toggle='toc'] .nav > li > a { + padding: 4px 20px 4px 6px; + font-size: 1.5rem; + font-weight: 400; + color: inherit; +} + +nav[data-toggle='toc'] .nav > li > a:hover, +nav[data-toggle='toc'] .nav > li > a:focus { + padding-left: 5px; + color: inherit; + border-left: 1px solid #878787; +} + +nav[data-toggle='toc'] .nav > .active > a, +nav[data-toggle='toc'] .nav > .active:hover > a, +nav[data-toggle='toc'] .nav > .active:focus > a { + padding-left: 5px; + font-size: 1.5rem; + font-weight: 400; + color: inherit; + border-left: 2px solid #878787; +} + +/* Nav: second level (shown on .active) */ + +nav[data-toggle='toc'] .nav .nav { + display: none; /* Hide by default, but at >768px, show it */ + padding-bottom: 10px; +} + +nav[data-toggle='toc'] .nav .nav > li > a { + padding-left: 16px; + font-size: 1.35rem; +} + +nav[data-toggle='toc'] .nav .nav > li > a:hover, +nav[data-toggle='toc'] .nav .nav > li > a:focus { + padding-left: 15px; +} + +nav[data-toggle='toc'] .nav .nav > .active > a, +nav[data-toggle='toc'] .nav .nav > .active:hover > a, +nav[data-toggle='toc'] .nav .nav > .active:focus > a { + padding-left: 15px; + font-weight: 500; + font-size: 1.35rem; +} + +/* orcid ------------------------------------------------------------------- */ + +.orcid { + font-size: 16px; + color: #A6CE39; + /* margins are required by official ORCID trademark and display guidelines */ + margin-left:4px; + margin-right:4px; + vertical-align: middle; +} + +/* Reference index & topics ----------------------------------------------- */ + +.ref-index th {font-weight: normal;} + +.ref-index td {vertical-align: top;} +.ref-index .icon {width: 40px;} +.ref-index .alias {width: 40%;} +.ref-index-icons .alias {width: calc(40% - 40px);} +.ref-index .title {width: 60%;} + +.ref-arguments th {text-align: right; padding-right: 10px;} +.ref-arguments th, .ref-arguments td {vertical-align: top;} +.ref-arguments .name {width: 20%;} +.ref-arguments .desc {width: 80%;} + +/* Nice scrolling for wide elements --------------------------------------- */ + +table { + display: block; + overflow: auto; +} + +/* Syntax highlighting ---------------------------------------------------- */ + +pre { + word-wrap: normal; + word-break: normal; + border: 1px solid #eee; +} + +pre, code { + background-color: #f8f8f8; + color: #333; +} + +pre code { + overflow: auto; + word-wrap: normal; + white-space: pre; +} + +pre .img { + margin: 5px 0; +} + +pre .img img { + background-color: #fff; + display: block; + height: auto; +} + +code a, pre a { + color: #375f84; +} + +a.sourceLine:hover { + text-decoration: none; +} + +.fl {color: #1514b5;} +.fu {color: #000000;} /* function */ +.ch,.st {color: #036a07;} /* string */ +.kw {color: #264D66;} /* keyword */ +.co {color: #888888;} /* comment */ + +.message { color: black; font-weight: bolder;} +.error { color: orange; font-weight: bolder;} +.warning { color: #6A0366; font-weight: bolder;} + +/* Clipboard --------------------------*/ + +.hasCopyButton { + position: relative; +} + +.btn-copy-ex { + position: absolute; + right: 0; + top: 0; + visibility: hidden; +} + +.hasCopyButton:hover button.btn-copy-ex { + visibility: visible; +} + +/* headroom.js ------------------------ */ + +.headroom { + will-change: transform; + transition: transform 200ms linear; +} +.headroom--pinned { + transform: translateY(0%); +} +.headroom--unpinned { + transform: translateY(-100%); +} + +/* mark.js ----------------------------*/ + +mark { + background-color: rgba(255, 255, 51, 0.5); + border-bottom: 2px solid rgba(255, 153, 51, 0.3); + padding: 1px; +} + +/* vertical spacing after htmlwidgets */ +.html-widget { + margin-bottom: 10px; +} + +/* fontawesome ------------------------ */ + +.fab { + font-family: "Font Awesome 5 Brands" !important; +} + +/* don't display links in code chunks when printing */ +/* source: https://stackoverflow.com/a/10781533 */ +@media print { + code a:link:after, code a:visited:after { + content: ""; + } +} diff --git a/docs/pkgdown.js b/docs/pkgdown.js new file mode 100644 index 0000000..7e7048f --- /dev/null +++ b/docs/pkgdown.js @@ -0,0 +1,108 @@ +/* http://gregfranko.com/blog/jquery-best-practices/ */ +(function($) { + $(function() { + + $('.navbar-fixed-top').headroom(); + + $('body').css('padding-top', $('.navbar').height() + 10); + $(window).resize(function(){ + $('body').css('padding-top', $('.navbar').height() + 10); + }); + + $('[data-toggle="tooltip"]').tooltip(); + + var cur_path = paths(location.pathname); + var links = $("#navbar ul li a"); + var max_length = -1; + var pos = -1; + for (var i = 0; i < links.length; i++) { + if (links[i].getAttribute("href") === "#") + continue; + // Ignore external links + if (links[i].host !== location.host) + continue; + + var nav_path = paths(links[i].pathname); + + var length = prefix_length(nav_path, cur_path); + if (length > max_length) { + max_length = length; + pos = i; + } + } + + // Add class to parent
  • , and enclosing
  • if in dropdown + if (pos >= 0) { + var menu_anchor = $(links[pos]); + menu_anchor.parent().addClass("active"); + menu_anchor.closest("li.dropdown").addClass("active"); + } + }); + + function paths(pathname) { + var pieces = pathname.split("/"); + pieces.shift(); // always starts with / + + var end = pieces[pieces.length - 1]; + if (end === "index.html" || end === "") + pieces.pop(); + return(pieces); + } + + // Returns -1 if not found + function prefix_length(needle, haystack) { + if (needle.length > haystack.length) + return(-1); + + // Special case for length-0 haystack, since for loop won't run + if (haystack.length === 0) { + return(needle.length === 0 ? 0 : -1); + } + + for (var i = 0; i < haystack.length; i++) { + if (needle[i] != haystack[i]) + return(i); + } + + return(haystack.length); + } + + /* Clipboard --------------------------*/ + + function changeTooltipMessage(element, msg) { + var tooltipOriginalTitle=element.getAttribute('data-original-title'); + element.setAttribute('data-original-title', msg); + $(element).tooltip('show'); + element.setAttribute('data-original-title', tooltipOriginalTitle); + } + + if(ClipboardJS.isSupported()) { + $(document).ready(function() { + var copyButton = ""; + + $(".examples, div.sourceCode").addClass("hasCopyButton"); + + // Insert copy buttons: + $(copyButton).prependTo(".hasCopyButton"); + + // Initialize tooltips: + $('.btn-copy-ex').tooltip({container: 'body'}); + + // Initialize clipboard: + var clipboardBtnCopies = new ClipboardJS('[data-clipboard-copy]', { + text: function(trigger) { + return trigger.parentNode.textContent; + } + }); + + clipboardBtnCopies.on('success', function(e) { + changeTooltipMessage(e.trigger, 'Copied!'); + e.clearSelection(); + }); + + clipboardBtnCopies.on('error', function() { + changeTooltipMessage(e.trigger,'Press Ctrl+C or Command+C to copy'); + }); + }); + } +})(window.jQuery || window.$) diff --git a/docs/pkgdown.yml b/docs/pkgdown.yml new file mode 100644 index 0000000..c442d57 --- /dev/null +++ b/docs/pkgdown.yml @@ -0,0 +1,7 @@ +pandoc: 2.7.3 +pkgdown: 1.5.1 +pkgdown_sha: ~ +articles: + pk-curves: pk-curves.html +last_built: 2020-08-25T08:03Z + diff --git a/docs/reference/calc_derived.html b/docs/reference/calc_derived.html new file mode 100644 index 0000000..6da60ae --- /dev/null +++ b/docs/reference/calc_derived.html @@ -0,0 +1,308 @@ + + + + + + + + +Calculate derived pharmacokinetic parameters for a 1-, 2-, or 3-compartment +linear model. — calc_derived • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Calculate derived pharmacokinetic parameters for a 1-, 2-, or 3-compartment +linear model.

    +
    + +
    calc_derived(..., verbose = FALSE)
    +
    +calc_derived_1cpt(
    +  CL,
    +  V = NULL,
    +  V1 = NULL,
    +  ka = NULL,
    +  tlag = NULL,
    +  type = "all",
    +  sigdig = 5
    +)
    +
    +calc_derived_2cpt(
    +  CL,
    +  V1 = NULL,
    +  V2,
    +  Q2 = NULL,
    +  V = NULL,
    +  Q = NULL,
    +  ka = NULL,
    +  tlag = NULL,
    +  type = "all",
    +  sigdig = 5
    +)
    +
    +calc_derived_3cpt(
    +  CL,
    +  V1 = NULL,
    +  V2,
    +  V3,
    +  Q2 = NULL,
    +  Q3,
    +  V = NULL,
    +  Q = NULL,
    +  ka = NULL,
    +  tlag = NULL,
    +  type = "all",
    +  sigdig = 5
    +)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    ...

    Passed to the other calc_derived_*() functions.

    verbose

    For calc_derived(), provide a message indicating the +type of model detected.

    CL

    Clearance (volume per time units, e.g. L/h)

    V1, V

    Central volume of distribution (volume units, e.g. L). Values +are synonyms; use only one.

    ka

    Absorption rate (inverse time units, e.g. 1/h)

    tlag

    Absorption lag time (time units, e.g. h)

    type

    Parameters to return. Default is "all". If not +"all", this may be a vector from the names of the return value list.

    sigdig

    Number of significant digits to be returned. Default is +5.

    V2

    First peripheral volume of distribution (volume units, e.g. L)

    Q2, Q

    Intercompartmental clearance from central to first peripheral +compartment (volume per time units, e.g. L/h). Values are synonyms; use +only one.

    V3

    Second peripheral volume of distribution (volume units, e.g. L)

    Q3

    Intercompartmental clearance from central to second peripheral +compartment (volume per time units, e.g. L/h)

    + +

    Value

    + +

    Return a list of derived PK parameters for a 1-, 2-, or 3-compartment + linear model given provided clearances and volumes based on the + type.

      +
    • Vss: Volume of distribution at steady state, \(V_{ss}\) (volume units, e.g. L); 1-, 2-, and 3-compartment

    • +
    • k10: First-order elimination rate, \(k_{10}\) (inverse time units, e.g. 1/h); 1-, 2-, and 3-compartment

    • +
    • k12: First-order rate of transfer from central to first peripheral compartment, \(k_{12}\) (inverse time units, e.g. 1/h); 2- and 3-compartment

    • +
    • k21: First-order rate of transfer from first peripheral to central compartment, \(k_{21}\) (inverse time units, e.g. 1/h); 2- and 3-compartment

    • +
    • k13: First-order rate of transfer from central to second peripheral compartment, \(k_{13}\) (inverse time units, e.g. 1/h); 3-compartment

    • +
    • k31: First-order rate of transfer from second peripheral to central compartment,\(k_{31}\) (inverse time units, e.g. 1/h); 3-compartment

    • +
    • thalf_alpha: \(t_{1/2,\alpha}\) (time units, e.g. h); 1-, 2-, and 3-compartment

    • +
    • thalf_beta: \(t_{1/2,\beta}\) (time units, e.g. h); 2- and 3-compartment

    • +
    • thalf_gamma: \(t_{1/2,\gamma}\) (time units, e.g. h); 3-compartment

    • +
    • alpha: \(\alpha\); 1-, 2-, and 3-compartment

    • +
    • beta: \(\beta\); 2- and 3-compartment

    • +
    • gamma: \(\beta\); 3-compartment

    • +
    • trueA: true A; 1-, 2-, and 3-compartment

    • +
    • trueB: true B; 2- and 3-compartment

    • +
    • trueC: true C; 3-compartment

    • +
    • fracA: fractional A; 1-, 2-, and 3-compartment

    • +
    • fracB: fractional B; 2- and 3-compartment

    • +
    • fracC: fractional C; 3-compartment

    • +
    + +

    The input parameters with standardized names (V1, V2, +V3, CL, Q2, and Q3) are also returned in the +list, and if provided, additional PK parameters of `ka` and `lag` are also +returned in the list. All inputs may be scalars or vectors.

    +

    References

    + +

    Shafer S. L. CONVERT.XLS

    +

    Rowland M, Tozer TN. Clinical Pharmacokinetics and + Pharmacodynamics: Concepts and Applications (4th). Lippincott Williams & + Wilkins, Philadelphia, 2010.

    + +

    Examples

    +
    params <- calc_derived(CL=29.4, V1=23.4, V2=114, V3=4614, Q2=270, Q3=73) +params <- calc_derived_1cpt(CL=16, V=25) +params <- calc_derived_2cpt(CL=16, V1=25, V2=50, Q=0.5) +params <- calc_derived_3cpt(CL=29.4, V1=23.4, V2=114, V3=4614, Q2=270, Q3=73)
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/calc_sd_1cmt.html b/docs/reference/calc_sd_1cmt.html new file mode 100644 index 0000000..7fd88ad --- /dev/null +++ b/docs/reference/calc_sd_1cmt.html @@ -0,0 +1,228 @@ + + + + + + + + +Calculate C(t) for a 1-compartment linear model — calc_sd_1cmt • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Calculate C(t) for a 1-compartment linear model

    +
    + +
    calc_sd_1cmt(t, dose, dur = NULL, tinf = NULL, ...)
    +
    +calc_sd_1cmt_linear_bolus(t, dose, ...)
    +
    +calc_sd_1cmt_linear_oral_1_lag(t, dose, ...)
    +
    +calc_sd_1cmt_linear_infusion(t, dose, tinf, ...)
    +
    +calc_sd_1cmt_linear_oral_0(t, dose, dur, ...)
    +
    +calc_sd_1cmt_linear_oral_1(t, dose, ...)
    +
    +calc_sd_1cmt_linear_oral_0_lag(t, dose, dur, ...)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + +
    t

    Time after dose (h)

    dose

    Dose

    dur

    Duration of zero-order absorption (h)

    tinf

    Duration of infusion (h)

    ...

    Passed to `calc_derived_1cpt()`

    + +

    Value

    + +

    Concentration of drug at requested time (t) after a single dose, given provided set of parameters and variables.

    +

    Functions

    + + +
      +
    • calc_sd_1cmt_linear_bolus: Calculate C(t) for a 1-compartment linear model after a single IV bolus dose

    • +
    • calc_sd_1cmt_linear_oral_1_lag: Calculate C(t) for a 1-compartment linear model with first-order absorption after a single oral dose, with lag time

    • +
    • calc_sd_1cmt_linear_infusion: Calculate C(t) for a 1-compartment linear model after a single IV infusion

    • +
    • calc_sd_1cmt_linear_oral_0: Calculate C(t) for a 1-compartment linear model with zero-order absorption after a single oral dose

    • +
    • calc_sd_1cmt_linear_oral_1: Calculate C(t) for a 1-compartment linear model with first-order absorption after a single oral dose

    • +
    • calc_sd_1cmt_linear_oral_0_lag: Calculate C(t) for a 1-compartment linear model with zero-order absorption after a single oral dose, with lag time

    • +
    +

    References

    + +

    Bertrand J & Mentre F (2008). Mathematical Expressions of the Pharmacokinetic and Pharmacodynamic Models +implemented in the Monolix software. http://lixoft.com/wp-content/uploads/2016/03/PKPDlibrary.pdf

    +

    Rowland M, Tozer TN. Clinical Pharmacokinetics and Pharmacodynamics: Concepts and Applications (4th). Lippincott Williams & Wilkins, Philadelphia, 2010.

    + +

    Examples

    +
    Ct <- calc_sd_1cmt_linear_bolus(t=0:24, CL=6, V=25, dose=600) +Ct <- calc_sd_1cmt_linear_oral_1_lag(t=0:24, CL=6, V=25, ka=1.1, dose=600, tlag=2) +Ct <- calc_sd_1cmt_linear_infusion(t=0:24, CL=6, V=25, dose=600, tinf=1) +Ct <- calc_sd_1cmt_linear_oral_0(t=0:24, CL=6, V=25, dur=1.5, dose=600) +Ct <- calc_sd_1cmt_linear_oral_1(t=0:24, CL=6, V=25, ka=1.1, dose=600) +Ct <- calc_sd_1cmt_linear_oral_0_lag(t=0:24, CL=6, V=25, dur=1.5, dose=600, tlag=1.5)
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/calc_sd_2cmt.html b/docs/reference/calc_sd_2cmt.html new file mode 100644 index 0000000..c421a3d --- /dev/null +++ b/docs/reference/calc_sd_2cmt.html @@ -0,0 +1,238 @@ + + + + + + + + +Calculate C(t) for a 1-compartment linear model — calc_sd_2cmt • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Calculate C(t) for a 1-compartment linear model

    +
    + +
    calc_sd_2cmt(t, dose, dur = NULL, tinf = NULL, ...)
    +
    +calc_sd_2cmt_linear_bolus(t, dose, ...)
    +
    +calc_sd_2cmt_linear_oral_1_lag(t, dose, ...)
    +
    +calc_sd_2cmt_linear_infusion(t, dose, tinf, ...)
    +
    +calc_sd_2cmt_linear_oral_0_lag(t, dose, dur, ...)
    +
    +calc_sd_2cmt_linear_oral_0_lag(t, dose, dur, ...)
    +
    +calc_sd_2cmt_linear_oral_1(t, dose, ...)
    +
    +calc_sd_2cmt_linear_oral_0(t, dose, dur, ...)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + +
    t

    Time after dose (h)

    dose

    Dose

    dur

    Duration of zero-order absorption (h)

    tinf

    Duration of infusion (h)

    ...

    Passed to `calc_derived_2cpt()`

    + +

    Value

    + +

    Concentration of drug at requested time (t) after a single dose, given provided set of parameters and variables.

    +

    Functions

    + + +
      +
    • calc_sd_2cmt_linear_bolus: Calculate C(t) for a 2-compartment linear model after a single IV bolus dose

    • +
    • calc_sd_2cmt_linear_oral_1_lag: Calculate C(t) for a 2-compartment linear model after a single first-order oral dose with a lag time

    • +
    • calc_sd_2cmt_linear_infusion: Calculate C(t) for a 2-compartment linear model after a single infusion

    • +
    • calc_sd_2cmt_linear_oral_0_lag: Calculate C(t) for a 2-compartment linear model after a single zero-order oral dose, with lag time

    • +
    • calc_sd_2cmt_linear_oral_0_lag: Calculate C(t) for a 2-compartment linear model after a single zero-order oral dose, with lag time

    • +
    • calc_sd_2cmt_linear_oral_1: Calculate C(t) for a 2-compartment linear model after a single first-order oral dose

    • +
    • calc_sd_2cmt_linear_oral_0: Calculate C(t) for a 2-compartment linear model after a single zero-order oral dose

    • +
    +

    References

    + +

    Bertrand J & Mentre F (2008). Mathematical Expressions of the Pharmacokinetic and Pharmacodynamic Models +implemented in the Monolix software. http://lixoft.com/wp-content/uploads/2016/03/PKPDlibrary.pdf

    +

    Rowland M, Tozer TN. Clinical Pharmacokinetics and Pharmacodynamics: Concepts and Applications (4th). Lippincott Williams & Wilkins, Philadelphia, 2010.

    + +

    Examples

    +
    Ct <- calc_sd_2cmt_linear_bolus(t = 11.75, CL = 7.5, V1 = 20, V2 = 30, Q = 0.5, dose = 10) +Ct <- calc_sd_2cmt_linear_oral_1_lag(t = 11.75, CL = 7.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 1000, ka = 1, tlag = 2) +Ctrough <- calc_sd_2cmt_linear_infusion(t = 11.75, CL = 7.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 10, tinf = 1) +Ctrough <- calc_sd_2cmt_linear_oral_0_lag(t = 11.75, CL = 7.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 1000, dur = 1, tlag=2) +Ct <- calc_sd_2cmt_linear_oral_0_lag(t = 11.75, CL = 7.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 1000, dur = 1, tlag=2) +Ct <- calc_sd_2cmt_linear_oral_1(t = 11.75, CL = 7.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 1000, ka = 1) +Ct <- calc_sd_2cmt_linear_oral_0(t = 11.75, CL = 7.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 1000, dur = 1)
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/calc_sd_3cmt.html b/docs/reference/calc_sd_3cmt.html new file mode 100644 index 0000000..bcfba25 --- /dev/null +++ b/docs/reference/calc_sd_3cmt.html @@ -0,0 +1,234 @@ + + + + + + + + +Calculate C(t) for a 1-compartment linear model — calc_sd_3cmt • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Calculate C(t) for a 1-compartment linear model

    +
    + +
    calc_sd_3cmt(t, dose, dur = NULL, tinf = NULL, ...)
    +
    +calc_sd_3cmt_linear_bolus(t, dose, ...)
    +
    +calc_sd_3cmt_linear_oral_1_lag(t, dose, ...)
    +
    +calc_sd_3cmt_linear_infusion(t, dose, tinf, ...)
    +
    +calc_sd_3cmt_linear_oral_0(t, dose, dur, ...)
    +
    +calc_sd_3cmt_linear_oral_0_lag(t, dose, dur, ...)
    +
    +calc_sd_3cmt_linear_oral_1(t, dose, ...)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + +
    t

    Time after dose (h)

    dose

    Dose

    dur

    Duration of zero-order absorption (h)

    tinf

    Duration of infusion (h)

    ...

    Passed to `calc_derived_3cpt()`

    + +

    Value

    + +

    Concentration of drug at requested time (t) after a single dose, given provided set of parameters and variables.

    +

    Functions

    + + +
      +
    • calc_sd_3cmt_linear_bolus: Calculate C(t) for a 3-compartment linear model after a single IV bolus dose

    • +
    • calc_sd_3cmt_linear_oral_1_lag: Calculate C(t) for a 3-compartment linear model after a single oral dose

    • +
    • calc_sd_3cmt_linear_infusion: Calculate C(t) for a 3-compartment linear model after a single IV infusion

    • +
    • calc_sd_3cmt_linear_oral_0: Calculate C(t) for a 3-compartment linear model after a single dose, with zero-order absorption

    • +
    • calc_sd_3cmt_linear_oral_0_lag: Calculate C(t) for a 3-compartment linear model after a single dose, with zero-order absorption and a lag time

    • +
    • calc_sd_3cmt_linear_oral_1: Calculate C(t) for a 3-compartment linear model after a single oral dose

    • +
    +

    References

    + +

    Bertrand J & Mentre F (2008). Mathematical Expressions of the Pharmacokinetic and Pharmacodynamic Models +implemented in the Monolix software. http://lixoft.com/wp-content/uploads/2016/03/PKPDlibrary.pdf

    +

    Rowland M, Tozer TN. Clinical Pharmacokinetics and Pharmacodynamics: Concepts and Applications (4th). Lippincott Williams & Wilkins, Philadelphia, 2010.

    + +

    Examples

    +
    Ct <- calc_sd_3cmt_linear_bolus(t = 11.75, CL = 3.5, V1 = 20, V2 = 500, + V3 = 200, Q2 = 0.5, Q3 = 0.05, dose = 100) +Ct <- calc_sd_3cmt_linear_oral_1_lag(t = 11.75, CL = 3.5, V1 = 20, V2 = 500, + V3 = 200, Q2 = 0.5, Q3 = 0.05, ka = 1, dose = 100, tlag = 1.5) +Ct <- calc_sd_3cmt_linear_infusion(t = 11.75, CL = 3.5, V1 = 20, V2 = 500, + V3 = 200, Q2 = 0.5, Q3 = 0.05, dose = 100, tinf=1) +Ct <- calc_sd_3cmt_linear_oral_0(t = 11.75, CL = 3.5, V1 = 20, V2 = 500, + V3 = 200, Q2 = 0.5, Q3 = 0.05, dur = 1, dose = 100) +Ct <- calc_sd_3cmt_linear_oral_0_lag(t = 11.75, CL = 3.5, V1 = 20, V2 = 500, + V3 = 200, Q2 = 0.5, Q3 = 0.05, dur = 1, dose = 100, tlag=1.5) +Ct <- calc_sd_3cmt_linear_oral_1(t = 11.75, CL = 3.5, V1 = 20, V2 = 500, + V3 = 200, Q2 = 0.5, Q3 = 0.05, ka = 1, dose = 100)
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/calc_ss_1cmt.html b/docs/reference/calc_ss_1cmt.html new file mode 100644 index 0000000..0d86bc2 --- /dev/null +++ b/docs/reference/calc_ss_1cmt.html @@ -0,0 +1,233 @@ + + + + + + + + +Calculate C(t) for a 1-compartment linear model at steady-state — calc_ss_1cmt • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Calculate C(t) for a 1-compartment linear model at steady-state

    +
    + +
    calc_ss_1cmt(tad, tau, dose, dur = NULL, tinf = NULL, ...)
    +
    +calc_ss_1cmt_linear_bolus(tad, tau, dose, ...)
    +
    +calc_ss_1cmt_linear_infusion(tad, tau, dose, tinf, ...)
    +
    +calc_ss_1cmt_linear_oral_0(tad, tau, dose, dur, ...)
    +
    +calc_ss_1cmt_linear_oral_0_lag(tad, tau, dose, dur, ...)
    +
    +calc_ss_1cmt_linear_oral_1_lag(tad, tau, dose, ...)
    +
    +calc_ss_1cmt_linear_oral_1(tad, tau, dose, ...)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    tad

    Time after dose (h)

    tau

    Dosing interval (h)

    dose

    Dose

    dur

    Duration of zero-order absorption (h)

    tinf

    Duration of infusion (h)

    ...

    Passed to `calc_derived_1cpt()`

    + +

    Value

    + +

    Concentration of drug at requested time (t) after a single dose, given provided set of parameters and variables.

    +

    Functions

    + + +
      +
    • calc_ss_1cmt_linear_bolus: Calculate C(t) for a 1-compartment linear model with IV bolus dosing at steady state

    • +
    • calc_ss_1cmt_linear_infusion: Calculate C(t) for a 1-compartment linear model with infusion at steady state

    • +
    • calc_ss_1cmt_linear_oral_0: Calculate C(t) for a 1-compartment linear model with zero-order oral absorption at steady state

    • +
    • calc_ss_1cmt_linear_oral_0_lag: Calculate C(t) for a 1-compartment linear model with zero-order oral absorption at steady state, with lag time

    • +
    • calc_ss_1cmt_linear_oral_1_lag: Calculate C(t) for a 1-compartment linear model with first-order oral absorption at steady state, with lag time

    • +
    • calc_ss_1cmt_linear_oral_1: Calculate C(t) for a 1-compartment linear model with first-order oral absorption at steady state

    • +
    +

    References

    + +

    Bertrand J & Mentre F (2008). Mathematical Expressions of the Pharmacokinetic and Pharmacodynamic Models +implemented in the Monolix software. http://lixoft.com/wp-content/uploads/2016/03/PKPDlibrary.pdf

    +

    Rowland M, Tozer TN. Clinical Pharmacokinetics and Pharmacodynamics: Concepts and Applications (4th). Lippincott Williams & Wilkins, Philadelphia, 2010.

    + +

    Examples

    +
    Ct <- calc_ss_1cmt_linear_bolus(t=0:24, CL=6, V=25, dose=600, tau=24) +Ct <- calc_ss_1cmt_linear_infusion(tad=0:36, CL=2, V=25, dose=600, tinf=1, tau=24) +Ct <- calc_ss_1cmt_linear_oral_0(tad=0:36, CL=2, V=25, dose=600, dur=1, tau=24) +Ct <- calc_ss_1cmt_linear_oral_0_lag(tad=0:36, CL=2, V=25, dose=600, dur=1, tau=24, tlag=1.5) +Ct <- calc_ss_1cmt_linear_oral_1_lag(tad=0:36, CL=2, V=25, dose=600, + ka=0.25, tlag=0.75, tau=24) +Ct <- calc_ss_1cmt_linear_oral_1(tad=0:36, CL=2, V=25, dose=600, ka=0.25, tau=24)
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/calc_ss_2cmt.html b/docs/reference/calc_ss_2cmt.html new file mode 100644 index 0000000..fba2a72 --- /dev/null +++ b/docs/reference/calc_ss_2cmt.html @@ -0,0 +1,238 @@ + + + + + + + + +Calculate C(t) for a 2-compartment linear model at steady-state — calc_ss_2cmt • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Calculate C(t) for a 2-compartment linear model at steady-state

    +
    + +
    calc_ss_2cmt(tad, tau, dose, dur = NULL, tinf = NULL, ...)
    +
    +calc_ss_2cmt_linear_bolus(tad, tau, dose, ...)
    +
    +calc_ss_2cmt_linear_infusion(tad, tau, dose, tinf, ...)
    +
    +calc_ss_2cmt_linear_oral_0(tad, tau, dose, dur, ...)
    +
    +calc_ss_2cmt_linear_oral_1_lag(tad, tau, dose, ...)
    +
    +calc_ss_2cmt_linear_oral_0_lag(tad, tau, dose, dur, ...)
    +
    +calc_ss_2cmt_linear_oral_1(tad, tau, dose, ...)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    tad

    Time after dose (h)

    tau

    Dosing interval (h)

    dose

    Dose

    dur

    Duration of zero-order absorption (h)

    tinf

    Duration of infusion (h)

    ...

    Passed to `calc_derived_2cpt()`

    + +

    Value

    + +

    Concentration of drug at requested time (t) at steady-state, given provided set of parameters and variables.

    +

    Functions

    + + +
      +
    • calc_ss_2cmt_linear_bolus: Calculate C(t) for a 2-compartment linear model with IV bolus dosing at steady-state

    • +
    • calc_ss_2cmt_linear_infusion: Calculate C(t) for a 2-compartment linear model with infusion at steady state

    • +
    • calc_ss_2cmt_linear_oral_0: Calculate C(t) for a 2-compartment linear model at steady-state with zero-order oral dosing

    • +
    • calc_ss_2cmt_linear_oral_1_lag: Calculate C(t) for a 2-compartment linear model at steady-state with first-order oral dosing

    • +
    • calc_ss_2cmt_linear_oral_0_lag: Calculate C(t) for a 2-compartment linear model at steady-state with zero-order oral dosing and a lag time

    • +
    • calc_ss_2cmt_linear_oral_1: Calculate C(t) for a 2-compartment linear model at steady-state with first-order oral dosing

    • +
    +

    References

    + +

    Bertrand J & Mentre F (2008). Mathematical Expressions of the Pharmacokinetic and Pharmacodynamic Models +implemented in the Monolix software. http://lixoft.com/wp-content/uploads/2016/03/PKPDlibrary.pdf

    +

    Rowland M, Tozer TN. Clinical Pharmacokinetics and Pharmacodynamics: Concepts and Applications (4th). Lippincott Williams & Wilkins, Philadelphia, 2010.

    + +

    Examples

    +
    Ct <- calc_ss_2cmt_linear_bolus(tad = 11.75, CL = 7.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 10, tau=24) +Ct <- calc_ss_2cmt_linear_infusion(tad = 11.75, CL = 7.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 10, tinf = 1, tau = 12) +Ct <- calc_ss_2cmt_linear_oral_0(tad = 23, CL = 2.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 1000, dur = 1, tau = 24) +Ct <- calc_ss_2cmt_linear_oral_1_lag(tad = 11.75, CL = 7.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 1000, ka = 1, tau=24, tlag=2) +Ct <- calc_ss_2cmt_linear_oral_0_lag(tad = 23, CL = 2.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 1000, dur = 1, tau = 24, tlag=2) +Ct <- calc_ss_2cmt_linear_oral_1(tad = 11.75, CL = 7.5, V1 = 20, V2 = 30, Q = 0.5, + dose = 1000, ka = 1, tau=24)
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/calc_ss_3cmt.html b/docs/reference/calc_ss_3cmt.html new file mode 100644 index 0000000..6930476 --- /dev/null +++ b/docs/reference/calc_ss_3cmt.html @@ -0,0 +1,238 @@ + + + + + + + + +Calculate C(t) for a 3-compartment linear model at steady-state — calc_ss_3cmt • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Calculate C(t) for a 3-compartment linear model at steady-state

    +
    + +
    calc_ss_3cmt(tad, tau, dose, dur = NULL, tinf = NULL, ...)
    +
    +calc_ss_3cmt_linear_bolus(tad, tau, dose, ...)
    +
    +calc_ss_3cmt_linear_oral_1_lag(tad, tau, dose, ...)
    +
    +calc_ss_3cmt_linear_infusion(tad, tau, dose, tinf, ...)
    +
    +calc_ss_3cmt_linear_oral_0(tad, tau, dose, dur, ...)
    +
    +calc_ss_3cmt_linear_oral_0_lag(tad, tau, dose, dur, ...)
    +
    +calc_ss_3cmt_linear_oral_1(tad, tau, dose, ...)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    tad

    Time after dose (h)

    tau

    Dosing interval (h)

    dose

    Dose

    dur

    Duration of zero-order absorption (h)

    tinf

    Duration of infusion (h)

    ...

    Passed to `calc_derived_3cpt()`

    + +

    Value

    + +

    Concentration of drug at requested time (t) at steady-state, given provided set of parameters and variables.

    +

    Functions

    + + +
      +
    • calc_ss_3cmt_linear_bolus: Calculate C(t) for a 3-compartment linear model at steady state with IV bolus dosing

    • +
    • calc_ss_3cmt_linear_oral_1_lag: Calculate C(t) for a 3-compartment linear model at steady-state with first-order oral dosing with a lag time

    • +
    • calc_ss_3cmt_linear_infusion: Calculate C(t) for a 3-compartment linear model at steady state with IV infusions

    • +
    • calc_ss_3cmt_linear_oral_0: Calculate C(t) for a 3-compartment linear model at steady state, with zero-order absorption

    • +
    • calc_ss_3cmt_linear_oral_0_lag: Calculate C(t) for a 3-compartment linear model at steady state, with zero-order absorption and lag time

    • +
    • calc_ss_3cmt_linear_oral_1: Calculate C(t) for a 3-compartment linear model at steady-state with first-order oral dosing

    • +
    +

    References

    + +

    Bertrand J & Mentre F (2008). Mathematical Expressions of the Pharmacokinetic and Pharmacodynamic Models +implemented in the Monolix software. http://lixoft.com/wp-content/uploads/2016/03/PKPDlibrary.pdf

    +

    Rowland M, Tozer TN. Clinical Pharmacokinetics and Pharmacodynamics: Concepts and Applications (4th). Lippincott Williams & Wilkins, Philadelphia, 2010.

    + +

    Examples

    +
    Ct <- calc_ss_3cmt_linear_bolus(t = 11.75, CL = 3.5, V1 = 20, V2 = 500, + V3 = 200, Q2 = 0.5, Q3 = 0.05, dose = 100, tau=24) +Ctrough <- calc_ss_3cmt_linear_oral_1_lag(t = 11.75, CL = 3.5, V1 = 20, V2 = 500, + V3 = 200, Q2 = 0.5, Q3 = 0.05, ka = 1, dose = 100, tau=24, tlag = 1.5) +Ct <- calc_ss_3cmt_linear_infusion(tad = 11.75, CL = 2.5, V1 = 20, V2 = 50, + V3 = 100, Q2 = 0.5, Q3 = 0.05, dose = 1000, tinf=1, tau=24) +Ct <- calc_ss_3cmt_linear_oral_0(tad = 11.75, CL = 3.5, V1 = 20, V2 = 500, + V3 = 200, Q2 = 0.5, Q3 = 0.05, dur = 1, dose = 100, tau = 24) +Ct <- calc_ss_3cmt_linear_oral_0_lag(tad = 11.75, CL = 3.5, V1 = 20, V2 = 500, + V3 = 200, Q2 = 0.5, Q3 = 0.05, dur = 1, dose = 100, tau = 24, tlag = 1.5) +Ct <- calc_ss_3cmt_linear_oral_1(tad = 11.75, CL = 3.5, V1 = 20, + V2 = 500, V3 = 200, Q2 = 0.5, Q3 = 0.05, ka = 1, dose = 100, tau = 24)
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/gcv_convert.html b/docs/reference/gcv_convert.html new file mode 100644 index 0000000..c625d08 --- /dev/null +++ b/docs/reference/gcv_convert.html @@ -0,0 +1,188 @@ + + + + + + + + +Convert geometric variance or standard deviation to a geometric coefficient of variation — gcv_convert • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    The equation used is: 100*sqrt(exp(gvar)-1)

    +
    + +
    gcv_convert(gvar = gsd^2, gsd)
    + +

    Arguments

    + + + + + + + + + + +
    gvar

    The geometric variance (note that this is the variance not a +vector of values to compute the gcv from)

    gsd

    The geometric standard deviation

    + +

    Value

    + +

    Geometric coefficient of variation

    +

    References

    + +

    https://www.cognigen.com/nonmem/nm/99feb042003.html

    +

    http://onbiostatistics.blogspot.com/2008/07/geometric-statistics-geometric-cv-vs.html

    + +

    Examples

    +
    gcv_convert(0.2)
    #> [1] 47.05345
    gcv_convert(gsd=0.2)
    #> [1] 20.20168
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/get_auc.html b/docs/reference/get_auc.html new file mode 100644 index 0000000..ec10803 --- /dev/null +++ b/docs/reference/get_auc.html @@ -0,0 +1,197 @@ + + + + + + + + +Calculate the area under the curve (AUC) for each subject over the time interval for dependent variables (<code>dv</code>) using the trapezoidal rule. — get_auc • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Calculate the area under the curve (AUC) for each subject over the time interval for dependent variables (dv) using the trapezoidal rule.

    +
    + +
    get_auc(data, time = "TIME", id = "ID", dv = "DV")
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + +
    data

    A data frame.

    time

    A string containing the name of the chronologically ordered time variable in data.

    id

    A string containing the name of the ID column (defining subject level data) in data.

    dv

    A string containing the name of the dependent variable column in data.

    + +

    Value

    + +

    A data frame containing one AUC value for every subject as defined by id.

    +

    Based on the AUC function originally written by Leonid Gibiansky in package MIfuns 5.1, from Metrum Institute.

    +

    References

    + +

    https://code.google.com/archive/p/mifuns/

    + +

    Examples

    +
    if (FALSE) { + AUCs <- get_auc(myAUCdata) +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/get_est_table.html b/docs/reference/get_est_table.html new file mode 100644 index 0000000..52dd879 --- /dev/null +++ b/docs/reference/get_est_table.html @@ -0,0 +1,207 @@ + + + + + + + + +Create a table of model parameter estimates from a NONMEM output object. — get_est_table • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Create a table of model parameter estimates from a NONMEM output object.

    +
    + +
    get_est_table(
    +  x,
    +  thetaLabels = c(),
    +  omegaLabels = c(),
    +  sigmaLabels = c(),
    +  sigdig = 3
    +)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + +
    x

    A NONMEM output object generated using read_nm.

    thetaLabels

    A vector containing labels for THETA parameters.

    omegaLabels

    A vector containing labels for OMEGA parameters.

    sigmaLabels

    A vector containing labels for SIGMA parameters.

    sigdig

    The desired number of significant digits to display.

    + +

    Value

    + +

    A named vector of NONMEM model parameter estimates.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { + nmOutput <- read_nm("run315.xml") + estTab <- get_est_table(nmOutput) +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/get_omega.html b/docs/reference/get_omega.html new file mode 100644 index 0000000..0eb6a99 --- /dev/null +++ b/docs/reference/get_omega.html @@ -0,0 +1,203 @@ + + + + + + + + +Extract variability parameter estimates from a NONMEM output object. — get_omega • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Extract variability parameter estimates from a NONMEM output object.

    +
    + +
    get_omega(x, output = "est", sigdig = 6, sep = "-", est.step = NULL)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + +
    x

    A NONMEM output object generated using read_nm.

    output

    A flag specifying the matrix or matrices to be output. Valid flag values are est (the default), +se, rse, cor, cse, 95ci, or all.

    sigdig

    Specifies the number of significant digits to be provided (default=6).

    sep

    Specifies the separator character to use for 95% confidence intervals (default="-").

    est.step

    Specifies which estimation step to return parameters from (default is the last).

    + +

    Value

    + +

    A symmetrical matrix, or a list of symmetrical matrices if all is specified.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { + nmOutput <- read_nm("run315.xml") + omegas <- get_omega(nmOutput) + omegaRSEs <- get_omega(nmOutput, "rse") +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/get_probinfo.html b/docs/reference/get_probinfo.html new file mode 100644 index 0000000..c17aaa5 --- /dev/null +++ b/docs/reference/get_probinfo.html @@ -0,0 +1,190 @@ + + + + + + + + +Extract problem and estimation information from a NONMEM output object. — get_probinfo • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Extract problem and estimation information from a NONMEM output object.

    +
    + +
    get_probinfo(x, sigdig = 6, est.step = NULL)
    + +

    Arguments

    + + + + + + + + + + + + + + +
    x

    A NONMEM output object generated using read_nm.

    sigdig

    Specifies the number of significant digits to be provided (default=6).

    est.step

    Specifies which estimation step to return parameters from (default is the last).

    + +

    See also

    + + + +

    Examples

    +
    if (FALSE) { + nmOutput <- read_nm("run315.xml") + probInfo <- get_probinfo(nmOutput) +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/get_shrinkage.html b/docs/reference/get_shrinkage.html new file mode 100644 index 0000000..a8dcfcd --- /dev/null +++ b/docs/reference/get_shrinkage.html @@ -0,0 +1,207 @@ + + + + + + + + +Extract shrinkage estimates from a NONMEM output object. — get_shrinkage • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Extract shrinkage estimates from a NONMEM output object.

    +
    + +
    get_shrinkage(x, output = "eta", type = "sd", sigdig = 3, est.step = NULL)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + +
    x

    A NONMEM output object generated using read_nm.

    output

    A flag specifying the shrinkage estimates to be output. Valid flag +values are eta (the default), epsilon, or all.

    type

    Specifies the type of shrinkage to report. Valid values are sd +(standard deviation, the default) or vr (variance, if present in the XML output).

    sigdig

    Specifies the number of significant digits to be provided (default=3).

    est.step

    Specifies which estimation step to return parameters from (default is the last).

    + +

    Value

    + +

    A named vector of NONMEM shrinkage estimates, or in the case of all, +a list of named vectors.

    +

    eta returns a vector of ETA shrinkages, as reported by NONMEM. +epsilon returns EPSILON shrinkage, as reported by NONMEM. +all returns both ETA and EPSILON shrinkage estimates as a list of vectors.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { + nmOutput <- read_nm("run315.xml") + shr <- get_shrinkage(nmOutput, output="all") +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/get_sigma.html b/docs/reference/get_sigma.html new file mode 100644 index 0000000..57664e4 --- /dev/null +++ b/docs/reference/get_sigma.html @@ -0,0 +1,211 @@ + + + + + + + + +Extract residual variability parameter estimates from a NONMEM output object. — get_sigma • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Extract residual variability parameter estimates from a NONMEM output object.

    +
    + +
    get_sigma(x, output = "est", sigdig = 6, sep = "-", est.step = NULL)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + +
    x

    A NONMEM output object generated using read_nm.

    output

    A flag specifying the matrix or matrices to be output. Valid flag values are est (the default), +se, rse, cor, cse, 95ci, or all.

    sigdig

    Specifies the number of significant digits to be provided (default=6).

    sep

    Specifies the separator character to use for 95% confidence intervals (default="-").

    est.step

    Specifies which estimation step to return parameters from (default is the last).

    + +

    Value

    + +

    A symmetrical matrix, or a list of symmetrical matrices if all is specified.

    +

    est returns the estimated SIGMA variance-covariance matrix. +se returns the standard errors for the estimated SIGMA variance-covariance matrix. +rse returns the relative standard errors for the estimated SIGMA variance-covariance matrix (se/est*100). +cor returns the correlation matrix matrix. +cse returns the standard errors for the correlation matrix. +95ci returns the asymptotic 95% confidence intervals for the elements of the SIGMA variance-covariance +matrix (est +/- 1.96*se). +all returns all available SIGMA matrices.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { + nmOutput <- read_nm("run315.xml") + sigmas <- get_sigma(nmOutput) + sigmaRSEs <- get_sigma(nmOutput, "rse") +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/get_theta.html b/docs/reference/get_theta.html new file mode 100644 index 0000000..67accb9 --- /dev/null +++ b/docs/reference/get_theta.html @@ -0,0 +1,213 @@ + + + + + + + + +Extract structural model parameter estimates and associated information +from a NONMEM output object. — get_theta • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Extract structural model parameter estimates and associated information +from a NONMEM output object.

    +
    + +
    get_theta(x, output = "est", sigdig = 6, sep = "-", est.step = NULL)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + +
    x

    A NONMEM output object generated using read_nm.

    output

    A flag specifying the matrix or matrices to be output. Valid flag values are est (the default), +se, rse, 95ci, or all.

    sigdig

    Specifies the number of significant digits to be provided (default=6).

    sep

    Specifies the separator character to use for 95% confidence intervals (default="-").

    est.step

    Specifies which estimation step to return parameters from (default is the last).

    + +

    Value

    + +

    A named vector of NONMEM model parameter estimates, or in the case of all, +a list of named vectors.

    +

    est returns a vector of THETA values. +se returns a vector of THETA standard errors. +rse returns a vector of THETA relative standard errors (se/est*100). +95ci returns a vector of the asymptotic 95% confidence intervals for the elements of THETA (est +/- 1.96*se). +all returns all available THETA information as a list of named vectors.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { + nmOutput <- read_nm("run315.xml") + thetas <- get_theta(nmOutput) +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/gm.html b/docs/reference/gm.html new file mode 100644 index 0000000..908e085 --- /dev/null +++ b/docs/reference/gm.html @@ -0,0 +1,180 @@ + + + + + + + + +Calculate geometric mean — gm • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Calculate geometric mean

    +
    + +
    gm(x)
    + +

    Arguments

    + + + + + + +
    x

    Numeric vector.

    + +

    Value

    + +

    The geometric mean. NA is returned if there are any non-positive elements in x.

    + +

    Examples

    +
    gm(c(0.5, 7, 8, 5))
    #> [1] 3.439791
    +
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/index.html b/docs/reference/index.html new file mode 100644 index 0000000..52bc456 --- /dev/null +++ b/docs/reference/index.html @@ -0,0 +1,379 @@ + + + + + + + + +Function reference • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +

    All functions

    +

    +
    +

    calc_derived() calc_derived_1cpt() calc_derived_2cpt() calc_derived_3cpt()

    +

    Calculate derived pharmacokinetic parameters for a 1-, 2-, or 3-compartment +linear model.

    +

    calc_sd_1cmt() calc_sd_1cmt_linear_bolus() calc_sd_1cmt_linear_oral_1_lag() calc_sd_1cmt_linear_infusion() calc_sd_1cmt_linear_oral_0() calc_sd_1cmt_linear_oral_1() calc_sd_1cmt_linear_oral_0_lag()

    +

    Calculate C(t) for a 1-compartment linear model

    +

    calc_sd_2cmt() calc_sd_2cmt_linear_bolus() calc_sd_2cmt_linear_oral_1_lag() calc_sd_2cmt_linear_infusion() calc_sd_2cmt_linear_oral_0_lag() calc_sd_2cmt_linear_oral_0_lag() calc_sd_2cmt_linear_oral_1() calc_sd_2cmt_linear_oral_0()

    +

    Calculate C(t) for a 1-compartment linear model

    +

    calc_sd_3cmt() calc_sd_3cmt_linear_bolus() calc_sd_3cmt_linear_oral_1_lag() calc_sd_3cmt_linear_infusion() calc_sd_3cmt_linear_oral_0() calc_sd_3cmt_linear_oral_0_lag() calc_sd_3cmt_linear_oral_1()

    +

    Calculate C(t) for a 1-compartment linear model

    +

    calc_ss_1cmt() calc_ss_1cmt_linear_bolus() calc_ss_1cmt_linear_infusion() calc_ss_1cmt_linear_oral_0() calc_ss_1cmt_linear_oral_0_lag() calc_ss_1cmt_linear_oral_1_lag() calc_ss_1cmt_linear_oral_1()

    +

    Calculate C(t) for a 1-compartment linear model at steady-state

    +

    calc_ss_2cmt() calc_ss_2cmt_linear_bolus() calc_ss_2cmt_linear_infusion() calc_ss_2cmt_linear_oral_0() calc_ss_2cmt_linear_oral_1_lag() calc_ss_2cmt_linear_oral_0_lag() calc_ss_2cmt_linear_oral_1()

    +

    Calculate C(t) for a 2-compartment linear model at steady-state

    +

    calc_ss_3cmt() calc_ss_3cmt_linear_bolus() calc_ss_3cmt_linear_oral_1_lag() calc_ss_3cmt_linear_infusion() calc_ss_3cmt_linear_oral_0() calc_ss_3cmt_linear_oral_0_lag() calc_ss_3cmt_linear_oral_1()

    +

    Calculate C(t) for a 3-compartment linear model at steady-state

    +

    gcv_convert()

    +

    Convert geometric variance or standard deviation to a geometric coefficient of variation

    +

    get_auc()

    +

    Calculate the area under the curve (AUC) for each subject over the time interval for dependent variables (dv) using the trapezoidal rule.

    +

    get_est_table()

    +

    Create a table of model parameter estimates from a NONMEM output object.

    +

    get_omega()

    +

    Extract variability parameter estimates from a NONMEM output object.

    +

    get_probinfo()

    +

    Extract problem and estimation information from a NONMEM output object.

    +

    get_shrinkage()

    +

    Extract shrinkage estimates from a NONMEM output object.

    +

    get_sigma()

    +

    Extract residual variability parameter estimates from a NONMEM output object.

    +

    get_theta()

    +

    Extract structural model parameter estimates and associated information +from a NONMEM output object.

    +

    gm()

    +

    Calculate geometric mean

    +

    pcv()

    +

    Calculate percentage coefficient of variation

    +

    pk_curve()

    +

    Provide concentration-time curves.

    +

    plot_nmprogress()

    +

    Plot NONMEM parameter estimation by iteration.

    +

    plot_scm()

    +

    Visualize PsN SCM output.

    +

    read_nm()

    +

    Read NONMEM 7.2+ output into a list of lists.

    +

    read_nmcov()

    +

    Read in the NONMEM variance-covariance matrix.

    +

    read_nmext()

    +

    Read NONMEM output into a list.

    +

    read_nmtables()

    +

    Reads NONMEM output tables.

    +

    read_nm_all()

    +

    Read all NONMEM files for a single NONMEM run.

    +

    read_nm_multi_table()

    +

    Read (single or) multiple NONMEM tables from a single file

    +

    read_nm_std_ext()

    +

    Read a standard NONMEM extension file

    +

    read_scm()

    +

    Read PsN SCM output into a format suitable for further use.

    +

    rnm()

    +

    Read NONMEM 7.2+ output into an R object.

    +

    sample_omega()

    +

    Sample from the multivariate normal distribution using the OMEGA variance-covariance matrix to generate new sets of simulated ETAs from NONMEM output.

    +

    sample_sigma()

    +

    Sample from the multivariate normal distribution using the SIGMA variance-covariance matrix to generate new sets of simulated EPSILONs from NONMEM output.

    +

    sample_uncert()

    +

    Sample from the multivariate normal distribution to generate new sets of parameters from NONMEM output.

    +

    table_rtf()

    +

    Read NONMEM output into a list.

    +
    + + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/pcv.html b/docs/reference/pcv.html new file mode 100644 index 0000000..332d2ea --- /dev/null +++ b/docs/reference/pcv.html @@ -0,0 +1,184 @@ + + + + + + + + +Calculate percentage coefficient of variation — pcv • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Calculate percentage coefficient of variation

    +
    + +
    pcv(x, na.rm = FALSE)
    + +

    Arguments

    + + + + + + + + + + +
    x

    Numeric vector.

    na.rm

    A logical value indicating whether NA values should be stripped before the computation proceeds.

    + +

    Value

    + +

    The percentage coefficient of variation.

    + +

    Examples

    +
    pcv(rnorm(50, 5, 7.56))
    #> [1] 189.4419
    +
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/pk_curve-1.png b/docs/reference/pk_curve-1.png new file mode 100644 index 0000000000000000000000000000000000000000..8ede01b985a47d580a0e5bbee030dcfb153c8251 GIT binary patch literal 13651 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 H{rO)2Y=)Dw literal 0 HcmV?d00001 diff --git a/docs/reference/pk_curve.html b/docs/reference/pk_curve.html new file mode 100644 index 0000000..7cd86da --- /dev/null +++ b/docs/reference/pk_curve.html @@ -0,0 +1,213 @@ + + + + + + + + +Provide concentration-time curves. — pk_curve • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Provide concentration-time curves.

    +
    + +
    pk_curve(
    +  t,
    +  model = "1cmt_oral",
    +  params = list(ka = 2.77, CL = 2.5, V = 25),
    +  dose = 600,
    +  ii = 24,
    +  addl = 0,
    +  ss = F
    +)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    t

    Observation time in h, specified as a vector.

    model

    The model to use. Must be one of "1cmt_bolus", "1cmt_infusion", "1cmt_oral", "2cmt_bolus", "2cmt_infusion", +"2cmt_oral", "3cmt_bolus", "3cmt_infusion", "3cmt_oral". The default is "1cmt_oral".

    params

    A named list containing parameter values for the selected model type.

    dose

    Dose amount.

    ii

    Interdose interval (or tau), in hours (default 24).

    addl

    Number of additional doses (default 0).

    ss

    Assume steady state concentration (default FALSE).

    + +

    Value

    + +

    A data frame containing times (t) and concentrations (cp).

    + +

    Examples

    +
    plot(pk_curve(t=seq(0,72,by=0.1), model="3cmt_oral", ii=12, addl=5, + params=list(CL=2.5, V1=25, V2=2, V3=5, Q2=0.5, Q3=0.25, ka=1)), type="l")
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/plot_nmprogress.html b/docs/reference/plot_nmprogress.html new file mode 100644 index 0000000..2329fb8 --- /dev/null +++ b/docs/reference/plot_nmprogress.html @@ -0,0 +1,211 @@ + + + + + + + + +Plot NONMEM parameter estimation by iteration. — plot_nmprogress • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    plot_nmprogress returns a plot or set of plots showing the evolution of +parameter estimates by iteration.

    +
    + +
    plot_nmprogress(
    +  fileName,
    +  fileExt = ".lst",
    +  metric = "perc",
    +  lineCol = "#902C10",
    +  idlineCol = "black"
    +)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + +
    fileName

    A NONMEM output file prefix, without extension (e.g. 'run315').

    fileExt

    The file extension for NONMEM output, set to '.lst' by default.

    metric

    What to show in the plot. Allowed options are 'est' (the actual +estimate) or 'perc' (the percentage change in the estimated or OFV since estimation began). +Default is 'perc'.

    lineCol

    Line color. Default is '#902C10'.

    idlineCol

    Identity line color (only used if 'perc' metric is selected). Default is black.

    + +

    Value

    + +

    A set of plots.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { +plot_nmprogress("run315") +plot_nmprogress("run315", ".nmlst") +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/plot_scm.html b/docs/reference/plot_scm.html new file mode 100644 index 0000000..30becf2 --- /dev/null +++ b/docs/reference/plot_scm.html @@ -0,0 +1,364 @@ + + + + + + + + +Visualize PsN SCM output. — plot_scm • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    plot_scm returns a visualization of a Perl-speaks-NONMEM (PsN, https://uupharmacometrics.github.io/PsN/) SCM (stepwise covariate modeling) +procedure. It depends on the presence of scmlog.txt and short_scmlog.txt files in the +specified directory.

    +
    + +
    plot_scm(
    +  dir,
    +  startPhase = "forward",
    +  fwdSuccessCol = "#66C2A5",
    +  fwdFailCol = "black",
    +  bwdSuccessCol = "#FC8D62",
    +  bwdFailCol = "black",
    +  defCol = "black",
    +  fwdSuccessFillCol = "#B3E2CD",
    +  fwdFailFillCol = "white",
    +  bwdSuccessFillCol = "#FDCDAC",
    +  bwdFailFillCol = "white",
    +  defFillCol = "white",
    +  fwdSuccessFontCol = "black",
    +  fwdFailFontCol = "black",
    +  bwdSuccessFontCol = "black",
    +  bwdFailFontCol = "black",
    +  defFontCol = "black",
    +  fullFwdCol = "#8DA0CB",
    +  finalCol = "#E78AC3",
    +  fullFwdFillCol = "#CBD5E8",
    +  finalFillCol = "#F4CAE4",
    +  fullFwdFontCol = "black",
    +  finalFontCol = "black",
    +  fullFwdWidth = "2px",
    +  finalWidth = "2px",
    +  defWidth = "1px",
    +  nodeStyle = "filled,rounded",
    +  nodeShape = "box",
    +  fontname = "helvetica",
    +  rankdir = "TB",
    +  layout = "dot",
    +  lookupDF = NULL,
    +  ...
    +)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    dir

    A PsN SCM folder (containing scmlog.txt and short_scmlog.txt).

    startPhase

    Where to start collating the output; can be "forward" (the default) or "backward".

    fwdSuccessCol

    Node outline color for a model fit matching the forward inclusion criterion.

    fwdFailCol

    Node outline color for a model fit not matching the forward inclusion criterion.

    bwdSuccessCol

    Node outline color for a model fit matching the backward elimination criterion.

    bwdFailCol

    Node outline color for a model fit not matching the backward elimination criterion.

    defCol

    Default node outline color.

    fwdSuccessFillCol

    Node fill color for a model fit matching the forward inclusion criterion.

    fwdFailFillCol

    Node fill color for a model fit not matching the forward inclusion criterion.

    bwdSuccessFillCol

    Node fill color for a model fit matching the backward elimination criterion.

    bwdFailFillCol

    Node fill color for a model fit not matching the backward elimination criterion.

    defFillCol

    Default node fill color.

    fwdSuccessFontCol

    Node font color for a model fit matching the forward inclusion criterion.

    fwdFailFontCol

    Node font color for a model fit not matching the forward inclusion criterion.

    bwdSuccessFontCol

    Node font color for a model fit matching the backward elimination criterion.

    bwdFailFontCol

    Node font color for a model fit not matching the backward elimination criterion.

    defFontCol

    Default node font color.

    fullFwdCol

    Node outline color for the full forward model (i.e. the final model before the backward elimination procedure in SCM).

    finalCol

    Node outline color for the final reduced model (i.e. the final model reached after the backward elimination procedure in SCM).

    fullFwdFillCol

    Node fill color for the full forward model (i.e. the final model before the backward elimination procedure in SCM).

    finalFillCol

    Node fill color for the final reduced model (i.e. the final model reached after the backward elimination procedure in SCM).

    fullFwdFontCol

    Node font color for the full forward model (i.e. the final model before the backward elimination procedure in SCM).

    finalFontCol

    Node font color for the final reduced model (i.e. the final model reached after the backward elimination procedure in SCM).

    fullFwdWidth

    Node outline width for the full forward model (i.e. the final model before the backward elimination procedure in SCM).

    finalWidth

    Node outline width for the final reduced model (i.e. the final model reached after the backward elimination procedure in SCM).

    defWidth

    Default node outline width.

    nodeStyle

    Node style. A string containing a comma-separated list of options (which include "filled", "striped", "wedged", "diagonals" and "rounded"). See the GraphViz documentation for further details.

    nodeShape

    Node shape. Options include "box" (the default), "oval", "diamond", "egg", "plaintext", "point", "square", "triangle" and many more. See the GraphViz documentation for further details.

    fontname

    Font for nodes. Options depend heavily on the local system - see the GraphViz documentation for further details.

    rankdir

    Direction of graph layout. Possible values are "TB" (the default), "LR", "BT", "RL", corresponding to directed graphs drawn from top to bottom, from left to right, from bottom to top, and from right to left, respectively.

    layout

    Graph layout. Possible values are "dot" (the default), "neato", "twopi", and "circo". Note that of these, "dot" is the easiest to interpret and the others may produce odd results.

    lookupDF

    A data frame containing a lookup table for node labels. By default, plot_scm will use the PSN model names. If a lookup table containing the fields `Model` and `Alias` is provided, model names in `Model` will be replaced in the output plots by mtaching labels in `Alias`.

    ...

    Additional parameters passed to the underlying SetNodeStyle and SetEdgeStyle functions, which in turn rely on DiagrammeR.

    + +

    Value

    + +

    A grViz object.

    +

    Details

    + +

    This function parses PsN SCM output and displays it as a GraphViz graph (effectively, an HTML widget). It is built on plot.Node - please refer to doucmentation for this function for a more detailed overview of what is possible (a lot). For more specific details, see http://rich-iannone.github.io/DiagrammeR/docs.html.

    +

    See also

    + +

    NONMEM (http://www.iconplc.com/innovation/nonmem/)

    +

    GraphViz (https://graphviz.org/Documentation.php)

    +

    Lindbom L, Ribbing J & Jonsson EN (2004). Perl-speaks-NONMEM (PsN) - A Perl module for NONMEM related programming. Computer Methods and Programs in Biomedicine, 75(2), 85-94. https://doi.org/10.1016/j.cmpb.2003.11.003

    +

    Lindbom L, Pihlgren P & Jonsson N (2005). PsN-Toolkit - A collection of computer intensive statistical methods for non-linear mixed effect modeling using NONMEM. Computer Methods and Programs in Biomedicine, 79(3), 241-257. https://doi.org/10.1016/j.cmpb.2005.04.005

    +

    Other NONMEM reading: +read_nm_all(), +read_nm_multi_table(), +read_nmcov(), +read_nmext(), +read_nmtables(), +read_nm(), +read_scm()

    + +

    Examples

    +
    if (FALSE) { +scm <- plot_scm("E:/DrugX/ModelDevelopment/scm310") +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/read_nm.html b/docs/reference/read_nm.html new file mode 100644 index 0000000..cf53648 --- /dev/null +++ b/docs/reference/read_nm.html @@ -0,0 +1,205 @@ + + + + + + + + +Read NONMEM 7.2+ output into a list of lists. — read_nm • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Read NONMEM 7.2+ output into a list of lists.

    +
    + +
    read_nm(fileName, directory = NULL, quiet = FALSE, ...)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + +
    fileName

    A NONMEM XML output file (e.g. "run315.xml").

    directory

    The directory to look for files within. If NULL, uses the +current directory.

    quiet

    Flag for displaying intermediate output.

    ...

    Passed to each of the read functions (ignored in the functions).

    + +

    Value

    + +

    A list of lists corresponding to a NONMEM output object.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { +nmOutput <- read_nm("run315.xml") +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/read_nm_all.html b/docs/reference/read_nm_all.html new file mode 100644 index 0000000..e8191ef --- /dev/null +++ b/docs/reference/read_nm_all.html @@ -0,0 +1,206 @@ + + + + + + + + +Read all NONMEM files for a single NONMEM run. — read_nm_all • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Read all NONMEM files for a single NONMEM run.

    +
    + +
    read_nm_all(runNo, run_prefix = "run", directory = NULL, quiet = FALSE, ...)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + +
    runNo

    Run number.

    run_prefix

    The start to the name of the run.

    directory

    The directory to look for files within. If NULL, uses the +current directory.

    quiet

    Flag for displaying intermediate output.

    ...

    Passed to each of the read functions (ignored in the functions).

    + +

    Details

    + +

    The filename for loading is constructed as paste(run_prefix, + runNo). To load a nonstandard file, simply set one of those values to + NULL.

    +

    See also

    + +

    Other NONMEM reading: +plot_scm(), +read_nm_multi_table(), +read_nmcov(), +read_nmext(), +read_nmtables(), +read_nm(), +read_scm()

    + +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/read_nm_multi_table.html b/docs/reference/read_nm_multi_table.html new file mode 100644 index 0000000..1217669 --- /dev/null +++ b/docs/reference/read_nm_multi_table.html @@ -0,0 +1,211 @@ + + + + + + + + +Read (single or) multiple NONMEM tables from a single file — read_nm_multi_table • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Read (single or) multiple NONMEM tables from a single file

    +
    + +
    read_nm_multi_table(
    +  fileName,
    +  header = TRUE,
    +  ...,
    +  simplify = TRUE,
    +  table_start_pattern = "^TABLE NO"
    +)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + +
    fileName

    The filename to read from

    header, ...

    Arguments passed to read.table

    simplify

    If a single table is present, return a data.frame instead of +a list of data.frames?

    table_start_pattern

    What should be found to start a new table?

    + +

    Value

    + +

    A list of data.frames, or if only one is present and simplify=TRUE, a + data.frame.

    +

    See also

    + +

    Other NONMEM reading: +plot_scm(), +read_nm_all(), +read_nmcov(), +read_nmext(), +read_nmtables(), +read_nm(), +read_scm()

    + +

    Examples

    +
    if (FALSE) { +read_nm_multi_table("run1.cov", row.names=1) +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/read_nm_std_ext.html b/docs/reference/read_nm_std_ext.html new file mode 100644 index 0000000..8282fe2 --- /dev/null +++ b/docs/reference/read_nm_std_ext.html @@ -0,0 +1,197 @@ + + + + + + + + +Read a standard NONMEM extension file — read_nm_std_ext • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Read a standard NONMEM extension file

    +
    + +
    read_nm_std_ext(fileName, extension, directory = NULL, ...)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + +
    fileName

    The filename (with directory name, if applicable) to read +(with or without the extension)

    extension

    The file extension to optionally append (preferably starting +with a ".")

    directory

    The directory to look for files within. If NULL, uses the +current directory.

    ...

    Passed to read_nm_multi_table()

    + +

    Value

    + +

    NULL if the file does not exist or the value of + read_nm_multi_table() if it does exist.

    + +

    Examples

    +
    if (FALSE) { +read_nm_std_ext("run1", "phi") +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/read_nmcov.html b/docs/reference/read_nmcov.html new file mode 100644 index 0000000..a1e0106 --- /dev/null +++ b/docs/reference/read_nmcov.html @@ -0,0 +1,207 @@ + + + + + + + + +Read in the NONMEM variance-covariance matrix. — read_nmcov • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Read in the NONMEM variance-covariance matrix.

    +
    + +
    read_nmcov(fileName, quiet = FALSE, directory = NULL, ...)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + +
    fileName

    Root filename for the NONMEM run (e.g. "run315").

    +

    This function reads the ".cov" NONMEM output table, and will return an error if this +is missing.

    quiet

    Flag for displaying intermediate output.

    directory

    The directory to look for files within. If NULL, uses the +current directory.

    ...

    Passed to each of the read functions (ignored in the functions).

    + +

    Value

    + +

    A symmetrical variance-covariance matrix covering all model parameters.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { +nmVcov <- read_nmcov("run315") +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/read_nmext.html b/docs/reference/read_nmext.html new file mode 100644 index 0000000..7be3927 --- /dev/null +++ b/docs/reference/read_nmext.html @@ -0,0 +1,236 @@ + + + + + + + + +Read NONMEM output into a list. — read_nmext • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    read_nmext returns a summary of a given NONMEM run, including +termination messages, parameter estimates, and precision estimates. +Minimally, the NONMEM output and '.ext' files must be available.

    +
    + +
    read_nmext(
    +  fileName,
    +  fileExt = ".lst",
    +  directory = NULL,
    +  quiet = FALSE,
    +  estNo = NULL,
    +  ...
    +)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    fileName

    A NONMEM output file prefix, without extension (e.g. +"run315").

    fileExt

    The file extension for NONMEM output, set to ".lst" by +default.

    directory

    The directory to look for files within. If NULL, uses the +current directory.

    quiet

    Flag for displaying intermediate output.

    estNo

    The estimation number to report (by default, if only one +estimation step is present, that will be reported; if multiple are +reported, the last will be reported by default).

    ...

    Passed to each of the read functions (ignored in the functions).

    + +

    Value

    + +

    A list of lists, containing 'Termination' (summary of NONMEM's + termination output, including shrinkages and ETABAR estimates), 'OFV' (the + objective function value), 'Thetas' (a vector of structural parameter + estimates, or THETAs), 'Omega', a list of lists containing the OMEGA + matrix, 'Sigma', a list of lists containing the SIGMA matrix, 'seThetas', a + vector of standard errors for THETAs, 'seOmega', a list of lists containing + standard errors for the OMEGA matrix, and 'seSigma', a list of lists + containing standard errors for the SIGMA matrix.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { +read_nmext("run315") +read_nmext("run315", ".nmlst") +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/read_nmtables.html b/docs/reference/read_nmtables.html new file mode 100644 index 0000000..3560c76 --- /dev/null +++ b/docs/reference/read_nmtables.html @@ -0,0 +1,242 @@ + + + + + + + + +Reads NONMEM output tables. — read_nmtables • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Reads NONMEM output tables.

    +
    + +
    read_nmtables(
    +  tableFiles = NULL,
    +  runNo = NULL,
    +  tabSuffix = "",
    +  tableNames = c("sdtab", "mutab", "patab", "catab", "cotab", "mytab", "extra",
    +    "xptab"),
    +  quiet = FALSE,
    +  directory = NULL,
    +  output_type = c("data.frame", "list"),
    +  ...
    +)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    tableFiles

    NONMEM table files to be read.

    runNo

    Run number.

    tabSuffix

    Table file suffix.

    tableNames

    List of root table names, using the Xpose naming convention +as the default.

    quiet

    Flag for displaying intermediate output.

    directory

    The directory to look for files within. If NULL, uses the +current directory.

    output_type

    Should output be a "data.frame" where all results are +merged or a "list" of data.frames.

    ...

    Passed to each of the read functions (ignored in the functions).

    + +

    Value

    + +

    A data.frame or list of data.frames depending on the + output_type argument.

    +

    Note

    + +

    Adapted from Xpose 4 (https://CRAN.R-project.org/package=xpose4).

    +

    References

    + +

    NONMEM (http://www.iconplc.com/innovation/nonmem/)

    +

    Jonsson EN, Karlsson MO. Xpose--an S-PLUS based population + pharmacokinetic/pharmacodynamic model building aid for NONMEM. Comput + Methods Programs Biomed. 1999 Jan;58(1):51-64

    +

    See also

    + +

    Other NONMEM reading: +plot_scm(), +read_nm_all(), +read_nm_multi_table(), +read_nmcov(), +read_nmext(), +read_nm(), +read_scm()

    + +

    Examples

    +
    if (FALSE) { +tables <- read_nmtables(runNo=315) +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/read_scm.html b/docs/reference/read_scm.html new file mode 100644 index 0000000..640e057 --- /dev/null +++ b/docs/reference/read_scm.html @@ -0,0 +1,212 @@ + + + + + + + + +Read PsN SCM output into a format suitable for further use. — read_scm • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    read_scm returns a summary of a Perl-speaks-NONMEM (PsN, https://uupharmacometrics.github.io/PsN/) SCM (stepwise covariate modeling) +procedure. It depends on the presence of scmlog.txt and short_scmlog.txt files in the +specified directory.

    +
    + +
    read_scm(dir, startPhase = "forward")
    + +

    Arguments

    + + + + + + + + + + +
    dir

    A PsN SCM folder (containing scmlog.txt and short_scmlog.txt).

    startPhase

    Where to start collating the output; can be "forward" (the default) or "backward".

    + +

    Value

    + +

    A list of data frames, containing

    +
    forward

    all models evaluated during the forward inclusion step of + covariate model building

    +
    forwardSummary

    the covariate relationships selected at each forward + step

    +
    forwardP

    the P-value used for inclusion during the forward inclusion step

    +
    backward

    all models evaluated during the backward elimination step of covariate + model building

    +
    backwardSummary

    the covariate relationships eliminated at each backward step

    +
    backwardP

    the P-value used for exclusion during the backward elimination step

    + +

    See also

    + +

    NONMEM (http://www.iconplc.com/innovation/nonmem/)

    +

    Lindbom L, Ribbing J & Jonsson EN (2004). Perl-speaks-NONMEM (PsN) - A Perl module for NONMEM related programming. Computer Methods and Programs in Biomedicine, 75(2), 85-94. https://doi.org/10.1016/j.cmpb.2003.11.003

    +

    Lindbom L, Pihlgren P & Jonsson N (2005). PsN-Toolkit - A collection of computer intensive statistical methods for non-linear mixed effect modeling using NONMEM. Computer Methods and Programs in Biomedicine, 79(3), 241-257. https://doi.org/10.1016/j.cmpb.2005.04.005

    +

    Other NONMEM reading: +plot_scm(), +read_nm_all(), +read_nm_multi_table(), +read_nmcov(), +read_nmext(), +read_nmtables(), +read_nm()

    + +

    Examples

    +
    if (FALSE) { +scm <- read_scm("E:/DrugX/ModelDevelopment/scm310") +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/rnm.html b/docs/reference/rnm.html new file mode 100644 index 0000000..847579f --- /dev/null +++ b/docs/reference/rnm.html @@ -0,0 +1,262 @@ + + + + + + + + +Read NONMEM 7.2+ output into an R object. — rnm • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Read NONMEM 7.2+ output into an R object.

    +
    + +
    rnm(
    +  index,
    +  prefix = "run",
    +  pathNM,
    +  ndig = 3,
    +  ndigB = 3,
    +  ndigP = 1,
    +  Pci = 95,
    +  ext = ".lst",
    +  extmod = ".mod",
    +  Pvalues = TRUE,
    +  RawCI = FALSE,
    +  ...
    +)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    index

    The NONMEM model index, i.e. the numeric part of the filename assuming it follows the convention 'run123.mod'.

    prefix

    The NONMEM model prefix, assuming it follows the convention 'run123.mod'. The default is "run".

    pathNM

    The path to the NONMEM output. This should not contain a trailing slash.

    ndig

    Number of significant digits to use. The default is 3.

    ndigB

    Number of significant digits to use. The default is 3.

    ndigP

    Number of digits after the decimal point to use for percentages. The default is 1.

    Pci

    Asymptotic confidence interval to apply when reporting parameter uncertainty. The default is 95.

    ext

    NONMEM output file extension. The default is ".lst".

    extmod

    NONMEM control stream file extension. The default is "mod".

    Pvalues

    Report P-values for parameters? The default is TRUE.

    RawCI

    Report confidence intervals without estimate? The default is FALSE.

    ...

    Additional arguments.

    + +

    Value

    + +

    A list containing information extracted from the NONMEM output.

    +

    Details

    + +

    The output list is composed of the following objects:

      +
    • "Theta"A data frame describing the structural (fixed-effect) parameters, containing parameter name, estimated value, standard error (SE), coefficient of variation (CV), lower and upper confidence limits (CIL and CIU, based on Pci), and P-value, calculated as 2 * (1 - pnorm(abs(theta/theta.se))).

    • +
    • "Eta"A data frame describing the interindividual random-effects parameters, containing estimated value, standard error (SE), coefficient of variation (CV, calculated as abs(100*(SE/OMEGA))), coefficient of variation (EtaCV, calculated as 100*sqrt(OMEGA)), and shrinkage.

    • +
    • "Epsilon"A data frame describing the residual random-effects parameters, containing estimated value, standard error (SE), coefficient of variation (CV, calculated as abs(100*(SE/OMEGA))), coefficient of variation (EtaCV, calculated as 100*sqrt(SIGMA)), and shrinkage.

    • +
    • "CorTheta"A data frame containing the correlation matrix for fixed effects ("THETA").

    • +
    • "CorOmega"A data frame containing the correlation matrix for interindividual random effects ("OMEGA").

    • +
    • "CorSigma"A data frame containing the correlation matrix for residual random effects ("OMEGA").

    • +
    • "OmegaMatrix"A data frame containing the "OMEGA" matrix.

    • +
    • "SigmaMatrix"A data frame containing the "OMEGA" matrix.

    • +
    • "CovMatrixTheta"A data frame containing the variance-covariance matrix for structural parameters (THETA).

    • +
    • "CovMatrix"A data frame containing the complete variance-covariance matrix.

    • +
    • "OFV"The objective function value.

    • +
    • "ThetaString"A data frame containing all relevant fixed-effects parameter information, suitable for use in a table of parameter estimates. Contains parameter name, estimate, standard error, coefficient of variation, combined estimate and asymptotic confidence interval, and P-value.

    • +
    • "EtaString"A data frame containing all relevant interindivudal random-effects parameter information, suitable for use in a table of parameter estimates. Contains parameter name, estimate (variance), standard error, coefficient of variation, percentage value (calculated as 100*sqrt(OMEGA)), and shrinkage.

    • +
    • "EpsString"A data frame containing all relevant residual random-effects parameter information, suitable for use in a table of parameter estimates. Contains parameter name, estimate (variance), standard error, coefficient of variation, percentage value (calculated as 100*sqrt(SIGMA)), and shrinkage.

    • +
    • "RunTime"Run time.

    • +
    • "ConditionN"Condition number.

    • +
    + +

    See also

    + + + +

    Examples

    +
    if (FALSE) { +nmOutput <- rnm("run315.lst") +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/sample_omega.html b/docs/reference/sample_omega.html new file mode 100644 index 0000000..ebfa9fb --- /dev/null +++ b/docs/reference/sample_omega.html @@ -0,0 +1,194 @@ + + + + + + + + +Sample from the multivariate normal distribution using the OMEGA variance-covariance matrix to generate new sets of simulated ETAs from NONMEM output. — sample_omega • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Sample from the multivariate normal distribution using the OMEGA variance-covariance matrix to generate new sets of simulated ETAs from NONMEM output.

    +
    + +
    sample_omega(nmRun, n, seed)
    + +

    Arguments

    + + + + + + + + + + + + + + +
    nmRun

    Root filename for the NONMEM run (e.g. "run315").

    n

    Number of samples required.

    seed

    Random seed.

    + +

    Value

    + +

    A data frame containing n samples from the multivariate normal distribution, using +the estimated NONMEM OMEGA variance-covariance matrix. This provides n sets of ETA estimates +suitable for simulation of new patients.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { + omDist <- sample_omega("run315", 5000, seed=740727) +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/sample_sigma.html b/docs/reference/sample_sigma.html new file mode 100644 index 0000000..79d29e8 --- /dev/null +++ b/docs/reference/sample_sigma.html @@ -0,0 +1,194 @@ + + + + + + + + +Sample from the multivariate normal distribution using the SIGMA variance-covariance matrix to generate new sets of simulated EPSILONs from NONMEM output. — sample_sigma • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Sample from the multivariate normal distribution using the SIGMA variance-covariance matrix to generate new sets of simulated EPSILONs from NONMEM output.

    +
    + +
    sample_sigma(nmRun, n, seed)
    + +

    Arguments

    + + + + + + + + + + + + + + +
    nmRun

    Root filename for the NONMEM run (e.g. "run315").

    n

    Number of samples required.

    seed

    Random seed.

    + +

    Value

    + +

    A data frame containing n samples from the multivariate normal distribution, using +the estimated NONMEM SIGMA variance-covariance matrix. This provides n sets of EPSILON estimates +suitable for simulation of new datasets.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { + sigDist <- sample_sigma("run315", 5000, seed=740727) +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/sample_uncert.html b/docs/reference/sample_uncert.html new file mode 100644 index 0000000..23b039d --- /dev/null +++ b/docs/reference/sample_uncert.html @@ -0,0 +1,195 @@ + + + + + + + + +Sample from the multivariate normal distribution to generate new sets of parameters from NONMEM output. — sample_uncert • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    Sample from the multivariate normal distribution to generate new sets of parameters from NONMEM output.

    +
    + +
    sample_uncert(nmRun, n, seed)
    + +

    Arguments

    + + + + + + + + + + + + + + +
    nmRun

    Root filename for the NONMEM run (e.g. "run315").

    n

    Number of samples required.

    seed

    Random seed.

    + +

    Value

    + +

    A data frame containing n samples from the multivariate normal distribution, using +NONMEM typical parameter estimates the NONMEM variance-covariance matrix (from the *.cov file). This +provides n sets of parameter estimates sampled from the uncertainty distribution, suitable +for simulation under model uncertainty.

    +

    See also

    + + + +

    Examples

    +
    if (FALSE) { + nmMatrix <- sample_uncert("run315", 5000, seed=740727) +}
    +
    + +
    + + +
    + + +
    +

    Site built with pkgdown 1.5.1.

    +
    + +
    +
    + + + + + + + + diff --git a/docs/reference/table_rtf.html b/docs/reference/table_rtf.html new file mode 100644 index 0000000..1a91e47 --- /dev/null +++ b/docs/reference/table_rtf.html @@ -0,0 +1,212 @@ + + + + + + + + +Read NONMEM output into a list. — table_rtf • pmxTools + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + + + + +
    + +
    +
    + + +
    +

    table_rtf generates an RTF table from a data frame.

    +
    + +
    table_rtf(
    +  df,
    +  outFile = NULL,
    +  rtfFile = TRUE,
    +  boldHeader = TRUE,
    +  rowNames = FALSE,
    +  ...
    +)
    + +

    Arguments

    + + + + + + + + + + + + + + + + + + + + + + + + + + +
    df

    A data frame.

    outFile

    A filename for writing the table to. If NULL, writes to console.

    rtfFile

    If TRUE (the default), then add RTF tabs to generate a fully formatted RTF file.

    boldHeader

    If TRUE, make the header bold.

    rowNames

    If TRUE, include row names in the table. Default is FALSE.

    ...

    Other formatting options for the table body.

    + +

    Value

    + +

    An RTF table based on the data frame provided.

    +

    References

    + +

    https://www.r-bloggers.com/another-solution-to-the-r-to-word-table-problem/

    + +

    Examples

    +
    if (FALSE) { +scm <- read_scm("E:/DrugX/ModelDevelopment/scm310") +myRTF <- table_rtf(scm$forwardSummary) +}
    +
    + +
    + + + +
    + + + + + + + +