Guests 2011-10-04-pevzner-assembly

Preview:

Citation preview

Реконструкция генома:пазл с миллиардом частей

Филлип Компо и Павел Певзнер,Калифорнийский университет, Сан-Диего

Вопрос Номер 1: Кто Эти Люди?

Содержание

1. Введение в секвенирование генома

2. Задача о газете

3. ДНК-чипы: первая попытка секвенирования короткими ридами

4. Два математических обхода

5. Введение в теорию графов

6. Теорема Эйлера

7. Эйлеров цикл против гамильтонова цикла и алгоритмическая сложность

8. От Эйлера и Гамильтона — к сборке фрагментов

9. Де Брюйн и итоговое решение для сборки фрагментов

10. Обобщая сборку фрагментов

Часть 1: Введение в секвенирование генома

Что такое секвенирование генома?

• Геном можно рассматривать как книгу, написанную при помощи алфавита, содержащего лишь 4 буквы — это нуклеотиды: A, T, G и C.

• В человеческом геноме содержится около 3 миллиардов нуклеотидов.

• Секвенирование генома — процесс выявления последовательности нуклеотидов, составляющих геном.

...CTGATGATGGACTACGCTACTACTGCTAGCTGTATTACGATCAGCTACCACATCGTAGCTACGATGCATTAGCAAGCTATCGATCGATCGATCGATTATCTACGATCGATCGATCGATCACTATACGAGCTACTACGTACGTACGATCGCGGGACTATTATCGACTACAGATAAAACATGCTAGTACAACAGTATACATAGCTGCGGGATACGATTAGCTAATAGCTGACGATATATAGCCGAGCGGCTACGATGATGCTAGCTGTACAGCTGATGATCTAGCTATCGATGCGATCGATGCGCGAGTGCGATCGATCACTTCGAGCTAGCTGATCGATCGATGCTAGCTAGCTGACTGATCATGGCGTTAGCTAGCTAGCTGATCGTCGATCGTACGTAGCTGATTACGATCGTCCGATCGTGCTATGACGTACGAGGCGGCTACGTAGCATGCTAGCTGACTGATGTAGCTAGCTATACGATACTATATATTCGATCGATTTATTACCATGACTGACGCGCATCGCTGTACACGTACTAGCTGATCGATGCTAGTCGATCGATCGATCATGTTATATATCGCGGCGCATCGATCGACTGCTCGATTATCGATACGTCGATCGCTGTATATACGTCTTTATAGCTAGGAGCATAGCGACGCGCTATCGATCGATCGTCTAGTCGACTGATCGTACTAGCTGACGCTGACGACTAGCTAGCTATCGACGATCGTAGTGCGATTACTAGCTAGGATCCTACTGTACGTCAGTCAGTCTGATCGATAGCGAGGAAAGCGAGACTGATCGTTCTCTAGATGTAGCTGATGTGACTACTATACTACTGGCAGCGATCGGGA…

Что такое секвенирование генома?

• Разные люди имеют слегка различные геномы: у всех людей общие 99.9% генетического кода.

• Разница в 0.1% касается роста, цвета глаз, склонности к высокому уровню холестерина и т. д.

CTGATGATGGACTACGCTACTACTGCTAGCTGTATTACGATCAGCTACCACATCGTAGCTACGATGCATTAGCAAGCTATCGATCGATCGATCGATTATCTACGATCGATCGATCGATCACTATACGAGCTACTACGTACGTACGATCGCGGGACTATTATCGACTACAGATAAAACATGCTAGTACAACAGTATACATAGCTGCGGGATACGATTAGCTAATAGCTGACGATATCCGAT

CTGATGATGGACTACGCTACTACTGCTAGCTGTATTACGATCAGCTACAACATCGTAGCTACGATGCATTAGCAAGCTATCGATCGATCGATCGATTATCTACGATCGATCGATCGATCACTATACGAGCTACTACGTACGTACGATCGCGTGACTATTATCGACTACAGATGAAACATGCTAGTACAACAGTATACATAGCTGCGGGATACGATTAGCTAATAGCTGACGATATCCGAT

Видовое и индивидуальное секвенирование

• Видовое секвенирование: определить «общий геном» всего вида.

Видовое и индивидуальное секвенирование

• Индивидуальное секвенирование: определить, насколько индивидуум отличается от вида.

Видовое cеквенирование генома:

• Сравнить различные виды (например, человек и шимпанзе), чтобы понять, как функционируют их гены(например, какие геныважны для развитияголовного мозга).

• Выявить эволюционноеродство между видами.

• Определить генетический состав нашихэволюционных предков.

Зачем мы хотим секвенировать геном?

Зачем мы хотим секвенировать геном?

Индивидуальное секвенирование генома:

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

• Судебные исследования.

Пример: в 2010 г. 6-летний Николас Волкер стал первым человеком,которого удалось спасти благодаря секвенированию генома.

• Доктора не могли диагностировать его состояние, вызывавшее странные инфекции; он побывал в сотне врачебных кабинетов.

• Последовательность генома выявила редкуюмутацию в гене, ведущую к дефекту в егоиммунной системе.

• Это подтолкнуло врачей к использованиюболее глубокой иммунотерапии,что и спасло ребёнка.

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

• Конец 1970-х: Уолтер Гилберт и Фредерик Сэнгер развивают независимые методы секвенирования.

• 1980: Они получают Нобелевскую премию по химии.

• Однако их методы выявления последовательности были слишком дороги для больших геномов: при расходах в 1 доллар на нуклеотид расшифровка человеческого генома стоила бы 3 миллиарда долларов.

Уолтер Гилберт

Фредерик Сэнгер

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

• 1990: Общественный проект «Человеческий геном», возглавляемый Фрэнсисом Коллинзом, задаётся целью расшифровать человеческий геном.

• 1997: Крейг Вентер основывает частную фирму «Celera Genomics» с той же целью.

Фрэнсис Коллинз

Крейг Вентер

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

• 2000: Черновой вариант человеческого генома одновременно завершён (общественным) проектом «Человеческий геном» и (частной) Celera Genomics.

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

• 2000-е: расшифровывается всё большее число геномов млекопитающих.

Начало персональной геномики

• 2000-е: Многие компании запускают проекты, ставящие целью на порядок уменьшить затраты на секвенирование.

• 2010: Рождается рынок приборов, секвенирующих геном:• Illumina уменьшает стоимость секвенирования индивидуального

человеческого генома с 3 миллиардов долларов до 10 тысяч.

• Complete Genomics строит в Кремниевой долине предприятие по секвенированию с производительностью сотни геномов в месяц.

• Пекинский институт по исследованию геномов заказывает сотни секвенирующих машин, становясь крупнейшим центром в мире.

• 23andMe предлагает частичное чтение последовательности генома за 499 долларов.

• Многие университеты вводят новые курсы, на которых студенты будут изучать свои собственные геномы.

Будущее секвенировнания генома

• 2010-е?: Секвенирование генома будет, надеемся, продолжать развиваться.

• Секвенирование человеческого генома за 1000 долларов может стать реальностью уже в 2012 году.

• Вероятно, секвенирование индивидуального генома вскоре станет таким же рутинным делом, как рентгеновский снимок.

