coanc_to_kinship: Transform coancestry matrix to kinship matrix

View source: R/coanc_to_kinship.R

coanc_to_kinshipR Documentation

Transform coancestry matrix to kinship matrix

Description

If Theta is the coancestry matrix and Phi is the kinship matrix (both are n-by-n symmetric), then these matrices agree off-diagonal, but the diagonal gets transformed as diag( Phi ) = ( 1 + diag( Theta ) ) / 2.

Usage

coanc_to_kinship(coancestry)

Arguments

coancestry

The n-by-n coancestry matrix

Value

The n-by-n kinship matrix, preserving column and row names.

See Also

The inverse function is given by popkin::inbr_diag().

Examples

# a trivial case: unadmixed individuals from independent subpopulations
# number of individuals/subpops
n_ind <- 5
# unadmixed individuals
admix_proportions <- diag(rep.int(1, n_ind))
# equal Fst for all subpops
inbr_subpops <- 0.2
# diagonal coancestry matryx
coancestry <- coanc_admix(admix_proportions, inbr_subpops)
kinship <- coanc_to_kinship(coancestry)

# a more complicated admixture model
# number of individuals
n_ind <- 5
# number of intermediate subpops
k_subpops <- 2
# non-trivial admixture proportions
admix_proportions <- admix_prop_1d_linear(n_ind, k_subpops, sigma = 1)
# different Fst for each of the k subpops
inbr_subpops <- c(0.1, 0.3)
# non-trivial coancestry matrix
coancestry <- coanc_admix(admix_proportions, inbr_subpops)
kinship <- coanc_to_kinship( coancestry )


StoreyLab/bnpsd documentation built on July 29, 2023, 3:31 a.m.