Build SNP Dominance Relationship Matrix

Build SNP Dominance Relationship Matrix

Description

Constructs the SNP dominance relationship matrix (D) following Da (2015). Captures non-additive (dominance) genetic relationships among individuals. Can be used alongside the additive G matrix in masreml() to partition genetic variance into additive and dominance components.

Usage

build_D_snp(W)

Arguments

W numeric matrix (n x m) of raw genotype codes, where n is the number of individuals and m is the number of SNP markers. Values must be 0, 1, or 2. Same format as build_G_snp.

Details

SNP dominance GRM (Da, 2015). For individual \(i\) at SNP \(j\) with allele frequency \(p_j\) and \(q_j = 1 - p_j\), the dominance-coded value is:

Genotype \(aa\) (dosage = 0):
\(W_{D,ij} = -2p_j^2\)
Genotype \(Aa\) (dosage = 1):
\(W_{D,ij} = 2p_j q_j\)
Genotype \(AA\) (dosage = 2):
\(W_{D,ij} = -2q_j^2\)

The dominance GRM is then:

\(D = \frac{W_D W_D^\top}{\sum_j (2p_j q_j)^2}\)

Value

numeric matrix (n x n) of dominance relationships.

References

Da, Y. (2015) Multi-allelic haplotype model based on genetic partition for genomic prediction and variance component estimation using SNP markers. BMC Genetics 16:144. doi:10.1186/s12863-015-0301-1

See Also

build_G_snp, masreml

Examples

Code
library("masreml")

d <- load_data("small")
D <- build_D_snp(d$snp)
dim(D)
# Off-diagonal mean ~ 0 under random mating; diagonal carries the
# dominance "self" contributions.
round(summary(diag(D)), 3)