Learn R Programming

pegas (version 0.10)

heterozygosity: Heterozygosity at a Locus Using Gene Frequencies

Description

This function computes the mean heterozygosity from gene frequencies, and returns optionally the associated variance.

Usage

heterozygosity(x, variance = FALSE)
H(x, variance = FALSE)

Arguments

x

a vector or a factor.

variance

a logical indicating whether the variance of the estimated heterozygosity should be returned (TRUE), the default being FALSE.

Value

A numeric vector of length one with the estimated mean heterozygosity (the default), or of length two if the variance is returned.

Details

The argument x can be either a factor or a vector. If it is a factor, then it is taken to give the individual alleles in the population. If it is a numeric vector, then its values are taken to be the numbers of each allele in the population. If it is a non-numeric vector, it is a coerced as a factor.

The mean heterozygosity is estimated with:

$$\hat{H} = \frac{n}{n-1} \left(1 - \sum_{i=1}^k p_i^2 \right)$$

where \(n\) is the number of genes in the sample, \(k\) is the number of alleles, and \(p_i\) is the observed (relative) frequency of the \(i\)th allele.

References

Nei, M. (1987) Molecular evolutionary genetics. New York: Columbia University Press.

See Also

theta.s

Examples

Run this code
# NOT RUN {
data(jaguar)
## convert the data and compute frequencies:
S <- summary(jaguar)
## compute H for all loci:
sapply(S, function(x) H(x$allele))
## ... and its variance
sapply(S, function(x) H(x$allele, variance = TRUE))
# }

Run the code above in your browser using DataLab