httkpop_generate: Generate a virtual population for PBTK

View source: R/httkpop_generate.R

httkpop_generateR Documentation

Generate a virtual population for PBTK

Description

Generate a virtual population characterized by demographic, anthropometric, and physiological parameters relevant to PBTK.

Usage

httkpop_generate(
  method,
  nsamp = NULL,
  gendernum = NULL,
  agelim_years = NULL,
  agelim_months = NULL,
  weight_category = c("Underweight", "Normal", "Overweight", "Obese"),
  gfr_category = c("Normal", "Kidney Disease", "Kidney Failure"),
  reths = c("Mexican American", "Other Hispanic", "Non-Hispanic White",
    "Non-Hispanic Black", "Other"),
  gfr_resid_var = TRUE,
  ckd_epi_race_coeff = FALSE
)

Arguments

method

The population-generation method to use. Either "virtual individuals" or "direct resampling." Short names may be used: "d" or "dr" for "direct resampling", and "v" or "vi" for "virtual individuals".

nsamp

The desired number of individuals in the virtual population. nsamp need not be provided if gendernum is provided.

gendernum

Optional: A named list giving the numbers of male and female individuals to include in the population, e.g. list(Male=100, Female=100). Default is NULL, meaning both males and females are included, in their proportions in the NHANES data. If both nsamp and gendernum are provided, they must agree (i.e., nsamp must be the sum of gendernum).

agelim_years

Optional: A two-element numeric vector giving the minimum and maximum ages (in years) to include in the population. Default is c(0,79). If only a single value is provided, both minimum and maximum ages will be set to that value; e.g. agelim_years=3 is equivalent to agelim_years=c(3,3). If agelim_years is provided and agelim_months is not, agelim_years will override the default value of agelim_months.

agelim_months

Optional: A two-element numeric vector giving the minimum and maximum ages (in months) to include in the population. Default is c(0, 959), equivalent to the default agelim_years. If only a single value is provided, both minimum and maximum ages will be set to that value; e.g. agelim_months=36 is equivalent to agelim_months=c(36,36). If agelim_months is provided and agelim_years is not, agelim_months will override the default values of agelim_years.

weight_category

Optional: The weight categories to include in the population. Default is c('Underweight', 'Normal', 'Overweight', 'Obese'). User-supplied vector must contain one or more of these strings.

gfr_category

The kidney function categories to include in the population. Default is c('Normal','Kidney Disease', 'Kidney Failure') to include all kidney function levels.

reths

Optional: a character vector giving the races/ethnicities to include in the population. Default is c('Mexican American','Other Hispanic','Non-Hispanic White','Non-Hispanic Black','Other'), to include all races and ethnicities in their proportions in the NHANES data. User-supplied vector must contain one or more of these strings.

gfr_resid_var

TRUE to add residual variability to GFR predicted from serum creatinine; FALSE to not add residual variability

ckd_epi_race_coeff

TRUE to use the CKD-EPI equation as originally published (with a coefficient changing predicted GFR for individuals identified as "Non-Hispanic Black"); FALSE to set this coefficient to 1.

Details

Demographic and anthropometric (body measures) variables, along with serum creatinine and hematocrit, are generated from survey data from the Centers for Disease Control's National Health and Nutrition Examination Survey (NHANES). Those data are stored in the object nhanes_mec_svy (a survey.design object, see package survey). With method = "d", these variables will be sampled with replacement directly from NHANES data. Each NHANES respondent's likelihood of being sampled is given by their sample weight. With method = "v", these variables will be sampled from distributions fitted to NHANES data. Tissue masses and flows are generated based on demographic, body measures, and serum creatinine values, using regression equations from the literature and/or allometric scaling based on height. Extensive details about how each of these parameters are generated are available in the supplemental material of Ring et al. (2017) (see References for full citation).

Value

A data.table where each row represents an individual, and each column represents a demographic, anthropometric, or physiological parameter. Details of the parameters returned and their units are in the following tables.

Demographic variables

Name Definition Units
seqn NHANES unique identifier (only included if method = "direct resampling") NA
gender Sex: "Male" or "Female" NA
reth Race/ethnicity: "Non-Hispanic Black", "Non-Hispanic white", "Mexican American", "Other Hispanic", or "Other". NA
age_years Age (0-79 years) years
age_months Age (0-959 months) months

Body measures and laboratory measurements

Name Definition Units
height Height cm
weight Body weight kg
serum_creat Serum creatinine mg/dL
hematocrit Hematocrit (percentage by volume of red blood cells in blood) %

Tissue masses

