Red blood cell steady-state distribution

library(spleenrbc)

Steven Kho circulated a submitted manuscript (“Retention of uninfected red blood cells causing congestive splenomegaly is the major mechanism of anemia in malaria”) in which they report:

The median estimated proportion of total-body RBCs retained in Pf-infected spleens was 8.2% (range:1.0-33.6%), significantly higher than in Pv (2.6% [range:0.6-23.8%]; p=0.015) and PCR-negative subjects (2.5% [range:1.0-3.3%]; p=0.006).

We don’t need to run the model in order to calculate the fraction of uninfected red blood cells that will be retained in the spleen at homeostasis. Instead, we only need to define the model parameters and call retic_steady_state():

steady_state_rbc_spleen_pcnt <- function(p) {
  steady_state <- spleenrbc::retic_steady_state(p)
  rbc_spleen <- sum(steady_state$Ur_a)
  rbc_circ <- sum(c(p$R_a_ss, p$N_a_ss))
  100 * rbc_spleen / (rbc_spleen + rbc_circ)
}

Here is how we can obtain the baseline parameters, including the extra parameters that are derived from the core parameters. Note that only a subset of the model parameters are required to calculate the RBC distribution, so we can focus only on this subset:

only_params <- c(
  "T_urbc", "T_R", "T_M", "T_n",
  "T_R_min", "kappa", "rho0", "rho_slope", "rho_inflection",
  "U_ss", "R_a_ss", "N_a_ss",
  "lambdaU.sel",
  "M_t_1",
  "deltaU_c50", "deltaU_g", "deltaU_kmin", "deltaU_kmax",
  "deltaU_A",
  "deltaUra",
  "p_to_spleen",
  "nu"
)
p <- baseline_parameters(species = "Pf")[only_params]
for (name in names(p)) {
  if (length(p[[name]]) == 1) {
    cat(name, "=", p[[name]], "\n")
  } else {
    cat(name, ": length", length(p[[name]]), "\n")
  }
}
#> T_urbc = 2880 
#> T_R = 84 
#> T_M = 108 
#> T_n = 120 
#> T_R_min = 24 
#> kappa = 1e-09 
#> rho0 = 0.001 
#> rho_slope = 10 
#> rho_inflection = 0.5 
#> U_ss = 1.75197e+13 
#> R_a_ss : length 108 
#> N_a_ss : length 2772 
#> lambdaU.sel = 5e-07 
#> M_t_1 = 1.2e+09 
#> deltaU_c50 = 2954.306 
#> deltaU_g = 43.73335 
#> deltaU_kmin = 2.16405e-05 
#> deltaU_kmax = 1.206914 
#> deltaU_A = 0.74303 
#> deltaUra : length 2880 
#> p_to_spleen = 1 
#> nu = 0

So given the baseline parameter values, what fraction of (uninfected) red blood cells will be retained in the spleen at homeostasis?

pcnt_in_spleen <- steady_state_rbc_spleen_pcnt(p)
cat("RBCs in spleen:", sprintf("%0.2f%%\n", pcnt_in_spleen))
#> RBCs in spleen: 0.13%

We can increase this fraction by adjusting certain parameter values. For example:

# Increase the release rate of reticulocytes from the bone marrow.
p$rho0 <- 10 * p$rho0
# Increase the minimum rate of RBC removal into the spleen.
p$deltaU_kmin <- 3 * p$deltaU_kmin
pcnt_in_spleen <- steady_state_rbc_spleen_pcnt(p)
cat("RBCs in spleen:", sprintf("%0.2f%%\n", pcnt_in_spleen))
#> RBCs in spleen: 0.89%