Разработка алгоритма сборки и анализа больших геномов | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №3 (137) январь 2017 г.

Дата публикации: 23.01.2017

Статья просмотрена: 282 раза

Библиографическое описание:

Бойко, В. А. Разработка алгоритма сборки и анализа больших геномов / В. А. Бойко. — Текст : непосредственный // Молодой ученый. — 2017. — № 3 (137). — С. 27-28. — URL: https://moluch.ru/archive/137/38530/ (дата обращения: 18.12.2024).



Специфика многих современных задач биологии и медицины требует знания генома живых организмов, состоящего из нуклеотидных последовательностей дезоксирибонуклеиновой кислоты (ДНК).

На сегодняшний день существуют и применяются сборщики ДНК, собравшие уже множество известных геномов. Однако когда речь заходит о геномах большой длинны, осложненных значительным количеством повторяющихся участков, то гарантировать однозначную сборку генома становится невозможно. Также большинство сборщиков запрограммированы на работу с входными данными, полученными из строго определённых типов секвенаторов. Такой подход сокращает возможную область применения сборщиков и не удовлетворяет идеологии свободнораспространяемого ПО.

В данной работе представлено описание сборщика лишенного вышеперечисленных недостатков и показан пример его работы.

Описание алгоритма

Как и большинство современных сборщиков, предлагаемый подход использует парные чтения, получаемые из секвенаторов нового поколения, и в связи с этим работает на основе алгоритма использующего граф де Брёйна.

Разделим работу сборщика на следующие этапы:

  1. Нумерация чтений — каждое чтение получает уникальный идентификационный номер, позволяющий однозначно восстановить нуклеотидную последовательность в пределах одного чтения во время обхода графа.
  2. Построение графа де Брёйна и выбор числа k — любой граф может иметь вершины и рёбра. В нашем случае вершинами являются k — меры. Ребро из вершины 1 в вершину 2 проводится только тогда, когда суффикс длинны k — 1 из k — мера представляющего вершину 1, равняется префиксу k — мера вершины 2, т. е. ребро, по сути, является (k + 1) — мером.
  3. Упрощение графа. Если в графе находится путь, у которого входящие и исходящие степени всех внутренних вершин равны 1, то такой путь заменяется ребром.
  4. Нахождение перспективных вершин. Для нахождения перспективных k — меров будем полагать, что вероятность нахождения вершины в исходном геноме тем выше, чем большее количество исходящих ребер она имеет. Обозначим как количество всех исходящих ребер для вершины Тогда общее число всех исходящих ребер: , где n — общее количество всех вершин. Найдем среднее значение исходящих ребер N для всего графа. . Перспективными будем называть вершины имеющие значение исходящих вершин больше N. Количество перспективных вершин может варьироваться в разных библиотеках чтений от 5 % до 10 %.
  5. Построение контигов. Для построения контигов используются начальные вершины обхода, хранящиеся в массиве перспективных вершин.

Реализация ирезультаты

Предложенный алгоритм был реализован на языке программирования Python и был протестирован на синтетической библиотеке чтений. Для хранения графа де Брёйна использовалась хэш-таблица, где ключом является k — мер (вершина графа), а значением исходящие рёбра и идентификационные номера чтений из которых были получены эти рёбра.

Синтетический геном имеет длину порядка 100000 нуклеотидов, средний размер чтений составляет 50 нуклеотидов, число чтений 13168. В эксперименте был проведен анализ качества контигов в зависимости от значения параметра k. Для этого для всех k множества {16, 20,26} была запущенна сборка.

В каждом случае было определено и записано качество картирования, насколько хорошо контиги картировались на референсный геном: считалась доля числа контигов, в которых доля правильных нуклеотидов была больше заданного порога. Результаты приведены в таблице 1.

Таблица 1

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

Длинна kмера

Качество картирования,%

16

70 %

20

81 %

26

97 %

По итогам проверки качества сборки было выбрано значение k = 26.

После получения графа де Брейна встала необходимость произвести сжатие элементарных путей. Был применен алгоритм сжатия, который позволил удалить около 20000 вершин из 111277. В результате получился граф готовый к построению контигов за приемлемое время. Характеристики полученных контигов представлены в таблице 2.

Таблица 2

Характеристики контигов для оптимального значения k— мера

Длина k-мера

Количество контигов

Максимальная длина контига

Минимальная длина контига

Средняя длина контига

26

12809

11454

1602

6398

Время работы сборщика составило 452 минуты, из которых 22 минут заняло построение графа, 2 минут построение сжатого графа, и 428 минут сборка контигов. Необходимо отметить, что предложенный алгоритм является только частью процесса сборки геномной последовательности и полученные фрагменты нуждаются в дальнейшей обработке.

Заключение

В результате работы был разработан прототип сборщика, основанный на графе де Брёйна, который в перспективе позволит справиться с проблемой повторов в больших геномах. В будущем планируется, во-первых — переписать сборщик на более быстрый язык, например C++, во-вторых — использовать в его работе технологию параллельных вычислений CUDA.

Литература:

  1. Illumina [Электронный ресурс]: официальный сайт компании // Режим доступа: http://www.illumina.com/.
  2. Butler, J. Allpaths: de Novo assembly of whole-genome shotgun microreads / J. Butler. — Genome Research, 2008. — 496p.
  3. Daniel, R. Velvet: Algorithms for de Novo short read assembly using de bruijn graphs. Genome Research / R. Daniel. — Lecture Notes Comput., 2008. — 554p.
Основные термины (генерируются автоматически): вершина, CUDA, граф, исходящая, качество картирования, мера, построение графа, предложенный алгоритм, ребро, синтетический геном.


Задать вопрос