Rapid RNA Folding: Analysis and Acceleration of the Zuker Recurrence

RNA folding is a compute-intensive task that lies at the core of search applications in bioinformatics such as RNAfold and UNAFold. In this work, we analyze the Zuker RNA folding algorithm, which is challenging to accelerate because it is resource intensive and has a large number of variable-length dependencies. We use a technique of Lyngso to rewrite the recurrence in a form that makes polyhedral analysis more effective and use data pipelining and tiling to generate a hardware-friendly implementation. Compared to earlier work, processors in our array are more efficient and use fewer logic and memory resources. We implemented our array on a Xilinx Virtex 4 LX100-12 FPGA and experimentally verified a 103x speedup over a single core of a 3 GHz Intel Core 2 Duo CPU. The accelerator is also 17x faster than a recent Zuker implementation on a Virtex 4 LX200-11 FPGA and 12x and 6x faster respectively than an Nvidia Tesla C870 and GTX280 GPU. We conclude with a number of lessons in using FPGAs to implement arrays after polyhedral analysis. We advocate using polyhedral analysis to accelerate other dynamic programming recurrences in computational biology.

[1]  Michael Zuker,et al.  DINAMelt web server for nucleic acid melting prediction , 2005, Nucleic Acids Res..

[2]  Sanjay V. Rajopadhye Synthesizing systolic arrays with control signals from recurrence equations , 2005, Distributed Computing.

[3]  M. Zuker Computer prediction of RNA structure. , 1989, Methods in enzymology.

[4]  Jamie J. Cannone,et al.  Evaluation of the suitability of free-energy minimization using nearest-neighbor energy parameters for RNA secondary structure prediction , 2004, BMC Bioinformatics.

[5]  Christian N. S. Pedersen,et al.  Fast evaluation of internal loops in RNA secondary structure prediction , 1999, Bioinform..

[6]  Roger D. Chamberlain,et al.  Accelerating Nussinov RNA secondary structure prediction with systolic arrays on FPGAs , 2008, 2008 International Conference on Application-Specific Systems, Architectures and Processors.

[7]  Jerrold R. Griggs,et al.  Algorithms for Loop Matchings , 1978 .

[8]  Dominique Lavenier,et al.  GPU Accelerated RNA Folding Algorithm , 2009, ICCS.

[9]  Robert Giegerich,et al.  Local similarity in RNA secondary structures , 2003, Computational Systems Bioinformatics. CSB2003. Proceedings of the 2003 IEEE Bioinformatics Conference. CSB2003.

[10]  Frédéric Vivien,et al.  Constructing and exploiting linear schedules with prescribed parallelism , 2002, TODE.

[11]  David A. Bader,et al.  GTfold: a scalable multicore code for RNA secondary structure prediction , 2009, SAC '09.

[12]  B. Barrell,et al.  Genome-wide discovery and verification of novel structured RNAs in Plasmodium falciparum. , 2008, Genome research.

[13]  Patrice Quinton,et al.  Parallelizing HMMER for Hardware Acceleration on FPGAs , 2007, 2007 IEEE International Conf. on Application-specific Systems, Architectures and Processors (ASAP).

[14]  A. Dupret,et al.  Low Power Motion Detection with Low Spatial and Temporal Resolution for CMOS Image Sensor , 2007, 2006 International Workshop on Computer Architecture for Machine Perception and Sensing.

[15]  Walter Fontana,et al.  Fast folding and comparison of RNA secondary structures , 1994 .

[16]  Fei Xia,et al.  Fine-grained parallel application specific computing for RNA secondary structure prediction on FPGA , 2008, 2008 IEEE International Conference on Computer Design.