Что делает секвенирование генома трудным?

• Когда мы читаем книгу, мы можем прочесть её всю по букве от начала до конца.

• Однако современные машины по расшифровке не могут прочесть весь геном нуклеотид за нуклеотидом от начала до конца. Они могут читать лишь короткие отрывки, вырезанные из генома.

• Поэтому мы можем идентифицировать очень короткие фрагменты ДНК (длиной примерно в 100 нуклеотидов), называемые риды (reads).

• Но у нас нет подсказки, из какой части генома данный рид!• Мы должны выяснить, как составить риды вместе, чтобы

получился геном.

Часть 2: Задача о газете и секвенирование генома

Задача о газете

Задача о газете

Задача о газете

Задача о газете

Задача о газете

Задача о газете

Задача о газете как «пазл с наложениями»

• Задача о газете — не то же самое,что обычный пазл:

• У нас есть множество копийодного и того же издания газеты.

• Некоторые листы газетыразлетелись на мелкие клочки.

• Мы должны использовать клочки бумаги, накладывающиеся друг на друга,чтобы восстановить, что говорилось в газете.

• Это даёт нам гигантский пазл с наложениями!

• В задаче о газете на нас работают правила языка и здравый смысл (например, «убийство» и «подозреваемый» скорее встретятся в газете рядом друг с другом).

• Однако «язык» ДНК остаётся по большей части неясным.

Секвенирование сложнее задачи о газете

Секвенирование сложнее задачи о газете

• В каждом геноме есть много повторяющихся подстрок (50% человеческого генома — повторения).

• Пример: GCTT встречается четыре раза в строке

AAGCTTCTATTGCTTAATTGGCTTGCTTCGCTTTG

• Аналогия: треугольный пазлсодержит множествоповторяющихся фигур.Это сильно затрудняет егорешение (даже с 16 кусочками).

Секвенирование: лаборатория + вычисления

• Генерация ридов (лабораторная):Считать множество ридов из многих копий одного генома.

• Сборка фрагментов (вычислительная):Собрать геном из этих ридов с помощью эффективного алгоритма.

Секвенирование генома: иллюстрация

Много копий генома

Секвенирование генома: иллюстрация

Много копий генома

Чтение ридов

Секвенирование генома: иллюстрация

Много копий генома

Риды

Чтение ридов

Секвенирование генома: иллюстрация

Много копий генома

Риды

Чтение ридов

Сборка фрагментов

Секвенирование генома: иллюстрация

Много копий генома

Риды

Собранный геном

…GGCATGCGTCAGAAACTATCATAGCTAGATCGTACGTAGCC…

Чтение ридов

Сборка фрагментов

Часть 3: ДНК-чипы — первая попытка секвенирования

с помощью коротких ридов

ДНК-чипы: от идеи до новой индустрии

• 1989: Радое Дрманач, Андрей Мирзабеков и Эдвин Саутерн независимо друг от друга вводят понятие ДНК-чипов (матриц) для чтения ридов.

• Ключевая идея: считать все k-меры* генома в надежде, что из них может быть собран геном.

• 1989: журнал Science пишет: «Использование ДНК-матриц для определения последовательности было бы всего лишь заменой одной безнадежной задачи на другую.»

• 2000: Матрицы ‒ индустрия с миллиардами долларов.

Саутерн

Мирзабеков

Дрманач

k-мер: Строка длины k (над алфавитом из четырех нуклеотидов)

ДНК-чипы: реализация

1. Синтезировать все k-меры в каждой из 4k ячеек матрицы.

2. Покрыть матрицу многими копиями флуоресцентно помеченного фрагмента неизвестной ДНК.

3. ДНК гибридизирует с k-мером,если они дополняют друг друга.

4. Использовать спектроскоп, чтобыопределить, какие ячейкиизлучают свет — дополненияк этим ячейкам выявят k-мерынеизвестного фрагмента ДНК.Это и есть искомые риды!

ДНК-чипы: иллюстрация

ДНК-чипы: пример

• Прочитанные риды: AAA AGA CAA CGA GAA GGA TAA TGA

AAC AGC CAC CGC GAC GGC TAC TGC

AAG AGG CAG CGG GAG GGG TAG TGG

AAT AGT CAT CGT GAT GGT TAT TGT

ACA ATA CCA CTA GCA GTA TCA TTA

ACC ATC CCC CTC GCC GTC TCC TTC

ACG ATG CCG CTG GCG GTG TCG TTG

ACT ATT CCT CTT GCT GTT TCT TTT

CAC CGC TGC

CAT

CCA GCA

GCC

ACG TTG

ATT

ДНК-чипы: пример

• Прочитанные риды:

CAT

ДНК-чипы: пример

• Прочитанные риды:

CAT|||

ATG

CAC CGC TGC

CAT

CCA GCA

GCC

ACG TTG

ATT

ДНК-чипы: пример

• Прочитанные риды:

CAT

ATG

CAC CGC TGC

CAT

CCA GCA

GCC

ACG TTG

ATT

ДНК-чипы: пример

• Прочитанные риды:

CAT

ATG

CAC CGC TGC

CAT

CCA GCA

GCC

ACG TTG

ATT

ДНК-чипы: пример

• Прочитанные риды:

CAT

ATG

CAC CGC TGC

CAT

CCA GCA

GCC

ACG TTG

ATT

ДНК-чипы: пример

• Прочитанные риды:

CAT

ATG

CAC CGC TGC

CAT

CCA GCA

GCC

ACG TTG

ATT

ДНК-чипы: пример• Прочитанные риды:

• Значит, 3-мер ATG встречается где-тов геноме!

ATG

CAC CGC TGC

ATG

CCA GCA

GCC

ACG TTG

ATT

Красные 3-меры точно присутствуют в геноме

• Прочитанные риды:

CAC GTGCGC GCG•CAT ATGTGC GCAACG CGTATT AATCCA TGGGCA TGCGCC GGCTTG CAA

CAC CGC TGC

ATG

CCA GCA

GCC

ACG TTG

ATT

Красные 3-меры точно присутствуют в геноме

• Прочитанные риды:

• CACCGC GCG• CAT ATG

CAC CGC TGC

ATG

CCA GCA

GCC

ACG TTG

ATT

Красные 3-меры точно присутствуют в геноме

• Прочитанные риды:

• CAC GTGCGC GCG• CAT ATG

GTG CGC TGC

ATG

CCA GCA

GCC

ACG TTG

ATT

Красные 3-меры точно присутствуют в геноме

GTG CGC TGC

ATG

CCA GCA

GCC

ACG TTG

ATT

• Прочитанные риды:

• CAC GTG• CGC• CAT ATG• TGC GCA• ACG CGT• ATT AAT• CCA TGG• GCA TGC• GCC GGC• TTG CAA

Красные 3-меры точно присутствуют в геноме

GTG GCG TGC

ATG

CCA GCA

GCC

ACG TTG

ATT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT• ATT AAT• CCA TGG• GCA TGC• GCC GGC• TTG CAA

Красные 3-меры точно присутствуют в геноме

GTG GCG TGC

ATG

CCA GCA

GCC

