50
Сравнение строк Николай Вяххи [email protected] Computer Science Club Санкт-Петербург, 2013 воскресенье, 3 марта 13 г.

2012 03 03_bioinf_lecture_02

Embed Size (px)

Citation preview

Сравнение строкНиколай Вяххи

[email protected]

Computer Science ClubСанкт-Петербург, 2013

воскресенье, 3 марта 13 г.

12 лекций по воскресеньям

Квизы для самопроверки

Домашние задания и вопросы онлайн

http://rosalind.info/classes/enroll/ff45302de4/

Формат обучения

воскресенье, 3 марта 13 г.

Ответы на квиз1. 20 (ACDEFGHIKLMNPQRSTVWY)

2. ACGT

3. ДНК → РНК

4. РНК → белок

5. Вся ДНК организма

6. Около 3х миллиардов

7. Секвенирование фрагментов и сборка

8. α-спираль / β-лист

воскресенье, 3 марта 13 г.

Центральная Догма

воскресенье, 3 марта 13 г.

ОмикиГеном — все ДНК организма.

Транскриптом — все РНК организма.

Протеом — все белки организма.

воскресенье, 3 марта 13 г.

СегодняРедакционное расстояние

Глобальное и локальное выравнивание

Аффинная модель вставки

Линейная память и 4 русских

Множественное выравнивание

FASTA, BLAST

Геномные перестройки

воскресенье, 3 марта 13 г.

Гены

воскресенье, 3 марта 13 г.

Гены

CCTGAGCCAACTATTGATGAA

!CCUGAGCCAACUAUUGAUGAA

!PEPTIDE

воскресенье, 3 марта 13 г.

Сплайсинг

воскресенье, 3 марта 13 г.

Сплайсинг

воскресенье, 3 марта 13 г.

Подстроки

Строка = Последовательность

-

воскресенье, 3 марта 13 г.

Подстроки

Строка = Последовательность

НО

Подстрока ≠ Подпоследовательность

Substring ≠ Subsequence -

воскресенье, 3 марта 13 г.

Расстояние Хэмминга

Число замен, необходимых для преобразования первой

строки во вторую.

CCAGAGACCCAAGGCT

воскресенье, 3 марта 13 г.

Расстояние ЛевенштейнаЧисло замен, вставок и удалений,

необходимых для преобразования первой строки во вторую.

CCAGAGAC-CCA-AGGCT

воскресенье, 3 марта 13 г.

Расстояние ЛевенштейнаЧисло замен, вставок и удалений,

необходимых для преобразования первой строки во вторую.

CCAGAGAC-CCA-AGGCT

выравнивание (alignment)редакционное предписание

воскресенье, 3 марта 13 г.

Расстояние ЛевенштейнаЧисло замен, вставок и удалений,

необходимых для преобразования первой строки во вторую.

CCAGAGAC-CCA-AGGCT

Алгоритм Вагнера — ФишераАлгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

Динамическое программирование — способ решения сложных задач путём

разбиения их на более простые подзадачи.

воскресенье, 3 марта 13 г.

Алгоритм Нидлмана — Вунша

S1 длины N

S2 длины M

D(X,Y) — редакционное расстояние для подстрок S1[1..X] и S2[1..Y]

воскресенье, 3 марта 13 г.

C C A G A G A C

CCAAGGCT

D(X,Y) — редакционное расстояние для подстрок S1[1..X] и S2[1..Y]

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

C C A G A G A C

CCAAGGCT

0

D(X,Y) — редакционное расстояние для подстрок S1[1..X] и S2[1..Y]

D(0,0) = 0

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

C C A G A G A C

CCAAGGCT

012345678

D(X,Y) — редакционное расстояние для подстрок S1[1..X] и S2[1..Y]

D(0,0) = 0

D(i,0) = i

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

D(X,Y) — редакционное расстояние для подстрок S1[1..X] и S2[1..Y]

D(0,0) = 0

D(i,0) = i

D(0,j) = j

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 812345678

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

D(i-1,j) + 1D(i,j) = min D(i,j-1) + 1 D(i-1,j-1) + 1 при S[i]≠S[j] D(i-1,j-1) + 0 при S[i]=S[j]

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

D(i-1,j) + 1D(i,j) = min D(i,j-1) + 1 D(i-1,j-1) + (S[i]≠S[j])

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 812345678

D(i-1,j) + 1D(i,j) = min D(i,j-1) + 1 D(i-1,j-1) + (S[i]≠S[j])

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

D(i-1,j) + 1D(i,j) = min D(i,j-1) + 1 D(i-1,j-1) + (S[i]≠S[j])

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 81 02345678

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

D(i-1,j) + 1D(i,j) = min D(i,j-1) + 1 D(i-1,j-1) + (S[i]≠S[j])

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 81 02 1345678

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

