Доклад на семинаре в лаборатории алгоритмической...

Preview:

DESCRIPTION

Слайды доклада 16.11.2012 на семинаре в лаборатории алгоритмической биологии АУ

Citation preview

Метод сборки генома на основе совместного

применения графов де Брёина и графов перекрытий

Лаборатория «Алгоритмы сборки геномных последовательностей»

Национального исследовательского университета информационных технологий, механики и оптики

16 ноября 2012

2

Лаборатория «Алгоритмы сборки геномных последовательностей» НИУ ИТМО

• Создана в 2010 году• Нынешний состав лаборатории – с начала

2011 года• Сейчас в лаборатории работают восемь

человек• Работа начиналась в сотрудничестве с

центром «Биоинженерия» РАН

3

Направления работы

• Сборка контигов• Сборка скэффолдов• Сборка транскриптома• Распределенный алгоритм сборки генома• Обучение алгоритмам сборки генома

– Курс «Genome Assembly Algorithms» в летней школе университета г. Ювяскюля (Финляндия) http://en.ifmo.ru/index.php?option=com_content&view=article&id=888:genome-assembly-algorithms&catid=167&Itemid=405

– Первое использование системы Rosalind в рамках учебного курса

4

Теоретические исследования в области сборки генома

• Доказана NP-трудность задачи De Bruijn Superwalk with Multiplicities (задача сформулирована на конференции RECOMB-AB) – подана доклад на RECOMB 2013

5

Финансирование работ

• ФЦП «Научные и научно-педагогические кадры инновационной России на 2009-2013 годы»:– Разработка метода сборки геномных последовательностей на

основе восстановления фрагментов по парным чтениям– Разработка методов сборки генома, сборки транскриптома и

динамического анализа протеома• ФЦП «Исследования и разработки по приоритетным

направлениям развития научно-технологического комплекса России на 2007—2013 годы»:– Разработка алгоритмов сборки геномных

последовательностей для вычислительных систем экзафлопсного уровня производительности

6

Сборка контигов

• Цель – разработать программное средство для сборки больших геномов (несколько миллиардов нуклеотидов) с использованием небольшого объема оперативной памяти (32-64 гигабайта)

Исходные данные

Разработка алгоритмов сборки геномных последовательностей для вычислительных систем экзафлопсного уровня производительности

Парные чтения геномной последовательности (длина порядка 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

9

Искусственный геном

• 14 искусственных хромосом– 11 – на основе реальных живых организмов– 3 – полностью искусственные с разными

типами повторов• Было смоделировано чтение генома

машиной второго поколения– Известно распределение длин фрагментов

10

Исходные данные для сборки генома

• Заданы 4 библиотеки ридов– Длина ридов: 114, длина фрагмента ~500,

покрытие – 44 раза– Длина ридов: 36, длина фрагмента ~3000,

покрытие – 8 раз– Длина ридов: 36, длина фрагмента ~5000,

покрытие – 8 раз– Длина ридов: 36, длина фрагмента ~10000,

покрытие – 4 раза

11

Алгоритм

Исправление ошибок

Сборка квази-

контигов

Сборка контигов

Сборка скэффолдов

Граф де Брюина

Подход OLC

OLC = overlap-layout-consensus

12

Исправление ошибок: обрезка ридов

• Сканируем начиная с начала каждый рид до тех пор, пока не найдем нуклеотид с качеством меньшим 90%

• Обрезаем рид начиная с этой позиции

>90% >90% >90% >90% >90% >90% <90%

>90% >90% >90% >90% >90% >90%

>90%

>90%

13

Исправление ошибок: частотный анализ

• Рассмотрим все 30-символьные подстроки ридов и обратно-комплементарные к ним

• Вычислим число вхождений для каждой из них– Редко встречается – есть ошибка– Часто встречается – является «доверенным»

• Граница выбирается автоматически

14

Исправление ошибок: распределение

• < 4 вхождений – «недоверенные»• Другие 30-меры – «доверенные»

15

Исправление ошибок: корзины

• Память:– Каждая подстрока - 64-битное число– Число вхождений – 32-битное число– ~6·109 различных 30-меров во всех ридах – 72 Гб

(а есть только 24)• Распределение 30-меров по корзинам в

соответствии с префиксами• Префикс длины k → 4k корзин

16

Исправление ошибок

• Каждая корзина обрабатывается отдельно• Рассмотрим «недоверенный» 30-мер

– Меняем один символ в нем: 3·(30-k) способов– Если ровно один 30-мер «доверенный», исправляем

соответствующее чтение• Для исправления ошибок в префиксах, можно загрузить еще

3k корзин в память или... • Не загружать – рассмотрим обратно-комплементарный 30-

мер

A CATG TA

A ATGT TC

17

Исправление ошибок: результаты на данных dnGASP

• Использовался компьютер с 24 ядрами и 24 Гб оперативной памяти в течение 24 часов

• Число различных 30-меров:– До: – После: (~40% меньше)

• Число «доверенных» 30-меров:– До: – После: ~10% больше)

