使用 Perl 增强非 Perl 生物信息学应用:利用面向对象、PDL、Alien、FFI、Inline 和 OpenMP 构建新型基于组件的应用
Enhancing non-Perl bioinformatic applications with Perl: Building novel, component based applications using Object Orientation, PDL, Alien, FFI, Inline and OpenMP
AI总结:
本文展示如何用面向对象、PDL、FFI、Inline、MCE 与 OpenMP 将 R/C 等组件组合进 Perl,增强 Polyester 和 edlib,并验证 Bio::SeqAlignment 框架。
摘要:
基于组件的软件工程(CBSE)是一种将预先存在的、可复用的软件组件组装成新应用的方法,这对于生物信息学等快速发展、数据密集型领域尤其重要。尽管 Perl 直到十年前还在该领域被广泛使用,但较新的应用选择了 Bioconductor/R 或 Python。这一趋势意味着一个重大错失的机会,即利用预先存在的组件快速生成新型生物信息学应用,因为 Perl 提供了多种可促进组合的抽象。在本文中,我们通过结合面向对象框架、Perl Data Language,以及通过外部函数接口和内联外部源代码来连接非 Perl 代码的机制,展示 Perl 对 CBSE 的实用性。为此,我们增强了用 R 编写的 RNA 测序模拟器 Polyester,以及基于编辑距离的快速序列相似性搜索库 edlib。第一个案例研究展示了使用 GNU Scientific Library 和 PDL 几乎毫不费力地编写用于随机数模拟的新型高性能 Perl 模块,并提出了用于从生物序列中“修剪”polyA 尾的 Python 工具 cutadapt 的 Perl 与 Perl/C 替代方案。在 edlib 案例中,我们利用元类编程的能力,通过 Many Core Engine(MCE)模块为 edlib 赋予粗粒度、基于进程的并行性,并通过 OpenMP(一种用于共享内存多线程处理的 C/C++/Fortran 应用程序编程接口)实现细粒度并行性。这些用例为 Bio::SeqAlignment 框架提供了概念验证,该框架能够在复杂的基于内存和命令行的工作流中组织异构组件,以构建新型生物信息学工具,用于分析来自长读长测序(例如 Nanopore 测序平台)的数据。
英文摘要:
Component-Based Software Engineering (CBSE) is a methodology that assembles pre-existing, re-usable software components into new applications, which is particularly relevant for fast moving, data-intensive fields such as bioinformatics. While Perl was used extensively in this field until a decade ago, more recent applications opt for a Bioconductor/R or Python. This trend represents a significantly missed opportunity for the rapid generation of novel bioinformatic applications out of pre-existing components since Perl offers a variety of abstractions that can facilitate composition. In this paper, we illustrate the utility of Perl for CBSE through a combination of Object Oriented frameworks, the Perl Data Language and facilities for interfacing with non-Perl code through Foreign Function Interfaces and inlining of foreign source code. To do so, we enhance Polyester, a RNA sequencing simulator written in R, and edlib a fast sequence similarity search library based on the edit distance. The first case study illustrates the near effortless authoring of new, highly performant Perl modules for the simulation of random numbers using the GNU Scientific Library and PDL, and proposes Perl and Perl/C alternatives to the Python tool cutadapt that is used to "trim" polyA tails from biological sequences. For the edlib case, we leverage the power of metaclass programming to endow edlib with coarse, process based parallelism, through the Many Core Engine (MCE) module and fine grained parallelism through OpenMP, a C/C++/Fortran Application Programming Interface for shared memory multithreaded processing. These use cases provide proof-of-concept for the Bio::SeqAlignment framework, which can organize heterogeneous components in complex memory and command-line based workflows for the construction of novel bionformatic tools to analyze data from long-read sequencing, e.g. Nanopore, sequencing platforms.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。