BaizeGen 使用手册 手册版本 2026-11-09

性能对比#

本页是 BaizeGen 与对应标准工具在相同输入数据上的实测墙钟时间。BaizeGen 的全部数字都在同一台机器上测得(机器 A:1 × RTX 5090 32 GB,AMD Threadripper 3960X),-t 48,每项运行一次,输入数据事先拷到本地 NVMe 硬盘(拷贝不计时)。标准工具的数字是此前在其他机器上实测的,见下方测试环境。

除特别注明外,双方的输出完全一致:BAM 逐条记录相同,VCF / gVCF 除记录命令行的表头行外逐行相同。图中每组单独一个刻度,条形旁标出耗时和相对标准工具的倍数。

关于对照方式

  • 标准工具按通常的方式运行:bwa 用多线程;GATK 各工具以单个进程运行。GATK HaplotypeCaller 的 VCF 模式在整个运行中共用一个随机数生成器(下采样和 QD 抖动),拆成多个进程并行会改变输出,因此不能拆分。
  • 标准工具与 BaizeGen 不在同一台机器上,耗时又受硬件、数据和存储影响很大,以下数据仅供参考。

测试环境#

代号 CPU GPU 运行内容
A AMD Threadripper 3960X(24 核 48 线程) 1 × RTX 5090(32 GB) BaizeGen 的全部测试
B AMD Ryzen 9 9950X(16 核 32 线程) 不使用 bwa
C 2 × Intel Xeon Gold 6226R(共 32 核 64 线程) 不使用 GATK HaplotypeCaller(人类)、GATK 3 IndelRealigner
D AMD Threadripper 3960X(24 核 48 线程) 不使用 动植物样本的标准流程、Bismark
E AMD Ryzen 9 9950X(16 核 32 线程) 不使用 GATK Mutect2、Picard / GATK 质控

人类全基因组#

NA12878,30× WGS(6.7 亿条 reads,100 Gbp),参考基因组 hg38。

人类 30× WGS:比对与变异检测
标准工具BaizeGen GPU 版
比对(bwa-mem 0.7.19,-K 100000000)
bwa 在机器 B 上运行。BaizeGen 的耗时还包括坐标排序和标记重复,比对记录与 bwa 逐条相同。
bwa mem -t 32(仅比对)1 小时 50 分
fastq2bam --engine bwa-gpu(比对 + 排序 + 标记重复)4 分 41 秒23×
HaplotypeCaller,输出 VCF(GATK 4.6.2)
GATK 在机器 C 上运行。同一个 BAM,双方都只检测 GATK 的 hg38 全基因组检测区间(wgs_calling_regions)。机器 C 的 CPU 支持 AVX-512,BaizeGen 加 --gatk-host-simd avx512 复现 GATK 在这类 CPU 上的浮点结果,输出的 VCF 与 GATK 相同。
GATK HaplotypeCaller12 小时 58 分
haplotyper --device gpu --gatk-host-simd avx5121 分 21 秒575×

动植物全流程#

13 个物种的样本(猪、山羊、棉花、油菜、鸡、四倍体鲫鱼、六倍体鲫鱼、梨、水稻、鸭、玉米、大豆、小麦),每个样本 0.4–4.8 亿条 reads。

  • 标准流程:bwa 0.7.17 + samtools sort + Picard MarkDuplicates + GATK 4.6.2 HaplotypeCaller(分别输出 gVCF 和 VCF)。
  • BaizeGen:fastq2bam --engine bwa-gpu + haplotyper --device gpu(分别加 --emit-mode gvcf 和不加)。

13 个样本的 gVCF 和 VCF 都与 GATK 相同(除记录命令行的表头行外逐行相同)。合计耗时:FASTQ → gVCF 267 倍(各样本 115–413 倍),FASTQ → VCF 254 倍(各样本 75–387 倍)。

