# rescalePopkin: Rescale kinship matrix to set a given kinship value to zero. In popkin: Estimate Kinship and FST under Arbitrary Population Structure

## Description

Rescales the input kinship matrix Φ^T so that the value φ_min^T in the original kinship matrix becomes zero, using the formula

Φ^T' = (Φ^T - φ_min^T)/(1 - φ_min^T).

This is equivalent to changing the ancestral population T into T' such that φ_min^T' = 0. If subpopulation labels subpops are provided, they are used to estimate φ_min^T. If both subpops and phiMin are provided, only phiMin is used. If both subpops and phiMin are omitted, the adjustment is equivalent to phiMin=min(Phi).

## Usage

 1 rescalePopkin(Phi, subpops = NULL, phiMin = NA)

## Arguments

 Phi An n-by-n kinship matrix. subpops The length-n vector of subpopulation assignments for each individual. phiMin A scalar kinship value to define the new zero kinship.

## Value

The rescaled n-by-n kinship matrix, with the desired level of relatedness set to zero.

## Examples

 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ## 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 ## suppose we first estimate kinship without subpopulations, which will be more biased Phi <- popkin(X) # calculate kinship from genotypes, WITHOUT subpops ## then we visualize this matrix, figure out a reasonable subpopulation partition ## now we can adjust the kinship matrix! Phi2 <- rescalePopkin(Phi, subpops) ## prev is faster but otherwise equivalent to re-estimating Phi from scratch with subpops: ## Phi2 <- popkin(X, subpops) ## can also manually set the level of relatedness phiMin we want to be zero: phiMin <- min(Phi) # a naive choice for example Phi2 <- rescalePopkin(Phi, phiMin=phiMin) ## lastly, omiting both subpops and phiMin sets the minimum value in Phi to zero Phi3 <- rescalePopkin(Phi2) ## equivalent to both of: ## Phi3 <- popkin(X) ## Phi3 <- rescalePopkin(Phi2, phiMin=min(Phi))

popkin documentation built on Jan. 27, 2018, 1:03 a.m.