Clara Parabricks v4.4.0

mutectcaller

此工具是 GATK 体细胞变异检出器 Mutect2 的加速版本,它接受来自 FQ2BAM 工具的比对 BAM 文件,并输出 VCF 文件。它可以接受单个(“仅肿瘤”)BAM 或一对 BAM(“肿瘤-正常”)作为输入,以提供基线来检测体细胞变异。

下图显示了 mutectcaller 的高级功能。所有虚线框表示可选数据,但有一些约束。

parabricks-web-graphics-1259949-r2-mutecaller.svg

肿瘤样本的名称(对于 --tumor-name 选项)和正常样本的名称(对于 --normal-name 选项)可以从各自 BAM 文件的标头中提取,使用 samtools,可以通过 apt-get 安装 samtools。

复制
已复制!
            

$ sudo apt-get install samtools

或者,您可以按照 samtools 仓库 中的说明从源代码构建它。

在您的系统上安装 samtools 后,您可以运行此命令来获取样本名称 (SM) 字段

复制
已复制!
            

$ samtools view NA12878.bam -H | grep '@RG' @RG ID:HJYFJ.4 SM:NA12878 LB:Pond-492093 PL:illumina PU:HJYFJCCXX160204.4.GCCGCAAC CN:BI DT:2016-02-04T00:00:00-0500

样本名称是 "SM:" 之后的值(在本例中为 NA12878)

如果存在多个读取组 (@RG) 行,并且所有行都具有相同的样本名称,您可以安全地使用通用样本名称。如果存在具有多个样本名称的多个读取组行,请选择一个样本名称作为输入。具有该样本名称的所有读取都将由 mutectcaller 处理,所有其他读取将被忽略。目前,每个 BAM 文件仅支持一个样本名称。

如果 BAM 标头中没有读取组行,或者读取组行中没有样本名称,您将需要向 BAM 文件添加读取组信息。这可以通过运行此命令来完成

复制
已复制!
            

$ samtools addreplacerg \ -r "@RG\tID:sample_rg1\tLB:lib1\tPL:bar\tSM:sample_sm\tPU:sample_rg1" \ original_file.bam \ -o updated_file.bam \ -O BAM

这将把此 BAM 文件中所有读取的样本名称更新为 "sample_sm",您可以将 "sample_sm" 作为此 BAM 文件的样本名称传递。确保使用 updated_file.bam 作为 mutectcaller 的输入。

有关所有可用选项的详细列表,请参阅 mutectcaller 参考 部分。

您可以从此处下载 mutect 样本数据集。通过运行以下命令解压所有文件

复制
已复制!
            

$ tar -xvzf mutect_sample.tar.gz mutect_sample/ mutect_sample/germline_resource.vcf.gz.tbi mutect_sample/force_call.vcf.gz.tbi mutect_sample/germline_resource.vcf.gz mutect_sample/tumor.bam.bai mutect_sample/GCA_000001405.15_GRCh38_no_alt_analysis_set.fa mutect_sample/force_call.vcf.gz mutect_sample/tumor.bam mutect_sample/normal.bam.bai mutect_sample/normal.bam

mutect_sample 文件夹中,您将找到必要的输入文件,包括

  • 一个参考 FASTA 文件 (GCA_000001405.15_GRCh38_no_alt_analysis_set.fa),

  • 一个肿瘤 BAM 文件 (tumor.bam),

  • 一个正常 BAM 文件 (normal.bam),

  • 一个 force_calling.vcf.gz VCF 文件和

  • 一个 germline_resource.vcf.gz VCF 文件

以及所有必要的索引。

复制
已复制!
            

# 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 mutectcaller \ --ref /workdir/${REFERENCE_FILE} \ --tumor-name tumor_name_inside_bam_file \ --in-tumor-bam /workdir/${INPUT_TUMOR_BAM} \ --in-normal-bam /workdir/${INPUT_NORMAL_BAM} \ --normal-name normal_name_inside_bam_file \ --out-vcf /outputdir/${OUTPUT_VCF}

以下命令是上述 Parabricks 命令的 GATK4 对应命令。此命令的输出将与上述命令的输出相同。有关结果比较,请参阅输出比较页面。

复制
已复制!
            

$ gatk Mutect2 \ -R <INPUT_DIR>/${REFERENCE_FILE} \ --input <INPUT_DIR>/${INPUT_TUMOR_BAM} \ --tumor-sample tumor_name_inside_bam_file \ --input <INPUT_DIR>/${INPUT_NORMAL_BAM} \ --normal-sample normal_name_inside_bam_file \ --output <OUTPUT_DIR>/${OUTPUT_VCF}

Parabricks Mutect2 从 3.7.0-1 版本开始支持 Panel of Normals 来处理变异。涉及三个步骤

  • prepon

  • 使用 prepon 生成的索引运行 mutectcaller

  • postpon,使用 PON 信息更新 VCF

复制
已复制!
            

# The first command will generate input.pon that should be done once for the input.vcf.gz # 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 prepon --in-pon-file /workdir/${INPUT_PON_VCF} # Run mutectcaller with the pon index # 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 mutectcaller \ --ref /workdir/${REFERENCE_FILE} \ --tumor-name tumor \ --in-tumor-bam /workdir/${INPUT_TUMOR_BAM} \ --in-normal-bam /workdir/${INPUT_NORMAL_BAM} \ --pon /workdir/${INPUT_PON_VCF} \ --normal-name normal \ --out-vcf /outputdir/${OUTPUT_VCF} # Add the annotation to the output.vcf generated above # 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 postpon \ --in-vcf /workdir/${OUTPUT_VCF} \ --in-pon-file /workdir/${INPUT_PON_FILE} \ --out-vcf /outputdir/${OUTPUT_ANNOTATED_VCF}

