G矩陣計(jì)算時(shí), 有不同的編碼形式, 我們看一下計(jì)算的區(qū)別.第一種方法按照012, 即AA是0, 表示major基因, 1 表示雜合, 2表示aa(minor).第二種方法按照-1, 0, 1, 即-1是AA, 表示major基因型, 0表示雜合, 1表示aa(minor). 下面我們模擬一下數(shù)據(jù), 看一下兩者計(jì)算的區(qū)別. 數(shù)據(jù)dat = data.frame(snpid = paste0("snp",1:7),type = c("GG","GG","AG","GG","AG","GG","AA")) dat
上面是7個(gè)SNP的基因型, 可以看出GG是major, AA為minor.1, 手動(dòng)計(jì)算
計(jì)算方法, 所有G的個(gè)數(shù), 除以總配子的個(gè)數(shù), 即為G的基因頻率 p_g = (4*2+2*1)/(7*2);p_g 0.714285714285714 p_a = (2*1+1*2)/(7*2);p_a 0.285714285714286 2, 轉(zhuǎn)化為012如何計(jì)算基因頻率(major為0, minor為2)dat$type012 = 0
dat[dat$type=="GG",]$type012 =0
dat[dat$type %in% c("AG","GA"),]$type012 =1
dat[dat$type=="AA",]$type012 =2 dat
計(jì)算方法: 將type012所有列之和相加, 為minor的基因個(gè)數(shù), 除以2*n, 即為minor的基因頻率 sum(dat$type012)/(length(dat$type012)*2) 0.285714285714286 3, 轉(zhuǎn)化為-1,0,1計(jì)算方法(-1為major, 0為雜合,1為minor)dat$type_101 = dat$type012 -1 dat
計(jì)算方法: 分子為: 列之和 + 行數(shù) 分母為: 行數(shù) * 2 (sum(dat$type_101) + length(dat$type_101))/(2*length(dat$type_101)) 0.285714285714286 結(jié)論: 1, 如果轉(zhuǎn)化為0, 1, 2, 那么他們之和即為minor的個(gè)數(shù), 除以2n即為minor的頻率. 因?yàn)閙ajor的值為0, 1為雜合, 同時(shí)表示有一個(gè)minor, 2為純合, 表示2個(gè)minor, 計(jì)算比較方便. 2, 如果基因型轉(zhuǎn)化為-1, 0, 1的話(huà), 那么將其進(jìn)行求和, -1和1抵消. 推斷過(guò)程如下: 假設(shè)A的頻率為(1-q), a的頻率為q, n為個(gè)數(shù). AA的個(gè)數(shù)為x Aa的個(gè)數(shù)為y aa的個(gè)數(shù)為z x + y + z =n q = (2*z + y)/(2*n) -1*x +0*y + 1*z = z-x 2*z +y = 2*z + (n - x -z) = n + z - x #分子 因此: q = (n + z -x)/(2*n) 這種方法, 計(jì)算量比較小, 因?yàn)?1 和1 進(jìn)行了抵消. 這種方法不太直觀, 需要用筆畫(huà)一下即可理解. 所以, 我們計(jì)算G矩陣時(shí), 將SNP分型轉(zhuǎn)化為-1, 0, 1的形式. 如何利用系譜計(jì)算近交系數(shù)和親緣關(guān)系系數(shù) |
|
來(lái)自: 育種數(shù)據(jù)分析 > 《待分類(lèi)》