popkin_A_min_subpops: Estimate the minimum expected value of a matrix 'A' using...

Description Usage Arguments Value See Also Examples

View source: R/popkin_A_min_subpops.R

Description

This function averages the values of a square matrix A between every subpopulation pair and returns the minimum of these averages. If no subpopulation partition is provided, the function returns the minimum value of A excluding the diagonal, to agree when the code treats each individual as a subpopulation. The return value can be used to adjust an A matrix to yield the kinship matrix.

Usage

1
popkin_A_min_subpops(A, subpops = NULL)

Arguments

A

A symmetric n-by-n matrix with values between every individual pair, including self comparisons.

subpops

A length-n vector of subpopulation assignments for each individual. If missing, every individual is treated as a different subpopulation.

Value

The minimum of the average between-subpopulation A values, which estimates the minimum expected value of A

See Also

popkin_A() to generate the A matrix usually inputted into this function (popkin_A_min_subpops). popkin() is the wrapper function around both of these.

avg_kinship_subpops() for the full matrix of mean kinship values between subpopulations.

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
# 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

# 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

# calculate A from genotypes
A <- popkin_A(X)$A

# the recommended form using appropriate subpopulation labels
A_min_est <- popkin_A_min_subpops( A, subpops )

# this recovers the popkin estimate
kinship <- 1 - A / A_min_est
stopifnot( kinship == popkin( X, subpops ) )

# a simple default for exploratory analysis, equals min( A ) for correctly-calculated A
A_min_est <- popkin_A_min_subpops( A )
stopifnot( A_min_est == min( A ) )

popkin documentation built on Jan. 27, 2022, 5:07 p.m.