Clara Parabricks v4.4.0

fq2bam (BWA-MEM + GATK)

根据一个或多个 FASTQ 文件对生成 BAM/CRAM 输出。还可以选择性地生成 BQSR 报告。

请参阅 fq2bam 参考 部分,以获取所有可用选项的详细列表。

注意

在 v4.3.2 中,fq2bam 被之前称为 fq2bamfast 的工具所取代。

BWA-MEM 是一种快速、准确的算法,用于将 DNA 序列 reads 比对到参考基因组,执行局部比对并为查询序列的不同部分生成比对结果。它是 Burrows-Wheeler Aligner (BWA) 中用于长度超过 70bp 的 reads 的默认算法,专为 Illumina 和 Pacific Biosciences 等高通量测序技术而设计。

BWA-MEM 能够处理更长的 reads,并且比其他比对算法对错误不太敏感。因此,它被用于各种应用,从测序数据的常规分析到更高级的应用,如从头组装和变异检测。

使用 BWA-MEM 而不是类似工具的一些优势包括

  1. 它比许多其他比对算法更快,使其成为高通量测序的理想选择。

  2. 它比许多其他比对算法具有更低的假阳性率,这意味着报告的假阳性变异更少。

  3. 它具有内存效率,允许在资源有限的情况下使用。

  4. 它非常准确,据报告在 Illumina 数据上的准确率超过 99%。

BWA-MEM 可以部署在 Parabricks 中,Parabricks 是一套为基因组学加速二级分析而设计的软件套件,将行业标准工具和工作流程从 CPU 转移到 GPU,并提供相同的分析结果,运行速度提高高达 60 倍。FQ2BAM 是 BWA-MEM 的 Parabricks 封装器,它将对输出进行排序,并且可以按照 GATK 最佳实践标记重复项和重新校准碱基质量评分。在 NVIDIA DGX 系统上,运行 30 倍全基因组的 FQ2BAM 只需 6 分钟,而 CPU 实例(m5.24xlarge,96 x vCPU)则需要 4-9 小时。如果设备内存小于 50GB,则可能需要尝试使用 --bwa-nstreams--low-memory

fq2bam 使用加速版本的 BWA-MEM,根据一个或多个 FASTQ 文件对生成 BAM/CRAM 输出。用户可以通过添加 --no-markdups 选项来关闭重复项标记。只有在提供 --knownSites input--out-recal-file output 选项时才会执行 BQSR 步骤;这样做还将生成 BQSR 报告。

fq2bam.png

复制
已复制!
            

# This command assumes all the inputs are in INPUT_DIR and all the outputs go to OUTPUT_DIR. docker run --rm --gpus all --volume INPUT_DIR:/workdir --volume OUTPUT_DIR:/outputdir \ --workdir /workdir \ nvcr.io/nvidia/clara/clara-parabricks:4.4.0-1 \ pbrun fq2bam \ --ref /workdir/${REFERENCE_FILE} \ --in-fq /workdir/${INPUT_FASTQ_1} /workdir/${INPUT_FASTQ_2} \ --knownSites /workdir/${KNOWN_SITES_FILE} \ --out-bam /outputdir/${OUTPUT_BAM} \ --out-recal-file /outputdir/${OUTPUT_RECAL_FILE}

以下命令是上述 Parabricks 命令的 bwa-0.7.15 和 GATK4 对等命令。这些命令的输出将与上述命令的输出相同。请参阅 输出比较 页面以比较结果。

注意

设置 --bwa-options="-K 10000000" 以生成兼容的 paired-ended 结果。

复制
已复制!
            

