sample_geneology_varying_size {malan} | R Documentation |
Simulate a geneology with varying population size.
Description
This function simulates a geneology with varying population size specified by a vector of population sizes, one for each generation.
Usage
sample_geneology_varying_size(
population_sizes,
generations_full = 1L,
generations_return = 3L,
enable_gamma_variance_extension = FALSE,
gamma_parameter_shape = 5,
gamma_parameter_scale = 1/5,
progress = TRUE
)
Arguments
population_sizes |
The size of the population at each generation, |
generations_full |
Number of full generations to be simulated. |
generations_return |
How many generations to return (pointers to) individuals for. |
enable_gamma_variance_extension |
Enable symmetric Dirichlet (and disable standard Wright-Fisher). |
gamma_parameter_shape |
Parameter related to symmetric Dirichlet distribution for each man's probability to be father. Refer to details. |
gamma_parameter_scale |
Parameter realted to symmetric Dirichlet distribution for each man's probability to be father. Refer to details. |
progress |
Show progress. |
Details
By the backwards simulating process of the Wright-Fisher model,
individuals with no descendants in the end population are not simulated
If for some reason additional full generations should be simulated,
the number can be specified via the generations_full
parameter.
This can for example be useful if one wants to simulate the
final 3 generations although some of these may not get (male) children.
Let \alpha
be the parameter of a symmetric Dirichlet distribution
specifying each man's probability to be the father of an arbitrary
male in the next generation. When \alpha = 5
, a man's relative probability
to be the father has 95\
constant 1 under the standard Wright-Fisher model and the standard deviation in
the number of male offspring per man is 1.10 (standard Wright-Fisher = 1).
This symmetric Dirichlet distribution is implemented by drawing
father (unscaled) probabilities from a Gamma distribution with
parameters gamma_parameter_shape
and gamma_parameter_scale
that are then normalised to sum to 1.
To obtain a symmetric Dirichlet distribution with parameter \alpha
,
the following must be used:
`gamma_parameter_shape` = \alpha
and
`gamma_parameter_scale` = 1/\alpha
.
Value
A malan_simulation / list with the following entries:
-
population
. An external pointer to the population. -
generations
. Generations actually simulated, mostly useful when parametergenerations = -1
. -
founders
. Number of founders after the simulatedgenerations
. -
growth_type
. Growth type model. -
sdo_type
. Standard deviation in a man's number of male offspring. StandardWF or GammaVariation depending onenable_gamma_variance_extension
. -
end_generation_individuals
. Pointers to individuals in end generation. -
individuals_generations
. Pointers to individuals in lastgenerations_return
generation (ifgenerations_return = 3
, then individuals in the last three generations are returned).
See Also
Examples
sim <- sample_geneology_varying_size(10*(1:10))
str(sim, 1)
sim$population
peds <- build_pedigrees(sim$population)
peds