乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      如何利用系譜計算近交系數(shù)和親緣關(guān)系系數(shù)

       育種數(shù)據(jù)分析 2021-11-18

      《線性模型在動物育種值預(yù)測中的應(yīng)用》 第二章:親屬間的遺傳協(xié)方差,P19

      1, 概念定義

      近交系數(shù): 近交系數(shù)(inbreeding coefficient)是指根據(jù)近親交配的世代數(shù),將基因的純化程度用百分?jǐn)?shù)來表示即為近交系數(shù),也指個體由于近交而造成異質(zhì)基因減少時,同質(zhì)基因或純合子所占的百分比也叫近交系數(shù),個體中兩個親本的共祖系數(shù)。

      親緣系數(shù): 是指兩個個體間加性基因效應(yīng)間的相關(guān).

      兩者的區(qū)別和聯(lián)系:

      • 近交系數(shù)是個體的值

      • 親緣系數(shù)是兩個個體之間的值

      兩者的計算方法:

      • 可以使用通徑分析的方法進(jìn)行計算

      • 也可以采用由系譜構(gòu)建親緣關(guān)系A(chǔ)矩陣的形式進(jìn)行計算, 這種方法在數(shù)據(jù)比較大時更為方便

      2, 系譜數(shù)據(jù)

      這里我們模擬了四個個體的系譜關(guān)系, 想要計算一下每個個體的近交系數(shù), 以及個體間的親緣系數(shù), 使用R語言實現(xiàn).

      ped <- data.frame(ID=c(3,4,5,6),Sire=c(1,1,4,5),Dam=c(2,NA,3,2))
      ped
      IDSireDam
      312
      41NA
      543
      652

      首先, 我們看到個體1和2的親本未知, 所以我們先將系譜補充完整, 使用nadiv的prepPed函數(shù).

      library(nadiv) pped = prepPed(ped) pped

      完整的系譜如下, NA表示親本未知.

      3, 計算親緣關(guān)系A(chǔ)矩陣

      as.matrix(makeA(pped))

      這里我們使用makeA函數(shù), A矩陣如下:


      123456
      11.000.0000.50000.50000.50000.2500
      20.001.0000.50000.00000.25000.6250
      30.500.5001.00000.25000.62500.5625
      40.500.0000.25001.00000.62500.3125
      50.500.2500.62500.62501.12500.6875
      60.250.6250.56250.31250.68751.1250

      4, 計算近交系數(shù)

      用親緣關(guān)系矩陣A的對角線-1,即是個體的近交系數(shù)
      diag(A)-1

      可以看出, 1,2,4,3的近交系數(shù)為0. 個體5和6的近交系數(shù)為0.125.

      5, 計算親緣系數(shù)

      根據(jù)計算的親緣關(guān)系A(chǔ)矩陣,這個矩陣時個體間的方差協(xié)方差矩陣, 對角線為每個個體的方差, 非對角線為個體間的協(xié)方差.  公式為:

      rij = cov(i,j)/sqrt(var(i)*var(j))

      因此如果我們要計算個體1和2的親緣系數(shù), 可以用A12/(sqrt(A11*A22)) = 0/sqrt(1*1) = 0, 因此個體1和2 的親緣系數(shù)為0.

      因為共有6個個體, 1和2的親緣系數(shù) = 2和1的親緣系數(shù), 因此他們之間的親緣系數(shù)一共有6*5/2 = 15個. 這里我們都計算, 共有36行.

      第一種方案:

      n = dim(A)[1] #1
      id = row.names(A) #2
      mat = matrix(0,n,n) #3
      for(i in 1:n){ #4
        for(j in i:n){
          mat[i,j] = A[i,j]/(sqrt(A[i,i]*A[j,j]))
          mat[j,i] = mat[i,j]
        }
      }
      mat #5
      re = data.frame(ID1= rep(id,n),ID2=rep(id,each = n),y = round(as.vector(mat))) #6
      re#7

      這里我們的編程思路如下:

      #1 計算出矩陣的行, 確定循環(huán)數(shù)

      #2 計算出個體的ID名在矩陣中的順序, 因為有些ID可能是字符或者沒有順序, 主要用于后面的個體編號的確定

      #3 為了計算更快, 我們生成一個6*6的矩陣

      #4 寫一個循環(huán), 因為矩陣時對稱的, 所以我再第二個for循環(huán)時從i開始, 而不是從1開始, 后面mat[j,i] = mat[i,j]再賦值, 這樣更快.

      #5 生成的mat矩陣查看

      #6 根據(jù)ID生成兩列, 表示他們之間的親緣系數(shù), 這個和矩陣變?yōu)橄蛄亢笠灰粚?yīng).

      #7 查看結(jié)果

      結(jié)果如下:

      ID1ID2r
      111.0000
      120.0000
      130.5000
      140.5000
      150.4714
      160.2357
      210.0000
      221.0000
      230.5000
      240.0000
      250.2357
      260.5893
      310.5000
      320.5000
      331.0000
      340.2500
      350.5893
      360.5303
      410.5000
      420.0000
      430.2500
      441.0000
      450.5893
      460.2946
      510.4714
      520.2357
      530.5893
      540.5893
      551.0000
      560.6111
      610.2357
      620.5893
      630.5303
      640.2946
      650.6111
      661.0000

      第二種方案:

      這里也可以用我寫的learnasreml包的: mat_2_coefficient函數(shù), 更方便.

      library(learnasreml)
      re2 = mat_2_coefficient(mat)
      head(re2)

      結(jié)果和上面是一致的.

      所有代碼匯總?cè)缦?

      ped <- data.frame(ID=c(3,4,5,6),Sire=c(1,1,4,5),Dam=c(2,NA,3,2))
      ped

      library(nadiv)
      pped = prepPed(ped)
      pped

      A = as.matrix(makeA(pped))
      round((diag(A) -1),3)
      A
      n = dim(A)[1]
      id = row.names(A)
      mat = matrix(0,n,n)
      for(i in 1:n){
        for(j in i:n){
          mat[i,j] = A[i,j]/(sqrt(A[i,i]*A[j,j]))
          mat[j,i] = mat[i,j]
        }
      }
      mat
      re = data.frame(row = rep(id,n),col=rep(id,each = n),y = round(as.vector(mat)))
      re

      library(learnasreml)
      re2 = mat_2_coefficient(mat)
      head(re2)

        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多