View source: R/population_stats.R
PIC | R Documentation |
Given a set of allele frequencies, this function estimates the Polymorphic Information Content (PIC) for each locus, within and/or across populations.
PIC(freqs, pops = row.names(freqs), loci = unique(as.matrix(as.data.frame( strsplit(names(freqs), split = ".", fixed = TRUE), stringsAsFactors = FALSE))[1, ]), bypop = TRUE, overall = TRUE)
freqs |
A data frame of allele frequencies, such as those output by |
pops |
An optional characer vector containing names of populations to include. |
loci |
An optional character vector containing names of loci to include. |
bypop |
If |
overall |
If |
PIC is estimated as:
1 - (∑ {i = 1} to {n} p_i^2) - ∑ {i = 1} to {n - 1} ∑ {j = i + 1} to {n} 2 * p_i^2 * p_j^2
according to Botstein et al. (1980), where p_i and p_j are allele frequencies at alleles i and j, respectively, and n is the number of alleles.
The higher this value is, the more useful a marker is for distinguishing individuals and understanding relationships among them.
A matrix, with loci in columns, and populations and/or “Overall” in rows. Each element of the matrix contains a PIC value.
Lindsay V. Clark
Botstein, M., White, R. L., Skolnick, M. and Davis, R. W. (1980) Construction of a genetic linkage map in man using restriction fragment length polymorphisms. American Journal of Human Genetics 32, 314–331.
alleleDiversity
# generate allele frequencies for this example myfreq <- data.frame(row.names = c("pop1", "pop2"), Genomes = c(20,30), loc1.124 = c(0.1, 0.25), loc1.126 = c(0.2, 0), loc1.128 = c(0.05, 0.4), loc1.130 = c(0.3, 0.1), loc1.132 = c(0.1, 0.1), loc1.134 = c(0.25, 0.15), loc2.150 = c(0.4, 0.5), loc2.155 = c(0.3, 0.2), loc2.160 = c(0.3, 0.3)) # estimate PIC PIC(myfreq)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.