Skip to content

A framework for assembling a genome using an overlap graph, a de Bruijn graph using an ML component

Notifications You must be signed in to change notification settings

yuuusha/genome-assembler

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Фреймворк для сборки генома с помощью графа перекрытий, графа де Брюйна с использованием ML-компоненты

Контекст задачи.

ДНК можно представить как обычную строку, состоящую из четырех символов: A, C, G и T — это алфавит, кодирующий генетическую информацию. Современные биологические приборы — секвенаторы — не считывают всю строку целиком. Они «разрывают» её на короткие фрагменты — риды — длиной 50–150 символов, и задача биоинформатики — восстановить исходную последовательность по этим кусочкам, это называется сборкой генома. В результате получается набор контигов — неперекрывающихся длинных последовательностей.

image

Постановка задачи

Математическая постановка задачи: пусть имеется набор ридов где каждый рид строка над алфавитом {A,C,G,T}, причем для некоторых пар ридов выполняется условие перекрытия — суффикс одной строки совпадает с префиксом другой строки. Необходимо по перекрытиям восстановить полную последовательность. Наиболее подходящее решение заключается в использовании графов.

Графовые подходы

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

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

image

Данные

В качестве данных был выбран геном организма Salmonella enterica, поскольку является одним из наиболее изученных организмов. Длина генома составляет около 4.8 млн.п.н., количество ридов — 2.8 млн. штук, средняя длина ридов 92 п.н..

image

Сравнение готовых сборщиков

Были протестированы три популярных ассемблера: Abyss, SPAdes и Velvet.

  • Abyss показал наименьшее количество ошибок, но при этом сборка получилась сильно фрагментированной — то есть много коротких кусочков.
  • SPAdes и Velvet собирают более длинные участки, но ошибаются чаще.

image

image

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

  • Граф перекрытий — подходит для длинных ридов и дает более точную, но дорогую по ресурсам сборку. Используется реже из-за сложности.

Граф чаще используют для сборки “длинных” ридов (от 10 тыс.п.н.), поэтому для демонстрации работы графа были извлечены фрагменты нужной длины непосредственно из референсного генома.

image

Граф де Брюйна. Выбор k

  • Граф де Брюйна — основан на разбиении ридов на короткие подстроки фиксированной длины. Он быстрее и масштабируемее, но требует точной настройки параметра длины подстрок (k).

Для коротких ридов длины 80-90 п.н. принято выбирать k равное 61-71. С целью подобрать оптимальное значение k, было осуществлено несколько запусков с различными значениями параметра на небольшом количестве данных (100000 ридов). Можно заметить, как при увеличении числа k уменьшается количество вершин и ребер графа, что закономерно, так как уменьшается общее число уникальных k-меров данной длины, вследствие чего для больших k меньше ребер и вершин после упрощения. Однако, напротив, увеличивается число контигов после сборки - это происходит потому, что при меньшем числе ребер получается больше компонент связности, а каждая компонента отражает отдельный контиг.

image

Внедрение машинного обучения.

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

image

image

Результат — ошибки при сборке сократились примерно в 1.5 раза, однако общая структура графа осталась фрагментированной. Это показывает потенциал, но требует дальнейшей доработки моделей.

Выводы

  • Abyss показал наименьшее количество ошибок, но дал фрагментированную сборку.
  • SPAdes и Velvet собирают более длинные контиги, но с большим числом ошибок
  • Граф перекрытий лучше подходит для сборки длинных и немногочисленных ридов
  • Граф де Брюйна показывает очень высокую фрагментацию при сборке
  • Внедрение машинного обучения позволило снизить количество ошибок при сборке

About

A framework for assembling a genome using an overlap graph, a de Bruijn graph using an ML component

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published