MABM_16M_MAM_November-06-2014_a November 6, 2014 |
Obs | animal | sire | dam | afa | afb | sex | wwt |
---|---|---|---|---|---|---|---|
1 | 1 | 0 | 0 | 1.00 | 0.00 | 1 | 289 |
2 | 2 | 0 | 0 | 0.00 | 1.00 | 2 | 245 |
3 | 3 | 0 | 2 | 0.50 | 0.50 | 2 | 256 |
4 | 4 | 1 | 0 | 0.50 | 0.50 | 2 | 261 |
5 | 5 | 1 | 2 | 0.50 | 0.50 | 1 | 292 |
6 | 6 | 1 | 3 | 0.75 | 0.25 | 1 | 286 |
MABM_16M_MAM_November-06-2014_a November 6, 2014 |
Model_4_Animal multibreed_eqvar_res_add_NPnaddEff_November-06-2014_a November 6, 2014 |
ANIMAL BREEDING NOTES |
CHAPTER 16M ALL MODELS |
MULTIBREED ANIMAL MODELS WITH: |
1) UNEQUAL RESIDUAL, ADDITIVE, AND NONADDITIVE GENETIC VARIANCES |
2) EQUAL RESIDUAL VARIANCES, UNEQUAL ADDITIVE AND NONADDITIVE GENETIC VARIANCES |
3) EQUAL RESIDUAL AND ADDITIVE GENETIC VARIANCES, UNEQUAL NONADDITIVE GENETIC VARIANCES |
4) EQUAL RESIDUAL AND ADDITIVE GENETIC VARIANCES, NO RANDOM NONADDITIVE GENETIC EFFECTS |
Mauricio A. Elzo, University of Florida, elzo@animal.ufl.edu |
Read input dataset (SAS file) |
OBS animal sire dam afa afb sex wwt ------ --------- --------- --------- --------- --------- --------- --------- 1 1.0000 0 0 1.0000 0 1.0000 289.0000 2 2.0000 0 0 0 1.0000 2.0000 245.0000 3 3.0000 0 2.0000 0.5000 0.5000 2.0000 256.0000 4 4.0000 1.0000 0 0.5000 0.5000 2.0000 261.0000 5 5.0000 1.0000 2.0000 0.5000 0.5000 1.0000 292.0000 6 6.0000 1.0000 3.0000 0.7500 0.2500 1.0000 286.0000 |
datmat = matrix of input data |
datmat | ||||||
---|---|---|---|---|---|---|
1 | 0 | 0 | 1 | 0 | 1 | 289 |
2 | 0 | 0 | 0 | 1 | 2 | 245 |
3 | 0 | 2 | 0.5 | 0.5 | 2 | 256 |
4 | 1 | 0 | 0.5 | 0.5 | 2 | 261 |
5 | 1 | 2 | 0.5 | 0.5 | 1 | 292 |
6 | 1 | 3 | 0.75 | 0.25 | 1 | 286 |
Enter Parameters for Current Run |
Enter restronsol = 1 to impose restrictions on solutions to solve the MME, else = 0 if not |
restronsol |
---|
0 |
No restrictions imposed on solutions to solve MME |
Define number of traits = nt = 1 (DO NOT CHANGE; This program is for single traits ONLY !! |
nt |
---|
1 |
Enter nanim = Number of animals |
nanim |
---|
6 |
Enter nrec = Number of records |
nrec |
---|
6 |
Enter nf = Number of fixed effects in the MME |
nf |
---|
6 |
Enter nga = Number of random additive genetic effects in the MME |
nga |
---|
6 |
ngn = Number of random nonadditive genetic effects in the MME |
ngn |
---|
0 |
Enter uneqresvar = 1 if unequal residual variances else uneqresvar = 0 |
uneqresvar |
---|
0 |
Enter uneqaddvar = 1 if unequal residual variances else uneqaddvar = 0 |
uneqaddvar |
---|
0 |
Compute neq = nf+nga+ngn = total number of MME |
neq |
---|
12 |
Define pedigf = pedigree file with breed composition of animals, sires, and dams |
pedigf | ||||||||
---|---|---|---|---|---|---|---|---|
1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
2 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
3 | 0 | 2 | 0.5 | 0.5 | 1 | 0 | 0 | 1 |
4 | 1 | 0 | 0.5 | 0.5 | 1 | 0 | 0 | 1 |
5 | 1 | 2 | 0.5 | 0.5 | 1 | 0 | 0 | 1 |
6 | 1 | 3 | 0.75 | 0.25 | 1 | 0 | 0.5 | 0.5 |
Construct xf = matrix of fixed and random effects |
Construct fixed effects in matrix xf |
xf | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0.75 | 0.25 | 0.5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
Construct random additive genetic effects in matrix xf |
xf | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
1 | 0.75 | 0.25 | 0.5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Make x = xf, i.e., use computed xf |
x | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
1 | 0.75 | 0.25 | 0.5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Residual variance = veaa + vnab for model without random nonadditive effects |
veaa | vebb | veab |
---|---|---|
65 | 65 | 0 |
TRICK: make r=diag(ve=1) for models with common residual variance |
r = matrix of residual covariances |
r | |||||
---|---|---|---|---|---|
1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 | 1 |
invr = inverse of matrix of residual covariances |
invr | |||||
---|---|---|---|---|---|
1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 | 1 |
Read yf = vector of records |
yf |
---|
289 |
245 |
256 |
261 |
292 |
286 |
Make y = yf, i.e., use read yf |
y |
---|
289 |
245 |
256 |
261 |
292 |
286 |
Compute xtinvr = x transpose times r |
xtinvr | |||||
---|---|---|---|---|---|
1 | 1 | 1 | 1 | 1 | 1 |
1 | 0 | 0.5 | 0.5 | 0.5 | 0.75 |
0 | 1 | 0.5 | 0.5 | 0.5 | 0.25 |
0 | 0 | 1 | 1 | 1 | 0.5 |
1 | 0 | 0 | 0 | 1 | 1 |
0 | 1 | 1 | 1 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 0 | 0 |
0 | 0 | 0 | 0 | 1 | 0 |
0 | 0 | 0 | 0 | 0 | 1 |
Compute xtinvr = x transpose times r times x |
xtinvrx | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
6 | 3.25 | 2.75 | 3.5 | 3 | 3 | 1 | 1 | 1 | 1 | 1 | 1 |
3.25 | 2.3125 | 0.9375 | 1.875 | 2.25 | 1 | 1 | 0 | 0.5 | 0.5 | 0.5 | 0.75 |
2.75 | 0.9375 | 1.8125 | 1.625 | 0.75 | 2 | 0 | 1 | 0.5 | 0.5 | 0.5 | 0.25 |
3.5 | 1.875 | 1.625 | 3.25 | 1.5 | 2 | 0 | 0 | 1 | 1 | 1 | 0.5 |
3 | 2.25 | 0.75 | 1.5 | 3 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
3 | 1 | 2 | 2 | 0 | 3 | 0 | 1 | 1 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
1 | 0.75 | 0.25 | 0.5 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Enter intrabreed and interbreed additive genetic variances |
vaaa | vabb | vaab |
---|---|---|
36 | 36 | 0 |
Compute vaf = vector of multibreed additive genetic variances |
pedigf | ||||||||
---|---|---|---|---|---|---|---|---|
1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 | 0 |
2 | 0 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
3 | 0 | 2 | 0.5 | 0.5 | 1 | 0 | 0 | 1 |
4 | 1 | 0 | 0.5 | 0.5 | 1 | 0 | 0 | 1 |
5 | 1 | 2 | 0.5 | 0.5 | 1 | 0 | 0 | 1 |
6 | 1 | 3 | 0.75 | 0.25 | 1 | 0 | 0.5 | 0.5 |
vaf |
---|
36 |
36 |
36 |
36 |
36 |
36 |
Compute daf = vector of computed residual additive genetic variances |
Recall: (Ga)-1 = (I - 1/2 P') (Da)-1 (I - 1/2 P) |
daf |
---|
36 |
36 |
27 |
27 |
18 |
18 |
Make da = daf, i.e., use computed da |
Compute dainv = inverse of da |
dainv = inverse of matrix of residual additive genetic variances |
dainv |
---|
0.0277778 |
0.0277778 |
0.037037 |
0.037037 |
0.0555556 |
0.0555556 |
Compute gainv = inverse of the matrix of multibreed additive genetic covariances |
Using algorithm to compute gainv directly; Elzo (1990a),JAS 68:1215-1228 |
gainv | |||||
---|---|---|---|---|---|
0.0648148 | 0.0138889 | 0.0138889 | -0.018519 | -0.027778 | -0.027778 |
0.0138889 | 0.0509259 | -0.018519 | 0 | -0.027778 | 0 |
0.0138889 | -0.018519 | 0.0509259 | 0 | 0 | -0.027778 |
-0.018519 | 0 | 0 | 0.037037 | 0 | 0 |
-0.027778 | -0.027778 | 0 | 0 | 0.0555556 | 0 |
-0.027778 | 0 | -0.027778 | 0 | 0 | 0.0555556 |
gainv | |||||
---|---|---|---|---|---|
0.065 | 0.014 | 0.014 | -0.019 | -0.028 | -0.028 |
0.014 | 0.051 | -0.019 | 0.000 | -0.028 | 0.000 |
0.014 | -0.019 | 0.051 | 0.000 | 0.000 | -0.028 |
-0.019 | 0.000 | 0.000 | 0.037 | 0.000 | 0.000 |
-0.028 | -0.028 | 0.000 | 0.000 | 0.056 | 0.000 |
-0.028 | 0.000 | -0.028 | 0.000 | 0.000 | 0.056 |
Compute lhs = left hand side of the MME |
Add gainv to lhs |
lhs | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
6 | 3.25 | 2.75 | 3.5 | 3 | 3 | 1 | 1 | 1 | 1 | 1 | 1 |
3.25 | 2.3125 | 0.9375 | 1.875 | 2.25 | 1 | 1 | 0 | 0.5 | 0.5 | 0.5 | 0.75 |
2.75 | 0.9375 | 1.8125 | 1.625 | 0.75 | 2 | 0 | 1 | 0.5 | 0.5 | 0.5 | 0.25 |
3.5 | 1.875 | 1.625 | 3.25 | 1.5 | 2 | 0 | 0 | 1 | 1 | 1 | 0.5 |
3 | 2.25 | 0.75 | 1.5 | 3 | 0 | 1 | 0 | 0 | 0 | 1 | 1 |
3 | 1 | 2 | 2 | 0 | 3 | 0 | 1 | 1 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 1 | 0 | 5.212963 | 0.9027778 | 0.9027778 | -1.203704 | -1.805556 | -1.805556 |
1 | 0 | 1 | 0 | 0 | 1 | 0.9027778 | 4.3101852 | -1.203704 | 0 | -1.805556 | 0 |
1 | 0.5 | 0.5 | 1 | 0 | 1 | 0.9027778 | -1.203704 | 4.3101852 | 0 | 0 | -1.805556 |
1 | 0.5 | 0.5 | 1 | 0 | 1 | -1.203704 | 0 | 0 | 3.4074074 | 0 | 0 |
1 | 0.5 | 0.5 | 1 | 1 | 0 | -1.805556 | -1.805556 | 0 | 0 | 4.6111111 | 0 |
1 | 0.75 | 0.25 | 0.5 | 1 | 0 | -1.805556 | 0 | -1.805556 | 0 | 0 | 4.6111111 |
lhs | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
6.000 | 3.250 | 2.750 | 3.500 | 3.000 | 3.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
3.250 | 2.313 | 0.938 | 1.875 | 2.250 | 1.000 | 1.000 | 0.000 | 0.500 | 0.500 | 0.500 | 0.750 |
2.750 | 0.938 | 1.813 | 1.625 | 0.750 | 2.000 | 0.000 | 1.000 | 0.500 | 0.500 | 0.500 | 0.250 |
3.500 | 1.875 | 1.625 | 3.250 | 1.500 | 2.000 | 0.000 | 0.000 | 1.000 | 1.000 | 1.000 | 0.500 |
3.000 | 2.250 | 0.750 | 1.500 | 3.000 | 0.000 | 1.000 | 0.000 | 0.000 | 0.000 | 1.000 | 1.000 |
3.000 | 1.000 | 2.000 | 2.000 | 0.000 | 3.000 | 0.000 | 1.000 | 1.000 | 1.000 | 0.000 | 0.000 |
1.000 | 1.000 | 0.000 | 0.000 | 1.000 | 0.000 | 5.213 | 0.903 | 0.903 | -1.204 | -1.806 | -1.806 |
1.000 | 0.000 | 1.000 | 0.000 | 0.000 | 1.000 | 0.903 | 4.310 | -1.204 | 0.000 | -1.806 | 0.000 |
1.000 | 0.500 | 0.500 | 1.000 | 0.000 | 1.000 | 0.903 | -1.204 | 4.310 | 0.000 | 0.000 | -1.806 |
1.000 | 0.500 | 0.500 | 1.000 | 0.000 | 1.000 | -1.204 | 0.000 | 0.000 | 3.407 | 0.000 | 0.000 |
1.000 | 0.500 | 0.500 | 1.000 | 1.000 | 0.000 | -1.806 | -1.806 | 0.000 | 0.000 | 4.611 | 0.000 |
1.000 | 0.750 | 0.250 | 0.500 | 1.000 | 0.000 | -1.806 | 0.000 | -1.806 | 0.000 | 0.000 | 4.611 |
Compute rhs = right hand side of the MME |
rhs |
---|
1629 |
908 |
721 |
952 |
867 |
762 |
289 |
245 |
256 |
261 |
292 |
286 |
rhs |
---|
1629.0 |
908.00 |
721.00 |
952.00 |
867.00 |
762.00 |
289.00 |
245.00 |
256.00 |
261.00 |
292.00 |
286.00 |
Compute ginvlhs = generalized inverse of the left hand side of the MME |
ginvlhs | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0.181232 | 0.063648 | 0.117584 | -0.284615 | 0.093595 | 0.087636 | -0.129195 | -0.136452 | -0.082126 | -0.067612 | -0.121547 | -0.128213 |
0.063648 | 1.279549 | -1.215901 | -0.267308 | -0.461535 | 0.525183 | -0.253065 | 0.252069 | -0.013598 | -0.193098 | 0.136967 | -0.131340 |
0.117584 | -1.215901 | 1.333485 | -0.017308 | 0.555131 | -0.437547 | 0.123870 | -0.388521 | -0.068528 | 0.125486 | -0.258515 | 0.003127 |
-0.284615 | -0.267308 | -0.017308 | 1.013462 | -0.017308 | -0.267308 | 0.069231 | 0.069231 | -0.069231 | -0.069231 | -0.069231 | 0.000000 |
0.093595 | -0.461535 | 0.555131 | -0.017308 | 0.484756 | -0.391160 | -0.111276 | -0.132566 | -0.003215 | 0.039365 | -0.227301 | -0.123408 |
0.087636 | 0.525183 | -0.437547 | -0.267308 | -0.391160 | 0.478797 | -0.017919 | -0.003886 | -0.078911 | -0.106977 | 0.105754 | -0.004805 |
-0.129195 | -0.253065 | 0.123870 | 0.069231 | -0.111276 | -0.017919 | 0.522564 | 0.023244 | 0.058545 | 0.226416 | 0.264865 | 0.306631 |
-0.136452 | 0.252069 | -0.388521 | 0.069231 | -0.132566 | -0.003886 | 0.023244 | 0.528859 | 0.229564 | 0.049102 | 0.274308 | 0.129890 |
-0.082126 | -0.013598 | -0.068528 | -0.069231 | -0.003215 | -0.078911 | 0.058545 | 0.229564 | 0.442349 | 0.100311 | 0.155241 | 0.228075 |
-0.067612 | -0.193098 | 0.125486 | -0.069231 | 0.039365 | -0.106977 | 0.226416 | 0.049102 | 0.100311 | 0.454939 | 0.136355 | 0.166172 |
-0.121547 | 0.136967 | -0.258515 | -0.069231 | -0.227301 | 0.105754 | 0.264865 | 0.274308 | 0.155241 | 0.136355 | 0.531837 | 0.239398 |
-0.128213 | -0.131340 | 0.003127 | 0.000000 | -0.123408 | -0.004805 | 0.306631 | 0.129890 | 0.228075 | 0.166172 | 0.239398 | 0.502002 |
ginvlhs | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0.181 | 0.064 | 0.118 | -0.285 | 0.094 | 0.088 | -0.129 | -0.136 | -0.082 | -0.068 | -0.122 | -0.128 |
0.064 | 1.280 | -1.216 | -0.267 | -0.462 | 0.525 | -0.253 | 0.252 | -0.014 | -0.193 | 0.137 | -0.131 |
0.118 | -1.216 | 1.333 | -0.017 | 0.555 | -0.438 | 0.124 | -0.389 | -0.069 | 0.125 | -0.259 | 0.003 |
-0.285 | -0.267 | -0.017 | 1.013 | -0.017 | -0.267 | 0.069 | 0.069 | -0.069 | -0.069 | -0.069 | 0.000 |
0.094 | -0.462 | 0.555 | -0.017 | 0.485 | -0.391 | -0.111 | -0.133 | -0.003 | 0.039 | -0.227 | -0.123 |
0.088 | 0.525 | -0.438 | -0.267 | -0.391 | 0.479 | -0.018 | -0.004 | -0.079 | -0.107 | 0.106 | -0.005 |
-0.129 | -0.253 | 0.124 | 0.069 | -0.111 | -0.018 | 0.523 | 0.023 | 0.059 | 0.226 | 0.265 | 0.307 |
-0.136 | 0.252 | -0.389 | 0.069 | -0.133 | -0.004 | 0.023 | 0.529 | 0.230 | 0.049 | 0.274 | 0.130 |
-0.082 | -0.014 | -0.069 | -0.069 | -0.003 | -0.079 | 0.059 | 0.230 | 0.442 | 0.100 | 0.155 | 0.228 |
-0.068 | -0.193 | 0.125 | -0.069 | 0.039 | -0.107 | 0.226 | 0.049 | 0.100 | 0.455 | 0.136 | 0.166 |
-0.122 | 0.137 | -0.259 | -0.069 | -0.227 | 0.106 | 0.265 | 0.274 | 0.155 | 0.136 | 0.532 | 0.239 |
-0.128 | -0.131 | 0.003 | 0.000 | -0.123 | -0.005 | 0.307 | 0.130 | 0.228 | 0.166 | 0.239 | 0.502 |
Compute gl = ginvlhs*lhs = matrix of expectations of solutions |
gl | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0.500 | 0.250 | 0.250 | -0.000 | 0.250 | 0.250 | -0.000 | 0.000 | 0.000 | -0.000 | 0.000 | -0.000 |
0.250 | 0.625 | -0.375 | -0.000 | 0.125 | 0.125 | -0.000 | -0.000 | -0.000 | -0.000 | -0.000 | -0.000 |
0.250 | -0.375 | 0.625 | 0.000 | 0.125 | 0.125 | 0.000 | -0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
-0.000 | -0.000 | -0.000 | 1.000 | -0.000 | -0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | -0.000 |
0.250 | 0.125 | 0.125 | 0.000 | 0.625 | -0.375 | 0.000 | -0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
0.250 | 0.125 | 0.125 | 0.000 | -0.375 | 0.625 | -0.000 | -0.000 | -0.000 | -0.000 | -0.000 | -0.000 |
-0.000 | -0.000 | -0.000 | 0.000 | -0.000 | -0.000 | 1.000 | -0.000 | -0.000 | 0.000 | 0.000 | 0.000 |
-0.000 | -0.000 | -0.000 | -0.000 | 0.000 | -0.000 | -0.000 | 1.000 | -0.000 | 0.000 | -0.000 | -0.000 |
-0.000 | -0.000 | -0.000 | -0.000 | -0.000 | 0.000 | -0.000 | 0.000 | 1.000 | 0.000 | -0.000 | 0.000 |
0.000 | -0.000 | -0.000 | 0.000 | -0.000 | 0.000 | 0.000 | -0.000 | 0.000 | 1.000 | 0.000 | 0.000 |
-0.000 | 0.000 | -0.000 | 0.000 | -0.000 | -0.000 | -0.000 | 0.000 | -0.000 | 0.000 | 1.000 | -0.000 |
-0.000 | -0.000 | -0.000 | 0.000 | -0.000 | 0.000 | -0.000 | -0.000 | -0.000 | 0.000 | 0.000 | 1.000 |
Notice that lg = gl (i.e., lhs*ginvlhs = lhs*ginvlhs) |
lg | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0.500 | 0.250 | 0.250 | 0.000 | 0.250 | 0.250 | -0.000 | -0.000 | -0.000 | -0.000 | -0.000 | -0.000 |
0.250 | 0.625 | -0.375 | 0.000 | 0.125 | 0.125 | -0.000 | -0.000 | -0.000 | -0.000 | -0.000 | -0.000 |
0.250 | -0.375 | 0.625 | 0.000 | 0.125 | 0.125 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 | 0.000 |
-0.000 | 0.000 | 0.000 | 1.000 | 0.000 | -0.000 | -0.000 | 0.000 | -0.000 | -0.000 | -0.000 | -0.000 |
0.250 | 0.125 | 0.125 | 0.000 | 0.625 | -0.375 | 0.000 | 0.000 | 0.000 | -0.000 | 0.000 | 0.000 |
0.250 | 0.125 | 0.125 | 0.000 | -0.375 | 0.625 | -0.000 | -0.000 | -0.000 | -0.000 | -0.000 | -0.000 |
-0.000 | 0.000 | 0.000 | 0.000 | -0.000 | -0.000 | 1.000 | -0.000 | -0.000 | -0.000 | -0.000 | 0.000 |
-0.000 | -0.000 | 0.000 | 0.000 | 0.000 | -0.000 | -0.000 | 1.000 | 0.000 | 0.000 | -0.000 | -0.000 |
-0.000 | 0.000 | -0.000 | 0.000 | -0.000 | 0.000 | -0.000 | 0.000 | 1.000 | 0.000 | 0.000 | 0.000 |
-0.000 | 0.000 | -0.000 | 0.000 | -0.000 | -0.000 | -0.000 | 0.000 | 0.000 | 1.000 | 0.000 | 0.000 |
-0.000 | 0.000 | -0.000 | 0.000 | -0.000 | -0.000 | -0.000 | 0.000 | -0.000 | -0.000 | 1.000 | -0.000 |
-0.000 | 0.000 | 0.000 | 0.000 | -0.000 | -0.000 | 0.000 | -0.000 | -0.000 | -0.000 | -0.000 | 1.000 |
Verify that lgl = lhs (i.e., lhs*ginvlhs*lhs = lhs => generalized inverse is correct) |
lgl | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
6.000 | 3.250 | 2.750 | 3.500 | 3.000 | 3.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 | 1.000 |
3.250 | 2.313 | 0.938 | 1.875 | 2.250 | 1.000 | 1.000 | -0.000 | 0.500 | 0.500 | 0.500 | 0.750 |
2.750 | 0.937 | 1.813 | 1.625 | 0.750 | 2.000 | 0.000 | 1.000 | 0.500 | 0.500 | 0.500 | 0.250 |
3.500 | 1.875 | 1.625 | 3.250 | 1.500 | 2.000 | -0.000 | 0.000 | 1.000 | 1.000 | 1.000 | 0.500 |
3.000 | 2.250 | 0.750 | 1.500 | 3.000 | 0.000 | 1.000 | 0.000 | 0.000 | 0.000 | 1.000 | 1.000 |
3.000 | 1.000 | 2.000 | 2.000 | 0.000 | 3.000 | -0.000 | 1.000 | 1.000 | 1.000 | -0.000 | -0.000 |
1.000 | 1.000 | 0.000 | 0.000 | 1.000 | 0.000 | 5.213 | 0.903 | 0.903 | -1.204 | -1.806 | -1.806 |
1.000 | -0.000 | 1.000 | 0.000 | -0.000 | 1.000 | 0.903 | 4.310 | -1.204 | 0.000 | -1.806 | -0.000 |
1.000 | 0.500 | 0.500 | 1.000 | -0.000 | 1.000 | 0.903 | -1.204 | 4.310 | 0.000 | -0.000 | -1.806 |
1.000 | 0.500 | 0.500 | 1.000 | -0.000 | 1.000 | -1.204 | -0.000 | 0.000 | 3.407 | -0.000 | 0.000 |
1.000 | 0.500 | 0.500 | 1.000 | 1.000 | 0.000 | -1.806 | -1.806 | -0.000 | -0.000 | 4.611 | -0.000 |
1.000 | 0.750 | 0.250 | 0.500 | 1.000 | -0.000 | -1.806 | -0.000 | -1.806 | -0.000 | 0.000 | 4.611 |
Compute ranklhs = rank of the MME = trace of ginvlhs*lhs |
ranklhs |
---|
10 |
Compute yhat = vector of solutions for the MME |
yhat |
---|
133.16981 |
71.583622 |
61.586187 |
8.25 |
82.531308 |
50.638501 |
0.680928 |
-0.394498 |
-1.218641 |
0.9322103 |
0.4296456 |
-0.841717 |
yhat |
---|
133.17 |
71.58 |
61.59 |
8.25 |
82.53 |
50.64 |
0.68 |
-0.39 |
-1.22 |
0.93 |
0.43 |
-0.84 |
Compute sesol = standard error of solutions |
sesol |
---|
3.43 |
9.12 |
9.31 |
8.12 |
5.61 |
5.58 |
5.83 |
5.86 |
5.36 |
5.44 |
5.88 |
5.71 |
Computation of Additive, Nonadditive, and Total Genetic Predictions |
Using matrix computations |
Define ka = coefficient matrix of additive genetic predictions |
ka | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | -1 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 0.5 | -0.5 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
0 | 0.5 | -0.5 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
0 | 0.5 | -0.5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 | 0.75 | -0.75 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
ka | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0.00 | 1.00 | -1.00 | 0.00 | 0.00 | 0.00 | 1.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.50 | -0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.50 | -0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | 0.00 | 0.00 |
0.00 | 0.50 | -0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | 0.00 |
0.00 | 0.75 | -0.75 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 |
Compute kagl = ka*ginvlhs*lhs to check if functions in matrix ka are estimable |
(kagl = ka if functions in ka are estimable) |
kagl | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0.00 | 1.00 | -1.00 | -0.00 | 0.00 | -0.00 | 1.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 1.00 | -0.00 | 0.00 | -0.00 | -0.00 |
0.00 | 0.50 | -0.50 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | 1.00 | -0.00 | -0.00 | -0.00 |
0.00 | 0.50 | -0.50 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 | 1.00 | -0.00 | -0.00 |
0.00 | 0.50 | -0.50 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | 1.00 | -0.00 |
-0.00 | 0.75 | -0.75 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | 1.00 |
difkaglka | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | 0.00 | -0.00 | -0.00 |
0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
-0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
Compute uaka = vector of multibreed additive genetic predictions |
uaka |
---|
10.68 |
-0.39 |
3.78 |
5.93 |
5.43 |
6.66 |
Compute vepuaka = matrix of variance of errors of additive genetic predictions |
vepuaka | |||||
---|---|---|---|---|---|
312.88 | 43.15 | 159.08 | 145.72 | 194.63 | 238.75 |
43.15 | 34.38 | 35.74 | 24.01 | 38.65 | 39.67 |
159.08 | 35.74 | 114.30 | 79.93 | 106.71 | 136.10 |
145.72 | 24.01 | 79.93 | 90.84 | 93.34 | 113.87 |
194.63 | 38.65 | 106.71 | 93.34 | 142.25 | 153.44 |
238.75 | 39.67 | 136.10 | 113.87 | 153.44 | 203.97 |
Compute sepuaka = vector of standard errors of additive genetic predictions |
sepuaka |
---|
17.69 |
5.86 |
10.69 |
9.53 |
11.93 |
14.28 |
Define kn = coefficient matrix of nonadditive genetic predictions |
Assume that males will be mated to (1/2A 1/2B) females and viceversa |
kn | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 0.5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0.5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0.5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0.5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0.5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0.5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
kn | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0.00 | 0.00 | 0.00 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.00 | 0.00 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.00 | 0.00 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.00 | 0.00 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.00 | 0.00 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.00 | 0.00 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
Compute kngl = kn*ginvlhs*lhs to check if functions in matrix kn are estimable |
(kngl = kn if functions in kn are estimable) |
kngl | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
-0.00 | -0.00 | -0.00 | 0.50 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | 0.50 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | 0.50 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | 0.50 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | 0.50 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | 0.50 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
difknglkn | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
-0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | -0.00 |
Compute uakn = vector of multibreed nonadditive genetic predictions |
uakn |
---|
4.12 |
4.12 |
4.12 |
4.12 |
4.12 |
4.12 |
Compute vepuaks = matrix of variance of errors of nonadditive genetic predictions |
vepuakn | |||||
---|---|---|---|---|---|
16.47 | 16.47 | 16.47 | 16.47 | 16.47 | 16.47 |
16.47 | 16.47 | 16.47 | 16.47 | 16.47 | 16.47 |
16.47 | 16.47 | 16.47 | 16.47 | 16.47 | 16.47 |
16.47 | 16.47 | 16.47 | 16.47 | 16.47 | 16.47 |
16.47 | 16.47 | 16.47 | 16.47 | 16.47 | 16.47 |
16.47 | 16.47 | 16.47 | 16.47 | 16.47 | 16.47 |
Compute sepuakn = vector of standard errors of nonadditive genetic predictions |
sepuakn |
---|
4.06 |
4.06 |
4.06 |
4.06 |
4.06 |
4.06 |
Define kt = coefficient matrix of total genetic predictions |
Assume that males will be mated to (1/2A 1/2B) females and viceversa |
kt | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 1 | -1 | 0.5 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 0.5 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
0 | 0.5 | -0.5 | 0.5 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
0 | 0.5 | -0.5 | 0.5 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
0 | 0.5 | -0.5 | 0.5 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
0 | 0.75 | -0.75 | 0.5 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
kt | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
0.00 | 1.00 | -1.00 | 0.50 | 0.00 | 0.00 | 1.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.00 | 0.00 | 0.50 | 0.00 | 0.00 | 0.00 | 1.00 | 0.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.50 | -0.50 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | 0.00 | 0.00 | 0.00 |
0.00 | 0.50 | -0.50 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | 0.00 | 0.00 |
0.00 | 0.50 | -0.50 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 | 0.00 |
0.00 | 0.75 | -0.75 | 0.50 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 0.00 | 1.00 |
Compute ktgl = kt*ginvlhs*lhs to check if functions in matrix kt are estimable |
(ktgl = kt if functions in kt are estimable) |
ktgl | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
-0.00 | 1.00 | -1.00 | 0.50 | 0.00 | -0.00 | 1.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | 0.50 | -0.00 | -0.00 | -0.00 | 1.00 | -0.00 | 0.00 | -0.00 | -0.00 |
-0.00 | 0.50 | -0.50 | 0.50 | 0.00 | -0.00 | -0.00 | 0.00 | 1.00 | -0.00 | -0.00 | -0.00 |
0.00 | 0.50 | -0.50 | 0.50 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | 1.00 | -0.00 | -0.00 |
-0.00 | 0.50 | -0.50 | 0.50 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 1.00 | -0.00 |
-0.00 | 0.75 | -0.75 | 0.50 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | 1.00 |
difktglkt | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
-0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
-0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | 0.00 | -0.00 | 0.00 | -0.00 | -0.00 |
-0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
-0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
-0.00 | 0.00 | -0.00 | -0.00 | 0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 | -0.00 |
Compute uakt = vector of multibreed total genetic predictions |
uakt |
---|
14.80 |
3.73 |
7.91 |
10.06 |
9.55 |
10.78 |
Compute vepuaks = matrix of variance of errors of total genetic predictions |
vepuakt | |||||
---|---|---|---|---|---|
317.60 | 55.99 | 163.36 | 150.00 | 198.91 | 243.25 |
55.99 | 55.34 | 48.15 | 36.42 | 51.06 | 52.30 |
163.36 | 48.15 | 118.15 | 83.77 | 110.55 | 140.16 |
150.00 | 36.42 | 83.77 | 94.69 | 97.18 | 117.93 |
198.91 | 51.06 | 110.55 | 97.18 | 146.10 | 157.50 |
243.25 | 52.30 | 140.16 | 117.93 | 157.50 | 208.25 |
Compute sepuakt = vector of standard errors of total genetic predictions |
sepuakt |
---|
17.82 |
7.44 |
10.87 |
9.73 |
12.09 |
14.43 |