
Last chance! 50% off unlimited learning
Sale ends in
Generate a virtual population characterized by demographic, anthropometric, and physiological parameters relevant to PBTK.
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
)
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.
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".
The desired number of individuals in the virtual population.
nsamp
need not be provided if gendernum
is provided.
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
).
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
.
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
.
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.
The kidney function categories to include in the
population. Default is c('Normal','Kidney Disease', 'Kidney
Failure')
to include all kidney function levels.
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.
TRUE to add residual variability to GFR predicted from serum creatinine; FALSE to not add residual variability
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.
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 |
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) | % |
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 |
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 |
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 |
Caroline Ring
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).
ring2017identifyinghttk
# \donttest{
#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)
# }
Run the code above in your browser using DataLab