大数跨境
0
0

育种 | 如何使用R语言计算配合力

育种 | 如何使用R语言计算配合力 育种数据分析之放飞自我
2021-03-04
2
导读:配合力概念配合力是自交系的一种内在属性,受多重基因效应支配。

配合力概念

配合力是自交系的一种内在属性,受多重基因效应支配。只有配合力高的自交系才能产生强优势的杂交种,所以可把配合力理解为自交系组配杂交种的一种潜在能力。它不是由自交系自身的性状表现出来的,而是通过由自交系组配的杂交种的产量(或者其它数量性状)的平均值估算出来。1

一般配合力

一般配合力(general combining ability, GCA)是指一个被测自交系和其他自交系组配的一系列杂交组合的产量(或其他数量性状)的平均表现。一般配合力是由基因的加性效应决定的,是可以遗传的。

划重点:

  • 加性效应,可遗传

  • 是对自交系的评价


特殊配合力

特殊配合力(specific combining ability, SCA)是指两个特定亲本系所组配的杂交种的产量水平。特殊配合力由基因的非加性效应决定,即受基因间的显性,超显性和上位性效应所控制,只能在特定的组合F1中由双亲的等位基因间或非等位基因间的互作反映出来,不能遗传。特殊配合力是在特定组合中F1的产量数值与双亲的一般配合力平均数值的偏差。

划重点:

  • 非加性效应,不可遗传

  • 杂种优势,用作类群划分

  • 反映的是自交系间的值,不能说某个自交系的特殊配合力,而应该说自交系A和自交系B的特殊配合力


配合力计算公式

一般配合力计算公式

一般配合力一般用gca,GCA或者gi表示。其计算方法是以该亲本半同胞家系的均值距所有组合总均值的离差估算。2


划重点:

  • 一般配合力是某个自交系的值

  • 它是由杂交种F1的表型计算的,与自交系的表型无关

特殊配合力计算公式

R语言演示

首先,根据《作物育种学》的数据,重演如下:

ID = c("K","L","M","N","P")
A = c(10.3,10.8,9.5,10.9,9.3)
B = c(9.9,10.7,9,8.8,9.7)
C = c(10.4,10.7,8.8,10.3,8.7)
D = c(9.4,10.9,9.3,9.6,8.3)
E = c(9.4,9.6,9.6,10.1,9.5)
F = c(9.7,11.5,9.6,10.3,8.8)
G = c(9.8,8.5,9.3,9.6,8.0)
dat = data.frame(ID,A,B,C,D,E,F,G)
dat
##   ID    A    B    C    D    E    F   G
## 1 K 10.3 9.9 10.4 9.4 9.4 9.7 9.8
## 2 L 10.8 10.7 10.7 10.9 9.6 11.5 8.5
## 3 M 9.5 9.0 8.8 9.3 9.6 9.6 9.3
## 4 N 10.9 8.8 10.3 9.6 10.1 10.3 9.6
## 5 P 9.3 9.7 8.7 8.3 9.5 8.8 8.0

上面的数据是NCII试验,将结果整理为二向表,可以通过这个表,计算每个自交系的一般配合力和自交系间的特殊配合力。

计算一般配合力

根据计算一般配合力公式,首先计算整体均值:

library(tidyverse)
mean_mu = unlist(dat[,-1]) %>% mean
mean_mu
## [1] 9.674286

然后计算每个自交系所有半同胞后代的均值:

先计算klmnp的均值:

klmnp = apply(dat[,-1],1,mean)
klmnp
## [1]  9.842857 10.385714  9.300000  9.942857  8.900000

再计算klmnp的一般配合力:

klmnp_gca = klmnp - mean_mu
klmnp_gca
## [1]  0.1685714  0.7114286 -0.3742857  0.2685714 -0.7742857

计算abcdefg的一般配合力

abcdefg = apply(dat[,-1],2,mean)
abcdefg_gca = abcdefg - mean_mu
abcdefg_gca
##           A           B           C           D           E           F 
## 0.48571429 -0.05428571 0.10571429 -0.17428571 -0.03428571 0.30571429
## G
## -0.63428571

计算特殊配合力

根据特殊配合力公式,计算方法如下,计算g1的一般配合力矩阵

