haplotypecaller
运行 GPU 加速的 haplotypecaller。
此工具应用加速的 GATK CollectMultipleMetrics 以评估 BAM 文件的指标,例如包括比对成功率、质量评分分布、GC 偏差和测序伪影。这充当“元指标”工具,并且可以运行 GATK 中可用的任何指标工具组合,以评估测序运行的总体表现。可用的指标工具 (PROGRAM) 可以在下面的命令行示例中找到。
您可以提供可选的 BQSR 报告来修复 BAM,类似于 ApplyBQSR。在这种情况下,将使用更新后的碱基质量。
有关所有可用选项的详细列表,请参阅 haplotypecaller 参考 部分。
# 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 haplotypecaller \
--ref /workdir/${REFERENCE_FILE} \
--in-bam /workdir/${INPUT_BAM} \
--in-recal-file /workdir/${INPUT_RECAL_FILE} \
--out-variants /outputdir/${OUTPUT_VCF}
以下命令是上述 Parabricks 命令的 GATK4 对等命令。这些命令的输出将与上述命令的输出相同。有关结果比较,请参阅输出比较页面。
# Run ApplyBQSR Step
$ gatk ApplyBQSR \
--java-options -Xmx30g \
-R Ref/Homo_sapiens_assembly38.fasta \
-I mark_dups_cpu.bam \
--bqsr-recal-file recal_file.txt \
-O cpu_nodups_BQSR.bam
#Run Haplotype Caller
$ gatk HaplotypeCaller \
--java-options -Xmx30g \
--input cpu_nodups_BQSR.bam \
--output result_cpu.vcf \
--reference Ref/Homo_sapiens_assembly38.fasta \
--native-pair-hmm-threads 16
虽然与 GATK HaplotypeCaller 相比,Parabricks HaplotypeCaller 在功能上不会损失任何准确性,但仍存在一些实现差异,可能会导致略微不同的输出文件。
随机生成器
GATK HapltoypeCaller 在读取下采样和 QualByDepth 注释计算中调用相同的随机生成器。Parabricks HaplotypeCaller 调用两个单独的随机数生成器以实现并行计算。
Log10 实现
log10
操作用于计算单倍型惩罚分数。Java 实现 java.lang.Math.log10()
与 C++ cmath
库略有不同,导致计算分数略有不匹配。由于这个原因,可能会选择不同的单倍型。
AVX
GATK 调用 Intel GKL (Genomics Kernel Library),其中包含在 Intel 架构(AVX、AVX2、AVX-512 和多核)上运行的计算内核(例如 Smith-Waterman、PairHMM)的优化版本。然而,与我们的 GPU 实现所基于的串行操作相比,一些 SIMD 内在函数(例如 _mm512_mul_ps
)可能会产生略微不同的输出。
HashMap、HashSet 迭代
GATK 可能会给出非确定性输出,因为迭代 Java HashMap
或 HashSet
不会保留顺序。Parabricks 始终通过使用保留插入顺序的哈希表(类似于 Java 中的 LinkedHashMap
)来提供确定性输出。
Parabricks 支持多个原始 HaplotypeCaller 选项。要指定包含或排除多个单倍型调用程序注释,请使用 --haplotypecaller-options
选项
$ # 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 haplotypecaller \
...
--haplotypecaller-options '-min-pruning 4 -A AS_BaseQualityRankSumTest -A TandemRepeat'
...
可以使用 -AX
选项以相同方式排除注释。-A
/-AX
标志及其值之间应有空格。
以下是支持的选项及其允许的值
- -A
AS_BaseQualityRankSumTest
AS_FisherStrand
AS_InbreedingCoeff
AS_MappingQualityRankSumTest
AS_QualByDepth
AS_RMSMappingQuality
AS_ReadPosRankSumTest
AS_StrandOddsRatio
AssemblyComplexity
BaseQualityRankSumTest
ChromosomeCounts
ClippingRankSumTest
Coverage
DepthPerAlleleBySample
DepthPerSampleHC
ExcessHet
FisherStrand
InbreedingCoeff
MappingQualityRankSumTest
QualByDepth
RMSMappingQuality
ReadPosRankSumTest
ReferenceBases
StrandBiasBySample
StrandOddsRatio
TandemRepeat
- -AX
(与 -A 选项相同)
- --output-mode
EMIT_VARIANTS_ONLY
EMIT_ALL_CONFIDENT_SITES
EMIT_ALL_ACTIVE_SITES
- -max-reads-per-alignment-start
一个正整数
- -min-dangling-branch-length
一个正整数
- -min-pruning
一个正整数
- -pcr-indel-model
NONE
HOSTILE
AGGRESSIVE
CONSERVATIVE
- -standard-min-confidence-threshold-for-calling
一个正整数
运行 HaplotypeCaller 以将 BAM/CRAM 转换为 VCF。
输入/输出文件选项
- --ref REF
-
参考文件的路径。(默认值:无)
此选项为必填项。
- --in-bam IN_BAM
-
用于变异调用的输入 BAM/CRAM 文件的路径。参数也可以是包含多个 BAM 文件的本地文件夹。(默认值:无)
此选项为必填项。
- --in-recal-file IN_RECAL_FILE
-
输入 BQSR 报告的路径。(默认值:无)
- --interval-file INTERVAL_FILE
-
以下格式之一的区间文件的路径:Picard 样式(.interval_list 或 .picard)、GATK 样式(.list 或 .intervals)或 BED 文件(.bed)。此选项可以多次使用。(默认值:无)
- --htvc-bam-output HTVC_BAM_OUTPUT
-
应在其中写入组装的单倍型的文件。如果使用 --run-partition 传递,则将输出多个 BAM 文件。(默认值:无)
- --out-variants OUT_VARIANTS
-
变异调用后 vcf/g.vcf/gvcf.gz 文件的路径。(默认值:无)
此选项为必填项。
- --htvc-alleles HTVC_ALLELES
-
vcf.gz 强制调用文件的路径。要强制调用的等位基因集,而不管证据如何。(默认值:无)
工具选项
- --haplotypecaller-options HAPLOTYPECALLER_OPTIONS
-
将支持的单倍型调用程序选项作为字符串传递。以下是当前支持的原始单倍型调用程序选项:-A <AS_BaseQualityRankSumTest, AS_FisherStrand, AS_InbreedingCoeff, AS_MappingQualityRankSumTest, AS_QualByDepth, AS_RMSMappingQuality, AS_ReadPosRankSumTest, AS_StrandOddsRatio, BaseQualityRankSumTest, ChromosomeCounts, ClippingRankSumTest, Coverage, DepthPerAlleleBySample, DepthPerSampleHC, ExcessHet, FisherStrand, InbreedingCoeff, MappingQualityRankSumTest, QualByDepth, RMSMappingQuality, ReadPosRankSumTest, ReferenceBases, StrandBiasBySample, StrandOddsRatio, TandemRepeat, AssemblyComplexity>,-AX <与 -A 相同的选项>,--output-mode <EMIT_VARIANTS_ONLY, EMIT_ALL_CONFIDENT_SITES, EMIT_ALL_ACTIVE_SITES> ,-max-reads-per-alignment-start <int>, -min-dangling-branch-length <int>, -min-pruning <int>, -pcr-indel-model <NONE, HOSTILE, AGGRESSIVE, CONSERVATIVE>, -standard-min-confidence-threshold-for-calling <int>(例如 --haplotypecaller-options="-min-pruning 4 -standard-min-confidence-threshold-for-calling 30")。(默认值:无)
- --static-quantized-quals STATIC_QUANTIZED_QUALS
-
使用静态量化质量分数到给定的级别数。多次重复此选项以用于多个 bin。(默认值:无)
- --gvcf
-
以 .gvcf 格式生成变异调用。(默认值:无)
- --disable-read-filter DISABLE_READ_FILTER
-
禁用 BAM 条目的读取过滤器。当前,可以禁用的受支持的读取过滤器为 MappingQualityAvailableReadFilter、MappingQualityReadFilter、NotSecondaryAlignmentReadFilter 和 WellformedReadFilter。(默认值:无)
- --max-alternate-alleles MAX_ALTERNATE_ALLELES
-
要进行基因分型的最大备选等位基因数。(默认值:无)
- -G ANNOTATION_GROUP, --annotation-group ANNOTATION_GROUP
-
要添加到输出变异调用的注释组。当前支持的注释组为 StandardAnnotation、StandardHCAnnotation 和 AS_StandardAnnotation。(默认值:无)
- -GQB GVCF_GQ_BANDS, --gvcf-gq-bands GVCF_GQ_BANDS
-
参考置信度 GQ 频段的独占上限。必须在 [1, 100] 范围内,并按递增顺序指定。(默认值:无)
- --rna
-
运行针对 RNA 数据优化的 haplotypecaller。(默认值:无)
- --dont-use-soft-clipped-bases
-
请勿使用软剪切碱基进行变异调用。(默认值:无)
- --minimum-mapping-quality MINIMUM_MAPPING_QUALITY
-
要保留的最小比对质量(包括在内)。(默认值:无)
- --mapping-quality-threshold-for-genotyping MAPPING_QUALITY_THRESHOLD_FOR_GENOTYPING
-
在活动区域检测和组装步骤之后但在基因分型之前,控制由于比对质量而从基因分型器中排除读取的阈值。(默认值:无)
- --enable-dynamic-read-disqualification-for-genotyping
-
将启用不太严格的读取取消资格低碱基质量读取。(默认值:无)
- --min-base-quality-score MIN_BASE_QUALITY_SCORE
-
考虑用于调用的碱基所需的最小碱基质量。(默认值:无)
- --adaptive-pruning
-
在修剪 De Bruijn 图时使用自适应图修剪算法。(默认值:无)
- --force-call-filtered-alleles
-
强制调用 --alleles 指定的资源中包含的已过滤等位基因。(默认值:无)
- --filter-reads-too-long
-
忽略所有大小 > 500bp 的输入 BAM 读取 (默认值:无)
- --no-alt-contigs
-
去除备选 contig 的输出记录。(默认值:无)
- --ploidy PLOIDY
-
为 BAM 文件假定的倍性。当前仅支持单倍体(倍性 1)和二倍体(倍性 2)。(默认值:2)
- -L INTERVAL, --interval INTERVAL
-
从中调用 BAM/CRAM 文件中的变异的区间。所有区间都将具有 100 的填充以获取读取记录,并且重叠的区间将被合并。区间文件应使用 --interval-file 选项传递。此选项可以多次使用(例如“-L chr1 -L chr2:10000 -L chr3:20000+ -L chr4:10000-20000”)。(默认值:无)
- -ip INTERVAL_PADDING, --interval-padding INTERVAL_PADDING
-
要添加到您包含的每个区间的填充量(以碱基对为单位)。(默认值:无)
- --sample-sex SAMPLE_SEX
-
样本输入的性别。此选项将覆盖从任何 X/Y 读取比率范围确定的性别。必须为男性或女性。(默认值:无)
- --range-male RANGE_MALE
-
X/Y 读取比率的包含性男性范围。如果实际比率落在指定范围内,则性别声明为男性。语法为“<min>-<max>”(例如“--range-male 1-10”)。(默认值:无)
- --range-female RANGE_FEMALE
-
X/Y 读取比率的包含性女性范围。如果实际比率落在指定范围内,则性别声明为女性。语法为“<min>-<max>”(例如“--range-female 150-250”)。(默认值:无)
- --use-GRCh37-regions
-
对 GRCh37 参考类型使用假常染色体区域。此标志应用于 GRCh37 和 UCSC hg19 参考。默认情况下,使用 GRCh38 区域。
(默认值:无)
性能选项
- --htvc-low-memory
-
在 htvc 中使用低内存模式。(默认值:无)
- --num-htvc-threads NUM_HTVC_THREADS
-
CPU 线程数。(默认值:5)
- --run-partition
-
将整个基因组划分为多个分区,并同时在多个进程上运行,每个进程在一个分区上运行。(默认值:无)
常用选项
- --logfile LOGFILE
-
日志文件的路径。如果未指定,消息将仅写入标准错误输出。(默认值:无)
- --tmp-dir TMP_DIR
-
将存储临时文件的目录的完整路径。
- --with-petagene-dir WITH_PETAGENE_DIR
-
PetaGene 安装目录的完整路径。默认情况下,这应已安装在 /opt/petagene。使用此选项还需要通过设置 LD_PRELOAD 环境变量预加载 PetaLink 库。可选地设置用于数据和凭据的 PETASUITE_REFPATH 和 PGCLOUD_CREDPATH 环境变量 (默认值:无)
- --keep-tmp
-
完成时不删除存储临时文件的目录。
- --no-seccomp-override
-
不覆盖 docker 的 seccomp 选项 (默认值:无)。
- --version
-
查看兼容的软件版本。
GPU 选项
- --num-gpus NUM_GPUS
-
运行要使用的 GPU 数量。将使用 GPU 0..(NUM_GPUS-1)。
在提供给 --haplotypecaller-options 的值中,--output-mode 需要两个前导连字符,而所有其他值都采用单个连字符。