13 个动植物样本合计
标准工具BaizeGen GPU 版
FASTQ → gVCF(比对、排序、标记重复、HaplotypeCaller gVCF)
bwa + samtools sort + MarkDuplicates + HaplotypeCaller -ERC GVCF284 小时 5 分
fastq2bam --engine bwa-gpu + haplotyper --device gpu --emit-mode gvcf1 小时 4 分267×
FASTQ → VCF(比对、排序、标记重复、HaplotypeCaller VCF)
bwa + samtools sort + MarkDuplicates + HaplotypeCaller249 小时 20 分
fastq2bam --engine bwa-gpu + haplotyper --device gpu58 分 55 秒254×

标准流程在机器 D 上运行(与机器 A 同型号 CPU):bwa 使用 40 线程,GATK 各步骤在限制为 4 个 CPU 的容器中运行;HaplotypeCaller 的 VCF 模式是多个样本同时运行的,每个样本 4 个 CPU。

各样本的耗时(时:分:秒):

样本 倍性 reads(百万) FASTQ → gVCF 标准流程 BaizeGen 倍数 FASTQ → VCF 标准流程 BaizeGen 倍数
猪 2 408 44:46:36 7:42 349 倍 38:50:45 7:28 312 倍
山羊 2 476 29:45:28 6:39 268 倍 24:38:28 5:59 247 倍
棉花 2 96 10:00:17 2:20 258 倍 8:52:08 2:01 265 倍
油菜 2 40 4:09:23 1:58 127 倍 3:28:22 1:53 111 倍
鸡 2 58 7:31:45 1:29 305 倍 6:41:10 1:13 331 倍
四倍体鲫鱼 4 200 44:22:41 6:27 413 倍 39:45:50 6:10 387 倍
六倍体鲫鱼 6 309 58:54:11 10:41 331 倍 53:32:05 9:34 336 倍
梨 2 67 14:39:53 3:23 261 倍 13:57:53 3:24 247 倍
水稻 2 80 1:26:56 0:45 115 倍 53:47 0:43 75 倍
鸭 2 74 9:41:06 1:49 319 倍 8:00:51 1:34 308 倍
玉米 2 150 20:36:05 6:41 185 倍 19:11:29 6:31 177 倍
大豆 2 96 7:49:49 2:23 197 倍 6:59:02 2:18 182 倍
小麦 2 366 30:20:28 11:31 158 倍 24:28:07 10:08 145 倍
合计 284:04:38 1:03:48 267 倍 249:19:57 58:55 254 倍

下图以小麦为例(IWGSC RefSeq v2.1,CRR072388,2×150 bp,54.8 Gbp,约 3.8×)分步骤对比:

小麦 WGS:各步骤耗时
标准工具BaizeGen GPU 版
比对 + 排序 + 标记重复
bwa mem -t 40 + samtools sort + MarkDuplicates4 小时 47 分
fastq2bam --engine bwa-gpu7 分 39 秒37×
HaplotypeCaller,输出 gVCF
GATK HaplotypeCaller -ERC GVCF25 小时 34 分
haplotyper --device gpu --emit-mode gvcf3 分 52 秒396×
HaplotypeCaller,输出 VCF
GATK HaplotypeCaller19 小时 41 分
haplotyper --device gpu2 分 29 秒477×

标准流程在机器 D 上运行,GATK 各步骤在限制为 4 个 CPU 的容器中运行(bwa 使用 40 线程);BaizeGen 在机器 A 上运行(同型号 CPU)。

多样本合并与联合分型#

100 个猪样本的全基因组 gVCF(共 339 GB),用 combinegvcfs --device gpu --genotype-out 一次写出合并后的 gVCF(解压后 4.8 TB)和群体 VCF:

步骤 输入 BaizeGen 耗时 峰值内存
合并 gVCF + 联合分型 100 个猪样本全基因组 gVCF,339 GB 11 分 40 秒 25.8 GB

GATK 没有在这个规模上运行,这一组没有标准工具的对照数字。

