Cargando…

A fast parallel algorithm for finding the longest common sequence of multiple biosequences

BACKGROUND: Searching for the longest common sequence (LCS) of multiple biosequences is one of the most fundamental tasks in bioinformatics. In this paper, we present a parallel algorithm named FAST_LCS to speedup the computation for finding LCS. RESULTS: A fast parallel algorithm for LCS is present...

Descripción completa

Detalles Bibliográficos
Autores principales: Chen, Yixin, Wan, Andrew, Liu, Wei
Formato: Texto
Lenguaje:English
Publicado: BioMed Central 2006
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC1780122/
https://www.ncbi.nlm.nih.gov/pubmed/17217522
http://dx.doi.org/10.1186/1471-2105-7-S4-S4
Descripción
Sumario:BACKGROUND: Searching for the longest common sequence (LCS) of multiple biosequences is one of the most fundamental tasks in bioinformatics. In this paper, we present a parallel algorithm named FAST_LCS to speedup the computation for finding LCS. RESULTS: A fast parallel algorithm for LCS is presented. The algorithm first constructs a novel successor table to obtain all the identical pairs and their levels. It then obtains the LCS by tracing back from the identical character pairs at the last level. Effective pruning techniques are developed to significantly reduce the computational complexity. Experimental results on gene sequences in the tigr database show that our algorithm is optimal and much more efficient than other leading LCS algorithms. CONCLUSION: We have developed one of the fastest parallel LCS algorithms on an MPP parallel computing model. For two sequences X and Y with lengths n and m, respectively, the memory required is max{4*(n+1)+4*(m+1), L}, where L is the number of identical character pairs. The time complexity is O(L) for sequential execution, and O(|LCS(X, Y)|) for parallel execution, where |LCS(X, Y)| is the length of the LCS of X and Y. For n sequences X(1), X(2), ..., X(n), the time complexity is O(L) for sequential execution, and O(|LCS(X(1), X(2), ..., X(n))|) for parallel execution. Experimental results support our analysis by showing significant improvement of the proposed method over other leading LCS algorithms.