relationshipAdditive {GeneticsPed}R Documentation

Additive relationship matrix and its inverse

Description

relationshipAdditive creates additive relationship matrix, while inverseAdditive creates its inverse directly from a pedigree. kinship is another definition of relationship and is equal to half of additive relationship.

Usage


relationshipAdditive(x, sort=TRUE, names=TRUE, ...)
inverseAdditive(x, sort=TRUE, names=TRUE, ...)
kinship(x, sort=TRUE, names=TRUE, ...)

Arguments

x Pedigree
sort logical, for the computation the pedigree needs to be sorted, but results are sorted back to original sorting (sort=TRUE) or not (sort=FALSE)
names logical, should returned matrix have row/colnames; this can be used to get leaner matrix
... arguments for other methods

Details

Additive or numerator relationship matrix is symetric and contains 1 + F_i on diagonal, where F_i is an inbreeding coefficients (see 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.

Value

A matrix of n * n dimension, where n is number of subjects in x

Author(s)

Gregor Gorjanc and Dave A. Henderson

References

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

See Also

Pedigree, inbreeding and geneFlowT

Examples

  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))

[Package GeneticsPed version 1.4.0 Index]