使用软件构建A阵和G阵

使用现成的软件构建A阵和G阵。

构建A阵

我一般使用 R 中的 nadiv 包构建 A阵,A逆阵,以及计算近交系数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
## 使用了nadiv包
## 唯一一个参数是系谱文件,无标题

args<-commandArgs(T)

library(data.table)
ped <- read.table(args[1],header = F)
# ped <- read.table("pedigree.txt",header = F)

## 处理系谱

new_ped <- ped[,1:3] #不要第四列

library(nadiv)
pped = prepPed(new_ped)#给founders也增加一行系谱,然后排序系谱

###构建A阵
A = as.matrix(makeA(pped))

#write.table(A,"A.txt", quote=F, row.names=F) # 保存A阵文件

###构建A逆
A_inv= makeAinv(pped)$Ainv#可直接求A逆
A_inv = as.matrix(A_inv)

colnames(A_inv) = rownames(A_inv)

#write.table(A_inv,"A_inv.txt", quote=F, row.names=F, col.names=F) # 保存A阵文件


### 求近交系数
inbreeding = makeAinv(pped)$f

out = cbind(pped[,1], inbreeding)

colnames(out) = c("id", "inbreeding")

write.table(out,"inbreeding.txt", quote=F, row.names=F, col.names=T)

构建 G 阵

标准化的 G阵可以使用 GCTA 计算得到;

中心化的 G阵可以使用 GCTA 或 PLINK 软件计算得到;

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2019-2024 Vincere Zhou
  • 访问人数: | 浏览次数:

请我喝杯茶吧~

支付宝
微信