Доклад на семинаре в лаборатории алгоритмической биологии АУ
1. Метод сборки генома на
основе совместного
применения графов де Брёина
и графов перекрытий
Лаборатория «Алгоритмы сборки
геномных последовательностей»
Национального исследовательского
университета информационных
технологий, механики и оптики
16 ноября 2012
2. Лаборатория «Алгоритмы сборки геномных
последовательностей» НИУ ИТМО
• Создана в 2010 году
• Нынешний состав лаборатории – с начала
2011 года
• Сейчас в лаборатории работают восемь
человек
• Работа начиналась в сотрудничестве с
центром «Биоинженерия» РАН
2
3. Направления работы
• Сборка контигов
• Сборка скэффолдов
• Сборка транскриптома
• Распределенный алгоритм сборки генома
• Обучение алгоритмам сборки генома
– Курс «Genome Assembly Algorithms» в летней
школе университета г. Ювяскюля (Финляндия)
http://en.ifmo.ru/index.php?option=com_content&vi
ew=article&id=888:genome-assembly-
algorithms&catid=167&Itemid=405
– Первое использование системы Rosalind в рамках
учебного курса
3
4. Теоретические исследования в
области сборки генома
• Доказана NP-трудность задачи De Bruijn
Superwalk with Multiplicities (задача
сформулирована на конференции RECOMB-
AB) – подана доклад на RECOMB 2013
4
5. Финансирование работ
• ФЦП «Научные и научно-педагогические кадры
инновационной России на 2009-2013 годы»:
– Разработка метода сборки геномных
последовательностей на основе восстановления
фрагментов по парным чтениям
– Разработка методов сборки генома, сборки
транскриптома и динамического анализа протеома
• ФЦП «Исследования и разработки по приоритетным
направлениям развития научно-технологического
комплекса России на 2007—2013 годы»:
– Разработка алгоритмов сборки геномных
последовательностей для вычислительных систем
экзафлопсного уровня производительности
5
6. Сборка контигов
• Цель – разработать программное средство
для сборки больших геномов (несколько
миллиардов нуклеотидов) с
использованием небольшого объема
оперативной памяти (32-64 гигабайта)
6
7. Исходные данные
Парные чтения геномной последовательности
(длина порядка 100 символов), геном покрыт
чтениями несколько десятков раз
Необходимо: восстановить как можно больше
непрерывных фрагментов геномной
последовательности (контигов)
Геном
Фрагмент (~500 нуклеотидов)
Парные чтения (риды) (по ~100 нуклеотидов)
Разработка алгоритмов сборки геномных последовательностей для вычислительных систем
экзафлопсного уровня производительности
8. Проект dnGASP
• dnGASP = de novo Genome Assembly
Assessment Project (http://cnag.bsc.es)
• Организован Национальным центром
геномного анализа (Барселона, Испания)
• Сборка искусственного генома размеров
1.8 Гб
• Начало: 15 декабря 2010 года, конец: 01
марта 2011 года
• Аналогичные проекты: Assemblathon,
Assemblathon 2
8
9. Искусственный геном
• 14 искусственных хромосом
– 11 – на основе реальных живых организмов
– 3 – полностью искусственные с разными
типами повторов
• Было смоделировано чтение генома
машиной второго поколения
– Известно распределение длин фрагментов
9
10. Исходные данные для сборки генома
• Заданы 4 библиотеки ридов
– Длина ридов: 114, длина фрагмента ~500,
покрытие – 44 раза
– Длина ридов: 36, длина фрагмента ~3000,
покрытие – 8 раз
– Длина ридов: 36, длина фрагмента ~5000,
покрытие – 8 раз
– Длина ридов: 36, длина фрагмента ~10000,
покрытие – 4 раза
10
11. Алгоритм
Граф де Подход
Брюина OLC
Сборка
Исправление Сборка Сборка
квази-
ошибок контигов скэффолдов
контигов
OLC = overlap-layout-consensus
11
12. Исправление ошибок: обрезка
ридов
• Сканируем начиная с начала каждый рид до тех
пор, пока не найдем нуклеотид с качеством
меньшим 90%
• Обрезаем рид начиная с этой позиции
>90% >90% >90% >90% >90% >90% >90% <90%
>90% >90% >90% >90% >90% >90% >90%
12
13. Исправление ошибок: частотный анализ
• Рассмотрим все 30-символьные подстроки
ридов и обратно-комплементарные к ним
• Вычислим число вхождений для каждой из
них
– Редко встречается – есть ошибка
– Часто встречается – является «доверенным»
• Граница выбирается автоматически
13
15. Исправление ошибок: корзины
• Память:
– Каждая подстрока - 64-битное число
– Число вхождений – 32-битное число
– ~6·109 различных 30-меров во всех ридах – 72 Гб
(а есть только 24)
• Распределение 30-меров по корзинам в
соответствии с префиксами
• Префикс длины k → 4k корзин
15
16. Исправление ошибок
• Каждая корзина обрабатывается отдельно
• Рассмотрим «недоверенный» 30-мер
– Меняем один символ в нем: 3·(30-k) способов
– Если ровно один 30-мер «доверенный», исправляем
соответствующее чтение
• Для исправления ошибок в префиксах, можно загрузить еще
3k корзин в память или...
• Не загружать – рассмотрим обратно-комплементарный 30-
мер
A G T A C A T
A T G T A C T 16
30. Поиск путей
● Два одновременных обхода в ширину навстречу
друг другу.
● На каждом шаге поддерживается два множества
вершин: удаленных от начала на l1 и удаленных
от конца на l2.
● Если эти множества пересекаются, то есть путь
длины l1+l2.
● Если в множествах становится слишком много
вершин, прерываемся.
30
31. Хранение графа
● Открытая хеш-таблица ребер: 8 байт на (k+1)-мер и
около 4 байт на пропуск (коэффициент заполнения
0.7).
● Только «надежные» (k+1)-меры.
● ~40 GB для генома человека, ~100 MB для RAM для
бактериальных геномов.
● Еще меньше памяти с помощью фильтров Блума
(5.7 GB для генома человека): R. Chikhi, G. Rizk.
Space-efficient and exact de Bruijn graph
representation based on a Bloom filter, WABI 2012.
31
32. GapFiller
● Используют подход seed-and-extend для
восстановления фрагментов.
● Первое чтение в паре – seed, затем оно постепенно
продолжается в сторону второго чтения на основе
перекрытий, используя другие чтения.
● Если нашли второе чтение в паре – хорошо.
Nadalin F., Vezzi F., Policriti A. GapFiller: a de novo assembly approach to fill the gap
within paired reads. // BMC Bioinformatics. 2012. Vol. 13 (Supl. 14).
32
34. Сборка квазиконтигов для dnGASP
• 24 ядра и 64 GB RAM
• Сборка квазиконтигов из всех чтений – 48
часов
• Вершины – 30-меры
• Длина квазиконтигов: от 330 до 550
• 67% чтений преобразовано в квазиконтиги
• ~27% – не единственный путь
• ~6% – не найдено пути
34
38. Поиск перекрытий
● Построим строку
S = “<Квазиконтиг1>$<Квазиконтиг2>$...$”
● Построим для нее суффиксный массив
(bucket-sort + quicksort).
● Для каждого квазиконтига двоичным поиском
ищем все его префиксы.
● Делаем поиск сразу для группы с
одинаковыми префиксами.
● Поиск префиксов с неточными совпадениями.
38
39. Удаление транзитивных ребер
● Использование центрального сдвига.
● Все перекрытия загружаются в память и
сортируются по сдвигу.
CenterShiftAB
Квазиконтиг A A T G C A G C T G G
Квазиконтиг B T G C A G C T G G A
Квазиконтиг C C A G C T G G A C T
CenterShiftBC
39
43. Сборка генома Opistorchis Felineus (1)
• Исходные данные
– 350 миллионов пар чтений
– Длина чтения – 72 основания
– Общий размер: 50 Гбаз
• Секвенирован в центре «Биоинженерия»
РАН
43
44. Opistorchis Felineus : квазиконтиги
• 63% парных чтений были преобразованы в
квазиконтиги
44
46. Микросборка
• Есть парные чтения концы которых
расположенны на разных контигах
• Промежуток между контигам покрыт
чтениями, парными к расположенным на
обоих контигах
46
47. Микросборка
● Чтения (a1, a2) соединяют контиги A и B
● Чтения (b1, b2) и (c1, c2) используются для
заполнения промежутка
● Картирование с помощью Bowtie
47
48. Алгоритм микросборки
• Найдем позиции парных чтений в контигах
• Найдем пары контигов таких, что их
соединяет достаточно большое число чтений
• Построим граф де Брѐйна из парных чтений,
как минимум одно из которых расположено в
одном из этих контигов
• Воспользуемся алгоритмом сборки
квазиконтигов для заполнения промежутка
48
49. Результаты микросборки
• Геном E. Coli
• До микросборки – 537 контигов с N50 =
15039
• После микросборки – 213 контигов с N50 =
50716
• Почему-то не работает для больших
геномов
49
51. Производительность секвенаторов и
компьютеров
• Производительность суперкомпьютеров удваивается
каждые 18 месяцев
• Стоимость секвенирования падает в 10 раз каждые 18
месяцев
51
52. Особенность задачи сборки генома относительно
высокопроизводительных вычислений
• Задача является «ориентированной на
данные» (data intensive), что отличает ее от
задач численного моделирования, решения
систем линейных уравнений и т.д.
– Большую часть времени занимают
операции с исходными данными, а не
вычисления
– Распараллеливание по данным
Разработка алгоритмов сборки геномных последовательностей для вычислительных систем
экзафлопсного уровня производительности
53. Технологии разработки
сверхмасштабируемых приложений
• MPI, OpenMP, ParalleX, HPX – для computation intensive
задач
• CUDA – не ясно, как использовать для сборки генома
• MapReduce – считается перспективной для data
intensive задач
– «Challenges on the Path to Exaflop/s Computing»
(http://www.zettaflops.org/fec07/presentations/Monday-1330-
Simon7Challenges.pdf)
– «The Challenges of Exascale Computing for Astroinformatics
Apps»(http://wenku.baidu.com/view/5a69e1303968011ca300915
e.html)
Разработка алгоритмов сборки геномных последовательностей для вычислительных систем
экзафлопсного уровня производительности
54. Подходы к распределенной
сборке генома
• AbySS – MPI, Граф де Брюина
– Распределенная хеш-таблица для хранения графа
• Phusion
– Разбиение чтений на части на одном компьютере
– Сборка на нескольких компьютерах
• Contrail – MapReduce, Граф де Брюина
– Параллельное рандомизированное ранжирование
списков
– Параллельный поиск шаблонов в сети
54
55. MapReduce
• Map – к каждому элементу входных данных
применим функцию, возвращающую пару
<ключ, значение>
• Reduce – сгруппируем элементы по ключу,
применим к каждой группе результирующую
функцию
Отличный способ распределенной обработки
данных!
55
56. Параллельный метод сборки
Граф де Граф
Брюина перекрытий
Сборка
Исправление Сборка
квази- Контиги
ошибок контигов
контигов
56
57. Распределенный метод сборки
Исправление
Кластеризация Сборка Кластеризация
ошибок в данных Сборка контигов
чтений квазиконтигов квазиконтигов
секвенирования
57
58. Исправление ошибок (1)
• Подсчет частот k-меров (строк длины k)
– Модификация классического MapReduce-алгоритма
подсчета частот слов
– Распределение k-меров по вычислительным узлам в
зависимости от префикса
• Исправление «ненадежных» k-меров (редкие) на
похожие «надежные» (частые)
58
59. Исправление ошибок (2)
• Поиск исправлений:
– Ключ – префикс чтения
– Map – для каждого k-мера в чтении выводим
<префикс, k-мер, позиция>
– Reduce – группируем по префиксу, выводим
<чтение, исправление ошибки>
• Применение исправлений:
– Map – для каждого чтения выводим
<чтение, исправление ошибки>
– Reduce – группируем по чтению, выводим
исправленное чтение
59
60. Сборка квазиконтигов
• Входные данные – набор парных чтений
• Цель – заполнить промежутки между концами
чтений
ATGC ??? GTCC
ATGC ATGCATGCAGTG GTCC
60
61. Заполнение промежутков
• У перекрывающихся чтений есть общие k-меры
• Если есть общие k-меры, то чтения, возможно,
перекрываются в геноме
• Если есть несколько перекрывающихся чтений, то
можно заполнить промежутки
A T G C A G ??? C T G T C C
C A G C T G ??? T C CT A C
C T G G A C ??? T A CC A T
A T G C A G C T G G A C T G T C C T A C C A T
61
62. Распределенная сборка
квазиконтигов
• Кластеризация – разделение чтений по группам
для распределенной обработки.
• Критерий для кластеризации – число общих
k-меров
Часть Квази-
чтений контиги
Все Часть Квази-
Кластеризация
чтения чтений контиги
Часть Квази-
чтений контиги
62
64. Экспериментальные исследования (1)
• E. Coli
– 4.5 миллиона нуклеотидов
– 0.5 ГБ входных данных
• Кластер НИИ НКТ НИУ ИТМО
– 10 узлов по 8 ядер, 24 ГБ RAM
• Сборка контигов распределенным сборщиком
– N50 равно 4718 нуклеотидов
– 93% генома покрыто контигами
– 97% генома покрыто квазиконтигами
• Сборщик Contrail
– N50 равно 672 нуклеотидов
– 95% генома покрыто контигами
64
65. Экспериментальные исследования (2)
• Синтетический геном
– 1.8 млрд. нуклеотидов
– 172 ГБ входных данных
• Суперкомпьютер «Ломоносов»
МГУ им. М.В. Ломоносова
– 3900 узлов по 8 ядер, 12 ГБ RAM, Lustre FS
• Поиск ошибок
– 10 минут чтение и map-фаза
– 2 ТБ промежуточных данных (результат map-фазы)
– 5 минут передача промежуточных результатов (от map к
reduce)
– 9000 потоков записи результата reduce-фазы вывели из
строя Lustre FS
65
67. Сборка скэффолдов
• Начали работу в середине 2012 года
• Применяем принцип максимального
правдоподобия
• Первые результаты будут представлены на
конференции «Постгеномные методы
анализа в биологии, лабораторной и
клинической медицине» (22.11-24.11,
Казань)