预测可能的匹配以避免使用Levenshtein算法

时间:2015-05-23 17:14:27

标签: c++ algorithm levenshtein-distance

我的问题是,我必须扫描具有给定数量的最大替换,插入和缺失的DNA序列。

为此,我已经能够修改Levenshtein算法以确定这一点,从序列中的每个字符开始。但这是慢的方法,我想知道是否有一种方法可以预测每个角色没有可能的匹配,所以我可以避免使用Levenshtein算法并跳到序列中的下一个字符。 / p>

我需要尽可能快地评估此匹配无法正常工作

当我在每个序列中通过char迭代char时,这是否可行或是否有其他方法来处理这个问题?

示例:

  • 模式:ATTATACA [1,1,1]
  • 序列号:ATCGCACBTTATACATTATACAATCGCACBTTATACATTATACA

1 个答案:

答案 0 :(得分:0)

对于单一模式,有Knuth-Morris-Prat算法。当然这取决于数据,但它是最快的算法。对于多种模式,有Aho-Corasick算法。您可以使用php @ codeplex.com(phpahocorasick)尝试我的实现。它还允许使用通配符。