R/relative_fitness.R

Defines functions relative_fitness

Documented in relative_fitness

#' Relative fitness
#'
#' Calculate relative fitness in the population under directional selection.
#'
#' `relative_fitness` takes lof fitness values from a population generated by
#' `initialise_population` and exponentiates them to calculate relative fitness.
#' Relative fitness is absolute fitness divided by mean absolute fitness.
#'
#' If individuals have NA phenotype the fitness is returned as zero.
#'
#' @param pop A list describing genotypes and positions in a population.
#' Output of `initialise_population`,
#'
#' @returns A vector of relative fitness values.
relative_fitness <- function(pop){
  w <- exp(pop$phenotype)
  w <- w / mean(w, na.rm = TRUE)

  w[is.na(w)] <- 0

  w
}
ellisztamas/simmiad documentation built on Dec. 12, 2023, 5:32 a.m.