simulate_ancestry_migration: Individual based simulation of the breakdown of contiguous...

View source: R/simulate_ancestry_migration.R

simulate_ancestry_migrationR Documentation

Individual based simulation of the breakdown of contiguous ancestry blocks in two populations linked by migration

Description

Individual based simulation of the breakdown of contiguous ancestry blocks, with or without selection. Simulations can be started from scratch, or from a predefined input population. Two populations are simulated, connected by migration

Usage

simulate_ancestry_migration(
  input_population_1 = NA,
  input_population_2 = NA,
  pop_size = c(100, 100),
  initial_frequencies = list(c(1, 0), c(0, 1)),
  total_runtime = 100,
  morgan = 1,
  num_threads = 1,
  select_matrix = NA,
  markers = NA,
  verbose = FALSE,
  track_junctions = FALSE,
  multiplicative_selection = TRUE,
  migration_rate = 0,
  stop_at_critical_fst = FALSE,
  critical_fst = 0.1,
  generations_between_update = 100,
  sampled_individuals = 10,
  number_of_markers = 100,
  random_markers = TRUE
)

Arguments

input_population_1

Potential earlier simulated population used as starting point for the simulation. If not provided by the user, the simulation starts from scratch.

input_population_2

Potential earlier simulated population used as starting point for the simulation. If not provided by the user, the simulation starts from scratch.

pop_size

Vector containing the number of individuals in both populations.

initial_frequencies

A list describing the initial frequency of each ancestor in each population. Each entry in the list contains a vector with the frequencies for all ancestor. The length of the vector indicates the number of unique ancestors. If a vector not summing to 1 is provided, the vector is normalized.

total_runtime

Number of generations

morgan

Length of the chromosome in Morgan (e.g. the number of crossovers during meiosis)

num_threads

number of threads. Default is 1. Set to -1 to use all available threads

select_matrix

Selection matrix indicating the markers which are under selection. If not provided by the user, the simulation proceeds neutrally. If provided, each row in the matrix should contain five entries: location location of the marker under selection (in Morgan) fitness of wildtype (aa) fitness of heterozygote (aA) fitness of homozygote mutant (AA) Ancestral type that representes the mutant allele A

markers

A vector of locations of markers (relative locations in [0, 1]). If a vector is provided, ancestry at these marker positions is tracked for every generation.

verbose

Verbose output if TRUE. Default value is FALSE

track_junctions

Track the average number of junctions over time if TRUE

multiplicative_selection

Default: TRUE. If TRUE, fitness is calculated for multiple markers by multiplying fitness values for each marker. If FALSE, fitness is calculated by adding fitness values for each marker.

migration_rate

Rate of migration between the two populations. Migration is implemented such that with probability m (migration rate) one of the two parents of a new offspring is from the other population, with probability 1-m both parents are of the focal population.

stop_at_critical_fst

option to stop at a critical FST value , default is FALSE

critical_fst

the critical fst value to stop, if stop_simulation_at_critical_fst is TRUE

generations_between_update

The number of generations after which the simulation has to check again whether the critical Fst value is exceeded

sampled_individuals

Number of individuals to be sampled at random from the population to estimate Fst

number_of_markers

Number of markers to be used to estimate Fst

random_markers

Are the markers to estimate Fst randomly distributed, or regularly distributed? Default is TRUE.

Value

A list with: population_1, population_2 two population objects, and three tibbles with allele frequencies (only contain values of a vector was provided to the argument markers: frequencies, initial_frequencies and final_frequencies. Each tibble contains five columns, time, location, ancestor, frequency and population, which indicates the number of generations, the location along the chromosome of the marker, the ancestral allele at that location in that generation, the frequency of that allele and the population in which it was recorded (1 or 2). If a critical fst value was used to terminate the simulation, and object FST with the final FST estimate is returned as well.


thijsjanzen/GenomeAdmixR documentation built on Feb. 16, 2024, 7:27 p.m.