popkin-package | R Documentation |
The heart of this package is the popkin()
function, which estimates the kinship matrix of all individual pairs from their genotype matrix.
Inbreeding coefficients, the generalized FST
, and the individual-level pairwise FST
matrix are extracted from the kinship matrix using inbr()
, fst()
, and pwfst()
, respectively.
fst()
accepts weights for individuals to balance subpopulations obtained with weights_subpops()
.
Kinship matrices can be renormalized (to change the most recent common ancestor population or MRCA) using rescale_popkin()
.
Coancestry matrices can be estimated from allele frequency matrices using popkin_af()
.
Lastly, kinship, coancestry, and pairwise FST matrices can be visualized using plot_popkin()
(with the help of inbr_diag()
for kinship matrices only).
Maintainer: Alejandro Ochoa alejandro.ochoa@duke.edu (ORCID)
Authors:
John D. Storey jstorey@princeton.edu (ORCID)
Useful links:
# estimate and visualize kinship and FST from a genotype matrix # Construct toy data X <- matrix(c(0,1,2,1,0,1,1,0,2), nrow = 3, byrow = TRUE) # genotype matrix subpops <- c(1,1,2) # subpopulation assignments for individuals subpops2 <- 1:3 # alternate labels treat every individual as a different subpop # NOTE: for BED-formatted input, use BEDMatrix! # "file" is path to BED file (excluding .bed extension) ## library(BEDMatrix) ## X <- BEDMatrix(file) # load genotype matrix object # estimate the kinship matrix from the genotypes "X"! # all downstream analysis require "kinship", none use "X" after this kinship <- popkin(X, subpops) # calculate kinship from X and optional subpop labels # plot the kinship matrix, marking the subpopulations # note inbr_diag replaces the diagonal of kinship with inbreeding coefficients plot_popkin( inbr_diag(kinship), labs = subpops ) # extract inbreeding coefficients from kinship inbreeding <- inbr(kinship) # estimate FST weights <- weights_subpops(subpops) # weigh individuals so subpopulations are balanced Fst <- fst(kinship, weights) # use kinship matrix and weights to calculate fst Fst <- fst(inbreeding, weights) # estimate more directly from inbreeding vector (same result) # estimate and visualize the pairwise FST matrix pairwise_fst <- pwfst(kinship) # estimated matrix leg_title <- expression(paste('Pairwise ', F[ST])) # fancy legend label # NOTE no need for inbr_diag() here! plot_popkin(pairwise_fst, labs = subpops, leg_title = leg_title) # rescale the kinship matrix using different subpopulations (implicitly changes the MRCA) kinship2 <- rescale_popkin(kinship, subpops2) # toy allele frequency data P <- matrix( runif( 9 ), nrow = 3 ) # estimate coancestry from allele frequency matrix # (useful from P matrices from admixture models) coancestry <- popkin_af( P )
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.