ACG TTG

ATT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

CCA GCA

GCC

ACG TTG

ATT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

CCA GCA

GCC

ACG TTG

ATT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

CCA GCA

GCC

CGT TTG

ATT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

CCA GCA

GCC

CGT TTG

ATT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT• ATT

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

CCA GCA

GCC

CGT TTG

AAT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT• ATT AAT

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

CCA GCA

GCC

CGT TTG

AAT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT• ATT AAT• CCA

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

TGG GCA

GCC

CGT TTG

AAT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT• ATT AAT• CCA TGG

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

TGG GCA

GCC

CGT TTG

AAT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT• ATT AAT• CCA TGG• GCA

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

TGG TGC

GCC

CGT TTG

AAT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT• ATT AAT• CCA TGG• GCA TGC

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

TGG TGC

GCC

CGT TTG

AAT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT• ATT AAT• CCA TGG• GCA TGC• GCC

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

TGG TGC

GGC

CGT TTG

AAT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT• ATT AAT• CCA TGG• GCA TGC• GCC GGC

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

TGG TGC

GGC

CGT TTG

AAT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT• ATT AAT• CCA TGG• GCA TGC• GCC GGC• TTG

Красные 3-меры точно присутствуют в геноме

GTG GCG GCA

ATG

TGG TGC

GGC

CGT CAA

AAT

• Прочитанные риды:

• CAC GTG• CGC GCG• CAT ATG• TGC GCA• ACG CGT• ATT AAT• CCA TGG• GCA TGC• GCC GGC• TTG CAA

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

GTG GCG GCA

ATG

TGG TGC

GGC

CGT CAA

AAT

• Цель: построитьнаиболее короткийгеном, содержащийвсе имеющиеся риды.

• Теперь этовычислительнаязадача!

Часть 4: Два математических обхода

Кенигсбергские мосты

• Жители Кенигсберга в Пруссии (ныне Калининград в России) любили гулять.

Кенигсбергские мосты

• Можно ли пройти по городу, проходя по каждому мосту ровно один раз и вернуться туда, откуда начался путь?

Кенигсбергские мосты

• 1735: Леонард Эйлер развивает подход к задаче для любого города, даже для города с миллионом островов.

• Мы вскоре обсудим метод Эйлера, а равно и то, какое он имеет отношение к секвенированию генома.

Леонард Эйлер

Икосаэдрическая (Icosian) игра

• Проходит более столетия...

• 1857: Ирландский математик Уильям Гамильтон разрабатывает игру на доске с 20 «островами», соединёнными «мостами».

• Цель: найти путь, посещающий каждый остров ровно один раз и возвращающийся в начальную точку.

Уильям Гамильтон

Икосаэдрическая игра

Похожие задачи с очень разными судьбами

• Эти две задачи формулируются в целом похоже:

• Найти путь, который проходит через каждый мост лишь один раз (Кёнигсбергие мосты)

• Найти путь, который проходит через каждый остров лишь один раз (Икосаэдрическая игра)

• Эйлер решил первую задачу (даже для города с миллионом мостов), но математики до сих пор не знают, как решить вторую задачу, даже для города с небольшим количеством островов.

• Однако причем же тут геномы?!

Часть 5: Введение в теорию графов

Графы

• Граф — это сеть из двух типов объектов:

• Вершины: каждая вершина представлена точкой.

• Рёбра: каждое ребро представлено отрезком, соединяющим две вершины.

• Теория графов может применятьсяк самым различным задачам:

• Транспортные сети;

• Эпидемиология;

• Компьютерные вирусы,распространяющиеся по интернету;

• И да… секвенирование генома!

Граф Кенигсбергских мостов

• Для задачи о Кёнигсбергских мостах мы создаём граф:

• Вершины = 4 участка земли;

• Рёбра = 7 мостов, соединяющих участки земли.

Замечание: нам не нужно знать точное расположение вершин, как и форму мостов.

Граф Икосаэдрической игры

• Для Икосаэдрической игры мы создаём граф:

• Вершины = острова;

• Рёбра = мосты, соединяющие острова.

Эйлеров и Гамильтонов циклы

• Рассмотрим муравья, стоящего на вершине графа G.

• Муравей может ходить от вершины к вершиневдоль рёбер G.

• Если муравей вернётся туда, откуда он начал путь, последовательность его ходов сформирует цикл в графе G.

Эйлеров и Гамильтонов циклы

• Рассмотрим муравья, стоящего на вершине графа G.

• Муравей может ходить от вершины к вершиневдоль рёбер G.

• Если муравей вернётся туда, откуда он начал путь, последовательность его ходов сформирует цикл в графе G.

“Here I go!”

Эйлеров и Гамильтонов циклы

• Рассмотрим муравья, стоящего на вершине графа G.

• Муравей может ходить от вершины к вершиневдоль рёбер G.

• Если муравей вернётся туда, откуда он начал путь, последовательность его ходов сформирует цикл в графе G.

“…He wakes up in the morning…”

Эйлеров и Гамильтонов циклы

• Рассмотрим муравья, стоящего на вершине графа G.

• Муравей может ходить от вершины к вершиневдоль рёбер G.

• Если муравей вернётся туда, откуда он начал путь, последовательность его ходов сформирует цикл в графе G.

“…goes to visit his mommy…”

Эйлеров и Гамильтонов циклы

• Рассмотрим муравья, стоящего на вершине графа G.

• Муравей может ходить от вершины к вершиневдоль рёбер G.

• Если муравей вернётся туда, откуда он начал путь, последовательность его ходов сформирует цикл в графе G.

“…when all the little ants are marching…”

Эйлеров и Гамильтонов циклы

• Рассмотрим муравья, стоящего на вершине графа G.

• Муравей может ходить от вершины к вершиневдоль рёбер G.

• Если муравей вернётся туда, откуда он начал путь, последовательность его ходов сформирует цикл в графе G.

“…they all do it the same way…”

Эйлеров и Гамильтонов циклы

• Рассмотрим муравья, стоящего на вершине графа G.

• Муравей может ходить от вершины к вершиневдоль рёбер G.

• Если муравей вернётся туда, откуда он начал путь, последовательность его ходов сформирует цикл в графе G.

“Oh no! I’m back where I started!”

Эйлеров и Гамильтонов циклы

• Два вопроса:

1. Существует ли в G цикл, в котором муравей проходит каждое ребро точно один раз?

2. Существует ли в G цикл, в котором муравей проходит каждую вершину точно один раз?

“???!!!”

Эйлеров и Гамильтонов циклы

• Два вопроса:

1. Существует ли в G цикл, в котором муравей проходит каждое ребро точно один раз? Эйлеров цикл.

2. Существует ли в G цикл, в котором муравей проходит каждую вершину точно один раз? Гамильтонов цикл.

“I wish someone would name a cycle after me…I’m the one doing all the walking here!”

Эйлеров цикл

• Эйлеров цикл — это цикл, проходящий по каждому ребру ровно один раз.

• Граф, содержащий такой цикл, называется эйлеровым.

• Если бы было решение для задачи оКёнигсбергских мостах, то мы моглибы найти эйлеров цикл в этом графе.

