Сборка генома de novo
Подготовка чтений
Для работы мне был выдан код доступа SRR4240361 проекта по секвенированию генома бактерии Buchnera aphidicola. По ссылке я скачала архив SRR4240361.fastq.gz с короткими чтениями (длины 36), полученными по технологии Illumina. Перенеся архив в рабочую директорию, я распаковала его с помощью программы:
gunzip SRR4240361.fastq.gz
В результате я получила файл SRR4240361.fastq с чтениями. Затем было необходимо выполнить подготовку чтений программой trimmomatic. Сперва я собрала все адаптеры для Illumina в один файл adapters.fasta, после чего удалила возможные остатки адаптеров из чтений:
java -jar /usr/share/java/trimmomatic.jar SE -phred33 SRR4240361.fastq SRR4240361_outi.fastq
ILLUMINACLIP:adapters.fasta:2:7:7
В результате имеем:
Таблица 1. Вывод программы | ||||
Исходное число чтений Input Reads |
Размер исходного файла | Число оставшихся чтений Surviving (%) |
Размер получившегося файла | Число отброшенных чтений Dropped (%) |
7272621 | 733 Мбайт | 7238089 (99.53%) |
729 Мбайт | 34532 (0.47%) |
Затем я удалила плохие буквы с концов чтений (с качеством ниже 20), оставив только чтения длиной не менее 30. Для этого я воспользовалась командой:
java -jar /usr/share/java/trimmomatic.jar SE -phred33 SRR4240361_outi.fastq SRR4240361_out.fastq
TRAILING:20 MINLEN:30
В результате имеем:
Таблица 2. Вывод программы | ||||
Исходное число чтений Input Reads |
Размер исходного файла | Число оставшихся чтений Surviving (%) |
Размер получившегося файла | Число отброшенных чтений Dropped (%) |
7238089 | 729 Мбайт | 6881704 (95.08%) |
690 Мбайт | 356385 (4.92%) |
После подготовки чтений я получила файл SRR4240361_out.fastq.
Подготовка k-меров
Программа velveth помогает создать набор данных для работы последующей программы velvetg и сообщает системе, что представляет собой каждый файл с последовательностью. Программа velveth принимает на вход несколько файлов с последовательностями, создаёт хэш-таблицу и на выходе даёт 2 файла (Sequences и Roadmaps) в отдельной директории, которые затем используются программой velvetg. Длина k-мера (hash length), указываемая при запуске программы velveth, соответствует длине хэшируемых слов в парах оснований.
Программа velveth способна обрабатывать файлы форматов: fasta (по умолчанию), fastq, fasta.gz, fastq.gz, sam, bam, raw, raw.gz.
Программа velveth способна обрабатывать чтения следующих категорий: short (по умолчанию, короткие непарные), shortPaired (короткие парные), short2, shortPaired2, long, longPaired, reference.
В нашем случае нужно было подготовить k-меры длины k=29 для коротких непарных чтений (short). Поэтому я воспользовалась программой:
velveth . 29 -fastq -short SRR4240361_out.fastq
В результате программа работала 103.60 секунд, и я получила в рабочей директории файлы Sequences, Roadmaps и Log (отчёт о работе программы).
Сборка на основе k-меров
Программа velvetg строит граф де Брёйна - компактную структуру, основанную на k-мерах. Для этого рассматривается 4-буквенный алфавит (A, T, G, C) и формируется множество всех возможных строк длины k над этим алфавитом (k = 30-1 = 29, так как минимальная длина чтений в нашем случае 30). Затем строится граф B(4,k+1), в котором в качестве вершин стоят все элементы построенного множества, а две вершины v1, v2 соединены направленным ребром тогда и только тогда, когда существует слово длины (k+1), чьим префиксом является строка из v1, а суффиксом строка из v2. Граф содержит n^k вершин. Затем по полученному графу получают контиги. Наиболее простая и популярная стратегия заключается в том, чтобы взять в качестве контигов последовательности, соответствующие отдельным ребрам графа. При этом про структуру графа обычно полностью забывают и больше её не используют. Затем происходит вычисление длин зазоров между контигами, и объединение их в скэффолды.
В командной строке я указала:
velvetg .
В результате я получила файлы: contigs.fa (последовательности контигов в формате fasta), PreGraph (перечень чтений с указанием их порядкового номера в графе), Graph (граф, состоящий из контигов), LastGraph (граф, состоящий из контигов), stats.txt (информация по каждой вершине графа в виде таблицы).
В построенном графе оказалось 1222 вершин, N50 = 49972, максимальная длина контига = 155850, суммарная длина всех контигов = 690757.
С помощью написанной мной программы fasta.py я получила файл contigs.txt, содержащий описание всех контигов (порядковый номер контига|номер вершины|длина|покрытие).
fasta.py contigs.fa contigs.txt
Ниже приведена таблица с характеристиками трёх самых длинных и трёх самых коротких контигов и контигов с максимальным и минимальным покрытиями.
Таблица 3. Характеристики некоторых контигов | |||
Порядковый номер | Номер вершины | Длина | Покрытие |
Самые длинные контиги | |||
3 | 3 | 155850 | 33,079514 |
11 | 11 | 85024 | 34,670528 |
1 | 1 | 72780 | 35,516788 |
Самые короткие контиги | |||
24 | 32 | 29 | 29,827587 |
30 | 43 | 29 | 17,310345 |
38 | 69 | 29 | 40,137932 |
Контиги с максимальным покрытием | |||
41 | 72 | 36 | 130,750000 |
328 | 581 | 32 | 122,593750 |
317 | 505 | 38 | 91,473686 |
Контиги с минимальным покрытием | |||
272 | 432 | 58 | 1,724138 |
359 | 840 | 29 | 1,827586 |
310 | 492 | 59 | 1,847458 |
Самых коротких контигов длины 29 получилось 35 штук из всех 363 контигов. Контигов с покрытием < 3 получилось 45 штук.
Среднее значение покрытия составляет 11,785589.
Медиана покрытий составляет 4,948718.
Мода покрытий составляет 3,000000.
Среднее значение длины составляет 1886,5.
Анализ
С помощью программы megablast я сравнила каждый из трёх самых длинных контигов с хромосомой Buchnera aphidicola (CP009253). Затем повторила запуск программы для двух контигов с аномально большим покрытием. Результаты сравнения приведены в таблице 4. Query - исследуемый контиг, Subject - геном бактерии длиной 628164 пн.
Таблица 4. Сравнение контигов с хромосомой | |||||||||
Номер вершины |
Координаты в геноме |
Max score |
Total score |
Query cover |
E value |
Ident | Gaps | Mismatch | Alignment length |
Самые длинные контиги | |||||||||
3 | 353822 - 202390 | 6154 | 63791 | 75% | 0.0 | 91862 77% |
3889 3% |
23803 20% |
119554 |
11 | 454069 - 384182 | 3605 | 26639 | 54% | 0.0 | 36579 77% |
1495 3% |
9210 20% |
47284 |
1 | 531590 - 462496 | 4047 | 31952 | 78% | 0.0 | 44949 77% |
2022 4% |
11298 19% |
58269 |
Когда я запустила megablast с контигами с максимальным покрытием, то программа выдала "No significant similarity found" (Не найдено значительное сходство). Если посмотреть на вводимые контиги, то они довольно короткие и часто встречаются в геноме. Они сами состоят из повторяющихся фрагментов, из-за чего при сборке их нельзя правильно собрать в контиги большей длины. Поэтому невозможно построить достоверное выравнивание.
>NODE_72_length_36_cov_130.750000 TGATTGTATAATATTATTCGTGGGTACTTGAAACTTCTAAAGTATACTATTATATATCTA TGAT
>NODE_581_length_32_cov_122.593750 AATTTTCGTGATTTTTCCATATTTTGTCATTTTTTGAACTTTAAATGCTTATAAAAAAAA