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

BaizeGen 使用手册#

BaizeGen 是一套用 C++ 与 CUDA 实现的二代测序数据分析软件。它以单个程序 baizegen 的子命令提供从 FASTQ 到 VCF 的完整胚系变异检测流程,以及多样本联合分型、体细胞变异检测、质控指标和甲基化(WGBS)分析。每一步的输出都以业界标准工具为准绳:在相同输入和参数下,与 bwa-mem、Picard、GATK、Bismark 等工具的结果逐条记录一致,同时借助多线程和 GPU 大幅缩短运行时间。

功能概览#

功能 BaizeGen 命令 对应的标准工具 输出一致性
比对 align、fastq2bam --engine bwa / bwa-gpu bwa-mem 0.7.19 逐条记录相同(相同 -K)
读段质控与过滤 fastp、fastq2bam --fastp fastp 1.4.0 等于 fastp -w 1 的输出
ALT contig 后处理 postalt、--postalt bwakit bwa-postalt.js 逐字节相同
坐标排序 sort samtools sort 逐条记录相同
标记重复 dedup Picard MarkDuplicates 逐字节相同
比对→排序→去重一步完成 fastq2bam 以上三步 与分步运行逐字节相同
碱基质量校正 bqsr、applybqsr GATK BaseRecalibrator / ApplyBQSR 逐字节相同
indel 局部重比对 realign、fastq2bam --realign GATK 3.8-1 RealignerTargetCreator + IndelRealigner 每条记录相同
质控指标 qcmetrics、fastq2bam --qc Picard Collect*Metrics、GATK DepthOfCoverage、samtools flagstat 每个文件逐字节相同
胚系变异检测 haplotyper GATK HaplotypeCaller 4.0.12.0 – 4.6.2.0 逐条记录相同
合并 gVCF combinegvcfs GATK CombineGVCFs 4.6.2.0 逐条记录相同
联合分型 gvcftyper GATK GenotypeGVCFs 4.6.2.0 逐条记录相同
变异过滤与选取(下一个发布包) variantfiltration、selectvariants GATK VariantFiltration / SelectVariants 4.6.2.0 逐条记录相同
体细胞变异检测 mutect2、filtermutectcalls 等 GATK Mutect2 4.6.2 流程 算法移植(统计一致)
甲基化比对与提取 bsprep、bsalign、bsdedup、bsextract、fastq2meth Bismark 3.1.0 --aligner bowtie2 逐字节相同
FASTQ 无损压缩(下一个发布包) fqzip — 解压结果与原始 FASTQ 逐字节相同

“逐字节相同”和“逐条记录相同”指在相同输入、相同参数下,BaizeGen 的输出文件(VCF 类文件不含记录命令行的表头行)与对应工具的输出完全一致。少数与硬件有关的细微差别(例如 AVX-512 与 AVX2 CPU 上 PairHMM 的浮点差异,GATK 本身同样存在)见常见问题。怎样自己比较两边的结果,见结果一致性验证。

主要特点#

结果与标准工具一致每个工具都以对应的标准工具为验收标准,可以直接替换现有流程中的 bwa / Picard / GATK 步骤,下游分析和历史结果无需重新评估。
GPU 加速,结果不变比对、排序、标记重复、BAM 压缩、HaplotypeCaller、CombineGVCFs、Mutect2、质控统计和甲基化比对都可以在 GPU 上运行;GPU 与 CPU 的输出逐字节相同。
融合流程,无中间文件fastq2bam 在一个进程里完成比对、排序和标记重复,还可以同时完成 fastp 过滤、BQSR 校正表、indel 重比对和质控统计。
结果与线程数、卡数无关多线程、多 GPU 的输出与单线程相同。唯一例外是 bwa 本身的批大小规则,见 bwa 的批大小。
部署简单CPU 版是全静态程序,任何 x86-64 Linux 都能运行;GPU 版只需要 NVIDIA 驱动,不需要安装 CUDA toolkit。
运行稳健显存或内存不足时自动拆小任务、等待或退回 CPU,不会中途失败;个别格式错误的输入记录会跳过并给出警告。

快速开始#

下面三条命令完成一个人类全基因组样本从 FASTQ 到 VCF 的分析(GPU 版)。详细说明见胚系变异检测。

# 1. 比对、排序、标记重复,输出 sample.bam 和 sample.bam.bai
baizegen-gpu fastq2bam --engine bwa-gpu -R ref.fa -t 32 -O sample.bam \
    --rg '@RG\tID:sample\tSM:sample\tPL:ILLUMINA\tLB:lib1' \
    sample_R1.fq.gz sample_R2.fq.gz -- -K 100000000

# 2a. 直接输出 VCF
baizegen-gpu haplotyper --device gpu -R ref.fa -I sample.bam -t 32 -O sample.vcf.gz

# 2b. 或输出 gVCF,用于之后的多样本联合分型
baizegen-gpu haplotyper --device gpu -R ref.fa -I sample.bam -t 32 --emit-mode gvcf -O sample.g.vcf.gz

没有 GPU 时,把 baizegen-gpu 换成 baizegen,把 --engine bwa-gpu 换成 --engine bwa,去掉 --device gpu,结果完全相同。

手册结构#

本手册的约定#

  • 命令中的大写单词(如 REFERENCE、SAMPLE、NUMBER_THREADS)是需要替换的占位符;方括号 [ ] 中的内容是可选的。
  • 行末的 \ 表示命令在下一行继续。
  • baizegen 指 CPU 版程序,baizegen-gpu 指 GPU 版程序。GPU 版包含 CPU 版的全部功能,不加 GPU 相关参数时在 CPU 上运行。
  • 本手册按 2026-11-09 的版本编写。较早的发布包可能缺少个别参数,请以所用程序的 baizegen <命令> --help 为准。

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