20121006 algorithmsinbioinformatics vyahhi_lecture03

Preview:

Citation preview

ПоискПоследовательностей

Николай Вяххиvyahhi@bioinf.spbau.ru

Computer Science клубЕкатеринбург, 2012

суббота, 6 октября 12 г.

ЗадачаПоиск подстроки в строке:

Дано:

текст T

шаблон P

Найти: позиции вхождения P в T

суббота, 6 октября 12 г.

Наивный алгоритм

ATCA

ATATGAACTGAGATCAAT

суббота, 6 октября 12 г.

ATCA

ATATGAACTGAGATCAAT

Наивный алгоритм

суббота, 6 октября 12 г.

ATCA

ATATGAACTGAGATCAAT

Наивный алгоритм

суббота, 6 октября 12 г.

ATCA

ATATGAACTGAGATCAAT

Наивный алгоритм

суббота, 6 октября 12 г.

ATCA

ATATGAACTGAGATCAAT

Наивный алгоритм

суббота, 6 октября 12 г.

ATCA

ATATGAACTGAGATCAAT

O(NM)

Наивный алгоритм

суббота, 6 октября 12 г.

Чуть посложнее

Кнут-Моррис-Пратт: O(N+M)

Бойер-Мурр: O(N+M)

суббота, 6 октября 12 г.

Чуть посложнее

Кнут-Моррис-Пратт: O(N+M)

Бойер-Мурр: O(N+M)

Быстрее?

суббота, 6 октября 12 г.

Новая задача

Дано:

текст T

шаблон P

Можно: предварительно обработать Т

Найти: позиции вхождения P в T

суббота, 6 октября 12 г.

Хэш-таблица

K-мер — слово длины K

Алфавит {A, C, G, T} → {0, 1, 2, 3}

суббота, 6 октября 12 г.

Хэш-таблица

K-мер — слово длины K

Алфавит {A, C, G, T} → {0, 1, 2, 3}

hash(10-мер) = s0 * 49 + s1 * 48 + ... + s9 * 40

суббота, 6 октября 12 г.

Хэш-таблица

K-мер — слово длины K

Алфавит {A, C, G, T} → {0, 1, 2, 3}

hash(10-мер) = s0 * 49 + s1 * 48 + ... + s9 * 40

Максимальное значение hash?

Минимальное значение hash?

суббота, 6 октября 12 г.

Хэш-таблица

суббота, 6 октября 12 г.

Хэш-таблица

O(M)

суббота, 6 октября 12 г.

Бор (Trie)A

IN

THERE

IS

THE

TAVERN

TOWN

суббота, 6 октября 12 г.

Бор (Trie)

суббота, 6 октября 12 г.

Суффиксное дерево

суббота, 6 октября 12 г.

Суффиксное дерево

суббота, 6 октября 12 г.

Суффиксное дерево

O(M)

суббота, 6 октября 12 г.

Суффиксный массив

суббота, 6 октября 12 г.

Суффиксный массив

O(MlogN)

суббота, 6 октября 12 г.

Поиск с ошибками

Дано:

текст T

шаблон P

целое число K

Найти: позиции вхождения P в T с максимум К ошибками (несовпадениями)

суббота, 6 октября 12 г.

Решение

Разобьём шаблон на K+1 фрагментов.

Одна из подстрок должна встречается в тексте точно.

суббота, 6 октября 12 г.

Решение

Разобьём шаблон на K+1 фрагментов.

Один из фрагментов должен встречается в тексте точно.

суббота, 6 октября 12 г.

Решение

Найдём вхождения всех K+1 фрагментов с помощью любого точного алгоритма.

Расширим все вхождения и проверим количество ошибок.

суббота, 6 октября 12 г.

Решение

Найдём вхождения всех K+1 фрагментов с помощью любого точного алгоритма.

Расширим все вхождения и проверим количество ошибок.

суббота, 6 октября 12 г.

СложностьНайти фрагменты:

O(K • (N + M/K)) = O(KN + M)

O(N + K • M/K) = O(N + M)

Проверить одно вхождение: O(M)

Чем больше K, тем больше ложных вхождений нам проверять...

суббота, 6 октября 12 г.

BLAST

Basic Local Alignment Search Tool

(самая цитируемая статья 1990х)

http://blast.ncbi.nlm.nih.gov

суббота, 6 октября 12 г.

BLAST

суббота, 6 октября 12 г.

BLASTSequences producing significant alignments: Score E

(bits) Value

gi|18858329|ref|NP_571095.1| ba1 globin [Danio rerio] >gi|147757... 171 3e-44

gi|18858331|ref|NP_571096.1| ba2 globin; SI:dZ118J2.3 [Danio rer... 170 7e-44

gi|37606100|emb|CAE48992.1| SI:bY187G17.6 (novel beta globin) [D... 170 7e-44

gi|31419195|gb|AAH53176.1| Ba1 protein [Danio rerio] 168 3e-43

ALIGNMENTS

>gi|18858329|ref|NP_571095.1| ba1 globin [Danio rerio]

Length = 148

Score = 171 bits (434), Expect = 3e-44

Identities = 76/148 (51%), Positives = 106/148 (71%), Gaps = 1/148 (0%)

Query: 1 MVHLTPEEKSAVTALWGKVNVDEVGGEALGRLLVVYPWTQRFFESFGDLSTPDAVMGNPK 60

MV T E++A+ LWGK+N+DE+G +AL R L+VYPWTQR+F +FG+LS+P A+MGNPK

Sbjct: 1 MVEWTDAERTAILGLWGKLNIDEIGPQALSRCLIVYPWTQRYFATFGNLSSPAAIMGNPK 60

Query: 61 VKAHGKKVLGAFSDGLAHLDNLKGTFATLSELHCDKLHVDPENFRLLGNVLVCVLAHHFG 120

V AHG+ V+G + ++DN+K T+A LS +H +KLHVDP+NFRLL + + A FG суббота, 6 октября 12 г.

Сжатые структуры

FM-index = BWT + Suffix Array

суббота, 6 октября 12 г.

Что мы узнали

• Поиск подстроки в строке• Таблица К-меров• Суффиксное дерево, массив• BLAST

суббота, 6 октября 12 г.

Recommended