18

СБОРКА КВАЗИКОНТИГОВ

19

Парные чтения

ДНК

Фрагмент (180–500 оснований)

Парные чтения (30–120 оснований)

20

Цель сборки квазиконтигов

??? GTCCATGC

ATGCATGCAGTG GTCCATGC

Граф де Брёйна для множества строк S:● V = ● E =

21

Граф де Брёйна

22

Пример графа де Брёйна (1)

23

Пример графа де Брёйна (2)

AGT GTG

GTC TCA CAT ATC TCC

CCA

CAA

AACACA

CAC

CAGAGGGGAGAG

24

Пример графа де Брёйна (3)

25

Пример графа де Брёйна (4)

Уникальные пути (1)

Уникальные пути (2)

Уникальные пути преобразуются в квазиконтиги

29

Алгоритм

● Для каждой пары чтений найдем путь, соединяющий первый k-мер r1 и обратно-комплементарный первый k-мер r2.

● Длина пути должна укладываться в априорные границы.

● Путь должен быть единственным.

30

Поиск путей

● Два одновременных обхода в ширину навстречу друг другу.

● На каждом шаге поддерживается два множества вершин: удаленных от начала на l1 и удаленных от конца на l2.

● Если эти множества пересекаются, то есть путь длины l1+l2.

● Если в множествах становится слишком много вершин, прерываемся.

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.

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

33

Результаты● Геном E. Coli (4.5 Mbp), библиотека SRR001665

(160-кратное покрытие, размер фрагмента ~200, длина чтений – 36).

● Наш сборщик: 1 CPU час, из квазиконтигов картировались на референс не идеально, 1.2% генома было не покрыто.

● Если использовать «N» – 0.4%● GapFiller: 20 CPU часов, из не идеальны, 0.3%

генома не покрыто.

34

Сборка квазиконтигов для dnGASP

• 24 ядра и 64 GB RAM• Сборка квазиконтигов из всех чтений – 48

часов• Вершины – 30-меры• Длина квазиконтигов: от 330 до 550• 67% чтений преобразовано в квазиконтиги• ~27% – не единственный путь• ~6% – не найдено пути

35

Распределение длин

0,00E+00

2,00E-03

4,00E-03

6,00E-03

8,00E-03

1,00E-02

1,20E-02

1,40E-02

264

272

280

288

296

304

312

320

328

336

344

352

360

368

376

384

392

400

408

416

424

432

440

448

456

464

472

480

488

496

504

512

520

528

536

544

Розовый – априорное распределение

Синий – длины квазиконтигов

СБОРКА КОНТИГОВ

37

Overlap-Layout-Consensus● Удаляем лишние квазиконтиги.● Добавление обратно-комплементарных копий.● Поиск перекрытий.● Удаление транзитивных перекрытий.● Упрощение графа перекрытий.● Вывод первого приближения контигов.● Микросборка.

38

Поиск перекрытий● Построим строку

S = “<Квазиконтиг1>$<Квазиконтиг2>$...$”● Построим для нее суффиксный массив (bucket-sort

+ quicksort).● Для каждого квазиконтига двоичным поиском

