pyPaSWAS: Python-based multi-core CPU and GPU sequence alignment

Sven Warris*, N. Roshan N. Timal, Marcel Kempenaar, Arne M. Poortinga, Henri van de Geest, Ana L. Varbanescu, Jan Peter Nap

*Corresponding author for this work

Research output: Contribution to journalArticleScientificpeer-review

Abstract

Background Our previously published CUDA-only application PaSWAS for Smith-Waterman (SW) sequence alignment of any type of sequence on NVIDIA-based GPUs is platform-specific and therefore adopted less than could be. The OpenCL language is supported more widely and allows use on a variety of hardware platforms. Moreover, there is a need to promote the adoption of parallel computing in bioinformatics by making its use and extension more simple through more and better application of high-level languages commonly used in bioinformatics, such as Python. Results The novel application pyPaSWAS presents the parallel SW sequence alignment code fully packed in Python. It is a generic SW implementation running on several hardware platforms with multi-core systems and/or GPUs that provides accurate sequence alignments that also can be inspected for alignment details. Additionally, pyPaSWAS support the affine gap penalty. Python libraries are used for automated system configuration, I/O and logging. This way, the Python environment will stimulate further extension and use of pyPaSWAS. Conclusions pyPaSWAS presents an easy Python-based environment for accurate and retrievable parallel SW sequence alignments on GPUs and multi-core systems. The strategy of integrating Python with high-performance parallel compute languages to create a developer- and user-friendly environment should be considered for other computationally intensive bioinformatics algorithms.

Original languageEnglish
Article numbere0190279
Number of pages9
JournalPLoS ONE
Volume13
Issue number1
DOIs
Publication statusPublished - 2018

Fingerprint

Dive into the research topics of 'pyPaSWAS: Python-based multi-core CPU and GPU sequence alignment'. Together they form a unique fingerprint.

Cite this