# Run bwa-mem and pipe the output to create a sorted BAM. $ bwa mem \ -t 32 \ -K 10000000 \ -R '@RG\tID:sample_rg1\tLB:lib1\tPL:bar\tSM:sample\tPU:sample_rg1' \ <INPUT_DIR>/${REFERENCE_FILE} <INPUT_DIR>/${INPUT_FASTQ_1} <INPUT_DIR>/${INPUT_FASTQ_2} | \ gatk SortSam \ --java-options -Xmx30g \ --MAX_RECORDS_IN_RAM 5000000 \ -I /dev/stdin \ -O cpu.bam \ --SORT_ORDER coordinate # Mark duplicates. $ gatk MarkDuplicates \ --java-options -Xmx30g \ -I cpu.bam \ -O mark_dups_cpu.bam \ -M metrics.txt # Generate a BQSR report. $ gatk BaseRecalibrator \ --java-options -Xmx30g \ --input mark_dups_cpu.bam \ --output <OUTPUT_DIR>/${OUTPUT_RECAL_FILE} \ --known-sites <INPUT_DIR>/${KNOWN_SITES_FILE} \ --reference <INPUT_DIR>/${REFERENCE_FILE}

虽然与 BWA-mem 和 GATK 相比,Parabricks fq2bam 在功能上不会损失任何准确性,但仍然有几个来源可能导致输出文件中的差异。

  • BWA-mem -K 参数

在 paired-ended 模式下,由 -K 指定的 chunk 大小可能会导致输出 BAM 文件中的小不匹配。要消除此处的不匹配,请确保将相同的数字传递给基线 BWA-mem 和 Parabricks fq2bam,例如 -K 10000000

  • PA aux 标签

    • Parabricks fq2bamPA 标签放在最后,而 BWA-mem 将其放在最前面。

    • BWA-mem 将 PA 标签四舍五入到 3 位数字,而 Parabricks fq2bam 则不进行四舍五入。Aux 标签可以通过 samtools view -x <TAG> 进行过滤

  • 未比对的 reads

    • Parabricks fq2bam 对未比对的 reads 的排序方式与基线 GATK SortSam 略有不同。未比对的 reads 可以通过运行 samtools view -F 4 使用 samtools 进行过滤。

运行 GPU-bwa mem,协调排序,标记重复项和碱基质量评分重新校准,以将 FASTQ 转换为 BAM/CRAM。

输入/输出文件选项

--ref REF

参考文件的路径。(默认值:None)

此选项为必选项。

--in-fq [IN_FQ ...]

pair-ended FASTQ 文件的路径,后跟可选的带有引号的 read groups(示例:“@RG\tID:foo\tLB:lib1\tPL:bar\tSM:sample\tPU:foo”)。文件必须为 fastq 或 fastq.gz 格式。所有输入集都应具有 read group;否则,都不应具有 read group,并且管道将自动添加。此选项可以重复多次。示例 1:--in-fq sampleX_1_1.fastq.gz sampleX_1_2.fastq.gz --in-fq sampleX_2_1.fastq.gz sampleX_2_2.fastq.gz。示例 2:--in-fq sampleX_1_1.fastq.gz sampleX_1_2.fastq.gz "@RG\tID:foo\tLB:lib1\tPL:bar\tSM:sample\tPU:unit1" --in-fq sampleX_2_1.fastq.gz sampleX_2_2.fastq.gz "@RG\tID:foo2\tLB:lib1\tPL:bar\tSM:sample\tPU:unit2"。对于同一 sample,Read Groups 应具有相同的 sample name (SM) 和不同的 ID 和 PU。(默认值:None)

--in-se-fq [IN_SE_FQ ...]

single-ended FASTQ 文件的路径,后跟可选的带有引号的 read group(示例:“@RG\tID:foo\tLB:lib1\tPL:bar\tSM:sample\tPU:foo”)。文件必须为 fastq 或 fastq.gz 格式。所有输入集都应具有 read group,否则都不应具有 read group,并且管道将自动添加。此选项可以重复多次。示例 1:--in-se-fq sampleX_1.fastq.gz --in-se-fq sampleX_2.fastq.gz。示例 2:--in-se-fq sampleX_1.fastq.gz "@RG\tID:foo\tLB:lib1\tPL:bar\tSM:sample\tPU:unit1" --in-se-fq sampleX_2.fastq.gz "@RG\tID:foo2\tLB:lib1\tPL:bar\tSM:sample\tPU:unit2"。对于同一 sample,Read Groups 应具有相同的 sample name (SM) 和不同的 ID 和 PU。(默认值:None)

