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
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
<- gen.advance(phen_mat = pmat[1,1], gen_mat = gmat[1,1],
GAYweight_mat = w[1,2])
print(GAY)
#> [,1]
#> [1,] 1.76942
We use this GAY value for the construction, ranking of the other selection indices and stored them in a list “si”.
<- list()
si1]]<- sel.index(ID = 1, phen_mat = pmat[1,1], gen_mat = gmat[1,1],
si[[weight_mat = w[1,2], GAY = GAY)
2]]<- sel.index(ID = 2, phen_mat = pmat[2,2], gen_mat = gmat[2,2],
si[[weight_mat = w[2,2], GAY = GAY)
3]]<- sel.index(ID = 3, phen_mat = pmat[3,3], gen_mat = gmat[3,3],
si[[weight_mat = w[3,2], GAY = GAY)
4]]<- sel.index(ID = 4, phen_mat = pmat[4,4], gen_mat = gmat[4,4],
si[[weight_mat = w[4,2], GAY = GAY)
5]]<- sel.index(ID = 5, phen_mat = pmat[5,5], gen_mat = gmat[5,5],
si[[weight_mat = w[5,2], GAY = GAY)
6]]<- sel.index(ID = 6, phen_mat = pmat[6,6], gen_mat = gmat[6,6],
si[[weight_mat = w[6,2], GAY = GAY)
7]]<- sel.index(ID = 7, phen_mat = pmat[7,7], gen_mat = gmat[7,7],
si[[weight_mat = w[7,2], GAY = GAY)
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.
<- si[[2]][[2]]
bsel.score.rank(data = d[,3], bmat = b, genotype = d$treat)
#> Genotype Selection.score Rank
#> 1 G1 2.225010 19
#> 2 G2 2.719571 13
#> 3 G3 1.850952 23
#> 4 G4 2.849128 9
#> 5 G5 2.851852 8
#> 6 G6 2.495223 17
#> 7 G7 1.992814 22
#> 8 G8 2.247590 18
#> 9 G9 3.488099 1
#> 10 G10 1.565031 25
#> 11 G11 2.876627 7
#> 12 G12 2.686027 14
#> 13 G13 2.755460 11
#> 14 G14 3.319157 2
#> 15 G15 1.744992 24
#> 16 G16 2.680592 15
#> 17 G17 2.836496 10
#> 18 G18 2.542172 16
#> 19 G19 3.168593 4
#> 20 G20 3.108864 5
#> 21 G21 3.178894 3
#> 22 G22 3.105218 6
#> 23 G23 2.142524 21
#> 24 G24 2.223275 20
#> 25 G25 2.733247 12
comb.indices(ncomb = 1, pmat = pmat, gmat = gmat, wmat = w[,-1], wcol = 1, GAY = GAY)
#> ID b GA PRE Rank
#> 1 1 0.5854 1.7694 100.0000 1
#> 2 2 0.4066 1.6431 92.8627 2
#> 3 3 0.5824 0.5731 32.3887 5
#> 4 4 0.5199 0.7336 41.4574 4
#> 5 5 0.2253 0.9599 54.2504 3
#> 6 6 0.2081 0.1241 7.0164 7
#> 7 7 0.4558 0.1413 7.9882 6
rcomb.indices(ncomb = 1, i = 1, pmat = pmat, gmat = gmat, wmat = w[,-1], wcol = 1, GAY = GAY)
#> ID b GA PRE Rank
#> 1 2 0.4066 1.6431 92.8627 1
#> 2 3 0.5824 0.5731 32.3887 4
#> 3 4 0.5199 0.7336 41.4574 3
#> 4 5 0.2253 0.9599 54.2504 2
#> 5 6 0.2081 0.1241 7.0164 6
#> 6 7 0.4558 0.1413 7.9882 5
Tips to use this package effectively
+ Must use new functions
- comb.indices
- without removing any characters or trait
- rcomb.indices
- by removing desired character
+ Use for loop to make the selection indices construction
+ Do not forget the Index of the trait/character when you calculating the selction score and ranking of genotypes.