Nat Biotech | MIT发布基于Python的高性能基因组分析语言
亮点:
1、研究人员介绍了Seq-一种基于Python的优化框架,它将Python等高级语言的强大功能和可用性与C或C 等低级语言的性能相结合。
2、Seq允许编写更短、更简单的代码,新手程序员可以轻松使用,并且比现有语言和框架获得显著的性能改进。
麻省理工学院Bonnie Berger教授团队在国际知名期刊Nat Biotechnol在线发表题为“A Python-based programming language for high-performance computational genomics”的研究论文。下一代测序数据的大量增加为人类提供了对许多生物学现象的新理解。随着测序技术的发展,测序数据类型(如标准Illumina短读、PacBio长读或10x基因组条形码)通常需要相应的计算分析技术来实现,这就要求软件不仅计算效率高,而且能够快速进行分析易于开发和维护,以便能够快速适应新类型的数据。然而,开发一个高效的软件工具需要在性能工程、计算建模以及将生物假设转化为算法和软件优化的能力方面的专业知识。因此,大多数高性能基因组学软件都具有高度的应用特定性,难以理解和维护。这些因素共同引发了计算生物学和生命科学领域的数据再现性危机。最终,该领域的研究人员缺乏开发和更新软件的良好工具;一个典型的是必须在软件生态系统之间进行选择,这允许快速开发其性能和可扩展性(例如Python或R),或者采用具有更高性能但较难开发和维护的低级语言(例如,C、C 或RIST)。试图填补这两个极端之间空白的现有解决方案(例如,Matlab或Julia)主要面向数值计算而不是计算基因组学,以及简化生物信息学软件开发的尝试(例如,Rust Bio、SeqAn)。然而这些计算机语言要么陌生、复杂且难以编程,要么太难而无法获得良好的性能。
在这里,作者介绍了seq(图1),一种高性能、基于Python的面向生物学的编程语言,它结合了Python或Matlab等高级语言的易用性,以及C语言或C 语言运行时的性能。Seq分享了广泛使用的Python语言的语法和语义,它添加了用户看不见的特定于基因组学的语言构造、类型和优化。作者选择Python作为基础语言是因为它简洁、清晰的语法和广泛的应用;它是生物信息学以及一般编程中最常用的语言之一。
此外,Seq对C和Python语言互操作性的支持使其易于集成。与用于更通用语言的编译器不同,Seq的编译器使用基本的基因组构建块(如序列和k-mers)以及对它们的操作(如散列、索引和对齐)来提高性能。这些特定于领域的优化和程序转换是由Seq编译器自动执行的,在Seq中,它们通常只需要一行额外的代码(图2),而手工实现则需要大规模的代码更改和大量的测试时间才能并入现有的工具中。许多优化都需要将程序作为一个整体进行分析,因此对于软件库来说是遥不可及的。因此,Seq允许用户编写高级Python类型的代码,而不必担心编译器内部处理的细节或优化。Seq的目标是通过成为高性能基因组学世界的一个可访问的门户,来填补Matlab在数值计算中的相同角色。
为了证明Seq的多功能性,作者跨越了基因组学分析管道中的关键任务(图3),在Seq中重新实现了8个流行的基因组学工具,如超最大精确匹配的发现或SMEMs(BWA-MEM),基因组同源表构建(CORA),全映射(mrsFAST),长读比对(minimap2),单细胞数据预处理(UMI工具)、SAM/BAM后处理(GATK)、全局序列比对(AVID)和单倍型定相(Haptree-X)。作者观察到原始的、手工优化的C或C 语言可以在大量运行时实现改进,同时使用比这些代码少的代码,并保持与它们相同的精度。具体而言,Seq在数据预处理和后处理、基因组索引构建和数值下游分析方面实现了高达一个数量级的运行改进,在FM索引查询方面实现了两倍的改进,在Smith-Waterman比对和读取映射方面实现了三倍的改进。Seq实现的代码行数量比C或C 语言的代码级少,使它们更易于开发,不易出现错误。作者还将Seq与几个高性能的基因组文库进行了比较,包括sekan、Rust-Bio和BioJulia,并观察到每种情况下的显著加速,在某些情况下甚至超过一个数量级。
Seq是开源并免费提供(https://seq-lang.org)的,可以在网上试用(https://seq-lang.org/demo)无需下载。在OOPSLA中出现了一个初步的会议版本,它展示了Seq,并侧重于编程语言本身的细节,没有基因组学的应用程序。Seq将高性能和可扩展性与熟悉的、高级的、易于维护的编程接口结合起来。这是朝着一个丰富的生态系统迈出的第一步,这个生态系统提供软件开发环境、可视化工具和调试支持,所有这些都是在考虑生物信息学领域的情况下设计的。作者希望通过为生物学家、生物信息学家和其他研究人员提供一种可扩展的方法,通过一种熟悉的、高性能的语言对大型生物数据集进行原型化、实验和分析Seq将成为科学发现和创新的催化剂。
教授介绍
Bonnie Berger是麻省理工学院(MIT)的应用数学教授,与EECS的计算机科学联合受聘。她还是麻省理工学院计算机科学与人工智能实验室(CSAIL)计算与生物学组的负责人和计算理论组的成员。在麻省理工学院开始从事算法工作后,她是计算分子生物学领域的先驱研究人员之一,与她指导的许多学生一起,在定义该领域方面发挥了重要作用。她获得了许多奖项和荣誉,包括:美国艺术与科学学会会员、NIH Margaret Pittman主任讲座奖、生物物理学会Dayhoff奖、科技评论杂志创刊TR100最佳青年创新者奖、ACM院士奖、ISCB院士奖、RECOMB时间测试奖、NSF职业奖,以及,最近,从EPFL荣誉博士学位,并当选为美国医学和生物工程学会(AIMBE)研究员学院。她目前担任ISCB副总裁、RECOMB指导委员会主任和NIGMS咨询委员会成员。Bonnie Berger教授的主要研究领域是将数学技术应用于分子生物学问题。她的研究重点集中在以下核心问题领域:比较基因组学、蛋白质结构基序识别和发现、分子自组装和错组装以及功能基因组学。
参考文献
Shajii A, Numanagić I, Leighton AT, Greenyer H, Amarasinghe S, Berger B. APython-based programming language for high-performance computational genomics.Nat Biotechnol. 2021;10.1038/s41587-021-00985-6. doi:10.1038/s41587-021-00985-6