Introduction to HTTK

Miyuki Breen, Anna Kreutz, and John Wambaugh

June 15, 2021

breen.miyuki@epa.gov

Set vignette options

knitr::opts_chunk$set(echo = TRUE, fig.width=5, fig.height=4)

Description

R package “httk” provides pre-made, chemical independent (“generic”) models and chemical-specific data for chemical toxicokinetics (“TK”) and in vitro-in vivo extrapolation (“IVIVE”) in bioinformatics, as described by Pearce et al. (2017) https://doi.org/10.18637/jss.v079.i04. Chemical-specific in vitro data have been obtained from relatively high-throughput experiments. Both physiologically-based (“PBTK”) and empirical (for example, one compartment) “TK” models can be parameterized with the data provided for thousands of chemicals, multiple exposure routes, and various species. The models consist of systems of ordinary differential equations which are solved using compiled (C-based) code for speed. A Monte Carlo sampler is included, which allows for simulating human biological variability (Ring et al., 2017 https://doi.org/10.1016/j.envint.2017.06.004) and propagating parameter uncertainty. Calibrated methods are included for predicting tissue:plasma partition coefficients and volume of distribution (Pearce et al., 2017 https://doi.org/10.1007/s10928-017-9548-7). These functions and data provide a set of tools for IVIVE of high-throughput screening data (for example, Tox21, ToxCast) to real-world exposures via reverse dosimetry (also known as “RTK”) (Wetmore et al., 2015 https://doi.org/10.1093/toxsci/kfv171).

Introduction

Chemicals can be identified using name, CAS, or DTXSID (that is, a substance identifier for the Distributed Structure- Searchable Toxicity (DSSTox) database [138]). Available chemical- specific information includes logP, MW, pKa, intrinsic clearance, partitioning. Calculations can be performed to derive chemical properties, TK parameters, or IVIVE values. Functions are also available to perform forward dosimetry using the various models. As functions are typed at the RStudio command line, available arguments are displayed, with additional help available through the ‘?’ operator. Vignettes for the various available packages in httk are provided to give an overview of their respective capabilities. The aim of httk is to provide a readily accessible platform for working with HTTK models.

This material is from Breen et al. (2021) “High-throughput PBTK models for in vitro to in vivo extrapolation” https://doi.org/10.1080/17425255.2021.1935867

Getting Started

For an introduction to R, see Irizarry (2022) “Introduction to Data Science”: https://rafalab.github.io/dsbook/getting-started.html

For an introduction to toxicokinetics, with examples in “httk”, see Ring (2021) in the “TAME Toolkit”: https://uncsrp.github.io/Data-Analysis-Training-Modules/toxicokinetic-modeling.html

Dependencies

Installing R package “httk”

Delete all objects from memory:

Load the HTTK data, models, and functions

## [1] '2.2.0'

Examples

head(get_cheminfo())
## Warning in get_cheminfo(): Excluding compounds that have one or more missing in
## necessary parameters.
## Warning in get_cheminfo(): Excluding compounds without a 'fup' value (i.e. fup
## value = NA).
## Warning in get_cheminfo(): Excluding compounds with uncertain 'fup' confidence/
## credible intervals.
## Warning in get_cheminfo(): Excluding compounds that do not have a clint value or
## distribution of clint values.
## Warning in get_cheminfo(): Excluding volatile compounds defined as log.Henry >=
## -4.5.
## [1] "2971-36-0"  "94-75-7"    "94-82-6"    "90-43-7"    "1007-28-9" 
## [6] "71751-41-2"

Remove the head() function to get the full table

get_cheminfo()

Note that we use the R built-in function head() to show only the first five rows

head(get_cheminfo(info = "all", median.only=TRUE))
## Warning in get_cheminfo(info = "all", median.only = TRUE): Clint values with a
## pvalue > 0.05 were set to 0.

