智慧动物育种选配平台 IASmating 是一个面向动物育种与选配场景的系谱分析与选配工具,支持:
系谱检查(pedigree check)
个体近交系数计算
公母组合未来后代近交系数预测
基于共同祖先约束与近交阈值的自动选配
全部候选组合报告与 summary 汇总输出
IASmating 主要包含 3 类核心模式:
用于检查系谱文件是否存在以下问题:
重复个体 ID
父亲或母亲等于个体自身
父母不在系谱中
拓扑异常
潜在循环或非法依赖结构
命令模式:
./IASmating --check-pedigree --pedigree ped.txt --output out
计算系谱中已存在个体的近交系数。
./IASmating --inbreeding --pedigree ped.txt --output out
输出文件:
out_individual_inbreeding.txt
根据给定的公畜、母畜列表,计算所有候选组合未来后代的预测近交系数。
./IASmating --inbreeding --offspring --pedigree ped.txt --sires sire.id --dams dam.id --output out
输出文件:
out_offspring_inbreeding.txt
在给定公畜、母畜、配比和约束条件下,生成自动选配结果。
筛选顺序为:
按公畜顺序逐个处理
按策略确定母畜扫描顺序
先检查前 N 代是否存在共同祖先
若无共同祖先,再检查该组合未来后代近交系数是否小于等于阈值
满足条件则配对成功
./IASmating –mating –sires sire.id –dams dam.id –pedigree ped.txt –output out –ratio 1:4 –generations 2 –max_inbreeding 0.0625
下载后解压:
tar -xzvf IASmating.v1.1.0.tar.gz
Linux / macOS 下建议赋予执行权限:
chmod +x IASmating
Windows下直接使用:
格式:
id sire dam
示例:
A001 0 0
A002 0 0
A003 A001 A002
A004 A001 A002
A005 A003 A004
说明:
第 1 列:个体 ID
第 2 列:父亲 ID
第 3 列:母亲 ID
缺失父母可用 0、NA、. 等表示
支持空格或制表符分隔
每行一个公畜 ID,例如:
S001
S002
S003
每行一个母畜 ID,例如:
D001
D002
D003
D004
参数
说明
–check-pedigree
仅检查系谱文件
–inbreeding
计算近交系数
–offspring
在 –inbreeding 模式下,计算公母组合未来后代近交系数
–mating
进行自动选配
注意:
–mating 与 –inbreeding 互斥
–offspring 只能与 –inbreeding 一起使用
普通 –inbreeding 模式下不应提供 –sires 和 –dams
–inbreeding –offspring 模式下必须提供 –sires 和 –dams
参数
说明
–pedigree FILE
系谱文件
–sires FILE
公畜文件
–dams FILE
母畜文件
–output PREFIX
输出前缀
参数
说明
–ratio 1:N
公母配比,默认 1:4
–generations INT
检查前几代共同祖先,默认 2
–max_inbreeding FLOAT
最大允许后代近交系数,默认 0.0625
–strategy STR
选配策略:best_best、best_worst、random
–seed INT
随机种子,仅 –strategy random 时使用
参数
说明
–build-ainv
同时构建 A 逆矩阵
–all-pairs-report
输出所有候选组合报告
–summary
输出汇总统计文件
sire:按输入顺序正向
dam:按输入顺序正向
适合“优秀配优秀”。
sire:按输入顺序正向
dam:按输入顺序反向
适合“优秀配较差个体”。
sire:按输入顺序正向
dam:随机顺序
若同时提供 –seed,随机结果可复现。
./IASmating --mating --sires sire.id --dams dam.id --pedigree ped.txt --output out --strategy random --seed 20260409
./IASmating --check-pedigree --pedigree ped.txt --output out
输出:
out_check_pedigree_report.txt
out_check_pedigree_issues.txt
./IASmating --inbreeding --pedigree ped.txt --output out
输出:
out_individual_inbreeding.txt
如果还想构建 A 逆:
./IASmating --inbreeding --pedigree ped.txt --output out --build-ainv
输出增加:
out.inv.bin
out.inv.id
./IASmating --inbreeding --offspring --pedigree ped.txt --sires sire.id --dams dam.id --output out
输出:
out_offspring_inbreeding.txt
默认策略:
./IASmating --mating --sires sire.id --dams dam.id --pedigree ped.txt --output out
优秀配差的:
./IASmating --mating --sires sire.id --dams dam.id --pedigree ped.txt --output out --strategy best_worst
随机:
./IASmating --mating --sires sire.id --dams dam.id --pedigree ped.txt --output out --strategy random --seed 20260409
输出所有候选组合报告和 summary:
./IASmating --mating --sires sire.id --dams dam.id --pedigree ped.txt --output out --all-pairs-report --summary
包含:
TotalRows:总记录数
系谱文件中实际读取到的有效记录总数,通常对应系谱表中的总行数。
UniqueAnimals:唯一个体数
去重后系谱中出现的个体总数,用于反映实际涉及的独立个体规模。
FounderCount:始祖个体数
在系谱中父母信息都缺失或未知的个体数量,这些个体通常作为系谱追溯的起点。
NonFounderCount:非始祖个体数
在系谱中至少有一个已知父母信息的个体数量。
MissingSireCount:缺失父本数
父本信息缺失、未知或记为 0/NA 的记录数。
MissingDamCount:缺失母本数
母本信息缺失、未知或记为 0/NA 的记录数。
SelfSireCount:父本等于自身数
个体的父本 ID 与个体自身 ID 相同的异常记录数,通常属于明显数据错误。
SelfDamCount:母本等于自身数
个体的母本 ID 与个体自身 ID 相同的异常记录数,也通常属于明显数据错误。
DuplicateIDCount:重复 ID 数
系谱文件中同一个个体 ID 重复出现的次数,提示系谱中可能存在重复记录或覆盖风险。
ParentNotInPedigreeCount:父母缺失于系谱数
个体的父本或母本 ID 在系谱中被引用,但对应父母个体本身并未出现在系谱文件中的记录数。
HasCycle:是否有环
表示系谱中是否存在循环依赖,例如个体经过若干层父母关系又指回自身;正常系谱应为“否”。
TopoOrderOK:拓扑是否正常
表示系谱能否按“父母在前、后代在后”的正常拓扑顺序排列;若不正常,通常意味着存在环或异常依赖关系。
IssueCount:问题数
系谱检查过程中识别出的全部问题条目总数,是衡量系谱质量问题多少的总体指标。
系谱中已有个体的近交系数。
字段:
ID
Inbreeding
公母所有组合未来后代的预测近交系数。
字段:
SireID
DamID
OffspringInbreeding
最终选配结果表。
最终被选中的组合对应后代近交系数。
字段:
SireID
DamID
ProgenyInbreeding
全部候选组合报告。
字段:
SireID:公畜号 当前候选配对中的父本个体 ID,也就是公畜编号。
DamID:母畜号 当前候选配对中的母本个体 ID,也就是母畜编号。
HasCommonAncestorWithinNGen:有无共祖 表示这对公母在设定的祖先追溯代数范围内,是否存在共同祖先。 若为 YES,说明这对公母在指定代内存在共祖关系;若为 NO,说明在该代数范围内未发现共同祖先。
OffspringInbreeding:后代近交系数 表示该公母组合如果现在配对,其未来后代的预测近交系数。 这个值越大,说明未来子代近交风险越高。
PassAncestorFilter:是否通过共祖筛选 表示该组合是否通过“共同祖先约束”这一关。 一般来说: YES:前 N 代内无共同祖先,满足要求
NO:前 N 代内存在共同祖先,不满足要求
PassInbreedingFilter:是否通过近交筛选 表示该组合是否通过“后代近交阈值”筛选。 一般来说: YES:后代预测近交系数小于等于设定阈值
NO:后代预测近交系数超过阈值
Pass:是否最终通过筛选 表示该公母组合是否同时通过了共祖筛选和近交筛选。 只有当两个条件都满足时,才会显示为 YES。
Reason:结果原因 表示该组合最终结果的原因说明。常见取值包括: PASS:通过全部筛选,可用于选配
COMMON_ANCESTOR_WITHIN_N_GEN:因前 N 代内存在共同祖先而被过滤
OFFSPRING_INBREEDING_EXCEEDS_THRESHOLD:因后代预测近交系数超过阈值而被过滤
汇总统计文件。
通常包括:
TotalPedigreeAnimals:系谱个体数(系谱总个体数)
TotalSires:公畜数(公畜总数)
TotalDams:母畜数(母畜总数)
TotalCandidatePairs:候选组合数(候选配对组合总数)
FilteredByCommonAncestor:共祖过滤数(因共同祖先约束被过滤的组合数)
FilteredByOffspringInbreeding:近交过滤数(因后代近交超阈值被过滤的组合数)
SelectedPairs:成功配对数(成功选中的配对组合数)
MatchedSires:成功公畜数(成功参与配对的公畜数)
MatchedDams:成功母畜数(成功参与配对的母畜数)
UnmatchedSires:未配公畜数(未成功配对的公畜数)
UnusedDams:未用母畜数(未被使用的母畜数)
MeanIndividualInbreeding:平均个体近交(个体平均近交系数)
MaxIndividualInbreeding:最大个体近交(个体最大近交系数)
MeanOffspringInbreedingAllPairs:平均后代近交(所有候选组合后代平均近交系数)
MinOffspringInbreedingAllPairs:最小后代近交(所有候选组合后代最小近交系数)
MaxOffspringInbreedingAllPairs:最大后代近交(所有候选组合后代最大近交系数)
表示个体自身的近交程度,数值越大,近交风险越高。
表示某个 sire × dam 组合未来后代的预测近交系数。
这不是父母自身近交,而是未来子代的风险水平。
pairs.txt 中每一行对应一头公畜,后续列为成功匹配到的母畜,NA 表示未配满。
最适合问题排查:
HasCommonAncestorWithinNGen = YES:指定代数内有共同祖先
PassInbreedingFilter = NO:后代近交系数超阈值
Pass = YES:通过所有条件
重点看:
SelectedPairs:成功组合总数
MatchedSires:至少成功配到 1 头母畜的公畜数
MatchedDams:实际参与成功配对的母畜数
UnmatchedSires:一头都没配上的公畜数
UnusedDams:完全没被使用的母畜数
FilteredByCommonAncestor:因共同祖先约束被过滤的组合数
FilteredByOffspringInbreeding:因后代近交超阈值被过滤的组合数
普通 –inbreeding 只针对系谱中已有个体
–inbreeding –offspring 用于计算未来后代预测近交
–mating 真正筛选时使用的是未来后代近交系数
当前默认一头母畜只能被使用一次
输入顺序会影响 best_best 和 best_worst
random 策略建议配合 –seed 使用