• Однако такого цикла не существует.

Эйлеров цикл

• Эйлеров цикл — это цикл, проходящий по каждому ребру ровно один раз.

• Граф, содержащий такой цикл, называется эйлеровым.

• Если бы было решение для задачи оКёнигсбергских мостах, то мы моглибы найти эйлеров цикл в этом графе.

• Однако такого цикла не существует.

• Если добавить два ребра, такой цикл появится, видите?

Эйлеров цикл

1

• Эйлеров цикл — это цикл, проходящий по каждому ребру ровно один раз.

• Граф, содержащий такой цикл, называется эйлеровым.

• Если бы было решение для задачи оКёнигсбергских мостах, то мы моглибы найти эйлеров цикл в этом графе.

• Однако такого цикла не существует.

• Если добавить два ребра, такой цикл появится, видите?

• Эйлеров цикл — это цикл, проходящий по каждому ребру ровно один раз.

• Граф, содержащий такой цикл, называется эйлеровым.

• Если бы было решение для задачи оКёнигсбергских мостах, то мы моглибы найти эйлеров цикл в этом графе.

• Однако такого цикла не существует.

• Если добавить два ребра, такой цикл появится, видите?

Эйлеров цикл

1

2

• Эйлеров цикл — это цикл, проходящий по каждому ребру ровно один раз.

• Граф, содержащий такой цикл, называется эйлеровым.

• Если бы было решение для задачи оКёнигсбергских мостах, то мы моглибы найти эйлеров цикл в этом графе.

• Однако такого цикла не существует.

• Если добавить два ребра, такой цикл появится, видите?

Эйлеров цикл

1

23

• Эйлеров цикл — это цикл, проходящий по каждому ребру ровно один раз.

• Граф, содержащий такой цикл, называется эйлеровым.

• Если бы было решение для задачи оКёнигсбергских мостах, то мы моглибы найти эйлеров цикл в этом графе.

• Однако такого цикла не существует.

• Если добавить два ребра, такой цикл появится, видите?

Эйлеров цикл

1

23

4

• Эйлеров цикл — это цикл, проходящий по каждому ребру ровно один раз.

• Граф, содержащий такой цикл, называется эйлеровым.

• Если бы было решение для задачи оКёнигсбергских мостах, то мы моглибы найти эйлеров цикл в этом графе.

• Однако такого цикла не существует.

• Если добавить два ребра, такой цикл появится, видите?

Эйлеров цикл

1

23

45

• Эйлеров цикл — это цикл, проходящий по каждому ребру ровно один раз.

• Граф, содержащий такой цикл, называется эйлеровым.

• Если бы было решение для задачи оКёнигсбергских мостах, то мы моглибы найти эйлеров цикл в этом графе.

• Однако такого цикла не существует.

• Если добавить два ребра, такой цикл появится, видите?

Эйлеров цикл

1

23

45

6

• Эйлеров цикл — это цикл, проходящий по каждому ребру ровно один раз.

• Граф, содержащий такой цикл, называется эйлеровым.

• Если бы было решение для задачи оКёнигсбергских мостах, то мы моглибы найти эйлеров цикл в этом графе.

• Однако такого цикла не существует.

• Если добавить два ребра, такой цикл появится, видите?

Эйлеров цикл

1

23

45

6

7

• Эйлеров цикл — это цикл, проходящий по каждому ребру ровно один раз.

• Граф, содержащий такой цикл, называется эйлеровым.

• Если бы было решение для задачи оКёнигсбергских мостах, то мы моглибы найти эйлеров цикл в этом графе.

• Однако такого цикла не существует.

• Если добавить два ребра, такой цикл появится, видите?

Эйлеров цикл

1

23

45

6

78

Эйлеров цикл

1

23

45

6

78

9

• Эйлеров цикл — это цикл, проходящий по каждому ребру ровно один раз.

• Граф, содержащий такой цикл, называется эйлеровым.

• Если бы было решение для задачи оКёнигсбергских мостах, то мы моглибы найти эйлеров цикл в этом графе.

• Однако такого цикла не существует.

• Если добавить два ребра, такой цикл появится, видите?

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, называется гамильтоновым.

• Например, граф, соответствующий Икосаэдрической игре — гамильтонов.

• Это означает, что Икосаэдрическаяигра имеет решение!

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 2

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

4

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

11

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

11

12

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

11

1213

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

11

1213

14

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

11

1213

14

15

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

11

1213

14

15

16

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

11

1213

14

15

1617

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

11

1213

14

15

1617

18

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

11

1213

14

15

1617

1819

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

11

1213

14

15

1617

1819

20

Гамильтонов цикл

• Гамильтонов цикл — это цикл, проходящий через каждую вершину ровно один раз.

• Граф, содержащий такой цикл, — гамильтонов.

1 23

45

6

7

8

9

10

11

1213

14

15

1617

1819

20

Поиск Эйлерова цикла и Гамильтонова цикла

• Если нам дан граф G, то возникают два вопроса насчёт G:

• Задача об эйлеровом цикле (ECP): найтиэйлеров цикл в G или доказать, что G — не эйлеров.

• Задача о гамильтоновом цикле (HCP): найти гамильтонов цикл в G или доказать, что G — не гамильтонов.

Часть 6: Теорема Эйлера

Теорема Эйлера

• А теперь посмотрим, как Эйлер решил задачу о Кёнигсбергских мостах.

• Вы можете предположить: он использовал теорию графов!

• Это не совсем корректно. Лучше было бы сказать: он изобрёл теорию графов!

Ориентированные графы

• Ориентированный граф — граф, в котором каждое ребро имеет направление (представленное стрелкой).

• Возможно, проще представить ориентированные ребра как «мосты с односторонним движением».

Неориентированный граф Ориентированный граф

Эйлеров цикл в ориентированном графе

• Эйлеров цикл в ориентированном графе ‒ это цикл, который проходит все рёбра в правильном направлении.

• Ориентированный граф ‒ эйлеров,если он содержит эйлеров цикл.

• Этот граф ‒ эйлеров? Почему?

входящая степень(v) = число ребер, ведущих в вершину v.

исходящая степень(v) = число ребер, ведущих из вершины v.

• Если входящая степень(v) = исходящая степень(v)для каждой вершины v, тограф сбалансирован.

• Этот граф несбалансирован,т. к. у некоторых вершинне равны входящая иисходящая степени.

Сбалансированные графы

(1, 2)

(2, 1)

(1, 0)

(2, 1)

(1, 1)

(0, 2)(1, 1)

входящая степень(v) = число ребер, ведущих к вершине v.

исходящая степень(v) = число ребер, ведущих из вершины v.

• Если входящая степень(v) = исходящая степень(v)для каждой вершины v, тограф сбалансирован.

• Добавлением несколькихребер, этот графможно сбалансировать.

Сбалансированные графы

(2, 2)

(2, 2)

(1, 1)

(2, 2)

(1, 1)

(2, 2)(1, 1)

Теорема Эйлера

• Теорема Эйлера: ориентированный граф G эйлеровтогда и только тогда, когда G связен и сбалансирован.

• Граф — связный, если для каждой пары вершин муравей может пройти от одной вершины к другой.