ищем все его префиксы.● Делаем поиск сразу для группы с одинаковыми

префиксами.● Поиск префиксов с неточными совпадениями.

39

Удаление транзитивных ребер

● Использование центрального сдвига.● Все перекрытия загружаются в память и

сортируются по сдвигу.

Квазиконтиг A

Квазиконтиг C

GTCA CGT GA G

CAGC GA GT T

CenterShiftAB

C

GGTT CG CG AAКвазиконтиг B

CenterShiftBC

40

Упрощение графа (1)

AGCAT

CCGTA ATACG

TACAG3, 2

3, 2

3, 2

CGGCATGTACGG3, 3

3.5, 22.5, 3

CCGTA ATACGGTACGG TACAG CGGCAT AGCAT2.5, 3 0.5, 5 3, 20.5, 52.5, 3

41

Упрощение графа (2)

...

...

42

Первая версия контигов

● Пути без ветвлений.● На E. Coli: ● В 1 ГБ памяти, около 15 минут.

43

Сборка генома Opistorchis Felineus (1)

• Исходные данные– 350 миллионов пар чтений– Длина чтения – 72 основания – Общий размер: 50 Гбаз

• Секвенирован в центре «Биоинженерия» РАН

44

Opistorchis Felineus : квазиконтиги

• 63% парных чтений были преобразованы в квазиконтиги

45

Сборка генома Opistorchis Felineus (2)

• Число контигов: 962013• Суммарная длина: 1061744060• Максимальная длина: 29392• Минимальная длина: 48• Средняя длина: 1104• N50: 1906 (у ABySS: ~1000)• N90: 412

46

Микросборка

• Есть парные чтения концы которых расположенны на разных контигах

• Промежуток между контигам покрыт чтениями, парными к расположенным на обоих контигах

47

Микросборка

● Чтения (a1, a2) соединяют контиги A и B● Чтения (b1, b2) и (c1, c2) используются для

заполнения промежутка● Картирование с помощью Bowtie

48

Алгоритм микросборки

• Найдем позиции парных чтений в контигах

• Найдем пары контигов таких, что их соединяет достаточно большое число чтений

• Построим граф де Брёйна из парных чтений, как минимум одно из которых расположено в одном из этих контигов

• Воспользуемся алгоритмом сборки квазиконтигов для заполнения промежутка

49

Результаты микросборки

• Геном E. Coli• До микросборки – 537 контигов с N50 =

15039• После микросборки – 213 контигов с N50 =

50716• Почему-то не работает для больших

геномов

50

РАСПРЕДЕЛЕННЫЙ АЛГОРИТМ СБОРКИ ГЕНОМА

51

Производительность секвенаторов и компьютеров

• Производительность суперкомпьютеров удваивается каждые 18 месяцев

• Стоимость секвенирования падает в 10 раз каждые 18 месяцев

Особенность задачи сборки генома относительно высокопроизводительных вычислений

• Задача является «ориентированной на данные» (data intensive), что отличает ее от задач численного моделирования, решения систем линейных уравнений и т.д.– Большую часть времени занимают

операции с исходными данными, а не вычисления

– Распараллеливание по данным

Разработка алгоритмов сборки геномных последовательностей для вычислительных систем экзафлопсного уровня производительности

Технологии разработки сверхмасштабируемых приложений

• 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/5a69e1303968011ca300915e.html)

Разработка алгоритмов сборки геномных последовательностей для вычислительных систем экзафлопсного уровня производительности

54

Подходы к распределеннойсборке генома

• AbySS – MPI, Граф де Брюина– Распределенная хеш-таблица для хранения графа

• Phusion – Разбиение чтений на части на одном компьютере– Сборка на нескольких компьютерах

• Contrail – MapReduce, Граф де Брюина– Параллельное рандомизированное ранжирование

списков– Параллельный поиск шаблонов в сети

55

MapReduce

• Map – к каждому элементу входных данных применим функцию, возвращающую пару <ключ, значение>

• Reduce – сгруппируем элементы по ключу, применим к каждой группе результирующую функцию

