28
概述 本文档是英特尔与博德研究所合作开发的参考平台和开展的基准测试工作的指南。基准 测试工作包括自动化来自博德研究所的 GATK 最佳实践工作流,以及为全基因组和外显 子组中的种系短变异体发现提供系统级分析数据。本文档中收集的数据显示了如何最好 地利用最新的基于英特尔® 架构的平台。 GATK 最佳实践工作流由两条核心流水线组成,这些流水线将按顺序执行:1) 预处理, 将原始读段处理为分析就绪映射读段;2) 变异体发现,将分析就绪读段处理为变异体。 在从 BWA 到 GATK Haplotype Caller 的工作流中,每样本数据预处理和变异体识别段 被作为单样本识别流水线予以实施,而在从 GenotypeGVCF 到 ApplyRecalibration 的工作流中,对一组数据集进行操作的步骤被作为联合分析流水线予以实施。 这两个流水线的流程均被构建为 Perl 脚本。除了运行这些工具之外,还可以通过 Workflow Profiler(一个英特尔开源项目,网址为 https://01.org/workflow-profiler 收集各个工具以及整体流水线的系统级数据。针对这两个流水线,本文档收集并提供了 全基因组序列 (WGS) 和外显子组序列 (Ex) 的基准测试结果。 GATK 最佳实践工作流 输 入: FASTQ 文件,b37 捆绑包包含参考基因组、Hapmap、Omni、dbSNP、1000G Phase SNP 和 Mills indels。 输出: 已处理的 VCF 文件(由单样本识别 Haplotype Caller 步骤生成)和已筛选的 VCF 文件(由联合分析 VQSR 步骤生成)。 工具和技术: BWA、Picard 工具、GATK。 工具版本: 以下是截至 2015 年 8 月 11 日为本项目下载的最新版本的工具。 工具 版本 链接 BWA 0.7.12-r1044 https://github.com/lh3/bwa PICARD 1.137 https://github.com/broadinstitute/picard GATK 3.4-46-g8ea4dca https://github.com/broadgsa/gatk-protected 表 1. 工具版本 作者 Abirami Prabhakaran 设计工程师,英特尔公司 Beri Shifaw 生命科学架构师,英特尔公司 Mishali Naik 高级技术架构师,英特尔公司 Paolo Narvaez 首席工程师,英特尔公司 Geraldine Van der Auwera 外联与通信经理, 麻省理工学院-哈佛大学博德研究所 George Powley 硬件 / 软件架构师,英特尔公司 Serge Osokin 软件工程师,英特尔公司 Ganapati Srinivasa 高级首席工程师, 精准医疗平台主任, 英特尔公司 面向 GATK 最佳实践流水线部署的 基础设施 行业 解决方案关注领域 白皮书

面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

  • Upload
    dominh

  • View
    433

  • Download
    5

Embed Size (px)

Citation preview

Page 1: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

概述本文档是英特尔与博德研究所合作开发的参考平台和开展的基准测试工作的指南。基准测试工作包括自动化来自博德研究所的 GATK 最佳实践工作流,以及为全基因组和外显子组中的种系短变异体发现提供系统级分析数据。本文档中收集的数据显示了如何最好地利用最新的基于英特尔® 架构的平台。

GATK 最佳实践工作流由两条核心流水线组成,这些流水线将按顺序执行:1) 预处理,将原始读段处理为分析就绪映射读段;2) 变异体发现,将分析就绪读段处理为变异体。在从 BWA 到 GATK Haplotype Caller 的工作流中,每样本数据预处理和变异体识别段被作为单样本识别流水线予以实施,而在从 GenotypeGVCF 到 ApplyRecalibration 的工作流中,对一组数据集进行操作的步骤被作为联合分析流水线予以实施。

