View source: R/solve_gas_pbtk.R
solve_gas_pbtk | R Documentation |
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.
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,
...
)
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.) |
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:
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.
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.
Matt Linakis, John Wambaugh, Mark Sfeir, Miyuki Breen
linakis2020developmenthttk
\insertRefpearce2017httkhttk
solve_model
parameterize_gas_pbtk
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")))
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.