From 4a918da6d5f971335b74b0fc83cb08f5c3163f95 Mon Sep 17 00:00:00 2001 From: Johannes Ranke Date: Fri, 21 Jul 2017 14:42:14 +0200 Subject: Rename twa to max_twa_parent, update docs --- R/max_twa_parent.R | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ R/twa.R | 65 ------------------------------------------------------ 2 files changed, 65 insertions(+), 65 deletions(-) create mode 100644 R/max_twa_parent.R delete mode 100644 R/twa.R (limited to 'R') diff --git a/R/max_twa_parent.R b/R/max_twa_parent.R new file mode 100644 index 00000000..8d8b77f8 --- /dev/null +++ b/R/max_twa_parent.R @@ -0,0 +1,65 @@ +# Copyright (C) 2016,2017 Johannes Ranke +# Contact: jranke@uni-bremen.de + +# This file is part of the R package mkin + +# mkin is free software: you can redistribute it and/or modify it under the +# terms of the GNU General Public License as published by the Free Software +# Foundation, either version 3 of the License, or (at your option) any later +# version. + +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more +# details. + +# You should have received a copy of the GNU General Public License along with +# this program. If not, see + +max_twa_parent <- function(fit, windows) { + parms.all <- c(fit$bparms.optim, fit$bparms.fixed) + obs_vars <- fit$obs_vars + if (length(obs_vars) > 1) { + warning("Calculation of maximum time weighted average concentrations is", + "currently only implemented for the parent compound using", + "analytical solutions") + } + obs_var <- obs_vars[1] + spec = fit$mkinmod$spec + type = spec[[1]]$type + + M0 <- parms.all[paste0(obs_var, "_0")] + + if (type == "SFO") { + k_name <- paste0("k_", obs_var) + if (fit$mkinmod$use_of_ff == "min") { + k_name <- paste0(k_name, "_sink") + } + k <- parms.all[k_name] + twafunc <- function(t) { + M0 * (1 - exp(- k * t)) / (k * t) + } + } + if (type == "FOMC") { + alpha <- parms.all["alpha"] + beta <- parms.all["beta"] + twafunc <- function(t) { + M0 * (beta)/(t * (1 - alpha)) * ((t/beta + 1)^(1 - alpha) - 1) + } + } + if (type == "DFOP") { + k1 <- parms.all["k1"] + k2 <- parms.all["k2"] + g <- parms.all["g"] + twafunc <- function(t) { + M0/t * ((g/k1) * (1 - exp(- k1 * t)) + ((1 - g)/k2) * (1 - exp(- k2 * t))) + } + } + if (type %in% c("HS", "IORE", "SFORB")) { + stop("Calculation of maximum time weighted average concentrations is currently ", + "not implemented for the ", type, " model.") + } + res <- twafunc(windows) + names(res) <- windows + return(res) +} diff --git a/R/twa.R b/R/twa.R deleted file mode 100644 index e8894b0b..00000000 --- a/R/twa.R +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright (C) 2016 Johannes Ranke -# Contact: jranke@uni-bremen.de - -# This file is part of the R package mkin - -# mkin is free software: you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation, either version 3 of the License, or (at your option) any later -# version. - -# This program is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS -# FOR A PARTICULAR PURPOSE. See the GNU General Public License for more -# details. - -# You should have received a copy of the GNU General Public License along with -# this program. If not, see - -twa <- function(fit, windows) { - parms.all <- c(fit$bparms.optim, fit$bparms.fixed) - obs_vars <- fit$obs_vars - if (length(obs_vars) > 1) { - warning("Calculation of maximum time weighted average concentrations is", - "currently only implemented for the parent compound using", - "analytical solutions") - } - obs_var <- obs_vars[1] - spec = fit$mkinmod$spec - type = spec[[1]]$type - - M0 <- parms.all[paste0(obs_var, "_0")] - - if (type == "SFO") { - k_name <- paste0("k_", obs_var) - if (fit$mkinmod$use_of_ff == "min") { - k_name <- paste0(k_name, "_sink") - } - k <- parms.all[k_name] - twafunc <- function(t) { - M0 * (1 - exp(- k * t)) / (k * t) - } - } - if (type == "FOMC") { - alpha <- parms.all["alpha"] - beta <- parms.all["beta"] - twafunc <- function(t) { - M0 * (beta)/(t * (1 - alpha)) * ((t/beta + 1)^(1 - alpha) - 1) - } - } - if (type == "DFOP") { - k1 <- parms.all["k1"] - k2 <- parms.all["k2"] - g <- parms.all["g"] - twafunc <- function(t) { - M0/t * ((g/k1) * (1 - exp(- k1 * t)) + ((1 - g)/k2) * (1 - exp(- k2 * t))) - } - } - if (type %in% c("HS", "IORE", "SFORB")) { - stop("Calculation of maximum time weighted average concentrations is currently ", - "not implemented for the ", type, " model.") - } - res <- twafunc(windows) - names(res) <- windows - return(res) -} -- cgit v1.2.1