g1 = rep(klmnp_gca,7) %>% matrix(.,5,) %>% as.data.frame()
names(g1) = LETTERS[1:7]
rownames(g1) = c("K","L","M","N","P")
g1
##            A          B          C          D          E          F          G
## K 0.1685714 0.1685714 0.1685714 0.1685714 0.1685714 0.1685714 0.1685714
## L 0.7114286 0.7114286 0.7114286 0.7114286 0.7114286 0.7114286 0.7114286
## M -0.3742857 -0.3742857 -0.3742857 -0.3742857 -0.3742857 -0.3742857 -0.3742857
## N 0.2685714 0.2685714 0.2685714 0.2685714 0.2685714 0.2685714 0.2685714
## P -0.7742857 -0.7742857 -0.7742857 -0.7742857 -0.7742857 -0.7742857 -0.7742857

计算g2的一般配合力矩阵

g2 = rep(abcdefg_gca,each=5) %>% matrix(.,5,) %>% as.data.frame()
names(g2) = LETTERS[1:7]
rownames(g2) = c("K","L","M","N","P")
g2
##           A           B         C          D           E         F          G
## K 0.4857143 -0.05428571 0.1057143 -0.1742857 -0.03428571 0.3057143 -0.6342857
## L 0.4857143 -0.05428571 0.1057143 -0.1742857 -0.03428571 0.3057143 -0.6342857
## M 0.4857143 -0.05428571 0.1057143 -0.1742857 -0.03428571 0.3057143 -0.6342857
## N 0.4857143 -0.05428571 0.1057143 -0.1742857 -0.03428571 0.3057143 -0.6342857
## P 0.4857143 -0.05428571 0.1057143 -0.1742857 -0.03428571 0.3057143 -0.6342857

将二向表处理一下

dd = dat[,-1]
rownames(dd) = dat$ID
dd
##      A    B    C    D    E    F   G
## K 10.3 9.9 10.4 9.4 9.4 9.7 9.8
## L 10.8 10.7 10.7 10.9 9.6 11.5 8.5
## M 9.5 9.0 8.8 9.3 9.6 9.6 9.3
## N 10.9 8.8 10.3 9.6 10.1 10.3 9.6
## P 9.3 9.7 8.7 8.3 9.5 8.8 8.0

计算均值的矩阵

mu_mean = dd
mu_mean[mu_mean>0] = mean_mu
mu_mean
##          A        B        C        D        E        F        G
## K 9.674286 9.674286 9.674286 9.674286 9.674286 9.674286 9.674286
## L 9.674286 9.674286 9.674286 9.674286 9.674286 9.674286 9.674286
## M 9.674286 9.674286 9.674286 9.674286 9.674286 9.674286 9.674286
## N 9.674286 9.674286 9.674286 9.674286 9.674286 9.674286 9.674286
## P 9.674286 9.674286 9.674286 9.674286 9.674286 9.674286 9.674286

下面计算特殊配合力矩阵:

sca = dd - mu_mean - g1 - g2
sca
##             A          B          C          D          E            F
## K -0.02857143 0.1114286 0.4514286 -0.2685714 -0.4085714 -0.448571429
## L -0.07142857 0.3685714 0.2085714 0.6885714 -0.7514286 0.808571429
## M -0.28571429 -0.2457143 -0.6057143 0.1742857 0.3342857 -0.005714286
## N 0.47142857 -1.0885714 0.2514286 -0.1685714 0.1914286 0.051428571
## P -0.08571429 0.8542857 -0.3057143 -0.4257143 0.6342857 -0.405714286
## G
## K 0.5914286
## L -1.2514286
## M 0.6342857
## N 0.2914286
## P -0.2657143

最后比较一下结果

当然,肯定,是完全一样的。

OK,这就是首选计算配合力的R代码演示,感觉不错,帮忙扩散一下吧!


  1. 《作物育种学》 孙其信主编 高等教育出版社↩︎

  2. 《植物数量遗传学》,孔繁玲主编,中国农业大学出版社↩︎


【声明】内容源于网络
0
0
育种数据分析之放飞自我
本公众号主要介绍动植物育种数据分析中的相关问题, 算法及程序代码.
内容 912
粉丝 0
育种数据分析之放飞自我 本公众号主要介绍动植物育种数据分析中的相关问题, 算法及程序代码.
总阅读162
粉丝0
内容912