SuperAPI AI 工具集

vcfixture

测试与质量

查看项目

更新于 10-15 20:30

技能介绍

用途:vcfixture 用于生成小型、符合规范的 VCF(v4.1–v4.5),并同时返回解码后的真值(oracle),使解析器测试可对照可信真值断言,替代手工维护的 VCF 夹具与手工推导的预期数组。

主要能力:以不可变 VcfDocument 为核心,由构建器(或 Hypothesis 策略)产生,.render()/.write() 序列化为字节,.truth() 派生 oracle,二者不会偏离。支持断言解析器的基因型矩阵 / INFO / FORMAT 解码,也支持使用 strategies 对解析器做属性测试,覆盖 Number×Type 矩阵与变异类别。

使用方式:通过 VcfBuilder(samples=[...], contigs=[("chr1", 248956422)]) 构造,contigs 为 (id, length) 对,length 可为 None。字段用链式 .info("AF", Number.A, Type.FLOAT) / .fmt(...) 声明;保留 ID(AF、AC、AN、DP、AD、PL、GL、GT、SVLEN、SVCLAIM 等)省略 Number/Type 时自动解析,显式传入则按原样接受、不做校验。ALT 必须是带类型的 Allele 实例(Seq/Sym/Star/Unspecified/Bnd),不能是字符串。基因型为每样本字符串,如 gt=["0|1", "1|1"](| 表示 phased,/ 表示 unphased,. 表示缺失)。FORMAT 值作为 .record() 的关键字参数传入,形状为 [每样本][每值]。输出用构建器方法 doc.render()、doc.truth()、doc.write(path, bgzip=True, index=True),无 vcfixture.io.write / truth.derive 公开 API。

GroundTruth 按记录优先索引:genotypes 为 (records, samples, ploidy) 整数数组,-1 表示缺失;phasing 为 (records, samples) 布尔;pos 为 (records,) 且基于 1;info 为 list[dict];format 为 list[list[dict]];另含 variant_class 与 alts_truth。可使用 strategies.documents()、documents_with_fields()、symbolic_documents()、reference_and_documents() 等做属性测试。

限制:资料未提供许可证、安装命令、包管理器、平台支持、性能与收费信息,暂未提供。默认规范版本为最新 4.5,可用 VcfVersion.V4_2 固定版本,构建器会拒绝该版本无效的字段或编码。缺失基因型在 oracle 中为 -1,值个数必须与解析后的 Number 一致。