The aim of most plant breeding program is simultaneous improvement of several characters. An objective method involving simultaneous selection for several attributes then becomes necessary. It has been recognized that most rapid improvements in the economic value is expected from selection applied simultaneously to all the characters which determine the economic value of a plant, and appropriate assigned weights to each character according to their economic importance, heritability and correlations between characters. So the selection for economic value is a complex matter. If the component characters are combined together into an index in such a way that when selection is applied to the index, as if index is the character to be improved, most rapid improvement of economic value is expcted. Such an index was first proposed by Smith (1937) based on the Fisher’s (1936) “discriminant function”. In this package selection index is calculated based on the Smith (1937) selection index method (Dabholkar, 1999). For more imformation refer Elements of Bio Metrical GENETICS by A. R. Dabholkar.
library(selection.index)
<- seldata # Manually generated data for analysis which is included in package d
<- weight # Weights assigned to the traits also include in package w
As we discussed that selection index based on discriminant function. So we have required genotypic & phenotypic variance-covariance matrix for further analysis.
<- gen.varcov(data = d[,3:9], genotypes = d$treat, replication = d$rep)
gmatprint(gmat)
#> sypp dtf rpp ppr ppp spp pw
#> sypp 1.2566 0.3294 0.1588 0.2430 0.7350 0.1276 0.0926
#> dtf 0.3294 1.5602 0.1734 -0.3129 -0.2331 0.1168 0.0330
#> rpp 0.1588 0.1734 0.1325 -0.0316 0.3201 -0.0086 -0.0124
#> ppr 0.2430 -0.3129 -0.0316 0.2432 0.3019 -0.0209 0.0074
#> ppp 0.7350 -0.2331 0.3201 0.3019 0.9608 -0.0692 -0.0582
#> spp 0.1276 0.1168 -0.0086 -0.0209 -0.0692 0.0174 0.0085
#> pw 0.0926 0.0330 -0.0124 0.0074 -0.0582 0.0085 0.0103
<- phen.varcov(data = d[,3:9], genotypes = d$treat, replication = d$rep)
pmatprint(pmat)
#> sypp dtf rpp ppr ppp spp pw
#> sypp 2.1465 0.1546 0.2320 0.2761 1.0801 0.1460 0.0875
#> dtf 0.1546 3.8372 0.1314 -0.4282 -0.4703 0.0585 -0.0192
#> rpp 0.2320 0.1314 0.2275 -0.0405 0.4635 0.0096 -0.0006
#> ppr 0.2761 -0.4282 -0.0405 0.4678 0.3931 -0.0205 0.0064
#> ppp 1.0801 -0.4703 0.4635 0.3931 4.2638 0.0632 -0.0245
#> spp 0.1460 0.0585 0.0096 -0.0205 0.0632 0.0836 0.0259
#> pw 0.0875 -0.0192 -0.0006 0.0064 -0.0245 0.0259 0.0226
<- weight.mat(w)
wmat
wmat#> ew h2
#> [1,] 1 0.6947
#> [2,] 1 0.3244
#> [3,] 1 0.6861
#> [4,] 1 0.7097
#> [5,] 1 0.8336
#> [6,] 1 0.2201
#> [7,] 1 0.5226
Generally, Percent Relative Efficiency (PRE) of a selection index is calculated with reference to Genetic Advance (GA) yield of respective weight. So first we calculate the GA of yield for respective weights. + Genetic gain of Yield
<- sel.index(ID = 1, phen_mat = pmat[1,1], gen_mat = gmat[1,1],
GA1weight_mat = w[1,2])
print(GA1)
#> $ID
#> [1] "1"
#>
#> $b
#> [,1]
#> [1,] 0.5854
#>
#> $GA
#> [,1]
#> [1,] 1.7694
#>
#> $PRE
#> [,1]
#> [1,] 100
In single character combination GA is stored in 3^^rd list element. So we can store this GA values in different variables for further use.
<- GA1[[3]] GAY
We use this GAY value for the construction, ranking of the other selection indices and stored them in a list “si”.
<- comb.indices(ncomb = 2, pmat = pmat, gmat = gmat, wmat = wmat, wcol = 1, GAY = 1.7694)
si_ew
si_ew#> ID b.1 b.2 GA PRE Rank
#> 1 1, 2 0.7055 0.4640 2.9144 164.7089 1
#> 2 1, 3 0.5855 0.6833 2.0915 118.2044 5
#> 3 1, 4 0.6114 0.6785 2.3034 130.1815 3
#> 4 1, 5 0.8340 0.1864 2.9009 163.9454 2
#> 5 1, 6 0.5979 0.6902 1.9870 112.3004 8
#> 6 1, 7 0.5260 2.5167 2.0304 114.7484 6
#> 7 2, 3 0.4139 1.1055 2.1197 119.8004 4
#> 8 2, 4 0.3435 0.1654 1.3321 75.2850 13
#> 9 2, 5 0.3718 0.2117 1.6600 93.8157 12
#> 10 2, 6 0.4170 1.3135 1.9304 109.1001 9
#> 11 2, 7 0.4266 2.2783 1.8200 102.8607 11
#> 12 3, 4 0.5322 0.4984 0.8230 46.5157 16
#> 13 3, 5 1.7692 0.1081 1.9993 112.9935 7
#> 14 3, 6 0.5428 0.0429 0.5365 30.3212 19
#> 15 3, 7 0.5277 -0.0789 0.5200 29.3905 20
#> 16 4, 5 0.9933 0.2046 1.8449 104.2694 10
#> 17 4, 6 0.4785 0.0755 0.6720 37.9795 18
#> 18 4, 7 0.5270 0.6339 0.7809 44.1353 17
#> 19 5, 6 0.2208 -0.7865 1.0055 56.8298 15
#> 20 5, 7 0.2008 -1.9018 1.0765 60.8416 14
#> 21 6, 7 0.0808 0.7393 0.2609 14.7437 21
<- comb.indices(ncomb = 2, pmat = pmat, gmat = gmat, wmat = wmat, wcol = 2, GAY = 1.7694)
si_h2
si_h2#> ID b.1 b.2 GA PRE Rank
#> 1 1, 2 0.4440 0.1736 1.5474 87.4550 4
#> 2 1, 3 0.4067 0.4698 1.4498 81.9354 6
#> 3 1, 4 0.4255 0.4787 1.6089 90.9291 2
#> 4 1, 5 0.6159 0.1516 2.1772 123.0462 1
#> 5 1, 6 0.3910 0.4233 1.2907 72.9465 8
#> 6 1, 7 0.3604 1.6894 1.3836 78.1954 7
#> 7 2, 3 0.1436 0.5639 0.8574 48.4593 11
#> 8 2, 4 0.1013 0.2447 0.4434 25.0570 18
#> 9 2, 5 0.1035 0.1815 0.8353 47.2076 12
#> 10 2, 6 0.1324 0.4064 0.6098 34.4635 13
#> 11 2, 7 0.1406 0.8313 0.6083 34.3774 14
#> 12 3, 4 0.3641 0.3541 0.5776 32.6412 15
#> 13 3, 5 1.3935 0.0879 1.5822 89.4189 3
#> 14 3, 6 0.3942 -0.0700 0.3873 21.8865 19
#> 15 3, 7 0.3708 -0.1284 0.3673 20.7605 20
#> 16 4, 5 0.7662 0.1675 1.4516 82.0366 5
#> 17 4, 6 0.3572 -0.0440 0.5074 28.6765 17
#> 18 4, 7 0.3722 0.3651 0.5441 30.7526 16
#> 19 5, 6 0.1960 -0.7924 0.9149 51.7077 10
#> 20 5, 7 0.1708 -1.7234 0.9362 52.9108 9
#> 21 6, 7 -0.0008 0.3218 0.0995 5.6257 21
Generally selection score is calculate based on top ranked selection index. So first we store the discriminant coefficient value into a variable b, and later that value we used for calculation of selection score and ranking of the genotypes.
<- c(si_ew$b.1[1], si_ew$b.2[1])
b_ewsel.score.rank(data = d[,3:4], bmat = b_ew, genotype = d$treat)
#> Genotype Selection.score Rank
#> 1 G1 23.70954 22
#> 2 G2 24.82543 15
#> 3 G3 24.09161 19
#> 4 G4 25.43691 8
#> 5 G5 25.31276 9
#> 6 G6 24.30728 18
#> 7 G7 23.43554 24
#> 8 G8 25.16649 10
#> 9 G9 26.03006 4
#> 10 G10 23.07997 25
#> 11 G11 25.74240 6
#> 12 G12 24.63835 16
#> 13 G13 24.88772 13
#> 14 G14 25.73691 7
#> 15 G15 23.64999 23
#> 16 G16 24.88672 14
#> 17 G17 25.15723 11
#> 18 G18 24.38874 17
#> 19 G19 27.15122 2
#> 20 G20 24.98537 12
#> 21 G21 26.78243 3
#> 22 G22 28.20124 1
#> 23 G23 24.08199 20
#> 24 G24 23.83542 21
#> 25 G25 25.75141 5
<- c(si_h2$b.1[1], si_h2$b.2[1])
b_h2sel.score.rank(data = d[,3:4], bmat = b_h2, genotype = d$treat)
#> Genotype Selection.score Rank
#> 1 G1 9.855892 21
#> 2 G2 10.492384 14
#> 3 G3 9.833201 22
#> 4 G4 10.778530 8
#> 5 G5 10.733285 9
#> 6 G6 10.199180 18
#> 7 G7 9.650559 23
#> 8 G8 10.410989 15
#> 9 G9 11.283389 4
#> 10 G10 9.328099 25
#> 11 G11 10.905000 6
#> 12 G12 10.407534 16
#> 13 G13 10.531581 12
#> 14 G14 11.098901 5
#> 15 G15 9.621054 24
#> 16 G16 10.498052 13
#> 17 G17 10.668296 11
#> 18 G18 10.250447 17
#> 19 G19 11.561381 2
#> 20 G20 10.724604 10
#> 21 G21 11.427962 3
#> 22 G22 11.926170 1
#> 23 G23 9.958712 19
#> 24 G24 9.902218 20
#> 25 G25 10.844883 7