% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/set_fixed_css.R
\name{set_fixed_css}
\alias{set_fixed_css}
\title{Prepare steady-state plasma concentrations for sensitivity analysis}
\usage{
set_fixed_css(GT, substance_order = NULL)
}
\arguments{
\item{GT}{GeoTox object.}

\item{substance_order}{Named list specifying order of substance evaluation
(default NULL).}
}
\value{
The updated GeoTox object, invisibly.
}
\description{
Create the 'fixed_css' table in the GeoTox database, which contains values of
steady-state plasma concentrations (C\eqn{_{ss}}) for sensitivity analysis.
}
\details{
Several tables are required in the GeoTox database before the 'fixed_css'
table can be created. Typically, \code{set_fixed_css()} is called after using
\code{\link[=sample_simulated_css]{sample_simulated_css()}}, at which point all required tables will be present.

The resulting 'fixed_css' table is used for sensitivity analysis where one
parameter is allowed to vary at a time while all other parameters are held
constant at fixed values.

The \code{substance_order} argument can be used to specify the order in which
substances are evaluated when sampling C\eqn{_{ss}} values. The default is to
evaluate substances in the order they appear in the 'substance' table.
However, if a different order is needed for some reason (e.g., replication of
results from a previous GeoTox implementation), the user can provide a named
list where the name is the column in the 'substance' table to use for
ordering (e.g., "casn") and the value is a vector of substance identifiers in
the desired order. If provided, the \code{substance_order} will be added to the
GeoTox object parameter list, \code{GT$par}. This is only applicable to the
"params" section described below.
\subsection{Table 'fixed_css' columns:}{

\describe{
\item{age}{Median pre-simulated C\eqn{_{ss}} values are computed by age
group for each substance, then the median C\eqn{_{ss}} values are assigned
to each individual based on their age group.}
\item{weight}{Median pre-simulated C\eqn{_{ss}} values are computed by weight
category for each substance, then the median C\eqn{_{ss}} values are assigned
to each individual based on their weight category.}
\item{params}{Individuals are assigned the median age of their location and
pre-simulated C\eqn{_{ss}} values for the "Normal" weight category are
sampled.}
\item{other}{Median sampled C\eqn{_{ss}} values are computed across all
substances for each location after mean-imputation of missing C\eqn{_{ss}}
values for each substance and location. The median C\eqn{_{ss}} values are
assigned to each individual based on their location.}
}
}
}
\examples{
# Create required tables
sample_df <- tibble::tribble(
  ~FIPS, ~age, ~weight,
  10000, 25, "Normal",
  10000, 35,  "Obese",
  20000, 50, "Normal"
)
exposure_df <- tibble::tribble(
  ~FIPS, ~casn, ~route, ~mean, ~sd,
  10000, "00-00-1", "inhalation", 10, 1,
  10000, "00-00-2", "inhalation", 20, 1,
  20000, "00-00-1", "inhalation", 30, 1,
  20000, "00-00-2", "inhalation", 40, 1
)
# Note: normally the css_df would have many more rows for each combination of
# the non-'css' columns to allow for sampling.
css_df <- tibble::tribble(
  ~casn, ~age_lb, ~age_ub, ~weight, ~css,
  "00-00-1",  0, 49, "Normal",  1,
  "00-00-1", 50, 99, "Normal",  2,
  "00-00-1",  0, 49,  "Obese", 11,
  "00-00-1", 50, 99,  "Obese", 12,
  "00-00-2",  0, 49, "Normal", 21,
  "00-00-2", 50, 99, "Normal", 22,
  "00-00-2",  0, 49,  "Obese", 31,
  "00-00-2", 50, 99,  "Obese", 32
)
GT <- GeoTox() |>
  set_sample(sample_df) |>
  add_exposure(exposure_df) |>
  simulate_exposure() |>
  set_simulated_css(css_df) |>
  sample_simulated_css()

# Set fixed C_ss values
GT <- GT |> set_fixed_css()

# Open a connection to GeoTox database
con <- get_con(GT)

# Look at created tables
# Note: the 'age', 'weight', 'params', and 'other' columns of the
# 'fixed_css' table contain the C_ss values for sensitivity analysis.
# For example, the 'age' column doesn't contain ages, but C_ss values.

dplyr::tbl(con, "fixed_css") |> dplyr::collect()

dplyr::tbl(con, "concentration") |> dplyr::collect()

dplyr::tbl(con, "sample") |> dplyr::collect()

dplyr::tbl(con, "location") |> dplyr::collect()

dplyr::tbl(con, "substance") |> dplyr::collect()

# Clean up example
DBI::dbDisconnect(con)
file.remove(GT$db_info$dbdir)
}
\seealso{
\code{\link[=sample_simulated_css]{sample_simulated_css()}}, \code{\link[=simulate_population]{simulate_population()}}
}
