Skip to content
Snippets Groups Projects
Commit 1abf69e8 authored by Rob Moss's avatar Rob Moss
Browse files

Compare the normoblast population to data

parent b2334345
Branches
No related tags found
No related merge requests found
......@@ -33,6 +33,9 @@ suppressPackageStartupMessages(library(here))
output_dir <- here("outputs")
pf <- baseline_parameters("Pf")
pv <- baseline_parameters("Pv")
# Remove non-scalar derived parameters, such as the initial red blood cell
# populations.
remove_nonscalar_derived_parameters <- function(x) {
......@@ -40,9 +43,18 @@ remove_nonscalar_derived_parameters <- function(x) {
}
# Define how to format parameter values of different magnitudes.
format_value <- function(x, nsmall=4, min=1e-3, max=1e3) {
format_value <- function(x, nsmall = 4, digits = 5, min = 1e-3, max = 1e3,
delim = TRUE) {
scientific <- x < min || x > max
result <- format(x, digits = 5, nsmall=3, scientific = scientific)
result <- format(x, digits = digits, nsmall = nsmall,
scientific = scientific)
if (delim) {
start <- "\\("
end <- "\\)"
} else {
start <- ""
end <- ""
}
if (scientific) {
# Convert from scientific notation to "X x 10^Y".
parts <- strsplit(result, "e")[[1]]
......@@ -51,14 +63,19 @@ format_value <- function(x, nsmall=4, min=1e-3, max=1e3) {
power <- sub("^\\+", "", parts[2])
# Strip leading zeros from positive and negative exponents.
power <- sub("^(-?)0*", "\\1", power)
paste0("\\(", digits, "\\times 10^{", power, "}\\)")
paste0(start, digits, "\\times 10^{", power, "}", end)
} else {
# Strip fractional digits for integer values.
result <- sub("\\.0+$", "", result)
paste0("\\(", result, "\\)")
paste0(start, result, end)
}
}
# Convenience function for inline R expressions.
pretty <- function(x, digits = 3, nsmall = 0, delim = FALSE) {
format_value(x, digits = digits, nsmall = nsmall, delim = delim)
}
# Return the baseline parameters for a species as a long data frame.
get_baseline_parameters <- function(species) {
baseline_parameters(species = species) |>
......@@ -100,6 +117,8 @@ baseline <- dplyr::inner_join(
# available evidence (if any).
baseline <- baseline |>
dplyr::mutate(Evidence = dplyr::case_when(
Parameter == "gamma" ~ "[Normoblast population in the bone marrow]",
Parameter == "M_t_1" ~ "[Macrophage population in the spleen]",
Parameter == "MaxFold" ~ "[Maximum fold increase in RBC production]",
Parameter == "PMF" ~ "[Parasite multiplication]",
Parameter == "rho0" ~ "[Reticulocyte release from bone marrow]",
......@@ -139,12 +158,12 @@ Figure 3 of Appendix 1 shows the haematocrit response and reticulocyte count res
Steven Kho:
> I have done a literature search and couldn't find a reference that states the exact number above or in that range.
> The reference we have previously used for bone marrow cellularity and content is [@Harris62] which states a mean of \(11.1 \times 10^9\) nucleated cells/kg body weight, of which 28.4% are normoblasts.
> Therefore, in an average 60kg Papuan male, this data suggests the bone marrow contains \(6.7 \times 10^{11}\) normoblasts, which is about 2 log-folds higher than the current value in the model.
> If I look at other studies cited in this paper (Table 5), values do fall in this range when you adjust to total bodyweight.
> Could it be possible that the current model value is still corrected per kg bodyweight?
> Were there any clues in the script to where this value was obtained
At steady-state we obtain \(\gamma = `r pretty(pf$gamma)`\), which results in a normoblast population of \(`r pretty(pf$gamma * pf$T_n)`\).
This is \(`r pretty(100 * pf$gamma * pf$T_n / 6.7e11 - 100)`\%\) higher than \(6.7 \times 10^{11}\).
## Parasite multiplication
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment