coanc_to_kinship: Transform coancestry matrix to kinship matrix

Description Usage Arguments Value See Also Examples

View source: R/coanc_to_kinship.R

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

1
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

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

bnpsd documentation built on Aug. 25, 2021, 5:07 p.m.