Skip to content

Releases: USEPA/CompTox-ExpoCast-httk

v2.5.0

10 Feb 21:18
Compare
Choose a tag to compare

httk 2.5.0 (2024-12-20)

This release accompanies the submission of the new manuscript "A Simple Physiologically-Based Toxicokinetic Model for Multi-Route In Vitro-In Vivo Extrapolation" and includes new models incorporating inhalation/exhalation ("sumclearances" and "3compartment2").

Bug Fixes

  • Corrected units in Armitage model documentation (does not impact performance)
  • Corrected calculation in calc_analytic_css_1comp to reflect that Vdist is the effective plasma (not blood) volume (thanks Shenghong Wang)
  • Updated check_model argument logic to include "force.human.clint.fup"
  • calc_css Now passing arguments "well.stirred.correction" and "restrictive.clearance" to the model parameterization function, so calc_css should now respect user specifications for those options, rather than previous behavior of always calculating with defaults well-stirred and restrictive = TRUE
  • solve_model: Pass restrictive clearance argument to model parameterization function
  • parameterize_steadystate: pass minimum.Funbound.plasma to get_fup
  • parameterize_1comp: pass "minimum.Funbound.plasma" argument to calc_vdist
  • calc_total_clearance: arguments "well.stirred.correction" and "adjusted.Funbound.plasma" are no longer explicit arguments for the function but are still able to be used as part of the '...' arguments
  • solve_gas_pbtk: the "restrictive.clearance" argument default was changed from TRUE to FALSE
  • Documentation updates to clarify and/or correct descriptions to better explicate 'httk' functionality and methods.
  • Clarified examples for calc_vdist, parameterize_schmitt, and predict_partitioning_schmitt to correctly show how to predict volume of distribution from a list of parameters

Enhancements

  • New model functions for TK models with inhalation/exhalation: parameterize_sumclearances, parameterize_3comp2, solve_3comp2
  • Separate forcing functions are now declared in init.c for models (such as "gas_pbtk") that use the deSolve forcing functionality.
  • Revised init.c file to try to make it more clear that the forcing function handler needs to be defined if forcings are used.
  • Revised examples with respect to adding species
  • modelinfo_1comp: Adding a Henry's Law Constant threshold to 1-comp model
  • parameterize_1comp: Add calls to check_model for models "1compartment" and "3compartmentss", since we use parameterize_steadystate to parameterize "1compartment".
  • Added argument class.exclude to multiple functions to allow class-based exclusion (for example, no PFAS) to be turned off (class.exculde = FALSE) -- defaults to TRUE
  • To be consistent with Linakis et al. (2020) the hepatic metabolism for solve_gas_pbtk is now non-restrictive by default, but argument restrictive.clearance=TRUE makes the model behave similarly to the default pbtk model.

httk 2.4.0

07 Jan 22:30
Compare
Choose a tag to compare

httk 2.4.0 (2024-8-14)

This release accompanies the submission of the new manuscript "Enabling Transparent Toxicokinetic Modeling for Public Health Risk Assessment" and includes changes intended to better facilitate development of new HTTK models through improved model clarity.

In addition we have incorporated comments received on manuscript "Impact of Gut Permeability on Estimation of Oral Bioavailability for Chemicals in Commerce and the Environment" provided by reviewers at ALTEX.

Bug Fixes

  • Cleaned up functions for model 3compartment
  • Corrected error where non-restrictive clearance option was not working for model pbtk
  • Set restrictive.clearance=TRUE by defailt in 'calc_hep_clearance' when model = "unscaled"
  • Corrected compartment names for model "gas_pbk" -- "Calv", "Cendexh", and "Cmixexh" were being returned in ppmv units, while "Calvppmv", "Cendexhppmv", and "Cmixexhppmv" were in uM
  • Calculation of Fabs corrected for non-human species to follow Yu and Amidon (1999) using small intestine mean residence time and radius. (Thank you ALTEX reviewers)
  • Intestinal flow rate correction to the Qgut model now scales with body weight (rodent Fgut was being predicted way too low)
  • Corrected units of Peff in calculation of Fabs by 'calc_fabs.oral'-- calculations now indicate that more chemicals are poorly absorbed.
  • Revised 'calc_css' to handle models with no specified analytic solution
  • Revised ionization code in 'armitage_eval' so that pka_donor and pka_accept values now correctly used (thank you Meredith Scherer)
  • Corrected bug in 'solve_model' when only specific times requesed and plots=TRUE (thank you Kimberly Troung)
  • Corrected bug with 'get_chem_id' when using 'add_chemtable' without DTXSIDs (thank you Marc Beal and Miyuki Breen)
  • Corrected bug with 'create_mc_samples' where arguments were not getting passed to 'invitro_mc' (thank you Hsing-Chieh Lin and Weihsueh Chiu)
  • Corrected bug in 'solve_model' where tsteps was ignored if times were specified

