Additive relationship matrix and its inverse
relationshipAdditive creates additive relationship matrix, while
inverseAdditive creates its inverse directly from a
kinship is another definition of relationship and is
equal to half of additive relationship.
1 2 3
logical, for the computation the pedigree needs to be sorted, but results are sorted back to original sorting (sort=TRUE) or not (sort=FALSE)
logical, should returned matrix have row/colnames; this can be used to get leaner matrix
arguments for other methods
Additive or numerator relationship matrix is symetric and contains
1 + F_i on diagonal, where F_i is an inbreeding coefficients
inbreeding) for subject i. Off-diagonal
elements represent numerator or relationship coefficient bewteen
subjects i and j as defined by Wright (1922). Henderson
(1976) showed a way to setup inverse of relationship matrix
directly. Mrode (2005) has a very nice introduction to these concepts.
Take care with
sort=FALSE, names=FALSE. It is your own
responsibility to assure proper handling in this case.
A matrix of n * n dimension, where n is number of
Gregor Gorjanc and Dave A. Henderson
Henderson, C. R. (1976) A simple method for computing the inverse of a numerator relationship matrix used in prediction of breeding values. Biometrics 32(1):69-83
Mrode, R. A. (2005) Linear models for the prediction of animal breeding values. 2nd edition. CAB International. ISBN 0-85199-000-2 http://www.amazon.com/gp/product/0851990002
Wright, S. (1922) Coefficients of inbreeding and relationship. American Naturalist 56:330-338
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
data(Mrode2.1) Mrode2.1$dtB <- as.Date(Mrode2.1$dtB) x2.1 <- Pedigree(x=Mrode2.1, subject="sub", ascendant=c("fat", "mot"), ascendantSex=c("M", "F"), family="fam", sex="sex", generation="gen", dtBirth="dtB") (A <- relationshipAdditive(x2.1)) fractions(A) solve(A) inverseAdditive(x2.1) relationshipAdditive(x2.1[3:6, ]) ## Compare the speed ped <- generatePedigree(nId=10, nGeneration=3, nFather=1, nMother=2) system.time(solve(relationshipAdditive(ped))) system.time(inverseAdditive(ped))
Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.