建议先建好、再用 --xrm 复用:逐性状分析时每次都重建矩阵很慢,复用结果完全相同。
(1) 系谱矩阵 A
# --add 加性 A(--dom 得显性);--add-inv 同时输出 A 逆(给其他软件用)
./hiblup --make-xrm --pedigree demo.ped --add --add-inv --threads 32 --out demo
# -> demo.PA.bin demo.PA.id demo.PAinv.sparse.bin demo.PAinv.sparse.id
(2) 基因组矩阵 G
# --add --dom 同时得 GA、GD;--code-method 编码方法(见下表);--step 每块 SNP 数,控制内存
./hiblup --make-xrm --bfile demo --add --dom --code-method 1 --step 10000 --threads 32 --out demo
# -> demo.GA.bin demo.GA.id demo.GD.bin demo.GD.id
G 的计算公式:G = ZZ' / [tr(ZZ')/n],Z 为 n×m 的编码后基因型矩阵,不同方法只是 Z 的编码方式不同:
--code-method |
参考文献 |
备注 |
| 1(默认) |
Su et al. 2012, PLoS ONE |
加性与显性按频率中心化 |
| 2 |
Zeng et al. 2005, Genetics |
基于 QTL 模型参数化 |
| 3 |
Yang et al. 2010, Nat Genet |
与 GCTA 标准化思路一致 |
| 4 |
Vitezica et al. 2017, Genetics |
加性、显性、上位正交(NOIA) |
同一参数也影响基因组近交系数和亲缘系数(--ibc --rc --code-method)。
(3) G 的变体
| 需求 |
加参数 |
说明 |
| 多品种混合 G |
--pop-class pop.txt |
每个群体用自己的频率中心化,跨群体块按迹的几何均值标准化 |
| 加权 G |
--snp-weight wt.txt |
权重须为正数 |
| 子集 SNP 的 G |
--extract sig.snp.txt |
如只用显著 SNP |
| 剔除部分 SNP |
--exclude sig.snp.txt |
常与上一行配对计算 PVE |
(4) 一步法 H 矩阵:同时给系谱和基因型即自动构建。
./hiblup --make-xrm --pedigree demo.ped --bfile demo \
--alpha 0.05 --add --dom --out demo
# -> demo.HA.* demo.HD.*;用 --add-inv / --dom-inv 得 H 逆(*.sparse.*)
# 用自己算好的 GRM(须为二进制)构建 H
./hiblup --make-xrm --pedigree demo.ped --xrm yourGRM --alpha 0.05 --add --out demo
- 构建过程:先把 G 线性校正到与 A22 尺度一致(使 G 对角线均值、非对角线均值分别等于 A22 的),得到 Gadj;再 Gw = (1−α)·Gadj + α·A22,然后按 Aguilar 2010 / Christensen 2010 的公式组成 H。
--alpha 越大,Gw 中系谱成分越多,可改善 G 的奇异性;示例使用 0.05。
- H 的构建同样支持
--snp-weight、--pop-class。
(5) 环境随机效应的矩阵
./hiblup --make-xrm --pheno demo.phe --rand 6,7 --out demo
# -> demo.loc.sparse.* demo.dam.sparse.*
用途:把环境效应作为 --xrm 输入多性状模型,从而估计环境效应在性状间的相关(默认只估遗传和残差协方差)。
(6) 格式转换与跨软件
# 二进制 -> 文本方阵(demo.txt + demo.id.txt);加 --triangle 输出下三角 i j k
./hiblup --trans-xrm --xrm demo.GA --out demo
# 文本 -> 二进制(ijk 格式需加 --triangle)
./hiblup --trans-xrm --xrm-txt demo.txt --xrm-id demo.id.txt --out demo
# GCTA/LDAK 的 GRM 转文本
./hiblup --trans-xrm --xrm gcta.grm --out hiblup
# HIBLUP 的稠密 GRM 给 GCTA 用
awk '{print $1,$1}' demo.GA.id > gcta.grm.id && cp demo.GA.bin gcta.grm.bin
- 文件名带
.sparse. 的矩阵不能直接给 GCTA/LDAK。
- 求逆报 “matrix is not invertible”:矩阵非正定,加
--ridge-value 小值。
(7) 基因型转码
./hiblup --trans-geno --bfile demo --add --out x # x.geno.A.txt(0/1/2)
./hiblup --trans-geno --bfile demo --dom --out x # x.geno.D.txt(杂合=1,纯合=0)
./hiblup --trans-geno --bfile demo --blupf90 --add --out x # BLUPF90 格式(ID + 连续基因型字符串)