Enhancements

  • A physiology data table from 'httkpop_generate' can now be passed to 'calc_mc_css' and 'calc_mc_tk' (and 'calc_mc_css' via ...) so that a consistent populatin can be used across monte carlo runs. See argument httkpop.dt.
  • Physico-chemical properties are now retrieved from the CompTox Chemicals Dashboard programmatically using R package ctxR (Thank you Paul Kruse)
  • 'calc_fabs.oral' now calculates oral uptake rate kgutabs using Caco-2 permeability, according to method of Lennernas (1997) (Thank you ALTEX reviewers)
  • Revised and changed name of 'get_fabsgut' to 'get_fbio' and modified function to use 'calc_fbio.oral' rather than call oral bioavailability subfunctions directly
  • Replaced conversion of human effective gut permeability to rat using Wahajudin et al. (2011) regression (Thank you ALTEX reviewers)
  • Loading message displaying version now appears when package is loaded (thank you EPA NAMs class)
  • Cleaned up code for various ODE models to make them more consistent and better annotated (added more comments)
  • Reordered variables in modelinfo files for consistency so that diff can be used more easily to compare two models
  • Modified 'calc_kair' to only allow neutral chemical fraction to partition into air (thank you Jon Arnot)
  • Updated help files describing models
  • Default ODE solver tolerances increased to just below significant figures reported by HTTK (we report 4 sig figs, now require the solver to only converge to 5)
  • 'solve_[MODEL]' functions now exclusively pass arguments to deSolve through "..."
  • New modelinfo file variable default.solver.method can be set -- specifies the default ODE solver approach for deSolve if "lsoda" is not desired
  • Revised 'calc_css' to better calculate the day on which steady-state is reached
  • Added internal function 'check_model' to provide more informative error messages when key model parameters are missing
  • Updated scoping on several functions so that data.tables are handled locally within the functions and not passed by reference.
  • Precision of time points added by tsteps argument in 'solve_model' now limited to ten times higher than small.time
  • Additional time points now reported in 'solve_model' immediately after dose events to improve plotting

2.3.1

01 May 13:21
Compare
Choose a tag to compare

httk 2.3.1 (2023-3-19)

This patch addresses a number of bugs.

Bug Fixes

  • Argument keepit100 was being improperly ignored by get_fabsgut
  • Fixed issue where create_mc_samples could not handle argument
    parameters being a list (as in,
    parameters=parameterize_steadstate(chem.name="bisphenola"))
  • Error messages for calc_css now explain that function is only applicable
    to dynamical (time-evolving) models and handles errors with other models
    (such as 3compartmentss) more gracefully
  • Changed Rblood2plasma to Rfblood2plasma for fetal plasma in model fetal_pbtk
    (Thank you to Kimberly Troung)
  • Liquid densities previous referred to as ppmv for convert_units were
    actually ppmw. Cannot calculate ppmv without chemical-specific liquid density,
    which we do not know.
  • Added model descriptor compartment.state to indicate which compartments are
    liquid and which are gaseous

Enhancements

  • Changed armitage_eval to allow chemical specification by usual arguments
    chem.name, chem.cas, and DTXSID. Preserved casrn.vector for backward compatibility.
  • Changed armitage_eval to allow multiple instances of chemicals (no longer
    using CASRN as row names) -- thank you Katie Paul Friedman for suggestion
  • Added Katie Paul Friedman (USEPA) as contributor for long history of
    suggesting refinements and putting up with bugs
  • Function solve_model now gives warnings when ignoring elements of
    dosing for a given model and route (acceptible dosing.params are now
    specified by the modelinfo_[MODEL].R file)

2.3.0

13 Feb 18:32
Compare
Choose a tag to compare

This version accompanies the submission of manuscript Honda et al. "Impact of Gut Permeability on Estimation of Oral Bioavailability for Chemicals in Commerce and the Environment". Find the analysis scripts on GitHub