--in-fq-list IN_FQ_LIST

包含 pair-ended FASTQ 文件位置的文件的路径。每行必须包含两个 FASTQ 文件的位置,后跟一个 read group,每个位置之间用空格分隔。每组文件(和关联的 read group)必须在单独的行上。文件必须为 fastq/fastq.gz 格式。行语法:<fastq_1> <fastq_2> <read group>(默认值:None)

--in-se-bam IN_SE_BAM

single-ended BAM/CRAM 文件的路径,该文件将用于转换回 FASTQ 作为 fq2bam 的输入。(默认值:None)

--knownSites KNOWNSITES

已知 indels 文件的路径。文件必须为 vcf.gz 格式。此选项可以多次使用。(默认值:None)

--interval-file INTERVAL_FILE

interval 文件的路径,格式为以下格式之一:Picard 样式(.interval_list 或 .picard)、GATK 样式(.list 或 .intervals)或 BED 文件(.bed)。此选项可以多次使用。(默认值:None)

--out-recal-file OUT_RECAL_FILE

碱基质量评分重新校准后的报告文件的路径。(默认值:None)

--out-bam OUT_BAM

BAM/CRAM 文件的路径。(默认值:None)

此选项为必选项。

--out-duplicate-metrics OUT_DUPLICATE_METRICS

标记重复项后重复指标文件的路径。(默认值:None)

--out-qc-metrics-dir OUT_QC_METRICS_DIR

将生成 QC 指标的目录的路径。(默认值:None)

工具选项

--max-read-length MAX_READ_LENGTH

用于 bwa 和过滤 FASTQ 输入的最大 read 长度/大小(即序列长度)(默认值:480)

--min-read-length MIN_READ_LENGTH

用于 bwa 和过滤 FASTQ 输入的最小 read 长度/大小(即序列长度)(默认值:1)

-L INTERVAL, --interval INTERVAL

从中调用 bqsr 的输入 reads 的 interval。所有 interval 都将具有 100 的 padding 以获取 read 记录,并且重叠的 interval 将被合并。Interval 文件应使用 --interval-file 选项传递。此选项可以多次使用(例如“-L chr1 -L chr2:10000 -L chr3:20000+ -L chr4:10000-20000”)。(默认值:None)

--bwa-options BWA_OPTIONS

将支持的 bwa mem 选项作为字符串传递。当前原始 bwa mem 支持的选项是:-M、-Y、-C、-T、-B、-U、-L 和 -K(例如 --bwa-options="-M -Y")(默认值:None)

--no-warnings

禁止显示有关系统线程和内存使用情况的警告消息。(默认值:None)

--filter-flag FILTER_FLAG

如果条目的 flag 符合此条件,则不要在输出中生成 SAM 条目。条件:(flag & filter != 0)(默认值:0)

--skip-multiple-hits

过滤 SA 长度不为 0 的 SAM 条目(默认值:None)

--align-only

在 bwa-mem 之后生成输出 BAM。输出将不会进行坐标排序,也不会标记重复项(默认值:None)

--no-markdups

不执行标记重复项步骤。排序后返回 BAM。(默认值:None)

--fix-mate

将 mate cigar (MC) 和 mate quality (MQ) 标签添加到输出文件。(默认值:None)

--markdups-assume-sortorder-queryname

假设 reads 已按 queryname 排序以进行标记重复项。这也将标记辅助、补充和未比对的 reads 为重复项。此标志不会影响变异检测,但会增加处理时间。(默认值:None)

--markdups-picard-version-2182

假设标记重复项类似于 Picard 版本 2.18.2。(默认值:None)

--monitor-usage

在执行期间监视近似的 CPU 利用率和主机内存使用情况。(默认值:None)

--optical-duplicate-pixel-distance OPTICAL_DUPLICATE_PIXEL_DISTANCE

为了将两个重复簇视为光学重复项,它们之间的最大偏移量。如果未传递 --out-duplicate-metrics,则忽略此选项。(默认值:None)

