基因组组装可缩短至几分钟?

导读:

美国劳伦斯伯克利国家实验室计算研究部(CRD)、联合基因组研究所(JGI)和加州大学伯克利分校(UC Berkeley)的一个研究小组,通过把一些新算法、计算技术与创新的编程语言Unified Parallel C (UPC),应用于尖端的从头基因组组装工具Meraculous,简化和加快了基因组组装流程,将这个漫长的过程缩短至仅仅几分钟。

基因组就好像是万物的生物学用户手册。细胞瞬间读取DNA,得到有机体生长、活动和繁殖所必需的指令。但对于人类来说,要破译这本“生命之书”则较为困难。

当今,研究人员通常依赖新一代测序仪,将独特的DNA碱基序列(只有四个)翻译成字母:A,G,C和T。而DNA链长达数十亿个碱基,这些机器可产生非常短的读数,一次大约50至300个字符。为了从这些字母中提取信息,科学家们需要重建基因组的位置——这个过程类似于重建一本书中文本片段的句子和段落。

但是,这个过程可能很快就变得复杂和耗时,特别是因为一些基因组是巨大的。例如,人类基因组含有约30亿个碱基,小麦基因组包含近170亿个碱基,松树基因组包含约230亿个碱基。有时,测序仪也会在数据集中引入误差,需要过滤掉。大多数时候,基因组需要从头组装。想象一下,这就像将一百亿块拼图拼在一起,而且没有一个完整的图片可供参考。

美国劳伦斯伯克利国家实验室计算研究部(CRD)、联合基因组研究所(JGI)和加州大学伯克利分校(UC Berkeley)的一个研究小组,通过把一些新算法、计算技术与创新的编程语言Unified Parallel C (UPC),应用于尖端的从头基因组组装工具Meraculous,简化和加快了基因组组装流程,将这个漫长的过程缩短至仅仅几分钟。他们主要是通过“并行化”代码,利用超级计算机的处理能力,如国家能源研究科学计算中心(NERSC的)爱迪生系统,实现了这一目标。简而言之,并行化代码意味着,分裂工作逐一执行,修改或重写代码,以在一台超级计算机上同时运行许多个节点(处理器集群)。

这项研究的第一作者、UC Berkeley研究生Evangelos Georganas带领了并行化Meraculous的工作,他指出:“使用Meraculous的并行版本,我们现在可以使用15,360个计算机处理器核心,在八分钟内组装整个人类基因组。有了这个工具,我们估计,全世界生物医学测序机构的输出,都可以仅仅使用NERSC爱迪生超级计算机的一部分,而得以组装。”

CRD的Leonid Oliker计算机科学家说: “这项工作极大的提高了基因组组装的速度。新的并行算法,可使装配计算能够进行快速。现在,基因组学研究人员,可以在几分钟的时间内组装小麦和松树的大基因组,而不是通过使用NERSC's Edison上的几百个节点——花费几个月的时间。”

超级计算机:基因组装配的一次变革

高通量和成本相对较低的新一代DNA测序,可让研究人员寻找所有一切的生物学解决方案,从产生清洁能源和环境清理,到识别基因突变和癌症之间的联系。在大多数情况下,这些机器可非常准确的记录DNA碱基的序列。但有时会发生置换、重复、替换和遗漏之类的错误——类似于一本书中的“错别字”。这些错误使基因组组装和基因突变的确定,变得更加困难,从而使得分析更加复杂。它们也可能使研究人员误解一个基因的功能。

研究人员经常使用一种方法被称为“枪法测序”的技术,来识别这些错误。这涉及到,捕获一个基因片段的大量拷贝,将它随机分成无数个小片段,然后分别对每一个片段进行测序。这就产生了一些重叠的短片段,让科学家们最终能够将整个DNA链重新装配起来。对同一个基因链进行测序,也有助于识别错误。但对于一个特别复杂的基因组来说,这个过程也会产生大量的数据,有时有几兆兆字节。

为了快速而有效地识别数据中的错误,伯克利实验室和UC Berkeley团队依靠 “Bloom filters”和大规模并行超级计算机。在1970年Bloom filters由Burton H. Bloom提出的二进制向量数据结构,可非常有效地确定,一个元素是不是集合中的一个成员。因此,研究人员可以依靠这个工具来确定一个碱基是否在适当的位置上。因为位数组包含了一个Bloom filter的基本结构,它们也需要相对较少的内存,从而使它们成为查询大规模数据集的理想选择。

