返回 登录
0

Spark 技术在基因序列分析中的应用

生命科学方兴未艾, 从食品工业中的细菌培养鉴定到癌症快速诊断,基于 DNA 分析的应用不断出现,但同时基因分析应用也面临着很大挑战;许多新技术、新方法被应用到基因序列分析应用中,包括 Spark、FPGA 以及 GPU 协处理器加速等,这些技术的应用不仅能够使大部分生命科学领域的应用,包括开源和 ISV 软件,在不需要复杂的 MPI 编程情况下实现并行化处理,同时 Spark 内存内计算技术也能够提高分析效率,加速工作流程, 缩短分析时间,从而有更多新的发现。本文将介绍如何利用 Spark 技术运行常用的基因序列分析应用,包括在 Spark 不同模式下的运行方法, 运行过程以及运行结果分析,并比较在不同运算平台以及不同运行参数情况下的性能和加速比。
1. 基因序列分析工作流
基因序列分析工作流以 GATK 的最佳实践为标准。它以最初的 FASTQ 文件为输入,从 BWA-mem 测序到 GATK 的 HaploTyperCaller,完成对整个样板的测序分析。
图片描述
图 1、GATK 最佳实践
在测序工作流的第一阶段,BWA-mem 对输入文件 FASTQ 执行比对,生成序列比对和映射文件 SAM,然后通过 SortSam 生成一个经过排序的 BAM 文件,实际上,BAM 文件是 SAM 文件的二进制形式,此后的处理均基于 BAM 二进制文件。
BAM 文件传送给 Picard 工具 MarkDuplicates, 去除重复的片段,并生成一个合并的、去除重复片段的 BAM 文件。以下的几步,RealignerTargetCreator、IndelRealigner、BaseRecalibrator、PrintReads 和 HaplotypeCaller 都是 GATK 的一部分,是对高吞吐序列数据进行分析的软件包。
图片描述
图 2、基因测序工作流分解
序列分析的主要工作是数据前处理,经过处理的数据可以为后续的分析工作所调用。前处理阶段,比对和排序是计算密集且比较耗费时间的过程,尽管通过多处理器或多线程的方式可以提高效率,但是在实际工作中由于计算方法的复杂程度以及需要分析的数据量迅速增加,当前一个分析过程仍然可能花费超过 1 天时间,费用从 200 美元到 600 美元不等。Spark 技术可以将串行的分析并行化,将数据分段优化并进行动态负载均衡以提高效率。
……
详细内容点击Spark 技术在基因序列分析中的应用

评论