虽然与 GATK MutectCaller 相比,Parabricks MutectCaller 在功能上不会降低任何准确性,但仍有一些实现差异可能会导致略有不同的输出文件。

  • Log10 实现

log10 操作用于计算单倍型惩罚分数。Java 实现 java.lang.Math.log10() 与 C++ cmath 库略有不同,导致计算分数略有不匹配。由于这个原因,可能会选择不同的单倍型。

  • AVX

GATK 调用 Intel GKL(基因组内核库),其中包含计算内核(例如 Smith-Waterman、PairHMM)的优化版本,以在 Intel 架构(AVX、AVX2、AVX-512 和多核)上运行。但是,与我们的 GPU 实现所基于的串行操作相比,某些 SIMD 内在函数(例如 _mm512_mul_ps)可能会生成略有不同的输出。

  • HashMap、HashSet 迭代

GATK 可能会给出不确定的输出,因为迭代 Java HashMapHashSet 不会保留顺序。Parabricks 始终通过使用保留插入顺序的哈希表(类似于 Java 中的 LinkedHashMap)来提供确定性输出。

运行 GPU mutect2 以将 BAM/CRAM 转换为 VCF。

输入/输出文件选项

--ref REF

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

此选项为必选项。

--out-vcf OUT_VCF

变异检出后 VCF 文件的路径。(默认值:None)

此选项为必选项。

--in-tumor-bam IN_TUMOR_BAM

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

此选项为必选项。

--in-normal-bam IN_NORMAL_BAM

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

--in-tumor-recal-file IN_TUMOR_RECAL_FILE

肿瘤样本碱基质量分数重校准后的报告文件路径。(默认值:None)

--in-normal-recal-file IN_NORMAL_RECAL_FILE

正常样本碱基质量分数重校准后的报告文件路径。(默认值:None)

--interval-file INTERVAL_FILE

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

--mutect-bam-output MUTECT_BAM_OUTPUT

应写入组装单倍型的文件。如果使用 --run-partition 传递,将输出多个 BAM 文件。(默认值:None)

--pon PON

vcf.gz PON 文件的路径。确保您首先运行 prepon,并且已存在 '.pon' 文件。(默认值:None)

--mutect-germline-resource MUTECT_GERMLINE_RESOURCE

vcf.gz 种系资源文件的路径。包含等位基因分数的种系测序群体 VCF。(默认值:None)

--mutect-alleles MUTECT_ALLELES

vcf.gz 强制调用文件的路径。要强制调用的等位基因集,无论证据如何。(默认值:None)

工具选项

--max-mnp-distance MAX_MNP_DISTANCE

两个或多个由该距离或更小距离分隔的定相取代合并为 MNP。(默认值:1)

--mutectcaller-options MUTECTCALLER_OPTIONS

将支持的 mutectcaller 选项作为字符串传递。目前支持以下原始 mutectcaller 选项:-pcr-indel-model <NONE, HOSTILE, AGGRESSIVE, CONSERVATIVE>、-max-reads-per-alignment-start <int>,(例如 --mutectcaller-options="-pcr-indel-model HOSTILE -max-reads-per-alignment-start 30")。(默认值:None)

--initial-tumor-lod INITIAL_TUMOR_LOD

考虑堆积激活的 Log 10 优势阈值。(默认值:None)

--tumor-lod-to-emit TUMOR_LOD_TO_EMIT

将变异体发射到 VCF 的 Log 10 优势阈值。(默认值:None)

--pruning-lod-threshold PRUNING_LOD_THRESHOLD

自适应剪枝算法的 Ln 似然比阈值。(默认值:None)

--active-probability-threshold ACTIVE_PROBABILITY_THRESHOLD

位点被视为激活的最小概率。(默认值:None)

--no-alt-contigs

忽略常见的替代 contigs。(默认值:None)

--genotype-germline-sites

调用所有明显的种系位点,即使它们最终会被过滤掉。(默认值:None)

--genotype-pon-sites

调用 PoN 中的位点,即使它们最终会被过滤掉。(默认值:None)

--force-call-filtered-alleles

强制调用 --alleles 指定的资源中包含的已过滤等位基因。(默认值:None)

--filter-reads-too-long

忽略所有大小 > 500bp 的输入 BAM 读取。(默认值:None)

--tumor-name TUMOR_NAME

肿瘤读取样本的名称。这必须与肿瘤 BAM 文件中的 SM 标签匹配。(默认值:None)

此选项为必选项。

--normal-name NORMAL_NAME

正常读取样本的名称。如果指定,则必须与正常 BAM 文件中的 SM 标签匹配。(默认值:None)

-L INTERVAL, --interval INTERVAL

从 BAM/CRAM 文件中调用变异的区间。所有区间都将具有 100 的填充以获取读取记录,并且重叠的区间将被组合。间隔文件应使用 --interval-file 选项传递。此选项可以多次使用(例如 "-L chr1 -L chr2:10000 -L chr3:20000+ -L chr4:10000-20000")。(默认值:None)

-ip INTERVAL_PADDING, --interval-padding INTERVAL_PADDING

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

性能选项

--mutect-low-memory

在 mutect 调用器中使用低内存模式。(默认值:None)

--run-partition

打开分区模式;将基因组划分为多个分区,每个分区运行 1 个进程。(默认值:None)

--gpu-num-per-partition GPU_NUM_PER_PARTITION

每个分区要使用的 GPU 数量。(默认值:None)

--num-htvc-threads NUM_HTVC_THREADS

要使用的 CPU 线程数。(默认值:5)

常用选项

--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)。

上一个 minimap2 (Beta)
下一个 ont_germline
© 版权所有 2025,Nvidia。 上次更新于 2025 年 1 月 13 日。