CRD研究科学家Aydin Buluç说:“将Bloom filters应用于基因组组装问题并不新颖,在以前就完成过。我们这项工作的不同之处在于,让Bloom filters和分布式存储系统共同工作。这项任务非同小可,它需要一些计算机专业知识才能完成。”

该团队还开发了并行数据输入输出(I/O)的解决方案。开发这一解决方案的CRD研究科学家Steven Hofmeyr说: “当你有几兆兆字节的数据时,只是让计算机读取你的数据并输出结果,可能是一个巨大的瓶颈。通过让计算机在多个线程中下载数据,我们能够将I/O进程从几小时加快到几分钟。”

组装

一旦错误已被剔除,研究人员就可以开始基因组组装。这个过程依赖计算机程序在重叠区域加入k-mers——由固定数量(K)的碱基组成的短DNA序列,从而它们形成一个连续的序列,或重叠群(contig)。如果基因组之前已经被测序,科学家可以使用记录的基因注释作为参考,来排列读数。如果不是,他们需要进行从头组装,创造一个全新的contigs目录。

从头组装十分的内存密集型,直到最近,还没有人能成功地弄清如何在分布式内存中并行化这个过程。所以,许多研究人员使用专门的大容量存储器节点,有几兆兆字节的大小,来进行这项工作。但是,即使市售的最大的存储节点,也不足以组装像小麦或松树这样的大规模基因组。尽管以前研究人员试图用超级计算机克服这种内存限制,但低效的代码意味着,仍然需要几个小时、几天甚至几个月来组装一个单一的基因组。

为了有效利用大规模并行系统,Georganas创造了一种新的从头组装算法,利用UPC (Unified Parallel C)编程语言的单边通信和分区全局定址空间(PGAS)能力。基本上,PGAS可让研究人员处理每个超级节点上独立的内存,这会减少超级计算机交换节点之间信息的时间和精力。

Georganas说:“Meraculous新的并行版本,呈现出前所未有的性能,可在NERSC's Edison超级计算机上按比例放大人类和小麦基因组的15,360个处理器核心。这一性能的改善,将基因组组装从几天时间提速到了几秒钟。”

就像玩拼图一样,“缺失的拼图”可能使基因组组装更复杂。这就像有足够的拼图拼凑在一起,以使你能对整幅图有一个概念,所有的拼图都应该在适当的位置,但是在拼图中仍有空隙。在基因组组装中,Meraculous可扫描整个画面找出这些空隙,然后用一种既定的技术来填补它们。从计算角度来说,这个过程是在两个阶段完成的。在Hofmeyr的帮助下,这两个阶段都被转换为UPC和并行化。

Hofmeyr说:“将这部分转换成UPC的结果是,比最初Meraculous代码加快了20到30倍,这是用Perl编写的。”

处理宏基因组

开发Meraculous的Jarrod Chapman说:“强大的基因组组装,其价值是十分明确的。这是表征一个生物体基因的出发点,可用于进行跨物种的比较分析和遗传变异评估。这也给我们一个参考,来判断新序列方法的准确性。”

“在这个Meraculous版本之前,往往需要较长的时间来计算分析序列数据。因为计算太耗时,我会基于一些有根据的推测选择一套参数,设置我的工作。”

现在,计算不再是一个瓶颈,Chapman可以尝试一些不同的参数,并运行多个分析,产生非常准确的结果。他还认为,这一成就意味着,Meraculous也可以用来分析宏基因组——直接从环境样品中恢复的微生物群落。这项工作是很重要的,因为许多微生物只存在于自然中,不能在实验室中生长。这些生物可能是寻找新药物或可用能源来源的关键。

Chapman说:“分析宏基因组是一个巨大的任务。如果组装一个基因组——如小麦,就像是拼凑一个新的拼图,那么组装宏基因组数据就像是重建国会图书馆。使用Meraculous有效地进行这些分析,将是一次变革。”

本文来源于:生物通

欢迎关注中科紫鑫人事招聘相关信息:http://www.ngscn.com/index.php/Job/employ

;