其他工具#

体细胞检测、indel 重比对、质控与甲基化
标准工具BaizeGen CPU 版BaizeGen GPU 版
Mutect2 肿瘤–正常配对(SEQC2,22 号染色体)
GATK 在机器 E 上运行。BaizeGen 的 CPU 版与 GPU 版输出相同。体细胞流程是算法移植,结果与 GATK 高度一致,但不保证逐条相同。
GATK 4.6.2 Mutect26 分 5 秒
mutect2 -t 4832 秒11×
mutect2 --device gpu -t 4813 秒27×
indel 局部重比对(NA12878 30× WGS,6.77 亿条记录)
GATK 3.8-1 单线程,只计 IndelRealigner 一步(不含 RealignerTargetCreator),机器 C;BaizeGen realign 两步都包含。目标区间和每条输出记录都与 GATK 3.8-1 相同。
GATK 3.8-1 IndelRealigner8 小时 41 分
realign -t 487 分 10 秒73×
质控指标(200 万对 reads 的 BAM,全基因组)
Picard / GATK 在机器 E 上运行。BaizeGen 一次写出全部 10 个质控文件,每个与 Picard / GATK 相同。在 fastq2bam 中加 --qc 时几乎不增加耗时。
Picard CollectWgsMetrics + GATK DepthOfCoverage1 小时 1 分
qcmetrics -t 48(全部 10 个文件)8.9 秒409×
甲基化:比对 + 去重 + 提取(人类 WGBS,3 亿对 reads,2×150 bp)
Bismark 在机器 D 上运行(与其他任务共用)。--aligner baize 的结果不是与 Bismark 逐字节相同,差异在 bowtie2 自身两次运行之间的差异水平以内。
Bismark 3.1.0 + bowtie2 2.5.59 小时 8 分
fastq2meth --aligner baize --device gpu30 分 17 秒18×

FASTQ 压缩#

fqzip(下一个发布包起提供)与 gzip、zstd、Spring 在同一个人类 NovaSeq 全基因组样本上的对比见 FASTQ 无损压缩;这一组的所有程序都在机器 A 上运行。默认级别(参考模式)的文件是 Spring 的 84 %,压缩耗时为 Spring 的 49 %,解压为 41 %。

数据表#

BaizeGen 的数字都在机器 A 上测得;标准工具一栏括号内是运行它的机器。

步骤 数据 标准工具 BaizeGen CPU 版 BaizeGen GPU 版
比对(BaizeGen 含排序、标记重复) NA12878 30× bwa 0.7.19:1:49:39(B) — 4:41
HaplotypeCaller VCF NA12878 30× GATK 4.6.2:12:58:25(C) — 1:21
FASTQ → gVCF 13 个动植物样本 284:04:38(D) — 1:03:48
FASTQ → VCF 13 个动植物样本 249:19:57(D) — 58:55
比对 + 排序 + 标记重复 小麦 3.8× 4:46:53(D) — 7:39
HaplotypeCaller gVCF 小麦 3.8× 25:33:35(D) — 3:52
HaplotypeCaller VCF 小麦 3.8× 19:41:14(D) — 2:29
合并 gVCF + 联合分型 100 个猪样本,全基因组 未运行 — 11:40
Mutect2 SEQC2 肿瘤–正常,22 号染色体 GATK 4.6.2:6:05(E) 0:32.4 0:13.4
IndelRealigner NA12878 30× GATK 3.8-1:8:41:13,不含 RTC(C) 7:10 —
质控指标 200 万对 reads 1:00:55(E) 0:08.9 —
甲基化比对 + 去重 + 提取 人类 WGBS 3 亿对 Bismark:9:07:35(D) — 30:17

时间格式为 时:分:秒 或 分:秒。

BaizeGen 使用手册 · 手册版本 2026-11-09。命令行参数以所用版本的 baizegen <命令> --help 为准。