View source: R/make_p_ind_admix.R
| make_p_ind_admix | R Documentation |
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 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 |
If both admix_proportions and p_subpops have column names, and if they disagree, the function stops as a precaution, as this suggests the data is misaligned or inconsistent in some way.
The m-by-n matrix of individual-specific allele frequencies p_ind.
Row names equal those from p_subpops, and column names equal rownames from admix_proportions, if present.
# 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)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.