Bug Fixes

  • Added parameter plasma.vol to one compartment model so that Monte Carlo works for non-human species
  • Added default units for Aexh and Ainh state variables in gas_pbtk model so that calc_css works for accumulative chemcials
  • Corrected the Linakis et al. (2020) vignette to reflect that all CvTdb data used there already are in uM
  • Corrected ppbv unit conversions in convert_units
  • Precision of time output in solve_model is no longer restricted to four significant figures
  • Fixed bug with Monte Carlo functions (for example, calc_mc_oral_equiv) wherein you could not specify the argument parameters to be a table created by create_mc_samples (thanks Jayme Coyle and Tyler Lalonde)
  • Revised convert_units to handle multiple molecular weights -- this enables convert_mc_oral_equivalent to take a table of parameters for Monte Carlo
  • Updated the checks and reported error messages in get_clint and get_invtroPK_param to be more informative
  • Corrected calculation of mean blood:plasma partition coefficient when measured RBlood2plasma is avaialble
  • Clint and fup are now adjusted for in vitro binding when invitrouv=FALSE (thanks cm16120)

New Features

  • Added in vitro measured Caco-2 membrane permeability data for 310 chemicals allowing characterization of oral bioavailability
  • Added new function load_honda2023 to load QSPR (quantitative structure-property relationship model) predictions for Caco-2 membrane permeability for ~10,000 chemicals -- QSPR is optimized to detect low permeability chemicals and therefore predicts only three values (low/medium/high permeability)
  • Added new functions calc_fbio.oral, calc_fabs.oral, and calc_fgut.oral for calculating systemic bioavailability as Fbio = Fabs * Fgut * Fhep where first-pass hepatic metabolism was already available from calc_hep_bioavailability.
  • Changed the name of the variable describing fraction absorbed from the gut prior to first-pass hepatic metabolism to Fabsgut to reflect that Fabs and Fgut are now modeled separately (that is, Fabsgut = Fabs * Fgut).
  • Integrated Fabs and Fgut into oral exposure for all TK models and integrated into population variability and uncertainty functions within invitro_uv
  • Added new function benchmark_httk to compare current function of the package against historical performance (stored in data.frame httk.performance)
  • We now skip over the first five minutes when calculating Cmax in calc_tkstats to allow PBTK model to distribute iv doses

Enhancements

  • Added QSPR predictions for Fup and Clint for several thousand chemicals using the Dawson et al. (2020) models -- accessible from load_dawson2021 (thank you Alex Fisher and Mike Tornero!)
  • Predicted phys-chem properties for most chemicals using OPERA v2.9 (updated armitage_eval to properly convert water solubility from OPERA units)
  • Package now requires ggplot2 -- will gradually shift all plotting from base R
  • Returned and updated the Pearce et al. (2017) vignette on Evaluation of Tissue Partitioning
  • Revised function convert_units, expanding the variety of unit conversions available -- it is critical to distringuish between state of matter (liquid vs. gas)
  • Model 1compartment allows volatile chemicals again since clearance is amorphous for that model (likely underestimated without exhalation)
  • Many manuscript references listed in function documentation were converted to a BibTex format from manual insertion of the citations. (thanks Lily Whipple)
  • Updated get_physchem_param to be case-insensitive
  • New Clint and Fup data curated from literature by ICF from Black et al. (2021), Williamson et al. (2020), Zanelli et al. (2012), Yamagata et al. (2017), and Zanelli et al. (2019) (thank you Noelle Sinski and Colin Guider)

2.2.2

22 Feb 15:06
Compare
Choose a tag to compare

Bug Fixes

  • Corrected analytic steady-state functions for PBTK, 3-compartment, and 3-compartment steady-state models to return plasma, not blood concentrations (via blood:plasma ratio)
  • Removed inappropriate second adjustment for binding in intrinsic hepatic clearance assay from cal_hep_clearance -- Kilford (2008) adjustment now only occurs in parameterization functions. Added new function apply_clint_adjustment to standardize implementation of adjustment (thanks Todor Antonijevic)
  • Fixed major bug in calc_ionization that caused error when argument pH was a vector -- impacts Monte Carlo for ionized compounds
  • Corrected equation tracking amount inhaled in gas pbtk model (thanks Cecilia Tan)
  • Fixed bugs that prevented using Monte Carlo with phys-chem parameters
  • Fixed error for species with missing in vitro data (thanks Lu En-Hsuan)
  • Fixed bug where solve_model returned other than requested times when argument times was specified (thanks Kimberly Truong)

New Features

  • Added updated vignette from Pearce et al. (2017): v79i04.R
  • Added new vignette on "Introduction to IVIVE"
  • Added functions calc_fup_correction and apply_fup_adjustment to consolidate and make uniform application of the Pearce et al. (2017) lipid binding adjustment to in vitro measured fup
  • We now export function calc_dow for the distribution coefficient
  • New function calc_ma separates membrane affinity calculation from parameterize_schmitt
  • New function calc_kair separates calculation of blood:air, water:air, and mucus:air partition coefficients from parameterize_gas_pbtk