## Warning in get_cheminfo(info = "all", median.only = TRUE): Clint values with a
## pvalue > 0.05 were set to 0.
## Warning in get_cheminfo(info = "all", median.only = TRUE): Excluding compounds
## that have one or more missing in necessary parameters.
## Warning in get_cheminfo(info = "all", median.only = TRUE): Excluding compounds
## without a 'fup' value (i.e. fup value = NA).
## Warning in get_cheminfo(info = "all", median.only = TRUE): Excluding compounds
## with uncertain 'fup' confidence/credible intervals.
## Warning in get_cheminfo(info = "all", median.only = TRUE): Excluding compounds
## that do not have a clint value or distribution of clint values.
## Warning in get_cheminfo(info = "all", median.only = TRUE): Excluding volatile
## compounds defined as log.Henry >= -4.5.
##                                                Compound        CAS
## 1 2,2-bis(4-hydroxyphenyl)-1,1,1-trichloroethane (hpte)  2971-36-0
## 2                                                 2,4-d    94-75-7
## 3                                                2,4-db    94-82-6
## 4                                        2-phenylphenol    90-43-7
## 5                                6-desisopropylatrazine  1007-28-9
## 6                                             Abamectin 71751-41-2
##          DTXSID logP    MW pKa_Accept         pKa_Donor Human.Clint
## 1 DTXSID8022325 4.62 317.6       None              8.33      136.50
## 2 DTXSID0020442 2.81 221.0       None              2.42        0.00
## 3 DTXSID7024035 3.53 249.1       None              3.11        0.00
## 4 DTXSID2021151 3.09 170.2       None              9.35        0.00
## 5 DTXSID0037495 1.15 173.6       3.43              None        0.00
## 6 DTXSID8023892 4.48 819.0       None 12.47,13.17,13.80        5.24
##   Human.Clint.pValue Human.Funbound.plasma Human.Rblood2plasma
## 1          0.0000357              0.005000                  NA
## 2          0.1488000              0.040010                2.11
## 3          0.1038000              0.006623                  NA
## 4          0.1635000              0.041050                  NA
## 5          0.5387000              0.458800                  NA
## 6          0.0009170              0.066870                  NA
"80-05-7" %in% get_cheminfo()
## Warning in get_cheminfo(): Excluding compounds that have one or more missing in
## necessary parameters.
## Warning in get_cheminfo(): Excluding compounds without a 'fup' value (i.e. fup
## value = NA).
## Warning in get_cheminfo(): Excluding compounds with uncertain 'fup' confidence/
## credible intervals.
## Warning in get_cheminfo(): Excluding compounds that do not have a clint value or
## distribution of clint values.
## Warning in get_cheminfo(): Excluding volatile compounds defined as log.Henry >=
## -4.5.
## [1] TRUE
subset(get_cheminfo(info = "all"), Compound %in% c("A","B","C"))
## Warning in get_cheminfo(info = "all"): Clint values with a pvalue > 0.05 were
## set to 0.

## Warning in get_cheminfo(info = "all"): Clint values with a pvalue > 0.05 were
## set to 0.
## Warning in get_cheminfo(info = "all"): Excluding compounds that have one or more
## missing in necessary parameters.
## Warning in get_cheminfo(info = "all"): Excluding compounds without a 'fup' value
## (i.e. fup value = NA).
## Warning in get_cheminfo(info = "all"): Excluding compounds with uncertain 'fup'
## confidence/credible intervals.
## Warning in get_cheminfo(info = "all"): Excluding compounds that do not have a
## clint value or distribution of clint values.
## Warning in get_cheminfo(info = "all"): Excluding volatile compounds defined as
## log.Henry >= -4.5.
##  [1] Compound              CAS                   DTXSID               
##  [4] logP                  MW                    pKa_Accept           
##  [7] pKa_Donor             Human.Clint           Human.Clint.pValue   
## [10] Human.Funbound.plasma Human.Rblood2plasma  
## <0 rows> (or 0-length row.names)
calc_mc_oral_equiv(0.1,chem.cas = "34256-82-1",species = "human")
## Warning in (function (chem.cas = NULL, chem.name = NULL, dtxsid = NULL, :
## Funbound.plasma adjusted for in vitro partitioning (Pearce, 2017).
## Warning in (function (chem.cas = NULL, chem.name = NULL, dtxsid = NULL, : Clint
## adjusted for in vitro partioning (Kilford, 2008).
## uM concentration converted to mgpkgpday dose for 0.95 quantile.
##     95% 
## 0.09107
calc_mc_oral_equiv(0.1,chem.cas = "99-71-8", species = "human")
## Warning in (function (chem.cas = NULL, chem.name = NULL, dtxsid = NULL, :
## Funbound.plasma adjusted for in vitro partitioning (Pearce, 2017).
## Warning in (function (chem.cas = NULL, chem.name = NULL, dtxsid = NULL, : Clint
## adjusted for in vitro partioning (Kilford, 2008).
## uM concentration converted to mgpkgpday dose for 0.95 quantile.
##      95% 
## 0.004496
calc_tkstats(chem.cas = "34256-82-1",species = "rat")
## Rat plasma concentrations returned in uM units.
## AUC is area under plasma concentration curve in uM * days units with Rblood2plasma = 0.8691 .
## $AUC
## [1] 1.149
## 
## $peak
## [1] 0.3509
## 
## $mean
## [1] 0.04104
calc_tkstats(chem.cas = "962-58-3", species = "rat")
## Rat plasma concentrations returned in uM units.
## AUC is area under plasma concentration curve in uM * days units with Rblood2plasma = 0.9163 .
## $AUC
## [1] 0.6847
## 
## $peak
## [1] 0.3725
## 
## $mean
## [1] 0.02445