(2, 2)

(2, 2)

(1, 1)

(2, 2)

(1, 1)

(2, 2)(1, 1)

Несвязный Связный+

Сбалансированный 

= Эйлеров

Proof of Euler’s Theorem: Eulerian Balanced

• Every time an Eulerian cycle passes through a vertex v, it must enter v by a new edge and exit v by a new edge.

• Therefore, indegree(v)=outdegree(v) for every vertex v

Proof of Euler’s Theorem: Balanced Eulerian• Put an ant in an arbitrary vertex v of the graph and

let him walk along edges in any legal direction. The ant is not allowed to walk along the previously traversed edges.

Proof of Euler’s Theorem: Balanced Eulerian• Put an ant in an arbitrary vertex v of the graph and

let him walk along edges in any legal direction. The ant is not allowed to walk along the previously traversed edges.

Proof of Euler’s Theorem: Balanced Eulerian• Put an ant in an arbitrary vertex v of the graph and

let him walk along edges in any legal direction. The ant is not allowed to walk along the previously traversed edges.

Proof of Euler’s Theorem: Balanced Eulerian• Put an ant in an arbitrary vertex v of the graph and

let him walk along edges in any legal direction. The ant is not allowed to walk along the previously traversed edges.

Proof of Euler’s Theorem: Balanced Eulerian• Put an ant in an arbitrary vertex v of the graph and

let him walk along edges in any legal direction. The ant is not allowed to walk along the previously traversed edges.

Proof of Euler’s Theorem: Balanced Eulerian• Put an ant in an arbitrary vertex v of the graph and

let him walk along edges in any legal direction. The ant is not allowed to walk along the previously traversed edges.

Proof of Euler’s Theorem: Balanced Eulerian• Put an ant in an arbitrary vertex v of the graph and

let him walk along edges in any legal direction. The ant is not allowed to walk along the previously traversed edges.

Proof of Euler’s Theorem: Balanced Eulerian• Put an ant in an arbitrary vertex v of the graph and

let him walk along edges in any legal direction. The ant is not allowed to walk along the previously traversed edges.

Proof of Euler’s Theorem: Balanced Eulerian

• Where will the ant stop? Can it stop in a vertex w different from v?

• Put an ant in an arbitrary vertex v of the graph and let him walk along edges in any legal direction. The ant is not allowed to walk along the previously traversed edges.

3

2

4

6

5

1

7

Proof of Euler’s Theorem: Balanced Eulerian

• Where will the ant stop? Can it stop in a vertex w different from v?

• Since indegree(w)=outdegree(w), there exists an edge out of w that the ant has not traversed yet!

• Put an ant in an arbitrary vertex v of the graph and let him walk along edges in any legal direction. The ant is not allowed to walk along the previously traversed edges.

3

2

4

6

5

1

7

Proof of Euler’s Theorem: Balanced Eulerian

• After this random walk, the ant cannot get stuck in an intermediate vertex and thus will return to the vertex where he started!

Proof of Euler’s Theorem: The Second Ant

Has the ant traversed all edges? If YES, then G is Eulerian. If NO, then 1.remove edges traversed by the ant

Proof of Euler’s Theorem: The Second Ant

Has the ant traversed all edges? If YES, then G is Eulerian. If NO, then 1.remove edges traversed by the ant2.let the second ant randomly walk in the resulting (smaller) balanced graph

Proof of Euler’s Theorem: The Second Ant

Has the ant traversed all edges? If YES, then G is Eulerian. If NO, then 1.remove edges traversed by the ant2.let the second ant randomly walk in the resulting (smaller) balanced graph

Proof of Euler’s Theorem: The Second Ant

Has the ant traversed all edges? If YES, then G is Eulerian. If NO, then 1.remove edges traversed by the ant2.let the second ant randomly walk in the resulting (smaller) balanced graph

Proof of Euler’s Theorem: The Second Ant

Has the ant traversed all edges? If YES, then G is Eulerian. If NO, then 1.remove edges traversed by the ant2.let the second ant randomly walk in the resulting (smaller) balanced graph until it returns where it started

Proof of Euler’s Theorem: The Second Ant

Has the ant traversed all edges? If YES, then G is Eulerian. If NO, then 1.remove edges traversed by the ant2.let the second ant randomly walk in the resulting (smaller) balanced graph3.It is important that the second ant starts in a vertex traversed by the first ant

Can Red and Green Ants Combine Their Cycles Into a Single One?

Changing the Starting Vertex of the Red Ant

Now Red and Green Ant Start at the Same Vertex

Since Red and Green Ants Now Start at the Same Vertex, Their Walks Can be Combined into a Single Superwalk!

If two ants still leave some edges non-traversed, bring in 3rd, 4th, 5th… ant

Часть 7: Эйлеров цикл против гамильтонова цикла и

алгоритмическая сложность

Решение задачи об эйлеровом цикле

• По теореме Эйлера для выяснения того, содержит ли связный граф G эйлеров цикл, нужно лишь выяснить, сбалансирован ли G.

• Так что мы просто подходим к каждой вершине и осуществляем эту простую проверку:

• Если каждая вершина сбалансирована, то G должен содержать эйлеров цикл.

• Если какая-то вершина не сбалансирована, то G не может содержать эйлеров цикл.

Связный + Сбалансированный = Эйлеров

(1, 2)

(2, 1)

(1, 0)

(1, 1)

(0, 2)(1, 1)

• Вернёмся к ориентированному графу из примера.

• Здесь граф не сбалансирован, следовательно, не эйлеров.

(2, 1)

• Вернёмся к ориентированному графу из примера.

• Здесь граф не сбалансирован, следовательно, не эйлеров.

• После добавления рёбер ибалансировки графа,эйлеров циклбудет существовать.

Связный + Сбалансированный = Эйлеров

(2, 2)

(2, 2)

(1, 1)

(1, 1)

(2, 2)(1, 1)

1

2

3

7

65

4

89

10

11

(2, 2)

Поиск эффективного алгоритма решения HCP • Никто не знает столь же

эффективного теста дляопределения, гамильтонов ли граф.

• Конечно, мы можем исследоватьвсе возможные прохождениямуравья по графу.

• Однако этот грубый подход простонеэффективен: даже по графус 1000 вершин существуетбольше вариантов прохождений,чем атомов во вселенной!

NP-полные задачи

• Задача о гамильтоновом цикле классифицируетсякак NP-полная.

• Изъясняясь непрофессиональным языком, это значит, что задача гамильтонова цикла относится к тысячам вычислительных задач, которые не могут быть решены быстро для больших входных данных.

• NP-полные проблемы эквивалентны друг другу: найдя эффективное решение для одной из них, вы получите эффективное решение для всех.

NP-полные задачи

«Я не могу найти эффективного алгоритма, наверное, я просто слишком глуп.»

Из Гэри и Джонсон. Компьютеры и трудность. 1979

• Попытка решить любую NP-полную задачу сложна.

NP-полные задачи

«Я не могу найти эффективного алгоритма, потому что такого алгоритма не может быть.»

• Попытка решить любую NP-полную задачу сложна.

• Остаётся надеяться, что мы терпим неудачу потому, что эффективного алгоритма для NP-полных задач —не существует.