--read-group-sm READ_GROUP_SM

此运行中 read groups 的 SM 标签。(默认值:None)

--read-group-lb READ_GROUP_LB

此运行中 read groups 的 LB 标签。(默认值:None)

--read-group-pl READ_GROUP_PL

此运行中 read groups 的 PL 标签。(默认值:None)

--read-group-id-prefix READ_GROUP_ID_PREFIX

此运行中 read groups 的 ID 和 PU 标签的前缀。此前缀将用于此运行中的所有 FASTQ 文件对。ID 和 PU 标签将包含此前缀和一个标识符,该标识符对于一对 FASTQ 文件是唯一的。(默认值:None)

-ip INTERVAL_PADDING, --interval-padding INTERVAL_PADDING

要添加到您包含的每个 interval 的 padding 量(以碱基对为单位)。(默认值:None)

--standalone-bqsr

运行独立的 BQSR。(默认值:None)

性能选项

--bwa-nstreams BWA_NSTREAMS

每个 GPU 要使用的 streams 数量;注意:streams 越多,设备内存使用量越大(默认值:4)

--bwa-cpu-thread-pool BWA_CPU_THREAD_POOL

每个 GPU 专用于 CPU 线程池的线程数(默认值:16)

--num-cpu-threads-per-stage NUM_CPU_THREADS_PER_STAGE

(与上述相同)每个 GPU 专用于 CPU 线程池的线程数(默认值:None)

--gpuwrite

使用一个 GPU 加速写入最终的 BAM/CRAM。(默认值:None)

--gpuwrite-deflate-algo GPUWRITE_DEFLATE_ALGO

选择与 --gpuwrite 一起使用的 nvCOMP DEFLATE 算法。请注意,这些选项与 CPU DEFLATE 选项不对应。有效选项为 1、2 和 4。选项 1 最快,而选项 2 和 4 的吞吐量逐渐降低,但压缩率更高。当用户未提供输入时(即 None),默认值为 1(默认值:None)

--gpusort

使用 GPU 加速排序和标记。(默认值:None)

--use-gds

使用 GPUDirect Storage (GDS) 来启用直接数据路径,用于 GPU 内存和存储之间的直接内存访问 (DMA) 传输。必须与 --gpuwrite 同时使用。有关如何设置和使用 GPUDirect Storage 的信息,请参阅 Parabricks 文档 > 最佳性能。(默认值:None)

--memory-limit MEMORY_LIMIT

排序和后排序期间的系统内存限制(以 GB 为单位)。默认情况下,限制为系统总内存的一半。(默认值:62)

--low-memory

使用低内存模式;将降低每个 GPU 的 streams 数量(默认值:None)

通用选项

--logfile LOGFILE

日志文件的路径。如果未指定,消息将仅写入标准错误输出。(默认值:None)

--tmp-dir TMP_DIR

将存储临时文件的目录的完整路径。

--with-petagene-dir WITH_PETAGENE_DIR

PetaGene 安装目录的完整路径。默认情况下,这应该已安装在 /opt/petagene。使用此选项还需要通过设置 LD_PRELOAD 环境变量来预加载 PetaLink 库。可以选择性地设置用于数据和凭据的 PETASUITE_REFPATH 和 PGCLOUD_CREDPATH 环境变量(默认值:None)

--keep-tmp

完成操作后,不要删除存储临时文件的目录。

--no-seccomp-override

不要覆盖 docker 的 seccomp 选项(默认值:None)。

--version

查看兼容的软件版本。

GPU 选项

--num-gpus NUM_GPUS

运行要使用的 GPU 数量。将使用 GPU 0..(NUM_GPUS-1)。

注意

--in-fq 选项接受两个 FASTQ 文件的名称,可以选择后跟带引号的 read group。FASTQ 文件名不得以连字符开头。

注意

使用 --in-fq-list 选项时,输入文件的每一行都需要一个 read group。

上一篇 deepvariant_germline
下一篇 fq2bam_meth
© 版权所有 2025, Nvidia。 上次更新于 2025 年 1 月 13 日。