calc_mc_css | R Documentation |
For a given chemical and fixed dose rate this function determines a
distribution of steady-state concentrations reflecting measurement uncertainty
an population variability. Uncertainty and variability are simulated via the
Monte Carlo method – many sets of model parameters are drawn according to
probability distributions described in
Ring et al. (2017) (\Sexpr[results=rd]{tools:::Rd_expr_doi("10.1016/j.envint.2017.06.004")})
for human variability and Wambaugh et al. (2019)
(\Sexpr[results=rd]{tools:::Rd_expr_doi("10.1093/toxsci/kfz205")})
for measurement uncertainty. Monte Carlo samples are generated by the
function create_mc_samples
. To allow rapid application of the
Monte Carlo
method we make use of analytical solutions for the steady-state concentration
for a particular model via a given route (when available) as opposed to
solving the model numerically (that is, using differential equations).
For each sample of the Monte Carlo method (as specified by argument
samples
) the parameters for the analytical solution are varied. An
ensemble of steady-state predictions are produced, though by default only
the quantiles specified by argument which.quantile
are provided. If
the full set of predicted values are desired use set the argument
return.samples
to TRUE
.
calc_mc_css(
chem.cas = NULL,
chem.name = NULL,
dtxsid = NULL,
parameters = NULL,
samples = 1000,
which.quantile = 0.95,
species = "Human",
daily.dose = 1,
suppress.messages = FALSE,
model = "3compartmentss",
httkpop = TRUE,
httkpop.dt = NULL,
invitrouv = TRUE,
calcrb2p = TRUE,
censored.params = list(),
vary.params = list(),
return.samples = FALSE,
tissue = NULL,
concentration = "plasma",
output.units = "mg/L",
invitro.mc.arg.list = NULL,
httkpop.generate.arg.list = list(method = "direct resampling"),
convert.httkpop.arg.list = NULL,
parameterize.arg.list = NULL,
calc.analytic.css.arg.list = NULL,
Caco2.options = NULL
)
chem.cas |
Chemical Abstract Services Registry Number (CAS-RN) – if parameters is not specified then the chemical must be identified by either CAS, name, or DTXISD |
chem.name |
Chemical name (spaces and capitalization ignored) – if parameters is not specified then the chemical must be identified by either CAS, name, or DTXISD |
dtxsid |
EPA's DSSTox Structure ID (https://comptox.epa.gov/dashboard) – if parameters is not specified then the chemical must be identified by either CAS, name, or DTXSIDs |
parameters |
Parameters from the appropriate parameterization function for the model indicated by argument model |
samples |
Number of samples generated in calculating quantiles. |
which.quantile |
Which quantile from Monte Carlo simulation is requested. Can be a vector. |
species |
Species desired (either "Rat", "Rabbit", "Dog", "Mouse", or default "Human"). Species must be set to "Human" to run httkpop model. |
daily.dose |
Total daily dose, mg/kg BW. |
suppress.messages |
Whether or not to suppress output message. |
model |
Model used in calculation,'gas_pbtk' for the gas pbtk model, 'pbtk' for the multiple compartment model, '3compartment' for the three compartment model, '3compartmentss' for the three compartment steady state model, and '1compartment' for one compartment model. This only applies when httkpop=TRUE and species="Human", otherwise '3compartmentss' is used. |
httkpop |
Whether or not to use population generator and sampler from httkpop. This is overwrites censored.params and vary.params and is only for human physiology. Species must also be set to 'Human'. |
httkpop.dt |
A data table generated by |
invitrouv |
Logical to indicate whether to include in vitro parameters in uncertainty and variability analysis |
calcrb2p |
Logical determining whether or not to recalculate the chemical ratio of blood to plasma |
censored.params |
The parameters listed in censored.params are sampled from a normal distribution that is censored for values less than the limit of detection (specified separately for each parameter). This argument should be a list of sublists. Each sublist is named for a parameter in "parameters" and contains two elements: "CV" (coefficient of variation) and "LOD" (limit of detection, below which parameter values are censored. New values are sampled with mean equal to the value in "parameters" and standard deviation equal to the mean times the CV. Censored values are sampled on a uniform distribution between 0 and the limit of detection. Not used with httkpop model. |
vary.params |
The parameters listed in vary.params are sampled from a normal distribution that is truncated at zero. This argument should be a list of coefficients of variation (CV) for the normal distribution. Each entry in the list is named for a parameter in "parameters". New values are sampled with mean equal to the value in "parameters" and standard deviation equal to the mean times the CV. Not used with httkpop model. |
return.samples |
Whether or not to return the vector containing the samples from the simulation instead of the selected quantile. |
tissue |
Desired steady state tissue concentration. Default is of NULL typically gives whole body plasma concentration. |
concentration |
Desired concentration type: 'blood','tissue', or default 'plasma'. In the case that the concentration is for plasma, selecting "blood" will use the blood:plasma ratio to estimate blood concentration. In the case that the argument 'tissue' specifies a particular tissue of the body, concentration defaults to 'tissue' – that is, the concentration in the If cocentration is set to 'blood' or 'plasma' and 'tissue' specifies a specific tissue then the value returned is for the plasma or blood in that specific tissue. |
output.units |
Plasma concentration units, either uM or default mg/L. |
invitro.mc.arg.list |
List of additional parameters passed to
|
httkpop.generate.arg.list |
Additional parameters passed to
|
convert.httkpop.arg.list |
Additional parameters passed to the convert_httkpop_* function for the model. |
parameterize.arg.list |
A list of arguments to be passed to the model parameterization function (that is, parameterize_MODEL) corresponding to argument "model". (Defaults to NULL.) |
calc.analytic.css.arg.list |
Additional parameters passed to |
Caco2.options |
Arguments describing how to handle Caco2 absorption data
that are passed to
|
The chemical-specific steady-state concentration for a dose rate of 1 mg/kg body weight/day can be used for in in vitro-in vivo extrapolation (IVIVE) of a bioactive in vitro concentration by dividing the in vitro concentration by the steady-state concentration to predict a dose rate (mg/kg/day) that would produce that concentration in plasma. Using quantiles of the distribution (such as the upper 95th percentile) allow incorporation of uncertainty and variability into IVIVE.
Reverse Dosimetry Toxicodynamic IVIVE
Figure from Breen et al. (2021) (\Sexpr[results=rd]{tools:::Rd_expr_doi("10.1080/17425255.2021.1935867")}) shows reverse dosimetry toxicodynamic IVIVE. Equivalent external dose is determined by solving the TK model in reverse by deriving the external dose (that is, TK model input) that produces a specified internal concentration (that is, TK model output). Reverse dosimetry and IVIVE using HTTK relies on the linearity of the models. We calculate a scaling factor to relate in vitro concentrations (uM) to administered equivalent doses (AED). The scaling factor is the inverse of the steady state plasma concentration (Css) predicted for a 1 mg/kg/day exposure dose rate. We use Monte Carlo to simulate variability and propagate uncertainty; for example, to calculate an upper 95th percentile Css,95 for individuals who get higher plasma concentrations from the same exposure.
The Monte Carlo methods used here were recently updated and described by Breen et al. (submitted).
httk-pop is used only for humans. For non-human species biological variability is simulated by drawing parameters from uncorellated log-normal distributions.
Chemical-specific httk data are available primarily for human and for a few
hundred chemicals in rat. All in silico predictions are for human. Thus,
when species is specified as rabbit, dog, or mouse, the user can choose
to set the argument default.to.human
to TRUE
so that this
function uses the
appropriate physiological data (volumes and flows) but substitutes human
fraction unbound, partition coefficients, and intrinsic hepatic clearance.
If the argument tissue
is used, the steady-state concentration in that
tissue, if available, is provided. If that tissue is included in the model
used (specified by arguement model
) then the actual tissue
concentration is
provided. Otherwise, the tissue-specific partition coefficient is used to
estimate the concentration from the plasma.
The six sets of plausible IVIVE assumptions identified by Honda et al. (2019) (\Sexpr[results=rd]{tools:::Rd_expr_doi("10.1371/journal.pone.0217564")}) are:
in vivo Conc. | Metabolic Clearance | Bioactive Chemical Conc. | TK Statistic Used* | |
Honda1 | Veinous (Plasma) | Restrictive | Free | Mean Conc. |
Honda2 | Veinous | Restrictive | Free | Max Conc. |
Honda3 | Veinous | Non-restrictive | Total | Mean Conc. |
Honda4 | Veinous | Non-restrictive | Total | Max Conc. |
Honda5 | Target Tissue | Non-restrictive | Total | Mean Conc. |
Honda6 | Target Tissue | Non-restrictive | Total | Max Conc. |
*Assumption is currently ignored because analytical steady-state solutions are currently used by this function.
Quantiles (specified by which.quantile) of the distribution of plasma steady-stae concentration (Css) from the Monte Carlo simulation
Caroline Ring, Robert Pearce, John Wambaugh, Miyuki Breen, and Greg Honda
Wambaugh, John F., et al. "Toxicokinetic triage for environmental chemicals." Toxicological Sciences 147.1 (2015): 55-67.
\insertRefring2017identifyinghttk
\insertRefhonda2019usinghttk
\insertRefrowland1973clearancehttk
calc_analytic_css
create_mc_samples
# Set the number of samples (NSAMP) low for rapid testing, increase NSAMP
# for more stable results. Default value is 1000:
NSAMP = 10
# Basic in vitro - in vivo extrapolation with httk, convert 3 uM in vitro
# concentration of chemical with CAS 2451-62-9 to mg/kg/day:
set.seed(1234)
3/calc_mc_css(chem.cas="2451-62-9", samples=NSAMP, output.units="uM")
# The significant digits should give the same answer as:
set.seed(1234)
calc_mc_oral_equiv(chem.cas="2451-62-9", conc=3, samples=NSAMP)
set.seed(1234)
calc_mc_css(chem.name='Bisphenol A', output.units='uM',
samples=NSAMP, return.samples=TRUE)
set.seed(1234)
calc_mc_css(chem.name='Bisphenol A', output.units='uM',
samples=NSAMP,
httkpop.generate.arg.list=list(method='vi'))
# The following example should result in an error since we do not
# estimate tissue partitioning with '3compartmentss'.
set.seed(1234)
try(calc_mc_css(chem.name='2,4-d', which.quantile=.9,
samples=NSAMP,
httkpop=FALSE, tissue='heart'))
# But heart will work with PBTK, even though it's lumped since we estimate
# a partition coefficient before lumping:
set.seed(1234)
calc_mc_css(chem.name='2,4-d', model='pbtk',
samples=NSAMP,
which.quantile=.9, httkpop=FALSE, tissue='heart')
set.seed(1234)
calc_mc_css(chem.cas = "80-05-7", which.quantile = 0.5,
output.units = "uM", samples = NSAMP,
httkpop.generate.arg.list=list(method='vi', gendernum=NULL,
agelim_years=NULL, agelim_months=NULL,
weight_category = c("Underweight","Normal","Overweight","Obese")))
params <- parameterize_pbtk(chem.cas="80-05-7")
set.seed(1234)
calc_mc_css(parameters=params,model="pbtk", samples=NSAMP)
set.seed(1234)
# Standard HTTK Monte Carlo
calc_mc_css(chem.cas="90-43-7", model="pbtk", samples=NSAMP)
set.seed(1234)
# HTTK Monte Carlo with no measurement uncertainty (pre v1.10.0):
calc_mc_css(chem.cas="90-43-7",
model="pbtk",
samples=NSAMP,
invitro.mc.arg.list = list(
adjusted.Funbound.plasma = TRUE,
poormetab = TRUE,
fup.censored.dist = FALSE,
fup.lod = 0.01,
fup.meas.cv = 0.0,
clint.meas.cv = 0.0,
fup.pop.cv = 0.3,
clint.pop.cv = 0.3))
# HTTK Monte Carlo with no HTTK-Pop physiological variability):
set.seed(1234)
calc_mc_css(chem.cas="90-43-7",model="pbtk",samples=NSAMP,httkpop=FALSE)
# HTTK Monte Carlo with no in vitro uncertainty and variability):
set.seed(1234)
calc_mc_css(chem.cas="90-43-7",model="pbtk",samples=NSAMP,invitrouv=FALSE)
# HTTK Monte Carlo with no HTTK-Pop and no in vitro uncertainty and variability):
set.seed(1234)
calc_mc_css(chem.cas="90-43-7" ,model="pbtk",
samples=NSAMP, httkpop=FALSE, invitrouv=FALSE)
# Should be the same as the mean result:
calc_analytic_css(chem.cas="90-43-7",model="pbtk",output.units="mg/L")
# HTTK Monte Carlo using basic Monte Carlo sampler:
set.seed(1234)
calc_mc_css(chem.cas="90-43-7",
model="pbtk",
samples=NSAMP,
httkpop=FALSE,
invitrouv=FALSE,
vary.params=list(Pow=0.3))
# We can also use the Monte Carlo functions by passing a table
# where each row represents a different Monte Carlo draw of parameters:
p <- create_mc_samples(chem.cas="80-05-7")
# Use data.table for steady-state plasma concentration (Css) Monte Carlo:
calc_mc_css(parameters=p)
# Using the same table gives the same answer:
calc_mc_css(parameters=p)
# Use Css for 1 mg/kg/day for simple reverse toxicokinetics
# in Vitro-In Vivo Extrapolation to convert 15 uM to mg/kg/day:
15/calc_mc_css(parameters=p, output.units="uM")
# Can do the same with calc_mc_oral_equiv:
calc_mc_oral_equiv(15, parameters=p)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.