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,结果完全相同。
手册结构#
安装与运行环境发布包内容、硬件与系统要求、参考基因组准备、环境变量。
性能对比与 bwa、GATK、Bismark 等工具在相同数据上的实测耗时对比。
结果一致性验证对照的标准工具与版本,以及怎样比较 BAM、VCF、校正表和质控文件。
胚系变异检测FASTQ → BAM → VCF / gVCF 的标准流程,逐步说明。
多样本联合分型多个样本的 gVCF 合并与联合分型。
体细胞变异检测肿瘤–正常配对与仅肿瘤样本的 Mutect2 流程。
甲基化分析与 Bismark 兼容的 WGBS / RRBS 流程。
FASTQ 无损压缩有参考 / 无参考的 FASTQ 归档,可直接作为比对的输入。
工具参考每个子命令的输入、输出和全部参数。
示例与技巧完整脚本、外显子、多 GPU、内存受限、复现已有 GATK 结果。
常见问题GPU 被占用、显存不足、结果差异、已知限制、反馈方式。
本手册的约定#
- 命令中的大写单词(如
REFERENCE、SAMPLE、NUMBER_THREADS)是需要替换的占位符;方括号[ ]中的内容是可选的。 - 行末的
\表示命令在下一行继续。 baizegen指 CPU 版程序,baizegen-gpu指 GPU 版程序。GPU 版包含 CPU 版的全部功能,不加 GPU 相关参数时在 CPU 上运行。- 本手册按 2026-11-09 的版本编写。较早的发布包可能缺少个别参数,请以所用程序的
baizegen <命令> --help为准。