Construct individual-specific allele frequency matrix under the PSD admixture model
Here m
is the number of loci, n
the number of individuals, and k
the number of intermediate subpopulations.
The m
-by-n
individual-specific allele frequency matrix p_ind
is constructed from the m
-by-k
intermediate subpopulation allele frequency matrix p_subpops
and the n
-by-k
admixture proportion matrix admix_proportions
equivalent to
p_ind <- p_subpops %*% t( admix_proportions )
.
This function is a wrapper around \link{tcrossprod}
, but also ensures the output allele frequencies are in [0, 1] (otherwise not guaranteed due to limited machine precision).
make_p_ind_admix(p_subpops, admix_proportions)
p_subpops |
The |
admix_proportions |
The |
The m
-by-n
matrix of individual-specific allele frequencies p_ind
.
# data dimensions # number of loci m_loci <- 10 # number of individuals n_ind <- 5 # number of intermediate subpops k_subpops <- 2 # FST values for k = 2 subpops inbr_subpops <- c(0.1, 0.3) # non-trivial admixture proportions admix_proportions <- admix_prop_1d_linear(n_ind, k_subpops, sigma = 1) # random vector of ancestral allele frequencies p_anc <- draw_p_anc(m_loci) # matrix of intermediate subpop allele freqs p_subpops <- draw_p_subpops(p_anc, inbr_subpops) # matrix of individual-specific allele frequencies p_ind <- make_p_ind_admix(p_subpops, admix_proportions)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.