Отличный способ распределенной обработки данных!

56

Параллельный метод сборки

Исправление ошибок

Сборка квази-

контигов

Сборка контигов

Контиги

Граф де Брюина

Граф перекрытий

57

Распределенный метод сборки

Исправление ошибок в данных секвенирования

Кластеризация чтений

Сборка квазиконтигов

Кластеризация квазиконтигов

Сборка контигов

58

Исправление ошибок (1)

• Подсчет частот k‑меров (строк длины k)– Модификация классического MapReduce-алгоритма

подсчета частот слов– Распределение k‑меров по вычислительным узлам в

зависимости от префикса

• Исправление «ненадежных» k‑меров (редкие) на похожие «надежные» (частые)

59

Исправление ошибок (2)• Поиск исправлений:

– Ключ – префикс чтения– Map – для каждого k‑мера в чтении выводим

<префикс, k‑мер, позиция>– Reduce – группируем по префиксу, выводим

<чтение, исправление ошибки>• Применение исправлений:

– Map – для каждого чтения выводим <чтение, исправление ошибки>

– Reduce – группируем по чтению, выводим исправленное чтение

60

Сборка квазиконтигов

??? GTCCATGC

• Входные данные – набор парных чтений

• Цель – заполнить промежутки между концами чтений

ATGCATGCAGTG GTCCATGC

61

Заполнение промежутков

???A CCGT G G T CA TC

??? CC G T CA T AGTC

GTCA CGT GA CG T CTCAG CT A TC A

C

??? CC G T AT C ACAG T

• У перекрывающихся чтений есть общие k‑меры• Если есть общие k‑меры, то чтения, возможно,

перекрываются в геноме • Если есть несколько перекрывающихся чтений, то

можно заполнить промежутки

62

Распределенная сборка квазиконтигов

Все чтения

Часть чтений

Часть чтений

Часть чтений

Кластеризация

Квази-контиги

Квази-контиги

Квази-контиги

• Кластеризация – разделение чтений по группам для распределенной обработки.

• Критерий для кластеризации – число общих k‑меров

63

Кластеризация на MapReduce• Построим граф чтений:

– Вершины – чтения– Ребра – общие k меры‑

• Выберем 1% чтений• Разобьем все чтения на группы начиная с

выбранных чтений– Reduce – шаг обхода в ширину, принимающий

<вершина, группы этой вершины, соседниевершины>, возвращающий <сосед, его группы>

– Число шагов обхода в ширину:

64

Экспериментальные исследования (1)

• E. Coli– 4.5 миллиона нуклеотидов– 0.5 ГБ входных данных

• Кластер НИИ НКТ НИУ ИТМО– 10 узлов по 8 ядер, 24 ГБ RAM

• Сборка контигов распределенным сборщиком– N50 равно 4718 нуклеотидов– 93% генома покрыто контигами– 97% генома покрыто квазиконтигами

• Сборщик Contrail– N50 равно 672 нуклеотидов– 95% генома покрыто контигами

65

Экспериментальные исследования (2)

• Синтетический геном– 1.8 млрд. нуклеотидов– 172 ГБ входных данных

• Суперкомпьютер «Ломоносов»МГУ им. М.В. Ломоносова– 3900 узлов по 8 ядер, 12 ГБ RAM, Lustre FS

• Поиск ошибок– 10 минут чтение и map-фаза– 2 ТБ промежуточных данных (результат map-фазы)– 5 минут передача промежуточных результатов (от map к

reduce) – 9000 потоков записи результата reduce-фазы вывели из

строя Lustre FS

66

Сборка транскриптома

• Начали работу в июне 2012 года• Применяем подход, аналогичный сборке

квазиконтигов

Сборка скэффолдов

• Начали работу в середине 2012 года• Применяем принцип максимального

правдоподобия• Первые результаты будут представлены на

конференции «Постгеномные методы анализа в биологии, лабораторной и клинической медицине» (22.11-24.11, Казань)

Спасибо за внимание!

http://genome.ifmo.ru/ruhttp://genome.ifmo.ru/en

Recommended