solve_pbtk: Solve_PBTK

View source: R/solve_pbtk.R

solve_pbtkR Documentation

Solve_PBTK

Description

This function solves for the amounts or concentrations in uM of a chemical in different tissues as functions of time based on the dose and dosing frequency.

Usage

solve_pbtk(
  chem.name = NULL,
  chem.cas = NULL,
  dtxsid = NULL,
  times = NULL,
  parameters = NULL,
  days = 10,
  tsteps = 4,
  daily.dose = NULL,
  dose = NULL,
  doses.per.day = NULL,
  initial.values = NULL,
  plots = FALSE,
  suppress.messages = FALSE,
  species = "Human",
  iv.dose = FALSE,
  input.units = "mg/kg",
  output.units = NULL,
  method = "lsoda",
  rtol = 1e-08,
  atol = 1e-12,
  default.to.human = FALSE,
  recalc.blood2plasma = FALSE,
  recalc.clearance = FALSE,
  dosing.matrix = NULL,
  adjusted.Funbound.plasma = TRUE,
  regression = TRUE,
  restrictive.clearance = TRUE,
  minimum.Funbound.plasma = 1e-04,
  monitor.vars = NULL,
  ...
)

Arguments

chem.name

Either the chemical name, CAS number, or the parameters must be specified.

chem.cas

Either the chemical name, CAS number, or the parameters must be specified.

dtxsid

EPA's DSSTox Structure ID (https://comptox.epa.gov/dashboard) the chemical must be identified by either CAS, name, or DTXSIDs

times

Optional time sequence for specified number of days. Dosing sequence begins at the beginning of times.

parameters

Chemical parameters from parameterize_pbtk function, overrides chem.name and chem.cas.

days

Length of the simulation.

tsteps

The number of time steps per hour.

daily.dose

Total daily dose, defaults to mg/kg BW.

dose

Amount of a single, initial oral dose in mg/kg BW.

doses.per.day

Number of doses per day.

initial.values

Vector containing the initial concentrations or amounts of the chemical in specified tissues with units corresponding to output.units. Defaults are zero.

plots

Plots all outputs if true.

suppress.messages

Whether or not the output message is suppressed.

species

Species desired (either "Rat", "Rabbit", "Dog", "Mouse", or default "Human").

iv.dose

Simulates a single i.v. dose if true.

input.units

Input units of interest assigned to dosing, defaults to mg/kg BW

output.units

A named vector of output units expected for the model results. Default, NULL, returns model results in units specified in the 'modelinfo' file. See table below for details.

method

Method used by integrator (deSolve).

rtol

Argument passed to integrator (deSolve).

atol

Argument passed to integrator (deSolve).

default.to.human

Substitutes missing animal values with human values if true (hepatic intrinsic clearance or fraction of unbound plasma).

recalc.blood2plasma

Recalculates the ratio of the amount of chemical in the blood to plasma using the input parameters, calculated with hematocrit, Funbound.plasma, and Krbc2pu.

recalc.clearance

Recalculates the the hepatic clearance (Clmetabolism) with new million.cells.per.gliver parameter.

dosing.matrix

Vector of dosing times or a matrix consisting of two columns or rows named "dose" and "time" containing the time and amount, in mg/kg BW, of each dose.

adjusted.Funbound.plasma

Uses adjusted Funbound.plasma when set to TRUE along with partition coefficients calculated with this value.

regression

Whether or not to use the regressions in calculating partition coefficients.

restrictive.clearance

Protein binding not taken into account (set to 1) in liver clearance if FALSE.

minimum.Funbound.plasma

Monte Carlo draws less than this value are set equal to this value (default is 0.0001 – half the lowest measured Fup in our dataset).

monitor.vars

Which variables are returned as a function of time. The default value of NULL provides "Cgut", "Cliver", "Cven", "Clung", "Cart", "Crest", "Ckidney", "Cplasma", "Atubules", "Ametabolized", and "AUC"

...

Additional arguments passed to the integrator.

Details

Note that the model parameters have units of hours while the model output is in days.

Default NULL value for doses.per.day solves for a single dose.

The compartments used in this model are the gutlumen, gut, liver, kidneys, veins, arteries, lungs, and the rest of the body.

The extra compartments include the amounts or concentrations metabolized by the liver and excreted by the kidneys through the tubules.

AUC is the area under the curve of the plasma concentration.

Model Figure Figure: PBTK ModelSchematic

When species is specified as rabbit, dog, or mouse, the function uses the appropriate physiological data(volumes and flows) but substitues human fraction unbound, partition coefficients, and intrinsic hepatic clearance.

Value

A matrix of class deSolve with a column for time(in days), each compartment, the area under the curve, and plasma concentration and a row for each time point.

Author(s)

John Wambaugh and Robert Pearce

References

Pearce, Robert G., et al. "Httk: R package for high-throughput toxicokinetics." Journal of statistical software 79.4 (2017): 1.

See Also

solve_model

parameterize_gas_pbtk

calc_analytic_css_pbtk

Examples


# Multiple doses per day:
head(solve_pbtk(
  chem.name='Bisphenol-A',
  daily.dose=.5,
  days=2.5,
  doses.per.day=2,
  tsteps=2))

# Starting with an initial concentration:
out <- solve_pbtk(
  chem.name='bisphenola',
  dose=0,
  days=2.5,
  output.units="mg/L", 
  initial.values=c(Agut=200))

# Working with parameters (rather than having solve_pbtk retrieve them):
params <- parameterize_pbtk(chem.cas="80-05-7")
head(solve_pbtk(parameters=params, days=2.5))
                  
# We can change the parameters given to us by parameterize_pbtk:
params <- parameterize_pbtk(dtxsid="DTXSID4020406", species = "rat")
params["Funbound.plasma"] <- 0.1
out <- solve_pbtk(parameters=params, days=2.5)


# A fifty day simulation:
out <- solve_pbtk(
  chem.name = "Bisphenol A", 
  days = 50, 
  daily.dose=1,
  doses.per.day = 3)
plot.data <- as.data.frame(out)
css <- calc_analytic_css(chem.name = "Bisphenol A")

library("ggplot2")
c.vs.t <- ggplot(plot.data, aes(time, Cplasma)) + 
  geom_line() +
  geom_hline(yintercept = css) + 
  ylab("Plasma Concentration (uM)") +
  xlab("Day") + 
  theme(
    axis.text = element_text(size = 16), 
    axis.title = element_text(size = 16), 
    plot.title = element_text(size = 17)) +
  ggtitle("Bisphenol A")
print(c.vs.t)



httk documentation built on March 7, 2023, 7:26 p.m.