Из Гэри и Джонсон. Компьютеры и трудность. 1979

NP-полные задачи

«Я не могу найти эффективного алгоритма, но и все эти великие люди тоже не могут.»

• Попытка решить любую NP-полную задачу сложна.

• Остаётся надеяться, что мы терпим неудачу потому, что эффективного алгоритма для NP-полных задач —не существует.

• Текущее состояние дел — где-то посередине.

Из Гэри и Джонсон. Компьютеры и трудность. 1979

NP-полнота задачи о гамильтоновом цикле

• Вопрос, могут ли NP-полные задачи (в т. ч. задачи гамильтонова цикла) быть эффективно решены, —одна из семи математических задач тысячелетия.

• Найдите эффективный алгоритм для задачи о гамильтоновом цикле или докажите, что такого алгоритма не существует, и вы получите миллион долларов.

• Однако если вы станете математиком,есть вероятность, что вы занимаетесьнаукой не ради $$$... недавноГригорий Перельман решил одну иззадач тысячелетия, ноотказался от премии.

Григорий Перельман, легенда

Часть 8: От Эйлера и Гамильтона

к сборке фрагментов

Несколько упрощений

1. Каждый k-мер, встречающийся в геноме, встречается хотя бы в одном риде.

2. Считывания безошибочны.

3. Каждый k-мер, встречающийся в геноме, встречается в нем ровно один раз.

4. Исследуемый геном — одна кольцевая хромосома.

В финальной части мы откажемся от этих предположений.

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

GTGGCG GCA

ATG

TGG TGC

GGC

CGT CAA

AAT

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

GTGGCG GCA

ATG

TGG TGC

GGC

CGT CAA

AAT

GTG

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

GCG GCA

ATG

TGG TGC

GGC

CGT CAA

AAT

GTG GCG

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

GCA

ATG

TGG TGC

GGC

CGT CAA

AAT

GTG GCGGCA

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

ATG

TGG TGC

GGC

CGT CAA

AAT

GTG GCGGCAATG

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

TGG TGC

GGC

CGT CAA

AAT

GTG GCGGCAATG TGG

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

TGC

GGC

CGT CAA

AAT

GTG GCGGCAATG TGG TGC

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

GGC

CGT CAA

AAT

GTG GCGGCAATG TGG TGCGGC

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

CGT CAA

AAT

GTG GCGGCAATG TGG TGCGGCCGT

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

CAA

AAT

GTG GCGGCAATG TGG TGCGGCCGT CAA

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

AAT

GTG GCGGCAATG TGG TGCGGCCGT CAAAAT

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Первый подход: граф H

• Создадим в графе H вершины,соответствующие всем k-мерам,найденным с помощью ДНК-чипа.

• Префикс — это первые k – 1 нуклеотидов k-мера (CAA)

• Суффикс — последние k – 1 нуклеотидов k-мера(CAA)

• Разные 3-меры могут иметь общий префикс/суффикс: ATG, TGA, CTG

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Первый подход: граф H

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

• Создавая ребра графа H, соединим вершину v и вершину w ориентированным ребром,если суффикс v совпадает с префиксом w.

Первый подход: граф H

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

• Создавая ребра графа H, соединим вершину v и вершину w ориентированным ребром,если суффикс v совпадает с префиксом w.

Первый подход: граф H

• Создавая ребра графа H, соединим вершину v и вершину w ориентированным ребром,если суффикс v совпадает с префиксом w.

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Первый подход: граф H

• Создавая ребра графа H, соединим вершину v и вершину w ориентированным ребром,если суффикс v совпадает с префиксом w.

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Первый подход: граф H

• Создавая ребра графа H, соединим вершину v и вершину w ориентированным ребром,если суффикс v совпадает с префиксом w.

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Первый подход: граф H

• Создавая ребра графа H, соединим вершину v и вершину w ориентированным ребром,если суффикс v совпадает с префиксом w.

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Первый подход: граф H

• Создавая ребра графа H, соединим вершину v и вершину w ориентированным ребром,если суффикс v совпадает с префиксом w.

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Первый подход: граф H

• Создавая ребра графа H, соединим вершину v и вершину w ориентированным ребром,если суффикс v совпадает с префиксом w.

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Первый подход: граф H

• Создавая ребра графа H, соединим вершину v и вершину w ориентированным ребром,если суффикс v совпадает с префиксом w.

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Первый подход: граф H

• Создавая ребра графа H, соединим вершину v и вершину w ориентированным ребром,если суффикс v совпадает с префиксом w.

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Первый подход: граф H

• Создавая ребра графа H, соединим вершину v и вершину w ориентированным ребром,если суффикс v совпадает с префиксом w.

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG CGT GGC AAT GTG TGG TGC CAA GCA GCG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG

ATGГеном:

T

G

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG

ATGGГеном:

T

G

G

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG GGC

ATGGCГеном:

T

G

G

C

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG GGC GCG

ATGGCGГеном:

T

G

G

CG

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG GGC GCG CGT

ATGGCGTГеном:

T

G

G

CG

T

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG GGC GCG CGT GTG

ATGGCGTG Геном:

T

G

G

CG

T

G

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG GGC GCG CGT GTG TGC

ATGGCGTGC Геном:

T

G

G

CG

T

G

C

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG GGC GCG CGT GTG TGC GCA

ATGGCGTGCAГеном:

T

G

G

CG

T

G

C

AA

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG GGC GCG CGT GTG TGC GCA CAA

ATGGCGTGCAAГеном:

AT

G

G

CG

T

G

C

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT

ATGGCGTGCAATГеном:

AT

G

G

CG

T

G

C

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATGATGGCGTGCAATGГеном:

AT

G

G

CG

T

G

C

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATGATGGCGTGCAATGГеном:

AT

G

G

CG

T

G

C

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATGATGGCGTGCAATGГеном:

AT

G

G

CG

T

G

C

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

Геном:

AT

G

G

CG

T

G

C

A

Гамильтонов цикл в графе H

• В графе H есть гамильтонов цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT ATG

Геном:

AT

G

G

CG

T

G

C

A

Проблема с графом H

• Итак, мы должны найтигамильтонов цикл в графе H, чтобынайти искомую последовательность.

• На этой идее базировался метод сборки человеческого генома из 50 миллионов (долгих и дорогих) ридов в 2000 г., но вычислительная нагрузка была непомерно высока: секвенирование человеческого генома заняло несколько компьютеро-месяцев (в круглосуточном режиме работы).

• С новейшими технологиями секвенируются миллиарды (коротких и недорогих) ридов: нужна новая идея.

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TGTGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GCTGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CATGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAATTGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAATTGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAATTGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAAT

GG

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAAT

GG

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAAT

GG

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAAT

GG

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAAT

GG

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAAT

GG

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAAT

GG

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAAT

GG

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAAT

GG

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAAT

GG

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

GT

TG GC

CG

CAAT

GG

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

GTG

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

GCGGTG

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

GCGGTG

GCA

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

ATG

GCGGTG

GCA

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

ATG

TGGGCGGTG

GCA

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

ATG

TGGGCGGTG

TGC GCA

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

