pbcftools:用于大型变异调用集合的 bcftools 并行执行工具

由 root 提交于 周一, 08/10/2026 - 04:47
摘要:bcftools 是处理 VCF 和 BCF 变异文件的标准工具包,但其对记录的处理是在单核上进行的;其 --threads 选项仅加速输出的压缩,而不加速对变异记录本身执行的工作。因此,处理大型变异调用集的速度较慢,用户往往需要手动将基因组拆分并重新组装结果。我们提出 pbcftools,这是一种 Perl 封装工具,可自动完成这一过程:它将基因组拆分为多个区块,对每个区块并行运行常规的 bcftools 命令,并采用适合数据类型的方法重新组装输出结果。在 Linux 服务器、Windows/WSL2 工作站和 Apple 笔记本电脑上,结合 bcftools 1.21 至 1.24 版本,对于所测试的每一条命令,并行输出与串行输出完全一致。在 1000 Genomes Phase 3 数据上,写出压缩 VCF 的操作在使用 32 个核心时加速了 10.8 至 21.1 倍,在使用 64 个核心时最高可达 35.4 倍;写出文本格式的操作加速了 3.7 至 12.8 倍;合并 100 个 VCF 文件则加速了 19.2 倍。pbcftools 还可在 LSF 和 Slurm 集群上运行。 可用性与实现:pbcftools 使用 Perl(>= 5.16)编写,并依赖 bcftools;本地并行执行还需要 Perl 模块 Parallel::ForkManager。该工具以 MIT 许可证发布,地址为 https://github.com/zhangge-uc/pbcftools(DOI:10.5281/zenodo.21780361)。

摘要 bcftools 是处理 VCF 和 BCF 变异文件的标准工具集,但其对记录的处理仅使用单核;其 --threads 选项只能加速输出的压缩,而不能加速对变异记录本身的处理。因此,处理大型变异调用数据集的速度较慢,用户往往需要手动将基因组拆分后再重新组装结果。我们提出了 pbcftools,这是一种 Perl 封装器,可自动完成这一过程:它将基因组拆分为多个区块,并对每个区块并行运行常规的 bcftools 命令,然后采用适合数据类型的方法重组输出结果。在 Linux 服务器、Windows/WSL2 工作站和 Apple 笔记本电脑上,针对 bcftools 1.21 至 1.24 版本,所有测试命令的并行输出均与串行输出完全一致。在 1000 Genomes Phase 3 数据上,对于写出压缩 VCF 的操作,使用 32 个核心时速度提升为 10.8 至 21.1 倍,使用 64 个核心时最高可达 35.4 倍;对于写出文本的操作,速度提升为 3.7 至 12.8 倍;合并 100 个 VCF 文件时,速度提升为 19.2 倍。pbcftools 还可在 LSF 和 Slurm 集群上运行。

可用性与实现 pbcftools 使用 Perl(>= 5.16)编写,并依赖 bcftools;本地并行执行还需要 Perl 模块 Parallel::ForkManager。该软件以 MIT 许可证发布,地址为 https://github.com/zhangge-uc/pbcftools(DOI: 10.5281/zenodo.21780361)。


📄 原文链接:https://www.biorxiv.org/content/10.64898/2026.08.03.742604v1?rss=1

🏷️ 变异调用 VCF/BCF bcftools 并行计算 基因组数据处理 Perl工具