用途:GenVarLoader(gvl)从参考序列+变异+BigWig/Table 轨迹按需重建个性化单倍型并重对齐功能基因组轨迹,不把个性化基因组写到磁盘。输出通常为变长(indel 使长度随区域和样本变化)。
主要流程:先在 Python 外预处理变异,再 gvl.write(path="ds.gvl", bed="rois.bed", variants="normed.bcf", tracks=[gvl.BigWigs.from_table("signal","bw_table.tsv")], max_jitter=128) 写入数据集;然后用链式 API 打开配置:gvl.Dataset.open("ds.gvl", reference="ref.fa").with_seqs("haplotypes").with_tracks(["signal"]).with_insertion_fill(gvl.Repeat5pNormalized()).with_len(2048).with_settings(jitter=32, deterministic=False);最后按 ds[region_idx, sample_idx] 索引。
使用要求:变异必须左对齐、双等位、原子化且不含符号/断点 ALT,否则 gvl.write 抛 ValueError;VCF 需建索引。预处理示例:bcftools norm -f ref.fa -a --atom-overlaps . -m -any --multi-overlaps . -O b -o normed.bcf in.vcf.gz;plink2 --make-bpgen --pfile in --out tmp 后再 plink2 --make-pgen --normalize --ref-from-fa --fa ref.fa --bpfile tmp --out normed。可在 gvl.write 与 gvl.update 中加轨迹,gvl.concat 用 axis="regions"|"samples" 合并共享同一变异源的数据集;轨迹子目录原子发布。
.svar 为稀疏列式存档,支持读时 min_af/max_af 过滤(.svar2 不支持,抛 NotImplementedError);.svar2 经 read-bound 路径重建并缓存范围的 genotypes/svar2_ranges/,需在读取时保持可访问。.svar2 阶段一仍不支持与变异/变异窗口/重对齐轨迹的组合、var_filter="exonic" 非单倍型输出、注释单倍型、负链反向互补配合轨迹、固定长度轨迹输出、max_jitter/jitter>0 下的变异窗口输出、extend_to_length=False 等,会明确报错。纯删除 ALT 字节表示在两种后端不同(.svar 为锚定碱基,.svar2 为空 ALT),重建单倍型字节相同。样本顺序为字典序排序,外部表须按名对齐;数据集不自动重建,缺失或损坏需重跑 gvl.write。
适用场景:群体规模变异与功能轨迹联合读取、共享变异源的多数据集、需要等位基因频率过滤的读时场景。当前分类:数据与分析。