ATG

TGG GGCGCGGTG

TGC GCA

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAA

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

Второй подход: граф E

• Сформируем иной граф E следующим образом:

• Вершины = все префиксы и суффиксы всех k-меров.

• Соединим вершины v и wориентированным ребром,если есть k-мер, в которомпрефикс — это v, асуффикс — это w.

CAGC

CG

TG

GT

GG

AT

AA

TGCGGCCGTCAAAAT

GTGGCGGCAATGTGG

Риды

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC GCG

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC GCG CGT

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC GCG CGT GTG

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC GCG CGT GTG TGC

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

9

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT

• Эта та же последовательность3-меров, что и в графе H!

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT• Эта та же последовательность

3-меров, что и в графе H!• Значит, мы получим тот же геном.

Геном:

A TG

GCGT

G

CA

Эйлеров цикл в графе E

• В графе E есть эйлеров цикл:

• ATG TGG GGC GCG CGT GTG TGC GCA CAA AAT• Эта та же последовательность

3-меров, что и в графе H!• Значит, мы получим тот же геном.

Геном:

A TG

GCGT

G

CA

Анализ графа E

Хорошая новость: Теперь нам только остаётся найти эйлеров цикл в графе E, что можно сделать на этом компьютере.

Плохая новость:

1. Может существовать более чем один эйлеров цикл в E.

• Эту беду здесь обсуждать не будем, но это решаемо.

2. Как мы узнаем, что граф E имеет эйлеров цикл?

• По теореме Эйлера нам нужно лишь показать, что E — сбалансированный граф.

• Чтобы сделать это, нам нужен ещё один фрагмент математической истории…

Часть 9: Де Брюйн исборка фрагментов

Вопрос Де Брюйна

• 1946: голландский математик Николаас де Брюйн задаётся вопросом: как создать циклическую строку минимальной длины, которая содержала бы любую строку длины k из нулей и единиц?

• Например, k = 3. Круговая строка «00011101» содержит все 8 двоичных строк длины 3. (На иллюстрации — подстроки 000 и 110).

Николаас де Брюйн

Вопрос Де Брюйна

• Де Брёйн ввёл специальный граф B(n, k):

• Вершины = все nk – 1 возможных (k – 1)-меров надn-буквенным алфавитом.

• Ребро идет из v в w,если есть k-мер, чейпрефикс = v, асуффикс = w.

• Справа приведен B(2, 4)

• Подразумеваетсяалфавит {0, 1}

Вопрос Де Брюйна

• При любых n и k, B(n, k) является сблансированным и связным, а значит, эйлеровым.

• Почему? Потому чтовходящая и исходящаястепень каждой вершиныравняется n — размеруалфавита.

• Красные числапоказывают порядокрёбер в эйлеровом цикле.

Вопрос Де Брюйна

• Рассмотренный нами граф E содержится в B(4, k).

• n = 4 — это количество возможных нуклеотидов.

• Граф E тоже должен бытьсбалансированным/эйлеровым!

• Входящая и исходящаястепени любой вершиныравны числу появленийсоответствующего(k – 1)-мерав геноме.

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Геном:

Вопрос Де Брюйна

• Рассмотренный нами граф E содержится в B(4, k).

• n = 4 — это количество возможных нуклеотидов.

• Граф E тоже должен бытьсбалансированным/эйлеровым!

• Входящая и исходящаястепени любой вершиныравны числу появленийсоответствующего(k – 1)-мерав геноме.

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Геном:

Вопрос Де Брюйна

• Рассмотренный нами граф E содержится в B(4, k).

• n = 4 — это количество возможных нуклеотидов.

• Граф E тоже должен бытьсбалансированным/эйлеровым!

• Входящая и исходящаястепени любой вершиныравны числу появленийсоответствующего(k – 1)-мерав геноме.

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Геном:

Вопрос Де Брюйна

• Рассмотренный нами граф E содержится в B(4, k).

• n = 4 — это количество возможных нуклеотидов.

• Граф E тоже должен бытьсбалансированным/эйлеровым!

• Входящая и исходящаястепени любой вершиныравны числу появленийсоответствующего(k – 1)-мерав геноме.

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Геном:

Вопрос Де Брюйна

• Рассмотренный нами граф E содержится в B(4, k).

• n = 4 — это количество возможных нуклеотидов.

• Граф E тоже должен бытьсбалансированным/эйлеровым!

• Входящая и исходящаястепени любой вершиныравны числу появленийсоответствующего(k – 1)-мерав геноме.

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Геном:

Вопрос Де Брюйна

• Рассмотренный нами граф E содержится в B(4, k).

• n = 4 — это количество возможных нуклеотидов.

• Граф E тоже должен бытьсбалансированным/эйлеровым!

• Входящая и исходящаястепени любой вершиныравны числу появленийсоответствующего(k – 1)-мерав геноме.

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Геном:

Вопрос Де Брюйна

• Рассмотренный нами граф E содержится в B(4, k).

• n = 4 — это количество возможных нуклеотидов.

• Граф E тоже должен бытьсбалансированным/эйлеровым!

• Входящая и исходящаястепени любой вершиныравны числу появленийсоответствующего(k – 1)-мерав геноме.

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Геном:

Вопрос Де Брюйна

• Рассмотренный нами граф E содержится в B(4, k).

• n = 4 — это количество возможных нуклеотидов.

• Граф E тоже должен бытьсбалансированным/эйлеровым!

• Входящая и исходящаястепени любой вершиныравны числу появленийсоответствующего(k – 1)-мерав геноме.

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Геном:

Вопрос Де Брюйна

• Рассмотренный нами граф E содержится в B(4, k).

• n = 4 — это количество возможных нуклеотидов.

• Граф E тоже должен бытьсбалансированным/эйлеровым!

• Входящая и исходящаястепени любой вершиныравны числу появленийсоответствующего(k – 1)-мерав геноме.

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Геном:

Вопрос Де Брюйна

• Рассмотренный нами граф E содержится в B(4, k).

• n = 4 — это количество возможных нуклеотидов.

• Граф E тоже должен бытьсбалансированным/эйлеровым!

• Входящая и исходящаястепени любой вершиныравны числу появленийсоответствующего(k – 1)-мерав геноме.

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Геном:

Вопрос Де Брюйна

• Рассмотренный нами граф E содержится в B(4, k).

• n = 4 — это количество возможных нуклеотидов.

• Граф E тоже должен бытьсбалансированным/эйлеровым!

• Входящая и исходящаястепени любой вершиныравны числу появленийсоответствующего(k – 1)-мерав геноме.

3

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGC GCA

CAAAAT

1

2

4

5

6

7 8

910

Геном:

Часть 10: Обобщая сборку фрагментов

Используемые упрощения

• Вспомним предположения, которые мы использовали:

1. Каждый k-мер, встречающийся в геноме, встречается хотя бы в одном риде.

2. Считывания безошибочны.

3. Каждый k-мер, встречающийся в геноме, встречается в нем ровно один раз.

4. Исследуемый геном — одна кольцевая хромосома.

• Наша цель — отринуть каждое из этих предположений и определить, как изменится задача.

Упрощение 1: Чтение (почти) всех k-меров

