Fast algorithms for approximate circular string matching

C. Barton, Costas Iliopoulos, S.P. Pissis

    Research output: Contribution to journalArticlepeer-review

    30 Citations (Scopus)

    Abstract

    Background: Circular string matching is a problem which naturally arises in many biological contexts. It consists in finding all occurrences of the rotations of a pattern of length m in a text of length n. There exist optimal average-case algorithms for exact circular string matching. Approximate circular string matching is a rather undeveloped area.Results: In this article, we present a suboptimal average-case algorithm for exact circular string matching requiring time . O(n). . Based on our solution for the exact case, we present two fast average-case algorithms for approximate circular string matching with k-mismatches, under the Hamming distance model, requiring time . O(n). for moderate values of k, that is . k=O(m/logm). . We show how the same results can be easily obtained under the edit distance model. The presented algorithms are also implemented as library functions. Experimental results demonstrate that the functions provided in this library accelerate the computations by more than three orders of magnitude compared to a naïve approach.Conclusions: We present two fast average-case algorithms for approximate circular string matching with k-mismatches; and show that they also perform very well in practice. The importance of our contribution is underlined by the fact that the provided functions may be seamlessly integrated into any biological pipeline. The source code of the library is freely available at http://www.inf.kcl.ac.uk/research/projects/asmf/. © 2014 Barton et al.; licensee BioMed Central Ltd.
    Original languageEnglish
    Pages (from-to)10pp
    JournalAlgorithms for Molecular Biology
    Volume9
    Issue number1
    DOIs
    Publication statusPublished - 2014

    Fingerprint

    Dive into the research topics of 'Fast algorithms for approximate circular string matching'. Together they form a unique fingerprint.

    Cite this