coanc_to_kinship {bnpsd} | R 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 |
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 )
[Package bnpsd version 1.3.13 Index]