D(i-1,j) + 1D(i,j) = min D(i,j-1) + 1 D(i-1,j-1) + (S[i]≠S[j])

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 81 02 13 24 35 46 57 68 7

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

D(i-1,j) + 1D(i,j) = min D(i,j-1) + 1 D(i-1,j-1) + (S[i]≠S[j])

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 81 0 12 1 03 2 14 3 25 4 36 5 47 6 58 7 6

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

D(i-1,j) + 1D(i,j) = min D(i,j-1) + 1 D(i-1,j-1) + (S[i]≠S[j])

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 81 0 1 2 3 4 5 6 72 1 0 1 2 3 4 5 63 2 1 0 1 2 3 4 54 3 2 1 1 1 2 3 45 4 3 2 1 2 1 2 36 5 4 3 2 2 2 2 37 6 5 4 3 3 3 3 28 7 6 5 4 4 4 4 3

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 81 0 1 2 3 4 5 6 72 1 0 1 2 3 4 5 63 2 1 0 1 2 3 4 54 3 2 1 1 1 2 3 45 4 3 2 1 2 1 2 36 5 4 3 2 2 2 2 37 6 5 4 3 3 3 3 28 7 6 5 4 4 4 4 3

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 81 0 1 2 3 4 5 6 72 1 0 1 2 3 4 5 63 2 1 0 1 2 3 4 54 3 2 1 1 1 2 3 45 4 3 2 1 2 1 2 36 5 4 3 2 2 2 2 37 6 5 4 3 3 3 3 28 7 6 5 4 4 4 4 3

- T

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 81 0 1 2 3 4 5 6 72 1 0 1 2 3 4 5 63 2 1 0 1 2 3 4 54 3 2 1 1 1 2 3 45 4 3 2 1 2 1 2 36 5 4 3 2 2 2 2 37 6 5 4 3 3 3 3 28 7 6 5 4 4 4 4 3

C- CT

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 81 0 1 2 3 4 5 6 72 1 0 1 2 3 4 5 63 2 1 0 1 2 3 4 54 3 2 1 1 1 2 3 45 4 3 2 1 2 1 2 36 5 4 3 2 2 2 2 37 6 5 4 3 3 3 3 28 7 6 5 4 4 4 4 3

AC- GCT

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 81 0 1 2 3 4 5 6 72 1 0 1 2 3 4 5 63 2 1 0 1 2 3 4 54 3 2 1 1 1 2 3 45 4 3 2 1 2 1 2 36 5 4 3 2 2 2 2 37 6 5 4 3 3 3 3 28 7 6 5 4 4 4 4 3

CCAGAGAC-CCA-AGGCT

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

Сложность алгоритма?

C C A G A G A C

CCAAGGCT

0 1 2 3 4 5 6 7 81 0 1 2 3 4 5 6 72 1 0 1 2 3 4 5 63 2 1 0 1 2 3 4 54 3 2 1 1 1 2 3 45 4 3 2 1 2 1 2 36 5 4 3 2 2 2 2 37 6 5 4 3 3 3 3 28 7 6 5 4 4 4 4 3

Алгоритм Нидлмана — Вунша

воскресенье, 3 марта 13 г.

Путь в графе

воскресенье, 3 марта 13 г.

Оценка

Введём веса у операций редактирования.

D(i-1,j) + SCORE(S[i],–)D(i,j) = min D(i,j-1) + SCORE(–,S[j]) D(i-1,j-1) + SCORE(S[i],S[j])

воскресенье, 3 марта 13 г.

Оценка

Введём веса у операций редактирования.

Заменим минимум на максимум.

D(i-1,j) + SCORE(S[i],–)D(i,j) = max D(i,j-1) + SCORE(–,S[j]) D(i-1,j-1) + SCORE(S[i],S[j])

воскресенье, 3 марта 13 г.

Матрица замен

BLOSUM62воскресенье, 3 марта 13 г.

Матрица замен

PAM250воскресенье, 3 марта 13 г.

Локальное выравнивание

воскресенье, 3 марта 13 г.

Локальное выравнивание

воскресенье, 3 марта 13 г.

Локальное выравнивание

воскресенье, 3 марта 13 г.

Локальное выравнивание

воскресенье, 3 марта 13 г.

Локальное выравнивание

воскресенье, 3 марта 13 г.

Локальное выравнивание

воскресенье, 3 марта 13 г.

Локальное выравнивание

воскресенье, 3 марта 13 г.

Локальное выравнивание

Сложность алгоритма?

воскресенье, 3 марта 13 г.

Алгоритм Смита — Ватермана

0 ← изменилось тут D(i-1,j) + SCORE(S[i],–)D(i,j) = max D(i,j-1) + SCORE(–,S[j]) D(i-1,j-1) + SCORE(S[i],S[j])

воскресенье, 3 марта 13 г.