solve_gas_pbtk: solve_gas_pbtk

View source: R/solve_gas_pbtk.R

solve_gas_pbtkR Documentation

solve_gas_pbtk

Description

This function solves for the amounts or concentrations of a chemical in different tissues as functions of time as a result of inhalation exposure to an ideal gas. In this PBTK formulation. C_{tissue} is the concentration in tissue at time t. Since the perfusion limited partition coefficients describe instantaneous equilibrium between the tissue and the free fraction in plasma, the whole plasma concentration is C_{tissue,plasma} = \frac{1}{f_{up}*K_{tissue2fup}}*C_{tissue}. Note that we use a single, constant value of f_{up} across all tissues. Corespondingly the free plasma concentration is modeled as C_{tissue,free plasma} = \frac{1}{K_{tissue2fup}}*C_tissue. The amount of blood flowing from tissue x is Q_{tissue} (L/h) at a concentration C_{x,blood} = \frac{R_{b2p}}{f_{up}*K_{tissue2fup}}*C_{tissue}, where we use a single R_{b2p} value throughout the body. Metabolic clearance is modelled as being from the total plasma concentration here, though it is restricted to the free fraction in calc_hep_clearance by default. Renal clearance via glomerulsr filtration is from the free plasma concentration.

Usage

solve_gas_pbtk(
  chem.name = NULL,
  chem.cas = NULL,
  dtxsid = NULL,
  parameters = NULL,
  times = NULL,
  days = 10,
  tsteps = 4,
  daily.dose = NULL,
  doses.per.day = NULL,
  dose = NULL,
  dosing.matrix = NULL,
  forcings = NULL,
  exp.start.time = 0,
  exp.conc = 1,
  period = 24,
  exp.duration = 12,
  initial.values = NULL,
  plots = FALSE,
  suppress.messages = FALSE,
  species = "Human",
  iv.dose = FALSE,
  input.units = "ppmv",
  output.units = NULL,
  default.to.human = FALSE,
  class.exclude = TRUE,
  recalc.blood2plasma = FALSE,
  recalc.clearance = FALSE,
  adjusted.Funbound.plasma = TRUE,
  regression = TRUE,
  restrictive.clearance = TRUE,
  minimum.Funbound.plasma = 1e-04,
  monitor.vars = NULL,
  vmax = 0,
  km = 1,
  exercise = FALSE,
  fR = 12,
  VT = 0.75,
  VD = 0.15,
  ...
)

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

parameters

Chemical parameters from parameterize_gas_pbtk (or other bespoke) function, overrides chem.name and chem.cas.

times

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

days

Length of the simulation.

tsteps

The number of time steps per hour.

daily.dose

Total daily dose

doses.per.day

Number of doses per day.

dose

Amount of a single dose

dosing.matrix

Vector of dosing times or a matrix consisting of two columns or rows named "dose" and "time" containing the time and amount of each dose.

forcings

Manual input of 'forcings' data series argument for ode integrator. If left unspecified, 'forcings' defaults to NULL, and then other input parameters (see exp.start.time, exp.conc, exp.duration, and period) provide the necessary information to assemble a forcings data series.

exp.start.time

Start time in specifying forcing exposure series, default 0.

exp.conc

Specified inhalation exposure concentration for use in assembling "forcings" data series argument for integrator. Defaults to units of ppmv.

period

For use in assembling forcing function data series 'forcings' argument, specified in hours

exp.duration

For use in assembling forcing function data series 'forcings' argument, specified in hours

initial.values

Vector containing the initial concentrations or amounts of the chemical in specified tissues with units corresponding to those specified for the model outputs. Default values 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, including forcings. Defaults to "ppmv" as applied to the default forcings scheme.

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.

default.to.human

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

class.exclude

Exclude chemical classes identified as outside of domain of applicability by relevant modelinfo_[MODEL] file (default TRUE).

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 hepatic clearance (Clmetabolism) with new million.cells.per.gliver parameter.

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. Defaults value of NULL provides "Cgut", "Cliver", "Cven", "Clung", "Cart", "Crest", "Ckidney", "Cplasma", "Calv", "Cendexh", "Cmixexh", "Cmuc", "Atubules", "Ametabolized", "AUC"

