IASBLUP 用户手册
版本: 1.2.9
作者: 蔡文涛
日期: 2025年11月
目录
- 简介
- 安装
- 快速入门
- 主要功能
- 命令行参数
- 输入文件格式
- 输出文件
- 高级功能
- 使用示例
- 常见问题
- 引用
简介
IASBLUP 是一款专为动植物育种设计的综合性基因组选择软件,采用C++编写,提供高效的实现方案:
- 亲缘关系矩阵计算:支持基因组数据(SNP)或系谱信息
- REML方差组分估计:提供多种算法选择
- 育种值预测:基于混合线性模型算法
- 双变量遗传分析:遗传相关估计,多性状BLUP
- 多组分方差分解:功能区域分解
主要特点
✅ 多只G矩阵方法:3种方法可选(中心化、2p(1-p)校正、独立方差校正)
✅ 灵活的REML方法:4种算法可选(Direct、Cholesky、Eigen、Low-rank)
✅ 大规模支持:可处理数千万SNP和数万个体的数据
✅ 内存高效:流式算法用于亲缘关系矩阵计算
✅ 丰富的输出:完整的方差组分、遗传力估计及标准误
✅ 高性能:采用Intel MKL和Eigen库优化
安装
预编译二进制文件
预编译版本适用于以下系统:
- Linux (x86_64)
- macOS (Apple Silicon)
- Windows
# 解压
tar -xzvf IASBLUP-1.2.0-Linux-x86_64.tar.gz
# Linux和macOS系统需添加执行权限,windows可直接使用
chmox +x ./IASBLUP
# 运行
./IASBLUP
Linux和mac
快速入门
示例 1:从基因型数据计算亲缘关系矩阵
./IASBLUP --kinship \
--bedfile mydata \
--kin-method 3 \
--threads 8 \
--out kinship_output
示例 2:估计遗传力(REML)
./IASBLUP --reml \
--phefile phenotype.txt \
--kin-file kinship_output.kinship.txt \
--phe-pos 3 \
--covar-pos 4,5 \
--out reml_results
示例 3:预测育种值
./IASBLUP --predict \
--phefile phenotype.txt \
--kin-file kinship_output.kinship.txt \
--phe-pos 3 \
--covar-pos 4,5 \
--out ebv_results
示例 4:使用已知遗传力快速预测
./IASBLUP --predict \
--phefile phenotype.txt \
--phe-pos 3 \
--h2 0.35 \
--out quick_ebv
主要功能
亲缘关系矩阵计算
从基因组数据或系谱信息计算遗传亲缘关系矩阵。
从基因组数据计算(G矩阵)
./IASBLUP --kinship \
--bedfile genotype_prefix \
--kin-method [1|2|3] \
--kin-lambda [值] \
--threads [线程数] \
--out output_prefix
方法说明:
# 方法1:只做中心化方法(大家畜、奶牛、肉牛群体推荐、速度最快,Paul M. VanRaden et al., 2008)
--kin-method 1
# 方法2:MAF加权方法(人类遗传学常用,Yang Jian et al., 2010)
--kin-method 2 --kin-lambda 1.0
# 方法3:方差加权方法 (不符合哈代-温伯格平衡、高强度选择群体推荐, Wentao Cai et al., 2023)
--kin-method 3 --kin-lambda 1.0
参数:
--kin-lambda:缩放因子(默认:1.0)
--block-size:内存管理的SNP块大小(默认:50000)
--kin-bin:以二进制格式输出(I/O更快)
从系谱计算(A矩阵)
./IASBLUP --kinship \
--pedigree pedigree.txt \
--out output_prefix
系谱文件格式:
ID Sire Dam
Ind1 0 0
Ind2 0 0
Ind3 Ind1 Ind2
H矩阵(结合系谱和基因组信息)
./IASBLUP --kinship \
--bedfile genotype_prefix \
--pedigree pedigree.txt \
--kin-tau 1.0 \
--kin-omega 1.0 \
--out output_prefix
参数:
--kin-tau:基因组关系权重(默认:1.0)
--kin-omega:系谱关系权重(默认:1.0)
REML方差组分估计
使用限制性最大似然法(REML)估计方差组分和遗传力。
基本REML分析
./IASBLUP --reml \
--phefile phenotype.txt \
--kin-file kinship.txt \
--phe-pos 3 \
--out reml_output
包含协变量的REML
./IASBLUP --reml \
--phefile phenotype.txt \
--kin-file kinship.txt \
--phe-pos 3 \
--covar-pos 4,5 \ # 因子型协变量(如性别、场群)
--qcovar-pos 6,7 \ # 数量型协变量(如年龄、体重)
--out reml_output
REML方法选择
IASBLUP 提供4种不同的REML算法:
# 方法1:直接求逆法(小数据集,n < 2000)
./IASBLUP --reml \
--phefile phenotype.txt \
--kin-file kinship.txt \
--phe-pos 3 \
--var-method Direct \
--out results
# 方法2:Cholesky分解法(默认,推荐)
./IASBLUP --reml \
--phefile phenotype.txt \
--kin-file kinship.txt \
--phe-pos 3 \
--var-method Cholesky \
--out results
# 方法3:特征分解法(谱分析)
./IASBLUP --reml \
--phefile phenotype.txt \
--kin-file kinship.txt \
--phe-pos 3 \
--var-method Eigen \
--out results
# 方法4:低秩近似法(超大数据集,n > 10000)
./IASBLUP --reml \
--phefile phenotype.txt \
--kin-file kinship.txt \
--phe-pos 3 \
--var-method LowRank \
--lowrank-ratio 0.95 \ # 目标解释95%方差
--lowrank-maxrank 1000 \ # 最大秩
--out results
方法比较:
| 方法 |
速度 |
精度 |
适用场景 |
内存 |
| Direct |
慢 |
精确 |
n < 2,000 |
高 |
| Cholesky |
快 |
精确 |
n < 20,000 |
中 |
| Eigen |
中 |
精确 |
任意规模 |
中 |
| Low-rank |
很快 |
近似 |
n > 10,000 |
低 |
多组分REML
将遗传方差分解为多个组分:
./IASBLUP --reml \
--phefile phenotype.txt \
--phe-pos 3 \
--multi-kins G1.txt,G2.txt,G3.txt \
--component-names G1_name,G2_name,G3_name \
--out multi_component
育种值预测
为所有个体预测基因组育种值(GEBV/EBV)。
标准BLUP预测
./IASBLUP --predict \
--phefile phenotype.txt \
--kin-file kinship.txt \
--phe-pos 3 \
--covar-pos 4,5 \
--out prediction_results
输出:
- 亲缘关系矩阵中所有个体的育种值
- 固定效应估计值
- 协变量的方差分析表
使用已知遗传力快速预测
如果已知遗传力,可跳过REML估计:
./IASBLUP --predict \
--phefile phenotype.txt \
--phe-pos 3 \
--h2 0.35 \
--out quick_prediction
注意: 此模式不需要亲缘关系矩阵文件,提供简化的预测:EBV = h² × (y - Xβ)
多组分预测
./IASBLUP --predict \
--phefile phenotype.txt \
--phe-pos 3 \
--multi-kins G1.txt,G2.txt \
--component-names G1_name,G2_name \
--out multi_ebv
双变量分析
估计两个性状间的遗传相关。
基本双变量REML
./IASBLUP --two-trait \
--phefile phenotype.txt \
--kin-file kinship.txt \
--phe-pos1 3 \ # 性状1列号
--phe-pos2 4 \ # 性状2列号
--out bivar_results
性状特异性协变量的双变量分析
./IASBLUP --two-trait \
--phefile phenotype.txt \
--kin-file kinship.txt \
--phe-pos1 3 \
--phe-pos2 4 \
--covar-pos1 5,6 \ # 性状1的协变量
--covar-pos2 5,7 \ # 性状2的协变量
--qcovar-pos1 8 \ # 性状1的数量协变量
--qcovar-pos2 9 \ # 性状2的数量协变量
--out bivar_results
注意: 不同性状可以有不同的协变量集合。
双变量预测
./IASBLUP --two-trait --predict \
--phefile phenotype.txt \
--kin-file kinship.txt \
--phe-pos1 3 \
--phe-pos2 4 \
--out bivar_ebv
命令行参数
通用参数
| 参数 |
类型 |
说明 |
默认值 |
--help |
标志 |
显示帮助信息 |
- |
--out |
字符串 |
输出文件前缀 |
“Results” |
--threads |
整数 |
CPU线程数 |
1 |
亲缘关系矩阵计算
| 参数 |
类型 |
说明 |
默认值 |
--kinship |
标志 |
计算亲缘关系矩阵 |
- |
--bedfile |
字符串 |
PLINK bed文件前缀 |
- |
--pedigree |
字符串 |
系谱文件路径 |
- |
--kin-method |
整数 |
方法:1=VanRaden1, 2=VanRaden2, 3=LDAK |
1 |
--kin-lambda |
浮点数 |
缩放因子 |
1.0 |
--kin-tau |
浮点数 |
H矩阵中基因组权重 |
1.0 |
--kin-omega |
浮点数 |
H矩阵中系谱权重 |
1.0 |
--kin-bin |
标志 |
输出二进制格式 |
- |
--block-size |
整数 |
SNP块大小 |
50000 |
表型和协变量
| 参数 |
类型 |
说明 |
默认值 |
--phefile |
字符串 |
表型文件路径 |
- |
--phe-pos |
整数 |
表型列号(从1开始) |
- |
--covar-pos |
字符串 |
因子协变量列号(逗号分隔) |
- |
--qcovar-pos |
字符串 |
数量协变量列号(逗号分隔) |
- |
REML分析
| 参数 |
类型 |
说明 |
默认值 |
--reml |
标志 |
运行REML分析 |
- |
--kin-file |
字符串 |
亲缘关系矩阵文件 |
- |
--var-method |
字符串 |
REML方法:Direct, Cholesky, Eigen, LowRank |
Cholesky |
--max-iter |
整数 |
最大迭代次数 |
30 |
Low-rank REML参数
| 参数 |
类型 |
说明 |
默认值 |
--lowrank-ratio |
浮点数 |
目标方差解释度(0-1) |
0.95 |
--lowrank-maxrank |
整数 |
允许的最大秩 |
800 |
预测
| 参数 |
类型 |
说明 |
默认值 |
--predict |
标志 |
预测育种值 |
- |
--h2 |
浮点数 |
已知遗传力(0-1,跳过REML) |
- |
多组分分析
| 参数 |
类型 |
说明 |
默认值 |
--multi-kins |
字符串 |
多个亲缘关系文件(逗号分隔) |
- |
--component-names |
字符串 |
组分名称(逗号分隔) |
G1,G2,… |
双变量分析
| 参数 |
类型 |
说明 |
默认值 |
--two-trait |
标志 |
双变量分析 |
- |
--phe-pos1 |
整数 |
性状1列号 |
- |
--phe-pos2 |
整数 |
性状2列号 |
- |
--covar-pos1 |
字符串 |
性状1的因子协变量 |
- |
--covar-pos2 |
字符串 |
性状2的因子协变量 |
- |
--qcovar-pos1 |
字符串 |
性状1的数量协变量 |
- |
--qcovar-pos2 |
字符串 |
性状2的数量协变量 |
- |
输入文件格式
1. 基因型文件(PLINK二进制格式)
需要三个文件:
prefix.bed:二进制基因型数据
prefix.bim:SNP信息
prefix.fam:个体信息
BIM文件格式(制表符/空格分隔):
染色体 SNP_ID 遗传距离 物理位置 等位基因1 等位基因2
1 snp1 0 1000 A G
1 snp2 0 2000 C T
FAM文件格式(制表符/空格分隔):
家系ID 个体ID 父亲 母亲 性别 表型
Fam1 Ind1 0 0 1 -9
Fam1 Ind2 0 0 2 -9
2. 表型文件
格式: 带表头的制表符或空格分隔文本文件
ID 性别 场群 性状1 性状2 年龄
Ind1 1 1 125.3 45.2 365
Ind2 2 1 132.1 48.5 380
Ind3 1 2 128.7 NA 370
Ind4 2 2 NA 51.2 390
要求:
- 第一列:个体ID(必须与亲缘关系矩阵匹配)
- 必须有表头行
- 缺失值:NA、-9 或空白
- 列可以用制表符或空格分隔
列索引:
- 所有列从1开始编号
- 例如:如果性状1在第4列,使用
--phe-pos 4
3. 亲缘关系矩阵文件
格式: 制表符或空格分隔文本文件
ID Ind1 Ind2 Ind3 Ind4
Ind1 1.000 0.250 0.125 0.000
Ind2 0.250 1.000 0.125 0.000
Ind3 0.125 0.125 1.000 0.250
Ind4 0.000 0.000 0.250 1.000
要求:
- 第一行:带ID的表头
- 第一列:行ID
- 对称矩阵
- 对角线应接近1.0(某些方法为2.0)
4. 系谱文件
格式: 带表头的制表符或空格分隔文本文件
ID 父亲 母亲
Ind1 0 0
Ind2 0 0
Ind3 Ind1 Ind2
Ind4 Ind1 Ind2
Ind5 Ind3 Ind2
要求:
- 表头:ID、父亲、母亲
- 未知亲本:0 或 NA
- 亲本必须在后代之前出现(支持自动排序)
输出文件
亲缘关系矩阵计算输出
文件: output_prefix.kinship.txt
格式:与输入亲缘关系矩阵格式相同(见上文)
二进制输出(–kin-bin):
output_prefix.grm.bin:二进制亲缘关系值
output_prefix.grm.id:个体ID
REML分析输出
文件: output_prefix.log
==========================================
REML方差组分估计
==========================================
方差组分:
sigma_a2(遗传) = 125.45 (标准误 15.23)
sigma_e2(残差) = 278.32 (标准误 18.45)
遗传力:
h² = 0.3108 (标准误 0.0425)
对数似然值:-5234.56
固定效应:
效应 估计值 标准误 F值 P值
截距 128.45 2.34 5234.2 < 2e-16
性别_2 -5.23 1.12 21.8 3.2e-06
场群_2 3.45 1.34 6.6 0.0102
方差分析表:
来源 自由度 平方和 均方 F值 P值
性别 1 6234.5 6234.5 21.8 3.2e-06
场群 1 1890.3 1890.3 6.6 0.0102
残差 1644 470123.4 285.9
多组分REML输出
文件: output_prefix.variance_components.txt
组分 方差 标准误 占比
G1 125.45 15.23 0.3108
G2 45.32 12.34 0.1122
G3 12.45 8.90 0.0308
残差 220.12 16.78 0.5451
总计 403.34 - 1.0000
预测输出
文件: output_prefix.random.txt
ID EBV
Ind1 12.345
Ind2 -5.678
Ind3 8.901
Ind4 -2.345
Ind5 15.678
多组分预测:
output_prefix.ebv_G1.txt、output_prefix.ebv_G2.txt 等
双变量分析输出
文件: output_prefix.bivar_results.txt
==============================================
双变量REML分析结果
==============================================
性状1方差组分:
sigma_a1^2 = 125.45 (标准误 15.23)
sigma_e1^2 = 278.32 (标准误 18.45)
h1² = 0.3108 (标准误 0.0425)
性状2方差组分:
sigma_a2^2 = 89.23 (标准误 12.34)
sigma_e2^2 = 198.76 (标准误 15.67)
h2² = 0.3098 (标准误 0.0445)
遗传协方差:
cov_a = 85.34 (标准误 12.45)
遗传相关:
r_g = 0.8234 (标准误 0.0678)
表型相关:
r_p = 0.6543
高级功能
1. 并行计算
使用多个CPU核心加速计算:
./IASBLUP --kinship \
--bedfile large_dataset \
--threads 16 \
--out kinship_parallel
推荐线程数:
- 小数据集(n < 5,000):4-8 线程
- 中等数据集(n < 20,000):8-16 线程
- 大数据集(n > 20,000):16-32 线程
2. 大数据集的内存管理
对于包含数百万SNP的数据集:
./IASBLUP --kinship \
--bedfile huge_dataset \
--block-size 100000 \ # 更大的块提高性能
--threads 16 \
--out kinship_large
块大小建议:
- 默认(50,000):适用于大多数数据集
- 80,000-100,000:超大数据集(>500万SNP)
- 20,000-30,000:内存受限系统
3. 缺失数据处理
IASBLUP 自动处理缺失的表型和基因型:
缺失表型:
- 编码为
NA、na、-9或.
- 缺失表型的个体从分析中排除
- 但所有个体仍可获得育种值预测
缺失基因型:
- IASBLUP在亲缘关系矩阵计算期间用群体各位点的平均值填补(2*maf)
- 替代方案:使用专业软件(BEAGLE、Minimac4)预先填补
4. 质量控制
分析前推荐的QC步骤:
# 使用PLINK进行QC
plink --bfile raw_data \
--maf 0.05 \ # 最小等位基因频率过滤,数量超过1万建议降低至0.01
--geno 0.1 \ # SNP缺失率
--mind 0.1 \ # 个体缺失率
--hwe 1e-6 \ # Hardy-Weinberg平衡,只适用于家畜,家禽不需要改参数过滤
--make-bed \
--out qc_data
# 然后用于IASBLUP
./IASBLUP --kinship \
--bedfile qc_data \
--out kinship_qc
5. 方法比较
何时使用各种REML方法:
Direct方法:
--var-method Direct
- ✅ 精确解
- ✅ 简单,无需调参
- ❌ n > 2,000 时速度慢
- 适用于: 小数据集、基准比较
Cholesky方法(默认):
--var-method Cholesky
- ✅ 精确解
- ✅ 快速且稳定
- ✅ 适用于 n 高达 20,000
- 适用于: 大多数标准分析
Eigen方法:
--var-method Eigen
- ✅ 精确解
- ✅ 提供谱分析见解
- ✅ 适用于任意规模
- ❌ 大数据时比Cholesky慢
- 适用于: 需要特征分解时、理论研究
Low-Rank方法:
--var-method LowRank \
--lowrank-ratio 0.95 \
--lowrank-maxrank 1500
- ✅ 大规模数据集速度很快
- ✅ 低内存使用
- ❌ 近似解(但精度可控)
- 适用于: n > 10,000、探索性分析
Low-Rank调优:
--lowrank-ratio 0.70:更快,精度较低
--lowrank-ratio 0.9:平衡(推荐)
--lowrank-ratio 0.98:较慢,精度更高
--lowrank-maxrank:如果未达到目标比率则增加
使用示例
示例 1:完整的基因组选择流程
# 步骤1:质量控制(使用PLINK)
plink --bfile raw_genotypes \
--maf 0.01 --geno 0.1 --mind 0.1 \
--make-bed --out clean_genotypes
# 步骤2:计算G矩阵
./IASBLUP --kinship \
--bedfile clean_genotypes \
--kin-method 3 \
--threads 8 \
--out G_matrix
# 步骤3:REML分析
./IASBLUP --reml \
--phefile phenotypes.txt \
--kin-file G_matrix.kinship.txt \
--phe-pos 3 \
--covar-pos 4,5 \
--qcovar-pos 6 \
--out heritability_est
# 步骤4:预测育种值
./IASBLUP --predict \
--phefile phenotypes.txt \
--kin-file G_matrix.kinship.txt \
--phe-pos 3 \
--covar-pos 4,5 \
--qcovar-pos 6 \
--out gebv_predictions
示例 2:基于系谱的分析
# 步骤1:计算A矩阵
./IASBLUP --kinship \
--pedigree pedigree.txt \
--out A_matrix
# 步骤2:估计育种值
./IASBLUP --predict \
--phefile phenotypes.txt \
--kin-file A_matrix.kinship.txt \
--phe-pos 3 \
--covar-pos 4,5 \
--qcovar-pos 6 \
--out traditional_ebv
示例 3:单步法分析(H矩阵)
# 计算结合系谱和基因组的H矩阵
./IASBLUP --kinship \
--bedfile genotypes \
--pedigree pedigree.txt \
--kin-tau 1.0 \
--kin-omega 1.0 \
--out H_matrix
# 使用H矩阵预测
./IASBLUP --predict \
--phefile phenotypes.txt \
--kin-file H_matrix.kinship.txt \
--phe-pos 3 \
--covar-pos 4,5 \
--qcovar-pos 6 \
--out ssGBLUP_ebv
示例 4:多性状分析
# 分析两个性状间的遗传相关
./IASBLUP --two-trait \
--phefile phenotypes.txt \
--kin-file G_matrix.kinship.txt \
--phe-pos1 3 \ # 生长速度
--phe-pos2 4 \ # 饲料效率
--covar-pos1 5,6 \ # 性状1的性别、场群
--covar-pos2 5,6 \ # 性状2的性别、场群
--qcovar-pos1 7 \
--qcovar-pos2 8 \
--out genetic_correlation
# 预测两个性状的育种值
./IASBLUP --two-trait --predict \
--phefile phenotypes.txt \
--kin-file G_matrix.kinship.txt \
--phe-pos1 3 \
--phe-pos2 4 \
--covar-pos1 5,6 \
--covar-pos2 5,6 \
--qcovar-pos1 7 \
--qcovar-pos2 8 \
--out bivariate_ebv
示例 5:遗传方差分解
# 步骤1:计算不同的亲缘关系矩阵
# 加性亲缘关系
./IASBLUP --kinship \
--bedfile genotypes \
--kin-method 1 \
--out G_additive
# 显性亲缘关系(需要特殊计算,此处未展示)
# 上位亲缘关系(需要特殊计算,此处未展示)
# 步骤2:多组分方差估计
./IASBLUP --reml \
--phefile phenotypes.txt \
--phe-pos 3 \
--covar-pos 4,5 \
--qcovar-pos 6 \
--multi-kins G1.kinship.txt,G2.kinship.txt,G3.kinship.txt \
--component-names G1,G2,G3 \
--out variance_partition
# 步骤3:多组分BLUP预测
./IASBLUP --predict \
--phefile phenotypes.txt \
--phe-pos 3 \
--covar-pos 4,5 \
--qcovar-pos 6 \
--multi-kins G1.kinship.txt,G2.kinship.txt,G3.kinship.txt \
--component-names G1,G2,G3 \
--out component_ebv
示例 6:使用低秩近似的大数据集
# 对于超大数据集(n = 50,000)
./IASBLUP --reml \
--phefile large_phenotypes.txt \
--kin-file large_kinship.txt \
--phe-pos 3 \
--var-method LowRank \
--lowrank-ratio 0.95 \
--lowrank-maxrank 2000 \
--threads 16 \
--out large_analysis
示例 7:交叉验证
# 训练集
./IASBLUP --predict \
--phefile training_pheno.txt \
--kin-file full_kinship.txt \
--phe-pos 3 \
--covar-pos 4,5 \
--qcovar-pos 6 \
--out training_model
# 从training_model.log提取h²
# 然后预测验证集
./IASBLUP --predict \
--phefile validation_pheno.txt \
--phe-pos 3 \
--h2 0.35 \ # 来自训练集的h²
--out validation_pred
# 计算预测准确性
# 相关性(预测值, 观测值) / sqrt(h²)
常见问题
一般问题
Q1: EBV和GEBV有什么区别?
A: EBV(估计育种值)使用系谱信息(A矩阵),而GEBV(基因组估计育种值)使用SNP标记(G矩阵)。GEBV通常更准确,特别是对于没有后代的年轻个体。
Q2: IASBLUP可以用于植物育种吗?
A: 可以!IASBLUP适用于任何二倍体生物。只需按要求格式准备基因型和表型数据即可。
Q3: 需要多少内存?
A: 粗略估计:
- 亲缘关系矩阵计算:每1000个体约1 GB
- REML(Cholesky):每5000个体约8 GB
- REML(Low-rank):每10000个体约2 GB
数据准备
Q4: 如果表型文件的ID与亲缘关系矩阵不同会怎样?
A: IASBLUP会自动匹配ID,仅使用两个文件中都存在的个体。不匹配的个体会被排除并给出警告。
Q5: 可以有缺失表型吗?
A: 可以。缺失表型的个体会从REML估计中排除,但如果它们在亲缘关系矩阵中,仍可获得育种值预测。
Q6: 缺失基因型使用什么等位基因频率?
A: 缺失基因型用该SNP位点非缺失基因型计算的群体每个位点平均值进行填补,即2*maf。
REML分析
Q7: 应该使用哪种REML方法?
A:
- 默认(Cholesky):适用于大多数情况(n < 20,000)
- Low-rank:超大数据集(n > 10,000)或探索性分析
- Eigen:理论研究或需要谱分解时
- Direct:小数据集或基准测试
Q8: REML没有收敛怎么办?
A: 尝试以下解决方案:
- 增加
--max-iter(默认30,尝试100)
- 检查数据质量问题(异常值、错误)
- 尝试不同的
--var-method
Q9: 如果估计的遗传力 > 1 或 < 0 怎么办?
A: 这表明:
- 数据质量问题(检查错误)
- 模型设定错误(缺少重要协变量)
- 样本量很小
- 数值不稳定
Q10: 如何解释标准误?
A: 标准误表示估计的精度。经验法则:
- SE(h²) < 0.10:精确估计
- SE(h²) 0.10-0.20:中等精度
- SE(h²) > 0.20:低精度(需要更多数据)
亲缘关系矩阵
Q11: 亲缘关系对角线值应该是1还是2?
A: 两者都有效:
- 对角线 = 1:与自身的关系为1(VanRaden方法1)
- 对角线 ≈ 2:自身关系是平均关系的两倍
IASBLUP两者都可处理。方法影响解释但不影响相对育种值。
Q12: 可以使用其他软件的亲缘关系矩阵吗?
A: 可以,只要格式正确(带ID的对称矩阵)。兼容:
- GCTA
- HIBLUP
- LDAK
- PLINK(转换后)
Q13: G矩阵、A矩阵和H矩阵有什么区别?
A:
- G矩阵:来自SNP数据的基因组关系
- A矩阵:基于系谱的关系
- H矩阵:两者结合(单步GBLUP)
使用 --bedfile 得到G,--pedigree 得到A,或两者同时使用得到H。
预测
Q14: 为什么有些预测育种值是负数?
A: 育种值是相对于群体均值的。负值表示低于平均遗传价值。所有EBV的平均值为零。
Q15: 可以预测没有表型的个体的育种值吗?
A: 可以!只要它们在亲缘关系矩阵中,就能基于它们与有表型个体的关系获得预测。
Q16: –predict 和 –predict –h2 有什么区别?
A:
- 单独
--predict:使用REML估计的方差组分进行完整BLUP
--predict --h2 X:不进行REML的快速预测,使用给定的h²值
--h2 选项更快,但如果h²值不准确则精度较低。
多组分分析
Q17: 多组分分析可以使用多少个亲缘关系矩阵?
A: 理论上无限,但实际上:
- 2-3个组分:稳定估计
- 4-5个组分:可能需要大样本量
-
5个组分:过拟合风险
Q18: 可以用多组分分析来分析不同染色体吗?
A: 可以!可以按染色体分解方差:
./IASBLUP --reml \
--phefile pheno.txt \
--phe-pos 3 \
--multi-kins chr1.txt,chr2.txt,...,chr30.txt \
--component-names Chr1,Chr2,...,Chr30 \
--out chromosome_variance
双变量分析
Q19: 可以分析两个以上的性状吗?
A: 目前,IASBLUP仅支持双变量分析。对于>2个性状,运行成对分析或使用专门的多变量软件。
Q20: 遗传相关为0.8是什么意思?
A: 遗传相关(r_g)为0.8意味着:
- 性状共享80%的遗传基础
- 选择一个性状会改善另一个
- 强遗传关系(|r_g| > 0.5被认为是强关系)
Q21: 遗传相关 > 1,这是错误吗?
A: 理论上,r_g应在-1到1之间。稍微超出范围的值(如1.05)可能由于:
如果远超[-1, 1],检查数据质量。
性能
Q22: 如何加快分析速度?
A: 几种策略:
- 使用更多线程:
--threads 16
- REML使用Cholesky方法(默认)
- 超大数据集使用Low-rank近似
- 增加亲缘关系矩阵计算的
--block-size
- 使用二进制亲缘关系格式:
--kin-bin
Q23: 可以在集群上运行IASBLUP吗?
A: 可以!IASBLUP支持OpenMP并行化。SLURM脚本示例:
#!/bin/bash
#SBATCH --nodes=1
#SBATCH --ntasks=1
#SBATCH --cpus-per-task=16
#SBATCH --mem=64G
#SBATCH --time=24:00:00
export OMP_NUM_THREADS=16
./IASBLUP --predict \
--phefile pheno.txt \
--kin-file kinship.txt \
--phe-pos 3 \
--threads 16 \
--out results
错误和故障排除
Q24: “矩阵不正定”错误
A: 这意味着亲缘关系矩阵存在数值问题。解决方案:
- 检查亲缘关系文件中的重复ID
- 移除近交系数很高的个体
- 在对角线上添加小值:手动编辑亲缘关系文件
- 使用不同的亲缘关系计算方法
Q25: “维度不匹配”错误
A: 检查:
- 表型ID与亲缘关系ID匹配
- 任何文件中都没有重复ID
- 列索引正确(从1开始)
- 文件格式正确(制表符/空格分隔)
Q26: macOS上性能很慢
A: macOS Accelerate框架在某些操作上可能较慢。尝试:
- 改用Intel MKL编译
- 在Docker/VM中使用Linux
- 减少
--threads(在某些Mac上反而有帮助)
最佳实践
Q27: 准确的GEBV需要多少SNP?
A: 一般指南:
- 最少:10,000个SNP
- 良好:50,000个SNP
- 最佳:100,000+个SNP
- 收益递减:>500,000个SNP
更多更好,但质量(与QTL的LD)比数量更重要。
Q28: REML的最小样本量是多少?
A: 粗略指南:
- n > 500:可以估计h²
- n > 1,000:h²估计可靠
- n > 2,000:可以检测中等h²(0.3)且精度良好
- n > 5,000:可以将方差分解为多个组分
Q29: 应该包含所有SNP还是预先过滤?
A: 推荐过滤:
# 使用PLINK
plink --bfile raw \
--maf 0.01 \ # 移除稀有变异
--geno 0.1 \ # 移除缺失>10%的SNP
--mind 0.1 \ # 移除缺失>10%的个体
--hwe 1e-6 \ # 移除违反HWE的SNP
--make-bed \
--out filtered
Q30: 如何验证预测?
A: 使用交叉验证:
- 将数据分为训练集(80%)和验证集(20%)
- 在训练集上估计参数
- 预测验证集
- 计算预测准确性:cor(预测值, 观测值) / sqrt(h²)
目标准确性:良好基因组预测为0.5-0.8。
引用
如果您在研究中使用IASBLUP,请引用:
Wentao Cai*, Zhengkui Zhou, and Shuisheng Hou . Enhancing genomic prediction accuracy through
molecular phenotyping in ducks. ISAG 2025 Conference Program, 2025 (https://iasbreeding.cn)
技术支持
如有问题、错误报告或功能请求:
版本历史
版本 1.2.9(2025年11月)
- 添加多种REML算法(Direct、Cholesky、Eigen、Low-rank)
- 实现
--h2 参数用于快速预测
- 添加
--var-method 用于REML方法选择
- Low-rank REML支持可自定义的
--lowrank-ratio 和 --lowrank-maxrank
- 改进大数据集的内存效率
- 增强日志记录和错误消息
版本 1.2.1(2025年9月)
- 添加双变量REML分析
- 多组分方差分解
- HE回归作为REML的替代方法
- 双变量分析的性状特异性协变量
版本 1.0(2024年7月)
- 首次发布
- 亲缘关系矩阵计算(G、A、H矩阵)
- 单性状REML
- 育种值预测
- 基本协变量支持
许可证
IASBLUP基于MIT许可证分发。
MIT许可证
版权所有 (c) 2025 蔡文涛
特此免费授予任何获得本软件及相关文档文件("软件")副本的人不受限制地
处理软件的权利,包括但不限于使用、复制、修改、合并、发布、分发、再许可
和/或销售软件副本的权利,以及允许获得软件的人这样做的权利,但须符合以下
条件:
上述版权声明和本许可声明应包含在软件的所有副本或实质部分中。
本软件按"原样"提供,不提供任何形式的明示或暗示保证,包括但不限于适销性、
特定用途适用性和非侵权性的保证。在任何情况下,作者或版权持有人均不对因
软件或软件的使用或其他交易而产生、引起或与之相关的任何索赔、损害或其他
责任负责,无论是在合同诉讼、侵权行为还是其他方面。
手册结束
最后更新:2025年11月29日