这两个流 水线的流 程 均被构建为 Perl 脚本。除了运行这些工具之外,还可以 通 过 Workflow Profiler(一个英特尔开源项目,网址为 https://01.org/workflow-profiler)收集各个工具以及整体流水线的系统级数据。针对这两个流水线,本文档收集并提供了全基因组序列 (WGS) 和外显子组序列 (Ex) 的基准测试结果。

GATK 最佳实践工作流输入:FASTQ 文件,b37 捆绑包包含参考基因组、Hapmap、Omni、dbSNP、1000G Phase SNP 和 Mills indels。

输出:已处理的 VCF 文件(由单样本识别 Haplotype Caller 步骤生成)和已筛选的 VCF 文件(由联合分析 VQSR 步骤生成)。

工具和技术:BWA、Picard 工具、GATK。

工具版本:以下是截至 2015 年 8 月 11 日为本项目下载的最新版本的工具。

工具 版本 链接

BWA 0.7.12-r1044 https://github.com/lh3/bwa

PICARD 1.137 https://github.com/broadinstitute/picard

GATK 3.4-46-g8ea4dca https://github.com/broadgsa/gatk-protected

表 1. 工具版本

作者

Abirami Prabhakaran设计工程师,英特尔公司

Beri Shifaw生命科学架构师,英特尔公司

Mishali Naik高级技术架构师,英特尔公司

Paolo Narvaez首席工程师,英特尔公司

Geraldine Van der Auwera外联与通信经理,

麻省理工学院-哈佛大学博德研究所

George Powley硬件 / 软件架构师,英特尔公司

Serge Osokin软件工程师,英特尔公司

Ganapati Srinivasa高级首席工程师,

精准医疗平台主任, 英特尔公司

面向 GATK 最佳实践流水线部署的基础设施

行业解决方案关注领域

白皮书

Page 2: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

2

单样本识别和联合分析流水线的流程单 样 本 流 水 线 假 设 我 们 从初 始 FASTQ 文件入手,为整 个样 本运行从 BWA-Mem 到 GATK HaplotypeCaller 的阶段。所有样本都通过单样本流 水线进行处理后,由 Haplotype Caller 生成的每样本 GVCF 将被传递到联合分析流水线进行队列研究;最终将得到一个变异体识别 VCF 文件,其中含有针对所有站点所有样本的基因型,对此已经应用了筛选器将可能的伪影与真实变异体区分开来。

图 1 显示了博德 GATK 最佳实践流水线(最高至 HaplotypeCaller),其中在基准识别 + 映射阶段使用 BWA 映射到参考架构,使用 Picard 工具进行排序。图 2 描述了始于 GenotypeGVCF、止于 ApplyRecalibration 的种系短变异体发现流水线的实施。处理步骤为深蓝色,输入 / 输出为灰色。

在该流水线的第一阶段,BWA-Mem 在输入的 FASTQ 文件上执行比对,并产生序列 比对 / 映射 (SAM) 文件,该文件然后通过 Picard SortSam 进行处理,生成排序后的 BAM(SAM 的二进制版本)文件。然后将该排序后的 BAM 文件传送给 Picard 工具 MarkDuplicates,它会删除排序后的 BAM 文件中的任何重复片段,并生成一个合并的、去除重复片段的 BAM 文件。接下来的几个步骤:RealignerTargetCreator、IndelRealigner、BaseRecalibrator、PrintReads 和 HaplotypeCaller 是 GenomeAnalysisToolKit (GATK) 的一部分,它是对高吞吐序列数据进行分析的软件包。这些工具已经过配置,符合 GATK 最佳实践指南的要求。重要的是要注意,在此流水线中使用较新的 HaplotypeCaller 作为变异体识别程序,而非较旧的 UnifiedGenotyper。HaplotypeCaller 较之前的版本有很多改进,GATK 网站上对此进行了探讨 (https://www.broadinstitute.org/gatk/guide/best-practices.php)。

然后,GenotypeGVCFs 工具负 责在由 HaplotypeCaller 生成的每样本 GVCF 文件(扩展名为 .g.vcf)上执行联合基因分型,并为该队列生成单个 VCF。该队列 VCF 可以经由 VariantFiltration,预先筛选近交系数。接下来,应用 VariantRecalibrator 和 ApplyRecalibration 工具进行变异体质量得分重新校正 (VQSR),每个工具应用两次,一次针对 indel,一次针对 SNP。VQSR 是一种筛选技术,使用机器学习算法创建经过精确校正的分数,称为变异体质量得分对数几率 (VQSLOD),其用处是,针对给定的真值集,将突变集筛选到所需的敏感度水平。流水线的最终输出是一个筛选后的 VCF。

目录

概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1

GATK 最佳实践工作流 . . . . . . . . . . . . 1

单样本识别和联合分析流水线 工作流 . . . . . . . . . . . . . . . . . . . . . . . . 2

流水线参数 . . . . . . . . . . . . . . . . . . . . 5

线程和进程级并行 . . . . . . . . . . . . . . 6

分散 - 聚集 . . . . . . . . . . . . . . . . . . . . 7

Perl 脚本 . . . . . . . . . . . . . . . . . . . . . 7

Workflow Profiler . . . . . . . . . . . . . 7

硬件规格 . . . . . . . . . . . . . . . . . . . . . . . . 8

应用于基因组的单样本识别和 联合分析流水线 . . . . . . . . . . . . . . . . . . 9

数据集 . . . . . . . . . . . . . . . . . . . . . . . . 9

分析结果 . . . . . . . . . . . . . . . . . . . . . . . 10

单线程与并行运行 . . . . . . . . . . . . . 10

CPU 利用率 . . . . . . . . . . . . . . . . . . 11

线程 / 进程 - 跨流水线组件的 扩展 . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

应用于外显子组的单样本识别和 联合分析流水线 . . . . . . . . . . . . . . . . . 14

数据集 . . . . . . . . . . . . . . . . . . . . . . . 14

分析结果 . . . . . . . . . . . . . . . . . . . . . 15

单个运行与分组运行 . . . . . . . . . . . 15

单线程与并行运行 . . . . . . . . . . . . . 16

CPU 利用率 . . . . . . . . . . . . . . . . . . 17

线程 / 进程 - 跨流水线组件的 扩展 . . . . . . . . . . . . . . . . . . . . . . . . . 18

结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Page 3: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

3图 1. 最佳实践流水线概览

01

2

3

4

5

6

7

8

正向 FastQ 文件

参考 Fasta 文件

Indels VCF 文件

D6SNP VCF 文件

反向 FastQ 文件

$baseNameLane. “.sam”

$baseNameLane. “.bam”

$baseName. “_dupRem.bam”

$baseName. “_reain.intervals”

$baseName. “_realign.bam”

$baseName. “_recal.grp”

$baseName. “_final.bam”

$baseName. “_HaplotypeCaller.g.vcf”

$baseName. “_dup.metrics”

BWA-MEM

PICARD SORTSAM

GATK INDELREALIGNER

GATK PRINTREADS

GATK REALIGNERTARGET CREATOR

GATK BASERECALIBRATOR

GATK HAPLOTYPE CALLER

PICARD 标记 重复片段

Page 4: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

4图 2. 联合分析流水线

012

3

4

5

6

GenotypeGVCF

VarientFiltration

ApplyRecalibration

VarientRecalibrator

ApplyRecalibration

VarientRecalibrator

Sample1.g.vcf

Raw.calls.vcf

preFiltered.call.vcf

Reference.fastaSnps.recal

indels.recal

Recal.calls.vcf

Hapmap.vcf

Omni.vcf

Mills.vcf

dbsnp_138.vcf

1000G_phase1.snps.high_ confidence.vcf

Snps.tranches

Recal.snps.raw.indels.vcf

indels.tranches

Sample2.g.vcf SampleN.g.vcf

Page 5: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

5

流水线参数下面列出了每个工具的参数的详细信息。对于大多数工具,使用“I”和“O”参数处理输入和输出。如有提及,“NUMTHREADS”将占用作为 Perl 脚本输入提供的线程数,“GENOMEREF”是参考 fasta 文件,“DBSNP VCF”是 dbsnp vcf 文件,“INDELS VCF”是 indels.vcf 文件,这些文件全部由用户提供。

BWA-Mem:根据大型参考基因组映射低分散序列。

M

-a

-t “NUMTHREADS”

-R “GENOMEREF”

ID:<uniqueid> LB:<libraryname> SM:<samplename> PL:<platformname>

对于 -R 选项,提供与流动细胞计数池和泳道号相关的唯一 ID,并提供库名称、样本名称和平台名称。

SortSam:对输入的 SAM 或 BAM 进行排序并创建索引文件。

SORT_ORDER=坐标

CREATE_INDEX=TRUE

MarkDuplicates:在提供的 SAM 或 BAM 文件中检查经过比对的记录,找出重复序列。

M=$duplicateMetricsFile

CREATE_INDEX=TRUE

RealignerTargetCreator:向目标区域发布 IndelRealigner 的区段,对这些区段进行局部重新比对。

-nt “NUMTHREADS”

--已知的“INDELS VCF”

-R “GENOMEREF”

[-L exome_targets.intervals] # 如果在外显子组上运行

[-ip 50] # 如果在外显子组上运行(区段填充)

IndelRealigner:对读段执行局部重新比对,纠正由于存在 indel 而导致的不整齐。

-targetIntervals < 来自 RealignerTargetCreator 的输出 >

--已知的“INDELS VCF”

-R “GENOMEREF”

BaseRecalibrator:识别测序仪给出的基准质量分值中的系统性错误,并计算用于相应调整基准质量分值的重新校正模型。

--已知站点“DBSNP VCF”

-R “GENOMEREF”

[-L exome_targets.intervals] # 如果在外显子组上运行

[-ip 50] # 如果在外显子组上运行(区段填充)

PrintReads:生成按坐标顺序排列的重新校正的合并输出 bam 文件。

-R “GENOMEREF”

-BQSR < 来自 BaseRecalibrator 的输出 >

HaplotypeCaller:通过局部重组单倍型来识别种系 SNP 和 indel,产生与所有站点中所有可能基因型类似的基因组 VCF。

-R “GENOMEREF”

-ERC GVCF

--variant_index_type LINEAR

--variant_index_parameter 128000

[-L exome_targets.intervals] # 如果在外显子组上运行

[-ip 50] # 如果在外显子组上运行(区段填充)

GenotypeGVCFs:合并 gVCF 以便创建基因型 VCF。

-nt “NUMTHREADS”

-R “GENOMEREF”

-D “DBSNP VCF”

-V <input>

VariantFilteration:根据用户定义的参数硬筛选 VCF。

-R “GENOMEREF”

-V <input>

--filterExpression \”InbreedingCoeff < -0.3\”

--filterName \”InbreedingCoeff\”

Page 6: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

6

VariantRecalibrator SNP:为每个变异体分配称为 VQSLOD 的精确校正的概率分数。

-nt “NUMTHREADS”

-R “GENOMEREF”

-recalFile <output>

-tranchesFile <output>

-allPoly

-tranche 100.0 -tranche 99.95 -tranche 99.9 -tranche 99.8 -tranche 99.6 -tranche 99.5 -tranche 99.4 -tranche 99.3 -tranche 99.0 -tranche 98.0 -tranche 97.0 -tranche 90.0

- an QD -an MQRankSum -an ReadPosRankSum -an FS -an MQ -an SOR

- resource:hapmap,known=false,training=true,truth=true,prior=15 <hapmap resource file>

- resource:omni,known=false,training=true,truth=true,prior=12 <omini resource file>

- resource:1000G,known=false,training=true,truth=false,prior=10 <1000G resource file>

- resource:dbsnp138,known=true,training=false,truth=false,prior=7 “DBSNP VCF”

--maxGaussians 6

-mode SNP

ApplyRecalibration SNP:使用 VQSLOD 动态筛选 VCF。

-nt “NUMTHREDS”

-R “GENOMEREF”

-recalFile <output of VariantRecalSNP>

-tranchesFile <output of VariantRecalSNP>

-ts_filter_level 99.6

-mode SNP

VariantRecalibrator INDEL:为每个变异体分配称为 VQSLOD 的精确校正的概率分数。

-nt “NUMTHREDS”

-R “GENOMEREF”

-recalFile <output>

-tranchesFile <output>

-allPoly

-tranche 100.0 -tranche 99.95 -tranche 99.9 -tranche 99.5 -tranche 99.0 -tranche 97.0 -tranche 96.0 -tranche 95.0 -tranche 94.0 -tranche 93.5 -tranche 93.0 -tranche 92.0 -tranche 91.0 -tranche 90.0

- an FS -an ReadPosRankSum -an MQRankSum -an QD -an SOR

- resource:mills,known=false,training=true,truth=true,prior=12 ”INDEL VCF”

- resource:dbsnp138,known=true,training=false,truth=false,prior=2 “DBSNP VCF”

--maxGaussians 6

-mode INDEL

ApplyRecalibration INDEL:使用 VQSLOD 动态筛选 VCF。

-nt “NUMTHREDS”

-R “GENOMEREF”

-recalFile <output of VariantRecalINDEL>

-tranchesFile <output of VariantRecalINDEL>

-ts_filter_level 95.0

-mode INDEL

线程和进程级并行当适用于上述用于基准测试的工具时,启用线程级并行和进程级并行。线程级并行可描述为将一个任务分解成几个独立部分,然后在同一进程中使用多个线程运行这些独立部分。同一进程内的不同线程可以在它们之间共享内存。虽然进程级并行使用多个线程运行多个类似的进程,但却是对数据的不同部分运行这些进程,任务之间无内存共享。两者具有相同的分而治之概念,有助于加快总体流水线执行时间。

对于单样本识别流水线,线程级并行技术应用于 BWA 和 GATK RealignerTargetCreator,而基 于 进程 级 并 行处 理 的 Scatter-Gather(分散 / 聚集)技术则应用于所有剩余的 GATK 工具—— IndelRealigner、BaseRecalibrator、PrintReads 和 HaplotypeCaller。

Page 7: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

7

对于联合分析流水线,VariantRecalibrator 目前无法执行进程级并行处理,对于其余的工具,线程和进程级并行技术的比较显示,时间上没有明显的改善。因此,联合分析部分中的所有工具都使用 GATK 的集成 -nt 参数来应用线程级并行技术。对于普通的研究人员而言,该选项比进程级并行更容易实施,因为后者需要为每个工具编写 scala 脚本。

分散 - 聚集我 们实 施了一个简单的 轮 询 作 业调 度引擎“CMPShell”,使 用“ 队 列” 利 用 GATK 中 的 分 散 - 聚 集 技 术。IndelRealigner、BaseRecalibrator、PrintReads 和 HaplotypeCaller 都启用了分散 - 聚集技术。将命令行参数“-jobRunner CMPShell”传递给 Queue.jar 便可使用 CMPShell 引擎。

我们的“CMPShell”调度解决方案非常适用于这种在单个节点上只执行一个流水线的基准测试练习。它为我们提供了单次执行的所有性能和分析信息。在通过多个节点一次执行多个流水线的更复杂的情况下,需要更复杂的调度解决方案。

Perl 脚本上述工具流及其参数包装在用于单样本识别的几个 Perl 脚本 (single_sample_calling_data_collection_gatk_best_practices.pl 和 single_sample_calling_data_collection_gatk_best_practices_optimized.pl)以及用于联合分析流水线 的 一 个 Perl 脚 本 中 (joint_analysis_data_collection_gatk_best_practices_optimized.pl)。所有这些脚本都被设计为采用相同的参数,以便在运行测试时保持一致性。

对于未经优化的单线程基准分析,运行 single_sample_data_collection_gatk_best_practices.pl 脚本,NumThreads 为“1”。

对 于 线 程 级 和 进 程 级 并 行 分 析, 使 用 single_sample_data_collection_gatk_best_practices_optimized.pl 脚本,NumThreads 如以下结果部分所示。在此 Perl 脚本中,预先启用 GATK 组件的进程级并行。

对于联合分析,运行 joint_analysis_data_collection_gatk_best_practices_optimized.pl 脚本,在基准运行中,NumThreads 为 1,在优化运行中,NumThreads 如结果部分所示。

所有三个脚本都采用以下参数:

SampleName NumThreads InputDataDirectory TempOutputDirectory profiling

其中:

SampleName:正在测试的样本的有意义的名称。(例如:sim1M_pairs)。

NumThreads:您希望工具在当前系统上运行的线程数。 并非所有工具都采用此参数。

InputDataDirectory:此流水线的输入文件的位置(例如:input_datasets)。

TempOutputDirectory:您希望输出文件驻留的位置。该脚本还会在此目录中生成 * _processing.log 和 * _output.log 文件作为日志记录。

Profiling:ON [1] 或 OFF [0]。没有默认值,必须输入此值。

如果 Profiling 为 ON,则需要提供以下附加输入:

– collectstatspath:此脚本收集系统级数据时的路径

– interval:用于分析的抽样间隔,以秒为单位 [ 可以使用默认值 30s]

– stats:从以下选项中选择:[--sar || --iostat || - collectl]

示例:

没有分析:

perl single_sample_data_collection_gatk_best_practices.pl sim1M_pairs 16 input_datasets/ /foo/pipeline_output/ 0

有分析:

perl single_sample_data_collection_gatk_best_practices.pl sim1M_pairs 16 input_datasets/ /foo/pipeline_output/ 1 profiling_tools/collect_stats.ksh 30 --sar –iostat --collectl

Workflow Profiler虽然上述脚本可以在有 / 没有分析的情况下独立运行,但建议在必要时使用此处提供的 Workflow Profiler 开源包收集分析统计信息。

Workflow Profiler 允许应用程序和系统开发人员最大限度地提高其系统资源的效率。这是通过在用户定义的工作流的各个阶段,对处理器、内存、存储和网络使用情况进行粗粒度跟踪来实现的,同时仍然提供整体工作流的统一视图。

详细的文档和用户指南在上述链接中提供,Workflow Profiler 可以从此处下载。

Page 8: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

8

下面简要介绍了 Workflow Profiler 的使用情况,供您参考:

python3 workflow_profiler.py workflow_script workflow_name sample_name no_of_threads input_directory output_directory [flags]

位置参数 [ 需要按以下顺序提供 ]:

workflow_script 工作流脚本位置。 示例:/foo/data_collection_workflow.pl

workflow_name 工作流名称

sample_name 样本名称

no_of_threads 要运行的线程数

input_directory 输入文件所在的目录

output_directory 将存储输出数据的目录

可选参数:

- pr PROFILING, --profiling PROFILING 是否希望分析此工作流?默认为 ON。

- pp POST_PROCESSING, --post-processing POST_PROCESSING 是否希望运行解析器来生成 CSV 和图表?默认为 ON。

- int SAMPLING_INTERVAL, --sampl ing_interval SAMPLING_INTERVAL 用于分析的抽样间隔,以秒为单位。默认值 =30

- w SLIDING_WINDOW, --sliding_window SLIDING_WINDOW 绘图滑动窗口(平均),以秒为单位。默认值 =100

- p, --plot 绘制所有数据

Statistics:统计选项

-A, --all 分析全部统计信息

-s, --sar 分析 sar 信息

-i, --iostat 分析 iostat 信息

-c, --collectl 分析 collectl 信息

示例:

运行一个工作流,并使用默认设置捕获分析和后处理数据(已收集统计信息并启用绘图)

workflow_profiler.py single_sample_data_collection_gatk_best_practices.pl gatk_best_practices simulated 16 /data/simulated/ /foo/test/-Ap

运行一个工作流,并使用不同的采样间隔仅捕获 sar 分析数据(不做后处理)

workflow_profiler.py single_sample_data_collection_gatk_best_practices.pl gatk_best_practices simulated 16 /data/simulated/ /foo/test/-pp 0 -int 100 –s

硬件规格对于英特尔优化功能的使用,我们建议的参考平台如下所示:

基本要素 英特尔® 服务器主板 S2600TPF

CPU 类型 2.30 GHz 英特尔® 至强® 处理器 E5-2699 v3

插槽 2

每个插槽的内核数 18

每个内核的线程数 1

内核数 36

RAM 256 GB

本地驱动器一个希捷星座硬盘 | 型号 ST4000NM0033 | 3.6 TB | 最大持续传输率 175 MB/s

超线程 禁用

表 2. 参考硬件

除非另有说明,否则在以下 WGS 和 Ex 序列结果中讨论的所有运行,都是一次执行 1 个流水线作业。所有测试都被本地化到一个节点,每个节点包含两个 CPU 插槽,每个插槽有 18 个内核。由于禁用超线程,因此每个内核的硬件线程数为 1。每个运行的软件线程数将从 1 到 36 不等,正如在结果的每个步骤中所讨论的那样。将为已更改默认配置的那些运行指定以下关键字。

关键字

流水线数 1

软件线程 / 流水线数 36

节点数 1

内核 / 节点数 36

硬件线程 / 内核数 1

表 3. 结果的关键字

Page 9: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

9

应用于基因组的单样本识别和联合分析流水线

数据集

为单样本识别流水线选择的 FastQ 数据集包括表 4 中提到的样本。针对全基因组鸟枪法测序 (WGS) 运行了基于图 1 的流水线。联合分析流水线基准测试中使用的数据集列在表 5 中。这些 VCF 数据集是通过将 Solexa fastq 文件传递通过单样本识别流水线获得的。单样本识别流水线 HaplotypeCaller 中的最后一个工具为每个 WGS 样本创建了三个文件。这三个文件包括一个 GVCF 文件(扩展名为 .g.vcf)和两个变异体文件支持文件,这两个文件分别是索引文件和日志文件(分别具有扩展名 .idx 和 .out)。表 6 中提到了用于两个流水线的参考和资源文件。

序列类型 样本 使用的文件 大小 (GB) 测序覆盖度(倍数)

读长

输入 WGS 数据集

Solexa-272221Solexa-272221_1.fq

Solexa-272221_2.fq

131

13130 倍 2x151

Solexa-272222Solexa-272222_1.fq

Solexa-272222_2.fq

132

13230 倍 2x151

Solexa-272228Solexa-272228_1.fq

Solexa-272228_2.fq

133

13330 倍 2x151

表 4. WGS 的数据集选择

序列类型 样本 使用的文件 大小

输入 WGS 数据集

Solexa-272221

Solexa-272221_1.g.vcf

Solexa-272221_1.idx

Solexa-272221_1.out

69G

196K

1.5M

Solexa-272222

Solexa-272222_1.g.vcf

Solexa-272222_1.idx

Solexa-272222_1.out

68G

196K

2.0M

Solexa-272228

Solexa-272228_1.g.vcf

Solexa-272228_1.idx

Solexa-272228_1.out

72G

1.5M

12K

表 5. 联合分析流水线的 WGS 数据集

文件类型 使用的文件 大小

参考基因组 human_g1k_v37.fasta 3.0G

dbSNP VCF 文件 dbsnp_138.b37.vcf 10G

Indels VCF 文件 1000G_phase1.indels.b37.vcf 0.2G

HapMap VCF 文件 hapmap_3.3.b37.vcf 0.2G

Omni VCF 文件 1000G_omni2.5.b37.vcf 0.2G

1000 基因组 1000G_phase1.snps.high_confidence.b37.vcf 6.9G

Mills VCF 文件 Mills_and_1000G_gold_standard.indels.b37.vcf .08G

外显子组区段 Broad.human.exome.b37.interval_list 6.8G

表 6. 单样本识别和联合分析流水线的资源文件

Page 10: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

10

分析结果

单线程与并行运行

针对整个 WGS 样本 Solexa-272221,测量了基准单线程执行时间并将其与部分并行化流水线进行比较,以显示如前所述的利用线程和进程级并行性可以实现的加速。

通过运行 single_sample_data_collection_gatk_best_practices perl 脚本采集了表 7 中的基准执行时间和优化执行时间。对于 BWA-Mem 和 GATK RealignerTargetCreator,多线程运行的 NUMTHREADS 设置为 36,并为最后四个 GATK 组件启用了分散 -聚集 IO。第三列中列出了从基准执行时间到优化执行时间的加速。整体而言,对于这整个样本,从 BWA-Mem 到 HaplotypeCaller 阶段的执行时间从原来的 227 小时,加速到了 36 小时。

注意:在这两种情况下,Picard SortSam 和 MarkDuplicates 均以默认设置运行。

工具 单线程 Solexa-272221 36 线程 Solexa-272221 加速(倍数)

BWA Mem 92:03:19 3:50:58 23.9

Picard SortSam 7:55:51 6:36:35 1.2

Picard MarkDuplicates 6:34:47 5:45:15 1.1

GATK RealignerTargetCreator 5:58:20 0:18:56 18.9

GATK IndelRealigner 7:24:38 3:52:38 1.9

GATK BaseRecalibrator 19:49:07 1:56:07 10.2

GATK PrintReads 23:54:38 7:28:08 3.2

GATK HaplotypeCaller 63:39:09 6:18:39 10.1

总计执行时间 227:19:49 36:7:16 6.3

表 7. 一个 WGS 样本的基准执行时间和优化执行时间

在对联合分析流水线运行基准与优化分析之前,另外两个 WGS 通过单样本识别流水线运行,结果如表 8 中所示。该表的目的是通过具有相似特征的不同样本的数据集,显示流水线执行时间的一致性。所有正在运行的样本显示出,完成流水线的时间类似。每个样本的时间略有不同,这归因于样本大小的不同。表 4 中列出的数据集大小显示出 Solexa-272221 的大小最小,Solexa-272228 的大小最大。这与总运行时间相关,因为 Solexa-272221 具有最短执行时间,Solexa-272228 具有最长执行时间。研究人员应该会有类似的时间,但由于硬件 / 软件和数据集的差异,也可能有些许不同。

工具 36T 并行化 Solexa-272221 36T 并行化 Solexa-272222 36T 并行化 Solexa-272228

BWA Mem 3:50:58 3:55:24 3:58:13

Picard SortSam 6:36:35 6:34:48 6:38:06

Picard MarkDuplicates 5:45:15 5:48:14 6:10:11

GATK RealignerTargetCreator 0:18:56 0:16:58 0:45:40

GATK IndelRealigner 3:52:38 3:47:38 4:12:08

GATK BaseRecalibrator 1:56:07 2:03:38 1:57:08

GATK PrintReads 7:28:08 7:30:08 7:13:37

GATK HaplotypeCaller 6:18:39 6:35:09 5:52:08

总计执行时间 36:7:16 36:31:57 36:47:11

表 8. 三个 WGS 样本的执行时间(使用 36 个线程)

Page 11: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

11

表 9 列出了联合分析流水线的相同基准和优化运行比较。该表显示,GenotypeGVCF 在单线程运行期间需要最多的时间,但随着优化功能的启用所需的时间急剧减少。优化功能可以将 GenotypeGVCFs 的执行时间加速 12 倍。流水线中的其他优化工具(VariantRecalibrator 和 ApplyRecalibration)略有加速但不超过 2.1 倍。总体上,启用优化功能后,流水线执行时间可以加速大约 6.7 倍。

工具 1 线程 Solexa-Trio 36 线程 Solexa-Trio 加速(倍数)

GenotypeGVCFs 11:23:19 0:56:56 12

VariantFiltration 0:12:14 0:10:06 1.2

VariantRecalibrator_SNP 0:38:45 0:31:44 1.2

ApplyRecalibration_SNP 0:07:07 0:03:22 2.1

VariantRecalibrator_INDEL 0:12:21 0:06:56 1.8

ApplyRecalibration_INDEL 0:03:13 0:03:10 1.0

总计执行时间 12:36:59 1:52:14 6.7

表 9. WGS Trio 样本的基准执行时间和优化执行时间

CPU 利用率

图 3 显示了使用 Workflow Profiler 生成的 Solexa-272221 并行流水线的平均 CPU 利用率图。该图显示了整个流水线执行过程中使用的所有 36 个内核的百分比。流水线的不同阶段或工具以不同的颜色突出显示,相关工具显示在图例中。该图显示,BWA 是最能有效利用增加的 CPU 资源的工具。接下来的两个阶段 SortSam 和 MarkDuplicates 没有达到可用 CPU 的 50%。GATK 工具集中的两个工具 RealignerTargetCreator 和 BaseRecalibrator 的可用 CPU 利用率较高。然而,其他 GATK 阶段在每个工具开始运行时都会呈现 CPU 利用率高峰(当分散 - 聚集 IO 启动多个进程时),但大多数的运行在初始高峰后会降至约 5%(当大多数聚集工作通过单一进程完成时)。每个阶段的 CPU 利用率与表 7 中的加速时间有一些关联,能够最有效使用可用 CPU 内核的工具拥有最快的加速时间。流水线使用的资源的其他方面也已测量。

除 CPU 利用率之外,Workflow Profiler 还提供显示每秒平均 I/O 读 / 写数、I/O 等待时间和提交的内存映射的图表(包含在附录中)。可以进一步分析附录中的图表,以确定除数据处理之外,流水线的哪些方面还可能会阻碍速度。I/O 等待时间是读取或写入文件时访问硬盘所需的时间。在这些时候,CPU 正在等待数据,并没有得到有效利用。了解流水线利用的资源的各个方面,可以对各个应用程序进行概要分析,从而识别瓶颈并作进一步优化。

Page 12: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

12

图 4 描述了使用 36 个线程的联合分析流水线执行过程中的总 CPU 利用率。流水线中的第一个工具 GenotypeGVCFs 使用最多的 CPU,有时达到接近 100% 的利用率(高效使用所有可用的 36 个内核)。但是,这种水平的 CPU 利用率在工具的整个运行过程中并不一致,有时 CPU 利用率会下降至 30%。流水线中的另一个工具 VariantFiltration 不利用 GATK 的内置并行功能,这也就是图中 CPU 利用率较低的原因。接下来的几个步骤在 VariantRecalibrator 与 ApplyRecalibration 之间交替进行。VariantRecalibrator 在第一次启动时使用最多的内核,但在运行过程中会大大减少内核的使用。ApplicationRecalibration 显示了类似的模式,开始时 CPU 利用率很高,随后在运行的短时间内急剧下降。该流水线中的工具显示了可以进一步改进优化的领域。

图 3. 单样本识别优化运行的总 CPU 利用率

图 4. 联合分析优化运行的总 CPU 利用率

100

80

60

40

%

20

00 5 10 15 20 25 30 35 40

总 CPU 利用率Solexa-272221_gatk_best_practices_36t_30s

时间(小时)

工作流阶段bwa men PrintReadsRealignerTargetCreatorSortSam HaplotypeCallerIndelRealignerMarkDuplicates BaseRecalibrator

100

80

60

40

%

20

00.0 0.5 1.0 1.5 2.0

总 CPU 利用率Solexa_trio_gatk_variant_dis_36t_30s

时间(小时)

工作流阶段

GenotypeGVCFs VariantRecalibratorSNP VariantRecalibratorIndelVariantFiltration ApplyRecalibrationSNP ApplyRecalibratioIndel

Page 13: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

13

线程 / 进程 - 跨流水线组件的扩展下图显示了执行时间如何随着流水线中各个流水线组件的线程 / 进程数量而变化。对于数据集 Solexa-272221,随着线程数量从 1 增加到 36,所有组件的运行时间都会减少。此外,图中显示,线程数量越高,执行时间的减少越不显著。这是由于并行处理的本质导致的。最初有几个线程处理一个大的数据集,这缩短了运行时间。然而,将运行划分为较小的部分,在单独的线程上发布,并最终将这些部分重新组合成一个大文件,确实很花费时间。这个开销随着正在使用的线程数量的增加而增加,因此在某些时候,更多的线程反而会拖延总运行时间。因此,不能任意选择线程 / 进程数;例如,线程扩展取决于大小,因为每个单独线程 / 进程完成的工作量必须大于组合每个单独线程 / 进程完成的工作或同步时所花费的时间。明智地利用正在分析的样本数量和可用的线程数,可以帮助研究人员在较短的时间内完成一组分析。

图 5. Solexa-272221 的线程 / 进程扩展

图 6. 使用 WGS 时单样本识别的总计执行时间

假设唯一的限制因素是 CPU 利用率,研究人员可以使用这些知识,明智地分配可用线程资源,使用理想的线程数完成多次运行。例如,流水线使用 36 个线程连续运行 4 个样本,估计需要大约 144 小时,而使用 8 个线程并行运行 4 个样本只需大约 56 小时,显然后者更加明智。这表明,每次运行使用最大线程数可能并不总是减少执行时间的最佳解决方案,特别是当需要分析多个样本时。

图 7 描绘了联合分析流水线的线程级别测试,可以明显看到,GenotypeGVCFs 因线程数量合适而获益。考虑到在单线程流水线运行期间,有 90% 的时间花费在 GenotypeGVCFs 上,这委实是个好消息。执行时间最初减幅很大,因为使用 2 个线程而非 1 个线程会将执行时间缩短一半。然而,随着线程数量的增加,额外的线程变得不太有价值。图 7 显示了生物信息分析中多线程的回报递减,支持了这样一个观点,即最大化线程数并非高效运行生物信息工具的通用可行解决方案。

线程 / 进程扩展 – 单样本识别 (WGS)

1T Solexa-272221

4T Solexa-272221

8T Solexa-272221

36T Solexa-272221

227:19:49

82:25:03

55:58:07

36:7:16

总计

192.00.00

240.00.00

144.00.00

96.00.00

48.00.00

168.00.00

216.00.00

120.00.00

72.00.00

24.00.00

0.00.00

线程 / 进程扩展 – 单样本识别 (WGS)

92:03:19

23:55:01

13:07:04

3:50:58

1T Solexa-272221

4T Solexa-272221

8T Solexa-272221

36T Solexa-272221

6:34:47

6:38:30

6:24:17

5:45:15

7:24:38

5:17:38

4:23:08

3:52:38

23:54:38

12:44:07

9:37:38

7:28:08

7:55:51

7:07:41

6:45:20

6:36:35

5:58:20

1:09:21

0:51:56

0:18:56

19:49:07

5:55:37

3:25:37

1:56:07

63:39:09

19:37:08

12:15:03

6:18:39

GATK Realigner Target- Creator

GATK Indel-

Realigner

GATK Base-

Recalibrator

GATK PrintReads

GATK Haplotype-

Caller

BWA Mem

96.00.00

72.00.00

48.00.00

24.00.00

84.00.00

60.00.00

36.00.00

12.00.00

0.00.00Picard

SortSamPicard

Markdups

执行

时间

(HH

:MM

:SS

)

执行

时间

(HH

:MM

:SS

)

Page 14: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

14

应用于外显子组的单样本识别和联合分析流水线

数据集

运行联合分析流水线需要至少 30 个外显子组,才能使 VariantRecalibrator 工具正常处理该数据类型。在这个基准测试项目中共使用了 50 个外显子组。对于单样本识别流水线,输入包括三个文件:每个外显子组的两个配对的 fastq 文件和一个未配对的 fastq 文件。未配对的文件要求运行两次 BWA 和 SortSam,一次针对配对文件,第二次针对未配对文件。运行两次 SortSam 后创建的两个 bam 文件在 MarkDuplicates 中合并,然后作为一个输入文件传递通过流水线的其余部分。文件已通过单样本识别流水线得到处理,为每个外显子组样本生成了一个 GVCF 文件以及补充索引和日志文件。表 10 列出了用于单样本识别流水线的样本子集,表 11 列出了用于联合分析流水线的文件。这两个表没有显示基准测试所用的全部 50 个外显子组;完整列表参见附录。

序列类型 样本 使用的文件 大小测序覆盖度(倍数) 读长

输入外显子组数据集

HG02769

HG02769_1.fq

HG02769_2.fq

HG02769_unpaired.fq

8.6 G

8.6 G

30 M

50 倍 76bp

HG02678

HG02678_1.fq

HG02678_2.fq

HG02678_unpaired.fq

7.5 G

7.5 G

23 M

50 倍 76bp

HG02562

HG02562_1.fq

HG02562_2.fq

HG02562_unpaired.fq

7.7 G

7.7 G

50 M

50 倍 76bp

表 10. 单样本识别用外显子组数据集的子集

图 7. 联合分析流水线中的线程 / 进程扩展

序列类型 样本 大小

输入外显子组数据集

HG02769.g.vcf 371M

HG02678.g.vcf 391M

HG02562.g.vcf 352M

表 11. 联合分析用外显子组数据集的子集

9.36.00

12.00.00

7.12.00

4.48.00

2.24.00

8.24.00

10.48.00

6.00.00

3.36.00

1.12.00

0.00.00

执行

时间

(HH

:MM

:SS

)

线程 / 进程扩展 – 联合分析 (WGS)

11:23:19

5:34:12

2:55:16

1:38:16

0:56:56

0:12:14

0:11:54

0:10:24

0:10:31

0:10:06

0:38:45

0:33:34

0:31:51

0:31:18

0:31:44

0:07:07

0:04:26

0:04:28

0:03:28

0:03:22

0:12:21

0:08:58

0:07:54

0:07:12

0:06:56

0:03:13

0:03:55

0:03:39

0:03:39

0:03:10

2 线程 Solexa-Trio

1 线程 Solexa-Trio

4 线程 Solexa-Trio

8 线程 Solexa-Trio

36 线程 Solexa-Trio

GenotypeGV CF

VariantFilter ation

VariantRecal ibrator_SNP

ApplyRecali bration_SNP

VariantRecal ibrator_IND

EL

ApplyRecali bration_IND

EL

Page 15: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

15

分析结果

为了在联合分析流水线中使用之前通过单样本识别流水线运行 50 个外显子组,我们通过一个分组实验运行了样本,确定出可以进一步处理 50 个样本的吞吐量 / 时延。确定了最佳分组后,我们继续进行前面使用 WGS 执行的同一实验(单线程与并行运行、CPU 利用率和线程 / 进程扩展)。

单个运行与分组运行

对于本实验,我们首先运行一个外显子组样本,并将其与在一台机器上同时运行的一组(四个)样本进行比较,以测试当所有机器资源可用于单个运行而非分组运行时会发生什么情况。一个组内的每个外显子组运行分配有 8 个线程,并在一个硬盘上完成。此外,单个外显子组本身在使用 8 个线程的机器上运行。表 12 中的第一列显示了 HG02769 在 8 个线程上运行时,将所有机器资源用于自身的情况下的执行时间。第二列列出了 HG02769 与同时运行的其他三个外显子组(HG02561、HG02571 和 HG02771)共享系统资源时的执行时间。分组运行的执行时间比单个运行略高;BWA 的运行时间尤其多,用时 44 分钟(占总时间增长的 60%)。根据附录中的结果,通过这个分组,运行 50 个外显子组总共需要 45.5 小时。相比之下,如果每次运行使用最大数量的线程 (36) 顺序完成运行,则需要大约 118 小时(与 HG02769 的 2.37 小时相比增加 50 倍)。

工具硬盘上的 单个外显子组 硬盘上的分组外显子组

BWA Mem 0:15:43 0:59:08

Picard SortSam 0:23:37 0:25:59

Picard MarkDuplicates 0:24:43 0:25:24

GATK RealignerTargetCreator 0:04:23 0:04:22

GATK IndelRealigner 0:19:38 0:21:41

GATK BaseRecalibrator 0:14:08 0:24:09

GATK PrintReads 0:40:37 0:49:37

GATK HaplotypeCaller 0:23:07 0:27:38

总计执行时间 2:45:56 3:57:58

表 12. 使用硬盘的单个运行与分组运行

另外还使用固态硬盘测试了分组和单个运行,如表 13 中所示。两个测试的总执行时间均缩短了,但更重要的是,单个运行与分组运行之间的执行时间差异减少了。这暗示磁盘 I/O 是流水线运行的瓶颈。

工具固态硬盘上的 单个外显子组 固态硬盘上的分组外显子组

BWA Mem 0:15:12 0:15:30

Picard SortSam 0:22:27 0:25:10

Picard MarkDuplicates 0:23:35 0:24:09

GATK RealignerTargetCreator 0:03:30 0:03:28

GATK IndelRealigner 0:18:07 0:19:38

GATK BaseRecalibrator 0:13:07 0:16:08

GATK PrintReads 0:39:06 0:45:07

GATK HaplotypeCaller 0:17:07 0:18:08

总计执行时间 2:32:11 2:47:18

表 13. 使用固态硬盘的单个运行与分组运行

关键字

流水线数 1

软件线程 / 流水线数 8

节点数 1

内核 / 节点数 36

硬件线程 / 内核数 1

关键字

流水线数 1

软件线程 / 流水线数 8

节点数 1

内核 / 节点数 36

硬件线程 / 内核数 1

Page 16: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

16

该测试表明,当同时运行流水线并将 CPU 内核分配给每个运行时,考虑使用多个硬盘(每个流水线运行一个)或固态硬盘是有利的。原因是硬盘的磁盘 I/O 导致工具执行时间减慢。结果表明,由于多个流水线作业尝试利用相同的磁盘,一些可能需要执行高密度 I/O 的工具(例如 BWA),似乎会导致执行时间减慢。使用多个磁盘或执行速度更快的磁盘(例如固态磁盘),可减少由磁盘 I/O 导致的 CPU 等待时间。

单线程与并行运行

为了显示单样本识别流水线的基准执行时间和优化执行时间,我们在 50 个样本中选择了中等外显子组样本 (HG02769)。单样本识别流水线的单线程运行时间为约 6.8 小时,优化运行持续约 2.4 小时,计算得出整体提速 2.9 倍。由线程数量增加产生的三个最大加速影响了 HaplotypeCaller、BWA 和 BaseRecalibrator。

联合分析流水线的基准执行时间要短得多,总时间为 1.2 小时,该流水线的优化运行将时间缩短至约 17 分钟。联合分析流水线的执行时间提速 4 倍。在基准运行期间,联合分析流水线中的大部分工具在 10 分钟内完成,GenotypeGVCFs 除外,它用时约 50 分钟,但优化后,此工具的执行时间缩短至约 5 分钟。

工具 1 线程 HG02769 36 线程 HG02769 加速(倍数)

BWA Mem 1:31:12 0:12:37 7.2

Picard SortSam 0:23:55 0:24:26 1

Picard MarkDuplicates 0:23:35 0:23:50 1

GATK RealignerTargetCreator 0:12:09 0:10:19 1.2

GATK IndelRealigner 0:22:21 0:18:37 1.2

GATK BaseRecalibrator 0:51:30 0:10:38 4.8

GATK PrintReads 1:31:00 0:32:08 2.8

GATK HaplotypeCaller 1:34:01 0:09:37 9.8

总计执行时间 6:49:43 2:22:12 2.9

表 14. 一个外显子组序列的基准执行时间和优化执行时间

工具 1 线程 HG02769 36 线程 HG02769 加速(倍数)

GenotypeGVCFs 0:51:36 0:05:24 9.6

VariantFiltration 0:01:46 0:01:46 1

VariantRecalibrator_SNP 0:08:50 0:03:39 2.4

ApplyRecalibration_SNP 0:01:53 0:02:16 0.8

VariantRecalibrator_INDEL 0:05:30 0:02:24 2.3

ApplyRecalibration_INDEL 0:01:52 0:02:13 0.8

总计执行时间 1:11:27 0:17:42 4

表 15. 一个外显子组序列的基准执行时间和优化执行时间

总计有 50 个外显子组通过单样本识别流水线,每台机器分 4 组。表 16 列出了通过该流水线传递的 13 组中的一个组及其执行时间。平均来说,单样本识别流水线使用 8 个线程同时运行外显子组大约需要 3.7 小时,具体取决于外显子组大小。BWA 和 GATK PrintReads 花费的时间最多,均用时约 40 分钟完成。表 17 列出了联合分析流水线使用 8 个线程运行 50 个外显子组样本的执行时间。整个过程在大约 20 分钟内完成,GenotypeGVCFs 占用大部分时间,大约为 8 分钟。

Page 17: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

17

工具 HG02582 HG02678 HG02562 HG02721

BWA Mem 0:48:11 0:49:09 0:42:55 0:43:52

Picard SortSam 0:21:37 0:21:04 0:24:15 0:21:58

Picard MarkDuplicates 0:20:55 0:20:57 0:22:03 0:21:11

GATK RealignerTargetCreator 0:04:00 0:04:19 0:03:50 0:04:34

GATK IndelRealigner 0:18:48 0:18:31 0:19:39 0:20:39

GATK BaseRecalibrator 0:21:20 0:21:03 0:21:08 0:22:08

GATK PrintReads 0:42:39 0:40:42 0:45:37 0:43:08

GATK HaplotypeCaller 0:24:38 0:25:37 0:22:39 0:26:08

总计执行时间 3:22:08 3:21:22 3:22:06 3:23:38

表 16. 通过单样本识别流水线使用 8 个线程运行的分组外显子组

工具 8 线程 50 个外显子组

GenotypeGVCFs 0:08:38

VariantFiltration 0:01:45

VariantRecalibrator_SNP 0:03:06

ApplyRecalibration_SNP 0:02:13

VariantRecalibrator_INDEL 0:02:16

ApplyRecalibration_INDEL 0:02:14

总计执行时间 0:20:12

表 17. 联合分析流水线中 50 个外显子组的执行时间

CPU 利用率

与 WGS 基准测试类似,Workflow Profiler 用于在流水线执行过程中收集系统资源使用情况,其中一个是 CPU 利用率。图 8 和图 9 描述了单样本识别和联合分析流水线的 CPU 利用率。在这些线形图中,每种颜色代表流水线中的不同工具。这些图显示了在提供给流水线最大可用线程数(36 个线程)时的运行。

在单样本识别流水线中,BWA 的 CPU 利用率最初为 80%,但在大部分时间内下降至 40%,然后在结束时再次达到 60% 的高峰。这与 WGS 的情况不同,WGS 测试中 BWA 的 CPU 利用率平均高于 80%。接下来的两个工具 SortSam 和 MarkDuplicates 没有多线程选项,但仍然使用 36 个可用内核中的 30% - 40%。这可以通过 Java 的垃圾收集方法来解释,该方法会自动使用任何可用的内核。RealignerTargetCreator 将 CPU 利用率保持在 20% 左右,而在 WGS 测试中 CPU 利用率达到 80%。接下来的几个工具使用 分散 - 聚集并行化方法,显示出与之前的 WGS 运行相似的结果。这些工具的 CPU 利用率最初很高,然后下降到个位数字,其中大多数 分散 - 聚集工作都是通过单个进程完成的。

图 9 显示了使用外显子组执行联合分析流水线期间的 CPU 利用率。在该图中,统计信息工具(sar、isostat、collectl)收集系统性能的间隔从每 30 秒缩短至每 1 秒收集一次。这有助于记录短时运行工具,例如 VariantFiltration,在外显子组运行中,其运行时间为 12 秒。与 WGS 运行不同的是,该图显示了 GenotypeGVCF 的 CPU 利用率一直很高。CPU 利用率第二高的是 VariantRecalibrator,达到了 90% 以上的利用率,然后急剧下降。流水线中的下一个工具 ApplyRecalibration 具有大约 60% 的 CPU 利用率,并且在初始启动后再次陡降。

关键字

流水线数 1

软件线程 / 流水线数 8

节点数 1

内核 / 节点数 36

硬件线程 / 内核数 1

关键字

流水线数 4

软件线程 / 流水线数 8

节点数 1

内核 / 节点数 36

硬件线程 / 内核数 1

Page 18: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

18

线程 / 进程 - 跨流水线组件的扩展

图 10 显示了当线程数增加时,通过单样本识别流水线运行的单个外显子组示例。在本次运行中使用优选的外显子组样本 HG2769。此流水线使用不同线程时的总执行时间如图 11 所示。这些数字说明了随着线程数量的增加,添加更多线程的价值如何急剧下降。在长时运行工具中,例如 BWA、HaplotypeCaller、PrintReads 和 BaseRecalibrator,通过在基准运行中添加仅仅 3 个线程便可以将执行时间减半。然而,需要显著更多的线程数量来进一步减少其执行时间。

图 8. 在单样本识别流水线中使用 HG02769 和 36 个线程时的总 CPU 利用率

图 9. 在联合分析流水线中使用 50 个外显子组和 36 个线程时的总 CPU 利用率

100

80

60

40

%

20

00.0 0.5 1.0 1.5 2.0 2.5

总 CPU 利用率HG02769_gatk_best_practices_36t_30s

时间(小时)

工作流阶段

bwa men PrintReadsRealignerTargetCreatorSortSam HaplotypeCallerIndelRealignerMarkDuplicates BaseRecalibrator

100

80

60

40

%

20

00.00 0.05 0.10 0.15 0.300.250.20

总 CPU 利用率50exomes_gatk_variant_dis_36t_1s

时间(小时)

工作流阶段

GenotypeGVCFs VariantRecalibratorIndelVariantRecalibratorSNPVariantFiltration ApplyRecalibratioIndelApplyRecalibrationSNP

Page 19: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

19

对于 GATK RealignerTargetCreator,执行时间会随着前几个线程的增加而减少,但一旦使用了最大线程数,执行时间实际上会增加。当线程数量从 16 增加到 36 时,RealignerTargetCreator、IndelRealigner 和 BaseRecalibrator 的执行时间都会增加。该模式也出现在图 12 所示的联合分析流水线中。VariantRecalibrator 和 ApplyRecalibration 的两个阶段均显示,使用最大数量的线程时,执行时间会增加。随着线程数量的增加,GenotypeGVCFs 的执行时间会持续下降。单样本识别(图 11)和联合分析(图 13)的总执行时间均表明执行时间减少,尽管在给定最大数量的线程时,这些流水线中的某些工具会花费更长时间。

图 10. 使用外显子组 HG02769 时单样本识别流水线中的线程 / 进程扩展

图 11. 使用外显子组 HG02769 在单样本识别流水线中进行线程 / 进程扩展的总计 执行时间

线程 / 进程扩展 单样本识别(外显子组)

执行

时间

(H

H:M

M:S

S)

7:12:00

6:00:00

4:48:00

3:36:00

2:24:00

1:12:00

0:00:00

6:49:43

3:13:18

2:45:56

2:22:17

2:22:12

1 个线程

4 个线程

8 个线程

16 个线程

36 个线程

总计执行时间

线程 / 进程扩展 – 单样本识别(外显子组)

执行

时间

(H

H:M

M:S

S)

1:40:48

1:26:24

1:12:00

0:57:36

0:43:12

0:28:48

0:14:24

0:00:00

1:31:12

0:25:17

0:15:43

0:09:15

0:12:37

0:23:55

0:24:54

0:23:37

0:23:59

0:24:26

0:23:35

0:23:56

0:24:43

0:22:43

0:23:50

0:12:09

0:04:41

0:04:23

0:06:50

0:10:19

0:22:21

0:20:37

0:19:38

0:18:08

0:18:37

0:51:30

0:18:38

0:14:08

0:10:08

0:10:38

1:31:00

0:48:07

0:40:37

0:33:37

0:32:08

1:34:01

0:27:08

0:23:07

0:17:37

0:09:37

1 个线程

4 个线程

8 个线程

16 个线程

36 个线程

BWA Mem Picard SortSam

Picard MarkDupli

cates

GATK Realigner

TargetCreator

GATK IndelRealig

ner

GATK IndelRealig

ner

GATK PrintReads

GATK Haplotype

Caller

Page 20: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

20

结论测序技术的进步大大降低了测序成本,导致大规模产生需要分析的基因组数据。数据的这种增长激发一些机构开始帮助标准化序列数据的分析方法,一个主要贡献者便是博德研究所及其最佳实践指南。本文旨在通过提供参考硬件平台指南并帮助实施 GATK 最佳实践流水线的基准测试,进一步标准化测序技术。使用“硬件规格”部分中推荐的基于英特尔的平台,使用 Workflow Profiler 连同所有脚本进行工作流的基准测试后,文中展示了关于整体系统利用率的报告。

图 13. 使用外显子组时联合分析流水线的总计执行时间

图 12. 使用外显子组时联合分析流水线中的线程扩展

线程扩展 – 联合分析(外显子组)

时间

(HH

:MM

:SS

)

1:26:24

1:12:00

0:57:36

0:43:12

0:28:48

0:14:24

0:00:00

1:11:27

0:41:46

0:32:34

0:20:12

0:17:42

1 个线程

2 个线程

4 个线程

8 个线程

36 个线程

总计执行时间

线程扩展 – 联合分析(外显子组)

执行

时间

(HH

:MM

:SS

)

0:57:36

0:50:24

0:43:12

0:36:00

0:28:48

0:21:36

0:14:24

0:07:12

0:00:00

0:51:36

0:26:49

0:19:25

0:08:38

0:05:24

0:01:46

0:01:46

0:01:46

0:01:45

0:01:46

0:08:50

0:05:30

0:04:44

0:03:06

0:03:39

0:01:53

0:02:02

0:01:58

0:02:13

0:02:16

0:05:30

0:03:38

0:02:40

0:02:16

0:02:24

0:01:52

0:02:01

0:02:01

0:02:14

0:02:13

1 个线程

2 个线程

4 个线程

8 个线程

36 个线程

GenotypeGV CF

VariantFilter ation

VariantRecal ibrator_SNP

ApplyRecali bration_SNP

VariantRecal ibrator_IND

EL

ApplyRecali bration_IND

EL

Page 21: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

21

本文推荐使用基于英特尔架构的硬件运行 GATK 最佳实践流水线,并在测量执行时间时,使用该平台通过流水线运行一整套全基因组序列。

该项目分为两部分,第一部分通过单样本识别流水线和联合分析流水线对 WGS 进行了基准测试,而第二部分使用相同的流水线对外显子组进行了基准测试。两个阶段的结果显示,随着线程数的增加,WGS 和外显子组序列的执行时间都会减少。结果显示,增加运行的线程数量后,BWA-Mem 和 HaplotypeCaller 的处理时间比流水线的其他部分大大减少。外显子组与 WGS 之间的一个显著区别是,外显子组的 CPU 利用率下降。虽然不清楚为什么外显子组会导致 BWA 使用较少的 CPU,但可能与外显子组的大小较小相关,或者内容可能更容易分析,因此需要较少的处理资源。对 CPU 利用率和外显子组大小进行调查可能有助于解决这一不确定性问题。如我们所描述的那样,使用线程和进程级优化可以实现与我们的实验相似或更好的结果。

旨在为多个数据集使用此流水线的研究人员,可以使用本文将机器数量扩展到需要分析的数据集的数量。例如,一家目标是每月分析 100 WGS 的机构可能需要并行运行大约 5 台机器(每台具有 36 个内核)才能实现这一目标。然而,上述涉及分组与单个外显子组的测试在分配 CPU 线程和同时运行作业时,显示出更好的效率,而不是一次在一个作业上使线程数量达到极限。除了如何分析数据之外,研究人员还应考虑执行分析时使用的硬件类型。

本文给出了运行 GATK 最佳实践流水线的硬件建议。它提供了基本的硬件配置单元来运行基本的基因组流水线。当运行多个流水线时,此单元可以相应地扩展(例如,5 个单元每月将运行 5 倍多的基因组)。当许多不同特性的流水线同时在大型集群上运行时,更高级的硬件选项(例如更快的存储和 I/O)也可能会为更复杂的场景提供额外的优势。在第 2 阶段的测试中,当同时运行多个序列时,很明显磁盘 I/O 成为瓶颈。对硬盘和固态硬盘进行比较的测试显示,可以通过使用固态硬盘来避免该瓶颈。鉴于磁盘 I/O 可能会对一个工具的性能产生重大影响;在使用英特尔® 3D XPoint ™ 技术时,了解流水线性能将如何改善会很有趣。此外,这些测试中使用的服务器使用中级组件,通过更新参考硬件可以实现更好的性能。针对本项目执行的测试使用的是英特尔的第三版 Haswell CPU 处理器,这是一个微架构,最初于 2013 年发布。选择该 CPU 的原因是,考虑到普通研究机构都可以使用。然而,在使用英特尔的最新处理器 Broadwell 和 Skylake 时,用户可能会看到更好的性能。提升机器硬件是改善性能的一种方式,但优化软件是一个值得考虑的重要因素。

硬件改进只是较快的基因组分析解决方案的一部分,优化的软件对进化生物信息学也至关重要。博德研究所发布了 GATK 4 的测试版,它利用集群级处理来分析基因组。对于开展大规模基因组分析的机构和企业而言,对 GATK4 有效利用集群大小系统的能力进行进一步基准测试有益于他们更好地利用其 HP 集群。

Page 22: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

22

附录 A. 上图显示了 I/O 读出带宽,描述了流水线执行期间系统从存储驱动器读取文件的速度(以每秒兆字节为单位)。

附录 B. 上图显示了 I/O 写入带宽,这表示流水线将文件写入存储驱动器的速度。

附录 A:Solexa-272221 的平均 I/O 读取。

附录

附录 B:Solexa-272221 的平均 I/O 写入。

140

80

100

120

60

40

MBs

/sec

20

00 5 10 15 20 25 30 35 40

时间(小时)

工作流阶段

bwa mem RealignerTargetCreator PrintReads SortSam IndelRealigner HaplotypeCaller MarkDuplicates BaseRecalibrator

总硬盘 I/O 写入带宽 Solexa-272221_gatk_best_practices_36t_30s

时间(小时)

工作流阶段

bwa mem RealignerTargetCreator PrintReads SortSam IndelRealigner HaplotypeCaller MarkDuplicates BaseRecalibrator

60

40

50

30

20

MBs

/sec

10

00 5 10 15 20 25 30 35 40

总硬盘 I/O 读出带宽 Solexa-272221_gatk_best_practices_36t_30s

Page 23: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

23

附录 C. 上图显示了访问存储磁盘时的等待时间(以毫秒为单位)。较低的 I/O 等待时间是首选,因为这表示 CPU 会花费更多的时间来处理数据,而不是等待数据。

附录 C:Solexa-272221 的平均 I/O 等待时间。

附录 D. 上图显示了随着时间的推移,工作流每个阶段提交的内存量(单位:GB)。提交内存是一个进程(或一组进程)为其特定过程保留的 RAM 空间量。

附录 D:Solexa-272221 的内存使用情况。

120

60

80

100

30

GBs

20

00 5 10 15 20 25 30 35 40

总提交内存 Solexa-272221_gatk_best_practices_36t_30s

时间(小时)

工作流阶段

bwa mem RealignerTargetCreator PrintReads SortSam IndelRealigner HaplotypeCaller MarkDuplicates BaseRecalibrator

800

900

400

500

600

700

300

200

mse

c

100

00 5 10 15 20 25 30 35 40

硬盘 I/O 等待 sda Solexa-272221_gatk_best_practices_36t_30s

时间(小时)

工作流阶段

bwa mem RealignerTargetCreator PrintReads SortSam IndelRealigner HaplotypeCaller MarkDuplicates BaseRecalibrator

Page 24: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

24

样本 使用的文件 大小 样本 使用的文件 大小

HG02582HG02582_1.fqHG02582_2.fqHG02582_unpaired.fq

7.4G7.4G26M

HG03258HG03258_1.fqHG03258_2.fqHG03258_unpaired.fq

9.7G9.7G34M

HG02678HG02678_1.fqHG02678_2.fqHG02678 _unpaired.fq

7.5G7.5G23M

HG02595HG02595_1.fqHG02595_2.fqHG02595_unpaired.fq

9.8G9.8G34M

HG02562HG02562_1.fqHG02562_2.fqHG02562 _unpaired.fq

7.7G7.7G50M

HG02624HG02624_1.fqHG02624_2.fqHG02624_unpaired.fq

9.8G9.8G24M

HG02721HG02721_1.fqHG02562_2.fqHG02721 _unpaired.fq

7.6G7.6G23M

HG02798HG02798_1.fqHG02798_2.fqHG02798_unpaired.fq

9.9G9.9G34M

HG02613HG02613_1.fqHG02613_2.fqHG02613 _unpaired.fq

7.7G7.7G24M

HG02804HG02804_1.fqHG02804_2.fqHG02804_unpaired.fq

10G10G35M

HG02621HG02621_1.fqHG02621_2.fqHG02621 _unpaired.fq

7.7G7.7G24M

HG02810HG02810_1.fqHG02810_2.fqHG02810_unpaired.fq

10G10G34M

HG02635HG02635_1.fqHG02635_2.fqHG02635 _unpaired.fq

7.7G7.7G24M

HG02715HG02715_1.fqHG02715_2.fqHG02715_unpaired.fq

11G11G35M

HG03039HG03039_1.fqHG03039_2.fqHG03039 _unpaired.fq

7.6G7.6G23M

HG02570HG02570_1.fqHG02570_2.fqHG02570_unpaired.fq

11G11G35M

HG02461HG02461_1.fqHG02461_2.fqHG02461 _unpaired.fq

7.9G7.9G24M

HG03040HG03040_1.fqHG03040_2.fqHG03040_unpaired.fq

11G11G36M

HG02620HG02620_1.fqHG02620_2.fqHG02620 _unpaired.fq

7.9G7.9G25M

HG02462HG02462_1.fqHG02462_2.fqHG02462_unpaired.fq

11G11G37M

HG02676HG02676_1.fqHG02676_2.fqHG02676 _unpaired.fq

7.9G7.9G24M

HG03028HG03028_1.fqHG03028_2.fqHG03028_unpaired.fq

11G11G36M

HG02716HG02716_1.fqHG02716_2.fqHG02716 _unpaired.fq

7.8G7.8G27M

HG02561HG02561_1.fqHG02561_2.fqHG02561_unpaired.fq

8.7G8.7G30M

HG02772HG02772_1.fqHG02772_2.fqHG02772 _unpaired.fq

8.0G8.0G28M

HG02571HG02571_1.fqHG02571_2.fqHG02571_unpaired.fq

8.6G8.6G30M

HG02799HG02799_1.fqHG02799_2.fqHG02799 _unpaired.fq

7.6G7.6G23M

HG02771HG02771_1.fqHG02771_2.fqHG02771_unpaired.fq

8.5G8.5G29M

HG02679HG02679_1.fqHG02679_2.fqHG02679 _unpaired.fq

7.9G7.9G24M

HG02756HG02756_1.fqHG02756_2.fqHG02756_unpaired.fq

8.7G8.7G30M

HG02464HG02464_1.fqHG02464_2.fqHG02464 _unpaired.fq

8.0G8.0G30M

HG02757HG02757_1.fqHG02757_2.fqHG02757_unpaired.fq

8.8G8.8G31M

HG03049HG03049_1.fqHG03049_2.fqHG03049 _unpaired.fq

8.2G8.2G25M

HG02629HG02629_1.fqHG02629_2.fqHG02629_unpaired.fq

8.7G8.7G27M

HG02645HG02645_1.fqHG02645_2.fqHG02645 _unpaired.fq

7.9G7.9G24M

HG02634HG02634_1.fqHG02634_2.fqHG02634_unpaired.fq

8.8G8.8G30M

HG02646HG02646_1.fqHG02646_2.fqHG02646 _unpaired.fq

7.7G7.7G44M

HG02623HG02623_1.fqHG02623_2.fqHG02623_unpaired.fq

8.7G8.7G30M

50 个外显子组样本

Page 25: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

25

样本 使用的文件 大小 样本 使用的文件 大小

HG02583HG02583_1.fqHG02583_2.fqHG02583_unpaired.fq

8.4G8.4G55M

HG02610HG02610_1.fqHG02610_2.fqHG02610_unpaired.fq

9.1G9.1G32M

HG02585HG02585_1.fqHG02585_2.fqHG02585 _unpaired.fq

8.3G8.3G29M

HG02807HG02807_1.fqHG02807_2.fqHG02807_unpaired.fq

9.1G9.1G32M

HG02768HG02768_1.fqHG02768_2.fqHG02768_unpaired.fq

8.2G8.2G28M

HG02808HG02808_1.fqHG02808_2.fqHG02808_unpaired.fq

9.3G9.3G32M

HG02811HG02811_1.fqHG02811_2.fqHG02811_unpaired.fq

8.3G8.3G29M

HG03046HG03046_1.fqHG03046_2.fqHG03046_unpaired.fq

9.3G9.3G32M

HG02642HG02642_1.fqHG02642_2.fqHG02642_unpaired.fq

8.4G8.4G26M

HG03027HG03027_1.fqHG03027_2.fqHG03027_unpaired.fq

9.7G9.7G34M

HG02588HG02588_1.fqHG02588_2.fqHG02588_unpaired.fq

8.5G8.5G29M

HG02769HG02769_1.fqHG02769_2.fqHG02769_unpaired.fq

8.6G8.6G30M

表 18. 通过单样本识别流水线传递的外显子组序列数据集。注:50 倍测序覆盖度和 76bp 读长

50 个外显子组样本(续)

Page 26: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

26

样本 大小 样本 大小

HG02461_HaplotypeCaller.g.vcf 364M HG02678_HaplotypeCaller.g.vcf 391M

HG02462_HaplotypeCaller.g.vcf 296M HG02679_HaplotypeCaller.g.vcf 388M

HG02464_HaplotypeCaller.g.vcf 371M HG02715_HaplotypeCaller.g.vcf 319M

HG02561_HaplotypeCaller.g.vcf 381M HG02716_HaplotypeCaller.g.vcf 439M

HG02562_HaplotypeCaller.g.vcf 352M HG02721_HaplotypeCaller.g.vcf 389M

HG02570_HaplotypeCaller.g.vcf 316M HG02756_HaplotypeCaller.g.vcf 396M

HG02571_HaplotypeCaller.g.vcf 410M HG02757_HaplotypeCaller.g.vcf 374M

HG02582_HaplotypeCaller.g.vcf 424M HG02768_HaplotypeCaller.g.vcf 399M

HG02583_HaplotypeCaller.g.vcf 329M HG02769_HaplotypeCaller.g.vcf 371M

HG02585_HaplotypeCaller.g.vcf 406M HG02771_HaplotypeCaller.g.vcf 412M

HG02588_HaplotypeCaller.g.vcf 387M HG02772_HaplotypeCaller.g.vcf 425M

HG02595_HaplotypeCaller.g.vcf 346M HG02798_HaplotypeCaller.g.vcf 336M

HG02610_HaplotypeCaller.g.vcf 332M HG02799_HaplotypeCaller.g.vcf 438M

HG02613_HaplotypeCaller.g.vcf 384M HG02804_HaplotypeCaller.g.vcf 314M

HG02620_HaplotypeCaller.g.vcf 369M HG02807_HaplotypeCaller.g.vcf 368M

HG02621_HaplotypeCaller.g.vcf 378M HG02808_HaplotypeCaller.g.vcf 352M

HG02623_HaplotypeCaller.g.vcf 404M HG02810_HaplotypeCaller.g.vcf 334M

HG02624_HaplotypeCaller.g.vcf 325M HG02811_HaplotypeCaller.g.vcf 402M

HG02629_HaplotypeCaller.g.vcf 334M HG03027_HaplotypeCaller.g.vcf 330M

HG02634_HaplotypeCaller.g.vcf 381M HG03028_HaplotypeCaller.g.vcf 354M

HG02635_HaplotypeCaller.g.vcf 370M HG03039_HaplotypeCaller.g.vcf 407M

HG02642_HaplotypeCaller.g.vcf 340M HG03040_HaplotypeCaller.g.vcf 306M

HG02645_HaplotypeCaller.g.vcf 410M HG03046_HaplotypeCaller.g.vcf 349M

HG02646_HaplotypeCaller.g.vcf 458M HG03049_HaplotypeCaller.g.vcf 369M

HG02676_HaplotypeCaller.g.vcf 370M HG03258_HaplotypeCaller.g.vcf 336M

表 19. 通过联合分析流水线传递的外显子组序列数据集

平均值 最大值 最小值

BWA Mem 0:53:36 1:06:16 0:39:46

Picard SortSam 0:27:18 0:46:15 0:21:04

Picard MarkDuplicates 0:25:05 0:29:52 0:20:55

GATK RealignerTargetCreator 0:04:23 0:06:44 0:03:50

GATK IndelRealigner 0:22:10 0:25:51 0:18:22

GATK BaseRecalibrator 0:20:27 0:24:39 0:13:40

GATK PrintReads 0:46:25 0:53:37 0:31:37

GATK HaplotypeCaller 0:24:57 0:34:07 0:18:38

总计执行时间 3:44:21 4:21:04 3:18:26

表 20. 分组的 50 个外显子组概要

Page 27: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

27

单样本识别流水线中外显子组分组测试结果

图 14. 分组使用外显子组的单样本识别流水线

分组的 50 个外显子组

执行

时间

(HH

:MM

:SS

)

1:12:00

1:04:48

0:57:36

0:50:24

0:43:12

0:36:00

0:28:48

0:21:36

0:14:24

0:07:12

0:00:00

组 1

组 2

组 3

组 4

组 5

组 6

组 7

组 8

组 9

组 10

组 11

组 12

组 13

0:46:02

0:50:07

0:41:37

0:41:30

0:51:50

0:53:26

0:54:39

1:06:14

0:52:58

0:59:09

1:01:25

1:03:34

0:55:10

0:22:14

0:24:31

0:22:22

0:23:17

0:23:58

0:23:36

0:29:16

0:25:43

0:26:41

0:30:52

0:45:39

0:30:05

0:26:16

0:21:17

0:23:48

0:21:37

0:25:17

0:24:19

0:23:52

0:25:11

0:25:47

0:26:39

0:26:47

0:27:42

0:28:58

0:24:27

0:04:11

0:04:23

0:04:14

0:04:11

0:05:14

0:04:10

0:04:18

0:04:17

0:04:33

0:04:13

0:04:10

0:04:31

0:04:45

0:21:25

0:18:40

0:19:20

0:20:27

0:19:31

0:23:18

0:24:31

0:23:54

0:17:07

0:20:18

0:20:01

0:19:51

0:14:33

0:19:24

0:19:16

0:21:15

0:20:26

0:20:41

0:21:52

0:22:48

0:23:37

0:22:20

0:24:46

0:24:50

0:25:26

0:20:53

0:43:02

0:42:24

0:42:39

0:44:49

0:45:29

0:46:39

0:49:30

0:49:39

0:45:07

0:45:00

0:50:07

0:51:16

0:49:09

0:24:46

0:23:56

0:27:08

0:24:38

0:23:54

0:27:46

0:28:46

0:29:48

0:21:39

0:21:40

0:23:08

0:25:16

0:18:53

BWA Mem Picard MarkDupli

cates

GATK IndelRealig

ner

GATK PrintReads

Picard SortSam

GATK RealignerTar getCreator

GATK BaseRecali

brator

GATK Haplotype

Caller

Page 28: 面向 GATK 最佳实践流水线部署的 基础设施 \”InbreedingCoeff < -0.3\” --filterName \”InbreedingCoeff\” | 面 GATK 最佳实践流水线部的基设施 6 VariantRecalibrator

白皮书 | 面向 GATK 最佳实践流水线部署的基础设施

本文档未(明示、暗示、以禁止反言或以其他方式)授予任何知识产权许可。 在性能测试过程中使用的软件及工作负载可能仅针对英特尔微处理器进行了性能优化。性能测试(如 SYSmark 和 MobileMark)使用特定的计算机系统、组件、软件、操作和功能进行测量。上述任何

要素的变动都有可能导致测试结果的变化。您可以查询其他信息和性能测试,以帮助您对正在考虑购买的产品作出全面的评估,包括该产品在与其他产品结合使用时的性能。有关更多完整信息, 请访问 http://www.intel.cn/content/www/cn/zh/benchmarks/intel-product-performance.html。

英特尔技术特性和优势取决于系统配置,并可能需要支持的硬件、软件,或服务得以激活。产品性能因系统配置而有所差异。 没有计算机系统能够做到绝对安全。请查询您的原始设备制造商或零售商,或访问 http://www.intel.cn/content/www/cn/zh/benchmarks/intel-product-performance.html 了解更多信息。

© 2017 英特尔公司版权所有。Intel、英特尔、英特尔标志、3D XPoint 和至强是英特尔公司或其子公司在美国和 / 或其他国家(地区)的商标。 * 文中涉及的其它名称及商标属于各自所有者资产。 0417/NR/EGP/PDF 请回收利用