Note that we use the R built-in function head() to show only the first five rows

head(solve_pbtk(chem.name = "bisphenol a", plots = TRUE))
## Warning in parameterize_pbtk(chem.cas = NULL, chem.name = "bisphenol a", : Clint
## is provided as a distribution.
## Warning in parameterize_pbtk(chem.cas = NULL, chem.name = "bisphenol a", : Clint
## adjusted for in vitro partioning (Kilford, 2008).
## Warning in parameterize_pbtk(chem.cas = NULL, chem.name = "bisphenol a", :
## Funbound.plasma adjusted for in vitro partioning (Pearce, 2017).
## Warning in available_rblood2plasma(chem.cas = chem.cas, species = species, :
## Human in vivo measured Rblood2plasma used.
## None of the monitored components undergo unit conversions  (i.e. conversion factor of 1).

## AUC is area under the plasma concentration curve in uM*days units with Rblood2plasma = 0.795.
## The model outputs are provided in the following units:
##  umol: Agutlumen, Atubules, Ametabolized
##  uM: Cgut, Cliver, Cven, Clung, Cart, Crest, Ckidney, Cplasma
##  uM*days: AUC
##         time Agutlumen    Cgut    Cliver      Cven Clung   Cart   Crest Ckidney
## [1,] 0.00000    306.60  0.0000 0.000e+00 0.000e+00 0.000 0.0000 0.00000   0.000
## [2,] 0.00001    306.40  0.1449 4.396e-05 5.000e-09 0.000 0.0000 0.00000   0.000
## [3,] 0.01042    177.80 72.1100 2.355e+01 2.832e-01 2.328 0.2470 0.06557   3.114
## [4,] 0.02083    103.10 73.1000 4.810e+01 6.656e-01 5.800 0.6386 0.40840  12.160
## [5,] 0.03125     59.77 59.1300 5.708e+01 8.689e-01 7.710 0.8583 0.95880  19.110
## [6,] 0.04167     34.66 45.0300 5.524e+01 9.140e-01 8.174 0.9143 1.56000  21.910
##        Cplasma Atubules Ametabolized      AUC
## [1,] 0.000e+00   0.0000    0.000e+00 0.000000
## [2,] 6.000e-09   0.0000    2.000e-09 0.000000
## [3,] 3.562e-01   0.1567    1.627e+00 0.001382
## [4,] 8.373e-01   1.0040    8.021e+00 0.007743
## [5,] 1.093e+00   2.4380    1.729e+01 0.018010
## [6,] 1.150e+00   4.1190    2.709e+01 0.029820

my_data <- subset(get_cheminfo(info = "all"), Compound %in% c("A","B","C"))
## Warning in get_cheminfo(info = "all"): Clint values with a pvalue > 0.05 were
## set to 0.

## Warning in get_cheminfo(info = "all"): Clint values with a pvalue > 0.05 were
## set to 0.
## Warning in get_cheminfo(info = "all"): Excluding compounds that have one or more
## missing in necessary parameters.
## Warning in get_cheminfo(info = "all"): Excluding compounds without a 'fup' value
## (i.e. fup value = NA).
## Warning in get_cheminfo(info = "all"): Excluding compounds with uncertain 'fup'
## confidence/credible intervals.
## Warning in get_cheminfo(info = "all"): Excluding compounds that do not have a
## clint value or distribution of clint values.
## Warning in get_cheminfo(info = "all"): Excluding volatile compounds defined as
## log.Henry >= -4.5.
write.csv(my_data, file = "my_data.csv")

User Notes

Help

help(httk)
help(package = httk)
vignette(package = "httk")
vignette("IntroToHTTK")