Алгоритм в помощь! Быстрый алгоритм поиска строки с ее партнером

Я ищу быстрый алгоритм для поиска в огромной строке (это последовательность генома организма, состоящая из сотен миллионов и миллиардов символов) .

В этой строке всего 4 символа {A, C, G, T}, и «A» может сочетаться только с «T», а «C» - с «G».

Теперь я ищу две подстроки (с ограничением длины обеих подстрок между {minLen, maxLen} и длиной интервала между {intervalMinLen, intervalMaxLen}), которые могут соединяться друг с другом антипараллельно.

Например, Строка: ATCAG GACCA TACGC CTGAT

Ограничения: minLen = 4, maxLen = 5, intervalMinLen = 9, intervalMaxLen = 10

Результатом должно быть

  1. пара «ATCAG» с «CTGAT»

  2. » TCAG "пара с" CTGA "

Заранее спасибо.

Обновление: у меня уже есть метод, чтобы определить, могут ли две строки соединяться друг с другом. Единственная проблема заключается в том, что проведение исчерпывающего поиска занимает очень много времени.

8
задан Nate 10 January 2012 в 22:56
поделиться