Оглавление
Предисловие переводчика
Предисловие 12
Часть I. Точное совпадение строк: основная задача 19
1. Точное совпадение 25
1.1. Наивный метод 25
1.2. Препроцессная обработка 27
1.3. Основной препроцессинг образца 27
1.4. Основной препроцессинг за линейное время 29
1.5. Простейший алгоритм с линейным временем 31
1.6. Упражнения 33
2. Точное совпадение: классические методы 38
2.1. Введение 38
2.2. Алгоритм Бойера-Мура 39
2.3. Алгоритм Кнута-Морриса-Пратта 46
2.4. Поиск строк в реальном времени 51
2.5. Упражнения 53
3. Более глубокий взгляд 59
3.1. Метод Бойера-Мура с линейной оценкой времени ч 59
3.2. Линейная оценка Коула 64
3.3. Исходный препроцессинг по методу КМП 74
3.4. Точный поиск набора образцов 78
3.5. Три приложения точного множественного поиска 88
3.6. Поиск образца, заданного регулярным выражением 93
3.7. Упражнения 95
4. Получисленное сравнение строк 99
4.1. Что использовать: сравнения или арифметику? 99
4.2. Метод Shift-And 99
4.3. Задача о счете совпадений и FFT 103
4.4. “Дактилоскопические” методы 107
4.5. Упражнения 115
Чзсть II. Суффиксные деревья и их использование 117
5. Введение в суффиксные деревья 119
5.1. Краткая история 120
5.2. Основные определения 121
5.3. Побуждающий пример 122
5.4. Наивный алгоритм построения суффиксного дерева 124
6. Построение суффиксных деревьев за линейное время 126
6.1. Алгоритм Укконена 126
6.2. Алгоритм Вайнера 141
6.3. Алгоритм Мак-Крейга 150
6.4. Обобщенное суффиксное дерево для набора строк 151
6.5. Вопросы практической реализации 152
6.6. Упражнения 155
7. Первые приложения суффиксных деревьев 158
7.1. APL1; Точное совпадение строк 159
7.2. APL2: Суффиксные деревья и множественное точное совпадение 159
7.3. APL3: Задача о подстроке для базы образцов 160
7.4. APL4: Наибольшая общая подстрока двух строк 162
7.5. APL5; Распознание загрязнения ДНК 162
7.6. APL6: Общие подстроки более чем двух строк 164
7.7. APL7; Построение меньшего ориентированного графа 166
7.8. APL8: Обратная роль суффиксных деревьев 170
7.9. APL9: Эффективный по памяти алгоритм нахождения наибольшей общей
подстроки 174
7.10. APL10: Проверка совпадения суффикса с префиксом во всех парах 174
7.11. Введение в повторяющиеся структуры в молекулярных строках 177
7.12. APL11: Нахождение максимальных повторяющихся структур 183
7.13. APL12: Линеаризация циклической строки 189
7.14. APL13: Суффиксные массивы — большее сокращение памяти 190
7.15. APL14: Суффиксные деревья в геномных проектах 199
7.16. APL15: Подход Бойера-Мура к множественному совпадению 200
7.17. APL16: Сжатие данных по методу Зива-Лемпеля 208
7.18. APL17: Код минимальной длины для ДНК 212
7.19. Другие приложения 213
7.20. Упражнения 213
8. Общий наименьший предшественник 227
8.1. Введение 227
8.2. Предполагаемая модель машины 229
8.3. Полные двоичные деревья: очень простой случай 229
8.4. Как разрешать запросы об /ш в ^ 230
8.5. Первые шаги в отображении ЗГв 38 231
8.6. Отображение ЗГв ЗЬ 234
8.7. Препроцессинг ^"за линейное время 235
8.8. Ответы на запросы об lea за константное время 237
8.9. Двоичное дерево не очень нужно 240
8.10. Для пуристов: как избежать битовых операций 240
8.11. Упражнения 241
9. Дополнительные приложения суффиксных деревьев 245
9.1. Наибольшее общее продолжение: мост к неточному совпадению 245
9.2. Нахождение всех максимальных палиндромов за линейное время 247
9.3. Точное совпадение с джокерами 249
9.4. Задача о к несовпадениях 250
9.5. Приблизительные палиндромы и повторы 251
9.6. Более быстрые методы для тандемных повторов 252
9.7. Решение задачи о множественной общей подстроке за линейное время . . . 256
9.8. Упражнения 259
Часть III. Неточное сопоставление, выстраивание последовательностей
и динамическое программирование 261
10. Значение сравнения (под)последовательностей 265
11. Ядро методов редактирования строк и выстраивания 269
11.1. Введение 269
11.2. Редакционное расстояние между двумя строками 269
11.3 Вычисление расстояния динамическим программированием 272
11.4. Редакционные графы 278
11.5. Взвешенное редакционное расстояние 279
11.6. Сходство строк 281
11.7. Нахождение подстрок высокого сходства 286
11.8. Пропуски 292
11.9. Упражнения 303
12. Улучшение процедур выстраивания . 313
12.1. Вычисление выравниваний в линейной памяти 313
12.2. Ускорение для ограниченного числа различий 320
12.3. Методы исключения 332
12.4. Еще о суффиксных деревьях и гибридном ДП 343
12.5. Быстрый алгоритм для задачи les 351
12.6. Вогнутый вес пропусков 359
12.7. Метод “четырех русских” 369
12.8. Упражнения 375
13. Развитие основных задач 379
13.1. Параметрическое выравнивание последовательностей 379
13.2. Вычисление субоптимальных выравниваний 391
13.3. Сцепление различных локальных выравниваний 395
13.4. Упражнения 399
14. Сравнение многих строк — Святой Грааль 403
14.1. Зачем нужно множественное сравнение строк? 403
14.2. Три “крупномасштабных” применения 408
14.3. Представление семейств и суперсемейств 408
14.4. Выводы о структурах 414
14.5. Введение в вычисление множественных выравниваний строк 416
14.6. Выравнивание с целевой функцией типа суммы пар 417
14.7. Выравнивание с консенсусными целевыми функциями 426
14.8. Множественное выравнивание по (филогенетическому) дереву 430
14.9. Замечания о приближениях с ограниченной ошибкой 434
14.10. Обычные методы множественного выравнивания - 436
14.11. Упражнения 444
15. Базы данных для последовательностей 449
15.1. Истории успешного поиска в базах данных 450
15.2. Промышленность баз данных 453
15.3. Алгоритмические вопросы поиска данных 455
15.4. Реальный поиск в базе данных для последовательностей 456
15.5. FASTA . 457
15.6. BLAST 459
15.7. РАМ: первые главные матрицы подстановки аминокислот 462
15.8. PROSITE 466
15.9. BLOCKS и BLOSUM 467
15.10. Матрицы подстановки BLOSUM .468
15.11. Дополнительные вопросы поиска в базе данных 469
15.12. Упражнения 474
Часть IV. Другие задачи: текущие, родственные и просто изящные 475
16. Карты, картирование, упорядочение и над строки 478
16.1. Взгляд на задачи картирования и секвенирования ДНК 478
16.2. Картирование и геномный проект 479
16.3. Физические и генетические карты 479
16.4. Физическое картирование 481
16.5. Физическое картирование: STS и библиотеки клонов 482
16.6. Физическое картирование: радиационно-гибридное 485
16.7. Физическое картирование: дактилограммы 490
16.8. Вычисление самой плотной раскладки 492
16.9. Физическое картирование: последние замечания 497
16.10. Введение в выравнивание карт 499
16.11. Крупномасштабная расшифровка и сборка последовательности 501
16.12. Направленная расшифровка 502
16.13. Нисходяще-восходящая расшифровка: картина, использующая YAC 503
16.14. Дробовая расшифровка ДНК 508
16.15. Сборка последовательности 508
16.16. Заключительные комментарии о нисходяще-восходящей расшифровке . . .513
16.17. Задача о кратчайшей над строке 514
16.18. Расшифровка гибридизацией 527
16.19. Упражнения 534
17. Строки и эволюционные деревья 539
17.1. Ультраметрические деревья и расстояния 542
17.2. Деревья с аддитивными расстояниями 551
17.3. Бережливость: символьно-ориентированное эволюционное воссоздание . . . 554
17.4. Центральное место ультраметрической задачи 562
17.5. Максимальная бережливость, штейнеровы деревья 567
17.6. Снова филогенетическое выравнивание 569
17.7. Связи между множественным выравниванием и построением деревьев . . . 572
17.8. Упражнения 573
18. Три короткие темы 579
18.1. Сравнение ДНК с белком при смещениях рамки 579
18.2. Предсказание гена 582
18.3. Молекулярные вычисления: при помощи (а не ради) строк ДНК ...... . 585
18.4. Упражнения 591
19. Модели мутаций на геномном уровне 594
19.1. Введение 594
19.2. Инверсионные перестройки генома 596
19.3. Знакопеременные инверсии 601
19.4. Упражнения 602
Эпилог 604
Библиография 608
Толковый словарь 632
Англо-русский словарь терминов 644
Предметный указатель 646
ГАСФИЛД Дэн
Строки, деревья и последовательности в алгоритмах:
Информатика и вычислительная биология
Перевод с английского И. В. Романовского
Редактор О. М. Рощиненко
Издательство “Невский Диалект”
195220, Санкт-Петербург, Гражданский пр., 14. Лицензия ЛР № 065012 от 18.02.1997.
Издательство “БХВ-Петербург”
198005, Санкт-Петербург, Измайловский пр., 29. Лицензия ИД Na 02429 от 24.07.2000.
Подписано в печать 29.01.2003. Формат 70x100 1/16- Бумага газетная. Печать офсетная. Гарнитура Time Roman.
Уел. печ. л. 53,3.
Тираж 2000 экз. Заказ Na 728
Отпечатано С готовых диапозитивов в Академической типографии “Наука” РАН 199034, Санкт-Петербург, 9-я линия, 12.