vmax

Michaelis-Menten vmax value in reactions/min

km

Michaelis-Menten concentration of half-maximal reaction velocity in desired output concentration units.

exercise

Logical indicator of whether to simulate an exercise-induced heightened respiration rate

fR

Respiratory frequency (breaths/minute), used especially to adjust breathing rate in the case of exercise. This parameter, along with VT and VD (below) gives another option for calculating Qalv (Alveolar ventilation) in case pulmonary ventilation rate is not known

VT

Tidal volume (L), to be modulated especially as part of simulating the state of exercise

VD

Anatomical dead space (L), to be modulated especially as part of simulating the state of exercise

...

Additional arguments passed to the integrator (deSolve). (Note: There are precision differences between M1 Mac and other OS systems for this function due to how long doubles are handled. To replicate results between various OS systems we suggest changing the default method of "lsoda" to "lsode" and also adding the argument mf = 10. See [deSolve::ode()] for further details.)

Details

The default dosing scheme involves a specification of the start time of exposure (exp.start.time), the concentration of gas inhaled (exp.conc), the period of a cycle of exposure and non-exposure (period), the duration of the exposure during that period (exp.duration), and the total days simulated. Together,these arguments determine the "forcings" passed to the ODE integrator. Forcings can also be specified manually, or effectively turned off by setting exposure concentration to zero, if the user prefers to simulate dosing by other means.

The "forcings" object is configured to be passed to the integrator with, at the most, a basic unit conversion among ppmv, mg/L, and uM. No scaling by BW is set to be performed on the forcings series.

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 gut lumen, 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 from \insertCitelinakis2020developmenthttk: Figure: Gas PBTK  Model Schematic

Model parameters are named according to the following convention:

prefix suffic Meaning units
K Partition coefficient for tissue to free plasma \ tab unitless
V Volume L
Q Flow L/h
k Rate 1/h
c Parameter is proportional to body weight 1 / kg for volumes and 1/kg^(3/4) for flows

When species is specified but chemical-specific in vitro data are not available, the function uses the appropriate physiological data (volumes and flows) but default.to.human = TRUE must be used to substitute 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)

Matt Linakis, John Wambaugh, Mark Sfeir, Miyuki Breen

References

\insertRef

linakis2020developmenthttk

\insertRef

pearce2017httkhttk

See Also

solve_model

parameterize_gas_pbtk

Examples



solve_gas_pbtk(chem.name = 'pyrene', exp.conc = 1, period = 24, expduration = 24)

out <- solve_gas_pbtk(chem.name='pyrene',
                      exp.conc = 0, doses.per.day = 2,
                      daily.dose = 3, input.units = "umol",
                      days=2.5, 
                      plots=TRUE, initial.values=c(Aven=20))

out <- solve_gas_pbtk(chem.name = 'pyrene', exp.conc = 3, 
                      period = 24, days=2.5,
                      exp.duration = 6, exercise = TRUE)
                  
params <- parameterize_gas_pbtk(chem.cas="80-05-7")
solve_gas_pbtk(parameters=params, days=2.5)

# Oral dose with exhalation as a route of elimination:
out <- solve_gas_pbtk(chem.name = 'bisphenol a', exp.conc = 0, dose=100,
                      days=2.5, input.units="mg/kg")

# Note that different model compartments for this model have different units 
# and that the final units can be controlled with the output.units argument:
head(solve_gas_pbtk(chem.name="lindane", days=2.5))
# Convert all compartment units to mg/L:
head(solve_gas_pbtk(chem.name="lindane", days=2.5, output.units="mg/L"))
# Convert just the plasma to mg/L:
head(solve_gas_pbtk(chem.name="lindane", days=2.5, 
                    output.units=list(Cplasma="mg/L")))



httk documentation built on Sept. 11, 2024, 9:32 p.m.