• 100-нуклеотидные риды, сгенерированные по технологии Illumina, охватывают лишь небольшую часть 100-меров из генома, тем самым нарушая ключевое упрощение.

• Но если разбить эти риды на более короткие k-меры, тоk-меры, полученные в результате, зачастую будут представлять почти все k-меры из генома(при достаточно малом k).

• Например, современные сборщики часто разбивают100-нуклеотидное риды на 46 накладывающихся друг на друга 55-меров, а далее собирают полученные 55-меры, используя графы де Брюйна.

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

• Пример: рассмотрим геном ATGCAAGCTAGCT и следующие риды длины 6:

• Далеко не все 6-меры генома прочитаны как риды, однако все 3-меры генома присутствуют в ридах как подстроки.

Упрощение 1: Чтение (почти) всех k-меров

ATGCAAGCTAGCT

ATGCAA CAAGCT CTAGCTATGC CT

Риды

Геном

Упрощение 2: Ошибки в ридах

• Что случится с графом E, если в ридах будут ошибки?

• Пример: пусть граф E для генома ATGGCGTGCAATG выглядит следующим образом.

Упрощение 2: Ошибки в ридах

• Что случится с графом E, если в ридах будут ошибки?

• Пример: пусть граф E для генома ATGGCGTGCAATG выглядит следующим образом.

• Если рид TGGCGTG будет ошибочно прочитан как TGGAGTG , то граф будет выглядеть по-другому.

• Это называется выступом (bulge) в графе E.

Упрощение 2: Ошибки в ридах

• Большинство ридов в реальных данных содержат ошибки, что дает в итоге миллионы выступов в графе E.

• 2004: Певзнер и др. создали алгоритм удаления выступов.

Упрощение 3: Повторяющиеся k-меры

• Пример: в геноме ACGTACGT только четыре различных3-мера — ACG, CGT, GTA, and TAC.

• Получается приведенный на рисунке граф E, а геном восстанавливается как ACGT.

• Иными словами,повторяющиеся k-мерыне представимы в графе!

AC CG

GTTA

TAC

ACG

CGT

GTA

Упрощение 3: Повторяющиеся k-меры

• Определим кратность k-мера как количество его появлений в геноме.

• Создадим новый граф E*, клонировав ребра графа E в соответствии с их кратностью.

• Эйлеров цикл в E* всё ещё даёт возможный геном.

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Пусть кратности 3-меров в ридах таковы:

• Кратность 1: ATG, GGC, AAT, TGG, CAA, CAA, GCA• Кратность 2: GCG, CGT,GTG, TGC

• Е* сбалансирован, так каквходящие и исходящиестепени вершин равны

• Возможный геном:CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

ATGCGTGGCGTGCA

Упрощение 3: Повторяющиеся k-меры

• Как определить кратность k-мера в геноме?

• Кратность k-мерапропорциональначастоте появленияэтого k-мера в ридах.

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

Упрощение 4: От кольцевых — к линейным

• Геномы всех сложных организмов разбиты на определённое число линейных хромосом (46 у человека).

• Чтобы секвенироватьчеловеческий геном,генетики секвенироваливсе эти линейные хромосомы.

• Вопрос: как собратьлинейный сегмент ДНК?

Упрощение 4: От кольцевых — к линейным

• Пусть линейный сегмент ДНК — ATGCGTGGCGTGCA.

• Тогда 3-меры из этого сегмента ‒ те же самые, что и для кольцевого сегмента за исключением двух 3-меров:

Упрощение 4: От кольцевых — к линейным

• Пусть линейный сегмент ДНК — ATGCGTGGCGTGCA.

• Тогда 3-меры из этого сегмента ‒ те же самые, что и для кольцевого сегмента за исключением двух 3-меров:

• CAA

Упрощение 4: От кольцевых — к линейным

• Пусть линейный сегмент ДНК — ATGCGTGGCGTGCA.

• Тогда 3-меры из этого сегмента ‒ те же самые, что и для кольцевого сегмента за исключением двух 3-меров:

• CAA• AAT

Упрощение 4: От кольцевых — к линейным

• Пропажа 3-меров CAA и AAT ведет к удалению соответствующих ребер графа E*.

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

Упрощение 4: От кольцевых — к линейным

• Пропажа 3-меров CAA и AAT ведет к удалению соответствующих ребер графа E*.

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

CAAAAT

Упрощение 4: От кольцевых — к линейным

• Пропажа 3-меров CAA и AAT ведет к удалению соответствующих ребер графа E*.

• А также вершины AA.

CAGC

CG

TG

GT

GG

AT

AA

ATG

TGG GGCGCG

CGT

GTG

TGCGCA

Упрощение 4: От кольцевых — к линейным

• Пропажа 3-меров CAA и AAT ведет к удалению соответствующих ребер графа E*.

• А также вершины AA.

CAGC

CG

TG

GT

GG

ATATG

TGG GGCGCG

CGT

GTG

TGCGCA

Упрощение 4: От кольцевых — к линейным

• Пропажа 3-меров CAA и AAT ведет к удалению соответствующих ребер графа E*.

• А также вершины AA.

• Итак, для сборки строкиATGCGTGGCGTGCA,надо найти путь вE*, которыйначинается в AT,заканчивается в CA и проходит по всем ребрам.

CAGC

CG

TG

GT

GG

ATATG

TGG GGCGCG

CGT

GTG

TGCGCA

Упрощение 4: От кольцевых — к линейным

• Эйлеров путь в ориентированном графе G — это путь, проходящий по каждому ребру ровно один раз.

• Как эйлеров цикл, только необязательно стартовать и заканчивать путь в одной и той же вершине.

• К счастью, теорема Эйлера обобщается на этот случай.

• Вторая теорема Эйлера: связный ориентированный граф имеет эйлеров путь именно тогда, когда либо все вершины сбалансированы, либо ровно две вершины не сбалансированы на единицу.

Упрощение 4: От кольцевых — к линейным

• Значит, граф E* должен содержать эйлеров путь, потому что AT и CA (концы нашего сегмента) — единственные две несбалансированные вершины.

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

CAGC

CG

TG

GT

GG

ATATG

TGG GGCGCG

CGT

GTG

TGCGCA

Что дальше?

Персональная геномика: миллионы геномов

• Расшифровка персональногогенома началась с геномовнескольких учёных в 2009 г.,и вскоре затронет миллионыиндивидуумов.

• Тысячи геномов больных раком уже определены, и определениепоследовательности генома вскорестанет рутинной техникой в медицине.

• В сердце этого революционного процесса — биоинформатики, которые должны точно и эффективно анализировать всё возрастающие объемы данных.

10 учёных и предпринимателей, сделавших свои геномы досто-

янием общественности в 2009 г.

Геном 10 тысяч и далее

• 2010: учёные запускаютамбициозный проект посеквенированию геномов10000 видов живых существ.

• 201x?: возможно, мы сможемвоссоздать «древо жизни» исобрать геномы предков,которые жили миллионы лет назад.

• 20xx?: возможно, всего лишь возможно, мы узнаем, почему у жирафов идёт рост шеи, а у людей — мозга.

Recommended