Я не уверен, что это то, что вам нужно, но в BioPerl есть инструмент приблизительного набора, который называется Bio::Grep::Backend::Agrep
:
Bio :: Grep ::Backend :: Agrep ищет запрос с agrep
И agrep
- это «приблизительный grep».AFAIK, это создает базу данных, а затем использует эту базу данных, чтобы ускорить поиск, так что это похоже на то, что вы ищете.
Похоже, вы работаете с последовательностями ДНК, поэтому у вас, вероятно, уже установлен BioPerl.
Вы также можете попробовать использовать String::Approx
напрямую:
Расширение Perl для приблизительного соответствия (нечеткое соответствие)
Я подозреваючто Bio::Grep::Backend::Agrep
будет быстрее и лучше подходит для вашей задачи.