A highly parameterized and efficient FPGA-based skeleton for pairwise biological sequence alignment

Abdsamad Benkrid, K. Benkrid

    Research output: Contribution to journalArticlepeer-review

    276 Downloads (Pure)


    This paper presents the design and implementation of the most parameterisable field-programmable gate array (FPGA)-based skeleton for pairwise biological sequence alignment reported in the literature. The skeleton is parameterised in terms of the sequence symbol type, i.e., DNA, RNA, or protein sequences, the sequence lengths, the match score, i.e., the score attributed to a symbol match, mismatch or gap, and the matching task, i.e., the algorithm used to match sequences, which includes global alignment, local alignment, and overlapped matching. Instances of the skeleton implement the Smith-Waterman and the Needleman-Wunsch algorithms. The skeleton has the advantage of being captured in the Handel-C language, which makes it FPGA platform-independent. Hence, the same code could be ported across a variety of FPGA families. It implements the sequence alignment algorithm in hand using a pipeline of basic processing elements, which are tailored to the algorithm parameters. This paper presents a number of optimizations built into the skeleton and applied at compile-time depending on the user-supplied parameters. These result in high performance FPGA implementations tailored to the algorithm in hand. For instance, actual hardware implementations of the Smith-Waterman algorithm for Protein sequence alignment achieve speedups of two orders of magnitude compared to equivalent standard desktop software implementations.
    Original languageEnglish
    Pages (from-to)567-570
    Number of pages4
    JournalIEEE Transactions on Very Large Scale Integration (VLSI) Systems
    Issue number4
    Publication statusPublished - Apr 2009


    Dive into the research topics of 'A highly parameterized and efficient FPGA-based skeleton for pairwise biological sequence alignment'. Together they form a unique fingerprint.

    Cite this