Simulate random allele frequencies and genotypes from the BN-PSD admixture model
This function returns simulated ancestral, intermediate, and individual-specific allele frequencies and genotypes given the admixture structure, as determined by the admixture proportions and the vector of intermediate subpopulation FST values.
The function is a wrapper around \link{draw_p_anc}
, \link{draw_p_subpops}
, \link{make_p_ind_admix}
, and \link{draw_genotypes_admix}
with additional features such as requiring polymorphic loci.
Importantly, by default fixed loci (where all individuals were homozygous for the same allele) are re-drawn from the start (starting from the ancestral allele frequencies) so no fixed loci are in the output and no biases are introduced by re-drawing genotypes conditional on any of the previous allele frequencies (ancestral, intermediate, or individual-specific).
Below m_loci
(also m
) is the number of loci, n
is the number of individuals, and k
is the number of intermediate subpopulations.
draw_all_admix( admix_proportions, inbr_subpops, m_loci, want_genotypes = TRUE, want_p_ind = FALSE, want_p_subpops = FALSE, want_p_anc = TRUE, verbose = FALSE, require_polymorphic_loci = TRUE, beta = NA, p_anc = NULL )
admix_proportions |
The |
inbr_subpops |
The length- |
m_loci |
The number of loci to draw. |
want_genotypes |
If |
want_p_ind |
If |
want_p_subpops |
If |
want_p_anc |
If |
verbose |
If |
require_polymorphic_loci |
If TRUE (default), returned genotype matrix will not include any fixed loci (loci that happened to be fixed are drawn again, starting from their ancestral allele frequencies, and checked iteratively until no fixed loci remain, so that the final number of polymorphic loci is exactly |
beta |
Shape parameter for a symmetric Beta for ancestral allele frequencies |
p_anc |
If provided, it is used as the ancestral allele frequencies (instead of drawing random ones). Must either be a scalar or a length- |
A named list with the following items (which may be missing depending on options):
X
: An m
-by-n
matrix of genotypes.
Included if want_genotypes = TRUE
.
p_anc
: A length-m
vector of ancestral allele frequencies.
Included if want_p_anc = TRUE
.
p_subpops
: An m
-by-k
matrix of intermediate subpopulation allele frequencies
Included if want_p_subpops = TRUE
.
p_ind
: An m
-by-n
matrix of individual-specific allele frequencies.
Included if want_p_ind = TRUE
.
# dimensions # number of loci m_loci <- 10 # number of individuals n_ind <- 5 # number of intermediate subpops k_subpops <- 2 # define population structure # FST values for k = 2 subpopulations inbr_subpops <- c(0.1, 0.3) # admixture proportions from 1D geography admix_proportions <- admix_prop_1d_linear(n_ind, k_subpops, sigma = 1) # draw all random allele freqs and genotypes out <- draw_all_admix(admix_proportions, inbr_subpops, m_loci) # return value is a list with these items: # genotypes X <- out$X # ancestral AFs p_anc <- out$p_anc # # these are excluded by default, but would be included if ... # # ... `want_p_subpops == TRUE` # # intermediate subpopulation AFs # p_subpops <- out$p_subpops # # # ... `want_p_ind == TRUE` # # individual-specific AFs # p_ind <- out$p_ind
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.