Enhancements

  • Added cutoff of logKow/logDow no greater than 6 for calc_fup_correction and calc_hep_fu based on the idea that the in vitro assays are not long enough to reach concentration ratios greater than 1,000,000 to 1
  • Updated calc_analytic_css_pbtk to reflect Breen et al. (2022) modifcation to glomerular filtration in the kidney
  • get_cheminfo now lists required parameters when chemicals are excluded (thanks Ben Savage)
  • Returned 'daily.dose' argument to calc_mc_css (still defaults to 1 mg/kg/day)
  • Simplified arguments needed for calc_mc_css' and calc_mc_tksince now internally usingdo.call` wherever possible to pass arguments
  • Revised restrictive.clearance argument for function solve_model
  • Added inline code comments to predict_partitioning_schmitt identifying corresponding equations in Schmitt (2008)
  • Added option class.exclude to get_cheminfo -- defaults to TRUE, but if FALSE then chemical classes are not excluded on the basis of specified model
  • Updated various function documentation

2.2.1

11 Oct 16:45
Compare
Choose a tag to compare

This minor update removes UTF-8 characters from the package and changes the calculation of 'kUrt' on line 292 of 'model_gas_pbtk.c' to reduce vulnerability to machine precision errors.

2.2.0

03 Oct 13:24
Compare
Choose a tag to compare

version 2.2.0 (September, 2022)

This version accompanies the submission of the Breen et al. manuscript
"Simulating Toxicokinetic Variability to Identify Susceptible and Highly
Exposed Populations"

Enhancements

  • HTTK-Pop population simulator:
    • Replaced HTTK-Pop data from NHANES cycles 2007-2012 with data from most
      recent 3 NHANES cycles (2013-2018)
    • Reduced size of data file httkpop.RData. NHANES data now stored as object
      mecdt of class data.table, rather than as object nhanes_mec_svy of
      class survey.design2. Also, no longer storing pre-calculated spline fits
      for serum creatinine and hematocrit vs. age, or pre-calculated age
      distributions (used by HTTK-Pop in virtual-individuals mode); these are now
      calculated "on the fly".
    • In CKD-EPI equation used to estimate GFR for simulated adults based on serum
      creatinine, age, sex, and race (black/non-black): set "race factor" to 1 by
      default (i.e., treat all simulated adults as "non-black" for purposes of GFR
      estimation), to reflect recent changes in clinical practice. (Control this
      behavior with httkpop_generate() argument "ckd_epi_race_factor")
    • Add residual variability to GFR estimated using CKD-EPI equation, by
      default. (Control whether to add residual variability using
      httkpop_generate() argument "gfr_resid_var")
  • Phys-chem properties:
  • PBTK model equations:
    • Revised renal clearance to be GFR x [Unbound conc in arterial plasma]
      (previously it was GFR x [Unbound conc in kidney plasma])
  • Miscellaneous:
    • Added suggestion message to set default.to.human=TRUE when rat Fup is 0
      (Thanks Jim Sluka)
    • Added wrapper functions (get_wetmore...) for backward compatibility
      (Thanks Jim Sluka)
    • Updated invitro_mc to remove inconsistencies and correct handling of fup
      where median is zero but upper 95th is non-zero
    • Added internal function remd0non0u95 to draw random numbers such that the
      median is zero and the upper 97.5th quantile is non-zero, taking limit of
      detection into account
    • Revised and expanded documentation for calc_mc_css and
      calc_mc_oral_equiv
  • Added logical arguments to invitro_mc to directly allow user to turn
    uncertainty and variability off (previously this was done by setting CV to
    NULL)
  • If fup measurement (that is, uncertainty) Monte Carlo is turned off user may
    choose to provide columns for "unadjusted.Funbound.plasma" or "fup.mean" from
    their own methods
  • Moved Kilford et al. (2008) correction
    for fraction unbound in hepatocyte assay from calc_hep_clearance to the
    parameterize functions and invitro_mc -- can now be toggled with argument
    "adjusted.Clint"
  • New vignette "Introduction to HTTK" added including material from Breen et al.
    (2021)

Bug Fixes

  • uM units on calc_mc_css were incorrectly calculated in v2.1.0 (only), mg/L
    units unaffected, but this will have impacted equivalent doses calculated with
    calc_mc_oralequiv (Thank you Marc Beal!)
  • User provided DTXSID chemical identifiers were not passed appropriately in the
    calc_half_life and prohibited the ability to obtain steady state parameters.
  • Error fixed in create_mc_samples related to default.to.human argument not
    being based to parameterize_schmitt

2.1.0

19 Apr 18:02
Compare
Choose a tag to compare

