Skip to contents

Marks a pedigree whose third column is the MATERNAL GRANDSIRE of each animal, the format of a sire model (Mrode and Pocrnic 2023, secs. 3.6 and 3.7; Henderson 1975, 1976). The breeding value is then u_i = u_s / 2 + u_k / 4 + m_i with the maternal granddam unknown: the grandsire path weighs 1/4 instead of 1/2, the Mendelian variance is 11/16 - F_s/4 - F_k/16 (3/4 - F_s/4 with the sire alone, 15/16 - F_k/16 with the grandsire alone), and the inverse gets (1, -1/2, -1/4) in the rules of Henderson. The declaration travels with the data: pass the result as pedigree = to any fitter, or to pedigree(), a_inverse() and a22_inverse(), and every one of them uses the grandsire rules. Subsetting with [ keeps the declaration.

Usage

sire_mgs(ped, id = 1L, sire = 2L, mgs = 3L, dam = NULL)

Arguments

ped

data.frame with animal, sire and maternal grandsire (and the dam, for a mixed pedigree)

id

the animal column

sire

the sire column

mgs

the maternal-grandsire column

dam

NULL, or the dam column of a mixed pedigree

Value

a data.frame with columns id, sire and mgs (and dam before mgs in a mixed pedigree), of class br_ped_mgs

Details

The inbreeding this gives is not the true inbreeding: every relationship through the granddams is ignored, the assumption every program that offers the format makes (ASReml !MGS, DMU method 3). A declared grandsire pedigree does not combine with metafounders, with a maternal() term (the dam is not in it), with partial_a() or with dominance_matrix() or dominance_inverse(); each of those is refused.

With dam = the pedigree is MIXED, the file of a population where the dams of some animals are recorded and only the maternal grandsire of others: a row with a known dam takes the ordinary sire-dam rules, and only a row without one takes the grandsire path. The rules are per row, so the two kinds mix in one A^-1 without approximation beyond the unknown granddams of the grandsire rows. When a row has both, the grandsire column must agree with the sire of that dam: a disagreement is an error listing the rows, and a dam whose own sire is unknown receives it from the column (the same fact written twice), with a message saying how many were filled.

References

Henderson, C.R. (1975). Journal of Dairy Science 58:1917-1921; (1976) 59:1585-1588.

Quaas, R.L., Everett, R.W. & McClintock, A.E. (1979). Journal of Dairy Science 62:1648-1654.

Examples

touros <- data.frame(id = c("s1", "s2", "s3"), sire = c("0", "0", "s1"),
                     mgs = c("0", "0", "s2"))
pedigree(sire_mgs(touros))
#> Sire / maternal-grandsire pedigree with 3 animals, 2 founder(s)
#> Mean F 0, maximum 0, 0 animal(s) with F > 0
#>   id sire mgs F
#> 1 s1   NA  NA 0
#> 2 s2   NA  NA 0
#> 3 s3    1   2 0