35
Поиск Последовательностей Николай Вяххи [email protected] Computer Science клуб Екатеринбург, 2012 суббота, 6 октября 12 г.

20121006 algorithmsinbioinformatics vyahhi_lecture03

Embed Size (px)

Citation preview

Page 1: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

Николай Вяххи[email protected]

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

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

Page 2: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

Дано:

текст T

шаблон P

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

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

Page 3: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

ATCA

ATATGAACTGAGATCAAT

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

Page 4: 20121006 algorithmsinbioinformatics vyahhi_lecture03

ATCA

ATATGAACTGAGATCAAT

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

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

Page 5: 20121006 algorithmsinbioinformatics vyahhi_lecture03

ATCA

ATATGAACTGAGATCAAT

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

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

Page 6: 20121006 algorithmsinbioinformatics vyahhi_lecture03

ATCA

ATATGAACTGAGATCAAT

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

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

Page 7: 20121006 algorithmsinbioinformatics vyahhi_lecture03

ATCA

ATATGAACTGAGATCAAT

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

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

Page 8: 20121006 algorithmsinbioinformatics vyahhi_lecture03

ATCA

ATATGAACTGAGATCAAT

O(NM)

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

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

Page 9: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

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

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

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

Page 10: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

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

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

Быстрее?

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

Page 11: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Новая задача

Дано:

текст T

шаблон P

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

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

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

Page 12: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Хэш-таблица

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

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

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

Page 13: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Хэш-таблица

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

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

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

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

Page 14: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Хэш-таблица

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

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

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

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

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

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

Page 15: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Хэш-таблица

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

Page 16: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Хэш-таблица

O(M)

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

Page 17: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Бор (Trie)A

IN

THERE

IS

THE

TAVERN

TOWN

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

Page 18: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Бор (Trie)

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

Page 19: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

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

Page 20: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

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

Page 21: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

O(M)

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

Page 22: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

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

Page 23: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

O(MlogN)

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

Page 24: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

Дано:

текст T

шаблон P

целое число K

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

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

Page 25: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Решение

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

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

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

Page 26: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Решение

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

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

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

Page 27: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Решение

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

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

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

Page 28: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Решение

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

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

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

Page 29: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

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

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

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

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

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

Page 30: 20121006 algorithmsinbioinformatics vyahhi_lecture03

BLAST

Basic Local Alignment Search Tool

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

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

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

Page 31: 20121006 algorithmsinbioinformatics vyahhi_lecture03

BLAST

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

Page 32: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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 г.

Page 33: 20121006 algorithmsinbioinformatics vyahhi_lecture03

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

FM-index = BWT + Suffix Array

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

Page 34: 20121006 algorithmsinbioinformatics vyahhi_lecture03

Что мы узнали

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

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