version 2.1.0 (March, 2022)

This version accompanies the submission of the Kapraun et al. manuscript "Evaluation of a Rapid, Generic Human Gestational Dose Model"

New Features

  • New HT-PBTK model added as described by Kapraun et al. (submitted) including functions solve_fetal_pbtk and parameterize_fetal_pbtk
  • QSAR predicted chemical-specific plasma protein unbound plasma fraction and intrinsic hepatic clearance values data from Dawson et al. (2021) is now included as Dawson2021 and can be added with the new function: load_dawson2021
  • QSAR predicted chemical-specific plasma protein unbound plasma fraction and intrinsic hepatic clearance values data from Pradeep et al. (2020) is now included as Pradeep2020 and can be added with the new function: load_pradeep2020
  • Added function calc_halflife (thank you Imran Shah)

Enhancements

  • Updated predict_partitioning_schmitt removing the hard coded predicted fup regression values from Pearce et al. (2017) and created stand-alone data matrix 'pearce2017regression' read in by the function.
  • Internal reusable function convert_units() added to ensure consistency in unit conversions across functions
  • Units corrected for gas_pbtk model to more naturally handle ppmv (parts per million by volume) and uM
  • Reworked code for predict_partitioning_schmitt -- now we read list of tissues needed for a model from modelinfo variable alltissues
  • Further revised documentation to Armitage et al. (2014) functions (thank you Madison Feshuk)
  • Expanded documentation for function get_cheminfo and table chem.phys_and_invitro.data (thank you Lynne Haber and Mark Bradley)
  • Expanded example for add_chemtable to address ionization (thank you Johann Fribl)
  • Added Clint data from Dawson (2021) training set (CHEMBL)
  • Revised get_cheminfo to incorporate a chemical class filter to remove "PFAS" compounds for all models, except "3compartmentss", based on Wambaugh et al.(2015).

Bug Fixes

  • Corrected swapped "area_bottom" values in table well_param for the Armitage model. (thank you Todor Antonijevic)
  • Contribution from Todor Antonijevic:
  • this.conc_ser_alb, this.conc_ser_lip and this.Vdom added to the list of arguments.
  • the volume of headspace calculated as in Armitage et al. 2014.
  • the volume of medium calculated as in Armitage et al. 2014.
  • f_ratio calculated as in Armitage et al. 2014
  • kow added in the denominator of cwat, i.e. kowP_domf_oc*Vdom
  • Corrected major bug introduced in 2.0.0 (vectorization of calc_ionization) that caused pKa's to be ignored in many cases (thank you Wu Yaoxing)
  • Corrected monkey cardiac output (thank you Peter Egeghy)
  • Corrected rabbit plasma volume and total body water (thank you Johanna Nyffeler)

2.0.4

28 Oct 19:59
Compare
Choose a tag to compare

version 2.0.4 (May 7, 2021)

Enhancements

  • Sarah Davidson is new lead HTTK software engineer (thank you Mark Sfeir!)
  • Added Xiaoqing Chang and Shannon Bell as contributors thanks to substantial efforts improving the package
  • Changed DESCRIPTION to indicate LazyDataCompression is xz
  • Revised and expanded documentation for functions related to Armitage et al. 2014 in vitro distribution model -- armitage_eval() and armitage_estimate_sarea()
  • Revised documentation to several functions missing value description (thank you Julia Haider and Gregor Seyer)
  • Revised examples where arguments had changed (thank you Julia Haider)
  • Revised and expanded documentation for functions related to Armitage et al. 2014 in vitro distribution model -- armitage_eval() and armitage_estimate_sarea()
  • Revised get_cheminfo behavior to change chemical hepatic clearance values where p-value is not consistent with decrease (p-value > clint.pvalue.threshold, default 0.05) to zero.
  • Revised get_cheminfo behavior to remove fraction unbound in plasma values if credible interval spans from < 0.1 to > 0.9 (turn off with fup.ci.cutoff=FALSE).
  • Revised get_cheminfo to include "median.only" argument allowing confidence intervals to be removed for chemical intrinsic hepatic clearance values and fraction unbound in plasma values where they exist (turn on with median.only=TRUE).
  • Revised get_cheminfo to filter volatile compounds using Henry's law constant for all models, excluding the "gas_pbtk" model.

Bug Fixes

  • Fixed problems with Clint values reported from Wood et al. 2017, fraction unbound in hepatocyte assay adjustment was being applied twice (thank you Xiaoqing Chang)
  • Fixed problems with clearance from source "Ito/Riley": "not determined" was mistakenly being interpreted as "0" rather than not measured (thank you Xiaoqing Chang)