Name Definition Units
Blood_mass Mass of blood kg
Brain_mass Mass of brain kg
Gonads_mass Mass of gonads kg
Heart_mass Mass of heart kg
Kidneys_mass Mass of kidneys kg
Large_intestine_mass Mass of large intestine kg
Liver_mass Mass of liver kg
Lung_mass Mass of lungs kg
Muscle_mass Mass of skeletal muscle kg
Pancreas_mass Mass of pancreas kg
Skeleton_mass Mass of skeleton (including bone, red and yellow marrow, cartilage, periarticular tissue) kg
Skin_mass Mass of skin kg
Small_intestine_mass Mass of small intestine kg
Spleen_mass Mass of spleen kg
Stomach_mass Mass of stomach tissue kg
Other_mass Mass of GI tract contents (1.4% of body weight) and tissues not otherwise enumerated (3.3% of body weight). kg
org_mass_sum Sum of the above tissue masses. A check to ensure this is less than body weight. kg
Adipose_mass Mass of adipose tissue. Assigned as weight - org_mass_sum. kg

Tissue flows

Name Definition Units
Adipose_flow Blood flow to adipose tissue L/h
Brain_flow Blood flow to brain tissue L/h
CO Cardiac output L/h
Gonads_flow Blood flow to gonads tissue L/h
Heart_flow Blood flow to heart tissue L/h
Kidneys_flow Blood flow to kidneys tissue (not for glomerular filtration!) L/h
Large_intestine_flow Blood flow to large intestine tissue L/h
Liver_flow Blood flow to liver tissue L/h
Lung_flow Blood flow to lung tissue L/h
Muscle_flow Blood flow to skeletal muscle tissue L/h
Pancreas_flow Blood flow to pancreas tissue L/h
Skeleton_flow Blood flow to skeleton L/h
Skin_flow Blood flow to skin L/h
Small_intestine_flow Blood flow to small intestine L/h
Spleen_flow Blood flow to spleen L/h
Stomach_flow Blood flow to stomach L/h
org_flow_check Sum of blood flows as a fraction of cardiac output (CO). A check to make sure this is less than 1. Unitless fraction

Adjusted variables

Name Definition Units
weight_adj Adjusted body weight: Sum of all tissue masses. kg
BSA_adj Adjusted body surface area, based on height and weight_adj. cm^2
million.cells.per.gliver Hepatocellularity 1e6 cells/g liver
gfr_est Glomerular filtration rate (GFR) estimated using either the CKD-EPI equation (for adults) or a body-surface-area-based equation (for children). mL/min/1.73 m^2 body surface area
bmi_adj Body mass index (BMI), adjusted to match weight_adj and height. kg/m^2
weight_class Weight category based on bmi_adj: "Underweight" (BMI < 18.5), "Normal" (18.5 < BMI < 24.9), "Overweight" (25.0 < BMI < 29.9), or "Obese" (BMI >= 30) Unitless category
gfr_class Kidney function category based on GFR: "Normal" (GFR >=60 mL/min/1.73 m^2), "Kidney Disease" (15 <= GFR <= 60), or "Kidney Failure" (GFR < 15). Unitless category

Author(s)

Caroline Ring

References

\insertRef

ring2017identifyinghttk

Examples



#Simply generate a virtual population of 100 individuals,
 #using the direct-resampling method
 set.seed(42)
httkpop_generate(method='direct resampling', nsamp=100)

#Generate a population using the virtual-individuals method,
#including 80 females and 20 males,
#including only ages 20-65,
#including only Mexican American and
#Non-Hispanic Black individuals,
#including only non-obese individuals
set.seed(42)
mypop <- httkpop_generate(method = 'virtual individuals',
                          gendernum=list(Female=80,
                          Male=20),
                          agelim_years=c(20,65),
                          reths=c('Mexican American',
                          'Non-Hispanic Black'),
                          weight_category=c('Underweight',
                          'Normal',
                          'Overweight'))
# Including a httkpop.dt argument will overwrite the number of sample and
# the httkpop on/off logical switch:
samps1 <- create_mc_samples(chem.name="bisphenola",
                           httkpop=FALSE,
                           httkpop.dt=mypop)
samps2 <- create_mc_samples(chem.name="bisphenola",
                           httkpop.dt=mypop)
samps3 <- create_mc_samples(chem.name="bisphenola",
                           httkpop=FALSE)
# Now run calc_mc_oral equiv on the same pop for two different chemcials:
calc_mc_oral_equiv(conc=10,
                   chem.name="bisphenola",
                   httkpop.dt=mypop,
                   return.samples=TRUE)
calc_mc_oral_equiv(conc=2,
                   chem.name="triclosan",
                   httkpop.dt=mypop,
                   return.samples=TRUE)





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