На главную


Сборка генома de novo

Таблица 1. Используемые файлы и команды
Название файла/программыКомандаРезультатОписание
Исходные файлы /nfs/srv/databases/ngs/azbukinanadezda/pr14/SRR4240356.fastq -
1. Подготовка чтений программой trimmomatic [1]
подготовка адаптеров
seqret @mylist.txt adapters.fasta/nfs/srv/databases/ngs/azbukinanadezda/pr14/adapters.fastaФайлы с адаптерами были объединены в общий файл.
Удалиние остатков адаптеров java -jar /usr/share/java/trimmomatic.jar SE -phred33 SRR4240356.fastq 1.fastq ILLUMINACLIP:adapters.fasta:2:7:7 /nfs/srv/databases/ngs/azbukinanadezda/pr14/1.fastq
Команда ILLUMINACLIP первым параметром использует название fasta -файла, содержащего адаптеры, праймеры для ПЦР и т.д. Второй параметр определяет максимальное число несоответствий, которое допускается при определении соответствия. Третий параметр показывает, насколько аккуратным и точным должно быть соответствие между двумя "соединенными адаптерами" ('adapter ligated' ) ридами должно быть для палиндромного выравнивания ридов. ЧЕтвертый параметр определяет насколько точным должно быть соответствие между любыми адаптерными последовательностями и ридами.
Удаление плохих букв с концов чтений java -jar /usr/share/java/trimmomatic.jar SE -phred33 1.fastq 2.fastq TRAILING:28 MINLEN:30/nfs/srv/databases/ngs/azbukinanadezda/pr14/2.fastq Команда TRAILING удаляет буквы с качеством ниже установленного с конца рида. Команда MINLEN удаляет риды длиной меньше установленного значения.
2. Подготовка k-меров. velveth velveth 29 -fastq -short 2.fastq/nfs/srv/databases/ngs/azbukinanadezda/pr14/velveth
На выходе программы записывается три файла:Log, содержащий общую информацию -протокол выполнения, Sequences - содержит пронумерованные последовательности ридов и файл Roadmaps. Два последних необходимы для следующих этапов.
Программа velveth [2] первым параметром принимает имя диретории, куда будут записаны выходные файлы, вторым - длина к-меров, третьим - формат входного файла, четвертым - тип чтений (короткие/длинные/парные/непарные) и в конце пишется название исходного файла. ls
Сборка velvetg velveth25/nfs/srv/databases/ngs/azbukinanadezda/pr12/chr2.2intersect.bed или chr2.1intersect.bed Дополнительные параметры для сборки коротких ридов -cov_cutoff, можно удалять куски с покрытием меньше указанного. Иногда это бывает полезно, а иногда- теряется нужная информация.

Подготовка чтений программой trimmomatic

Ссылка на исходные данные моего проекта SRR4240356. После подготовки файла с адптерами было проведено удаление остатков адаптеров. Отчет о выполнении доступен здесь. В первоначальном файле было 7511529 ридов, после чистки было удалено 153091 (2,04%), осталось 7358438 (97,96%) ридов.
После этого были удалены плохие буквы на концах чтений, а также чтения, с длиной меньше 30. На вход на этом этапе подавалось 7358438 ридов, удалено 73655 (1,00%), осталось 7284783 (99,00%). Исходный файл имел размер 793 999 866 байт, после чистки - 757 103 626 байт. Пройдя по ссылкам, можно увидеть результат выдачи программы fatqc (команда factqc 'имя файла'), для первоначального варианта и конечного. Можно заметить, что действительно были удалены риды, с рамахом неудовлетворительного (ниже 28) качества, а также удалены overrepresented sequences, то есть действительно адаптеры были удалены. Интересен тот файт, что содержание пар G-C составляет примерно 30%, а A-T -70%, то есть исследуемая бактерия не термофильна (поле per base sequence content. Причем видно, что в первоначальном файле содержание колеблется от рида к риду, а в очищенном- равномерное по всем ридам).

Подготовка k-меров и сборка

С помощью программы velveth были подготовлены k-меры нужной длины. Затем была проведена сборка программой velvetg[2], работающий на основе графов де Брайна для k-меров длины 25 и 29. Так как командой sort отсортировать данные не удалось, они были обработаны с помощью excel. Основные параметры приведены в таблице 2.
Таблица 2. Сравнение сборок
Параметрk-mer length=25k-mer length=29
N505 40873 133
Общая длина, п.н.695 924664 866
Число контигов3 319608
Самые длинные контигиa)ID:51, lgth 14 084, cov 80.41;
b)ID:13,lgth 13 372, cov 81.19;
c)ID:59,lgth 13 359, cov 76.87.
a)ID:7, lgth 115 468, cov 51.99 ;
b)ID:19, lgth 106 076, cov 45.77;
c)ID:8, lgth 75 082, cov 54.26.
Видно, что качество сборки для k-меров длины 29 лучше, так как больше N50, в 10 раз длиннее последовательность максимального контига а также в 5 раз меньше общего числа контигов. Поэтому дальше я буду работать только с этим вариантом.
Нашлись контиги с аномальным покрытием. Медиана покрытия составила 10,82. Контиг с максимальным (312 992) покрытием имеет номер 517 и длину 1 нуклеотид, поэтому понятно, почему у него такое большее покрытие. В файле stats.txt содержится информация о всех 610 узлах построенного графа, но в файле contigs.fa содержатся только поулченные контиги, с минимальной длиной, соответствующей длиной k-mer =29 нуклеотидов (таких контигов 16 штук).

Анализ полученных данных

Для анализа собранных чтений были извлечены .fasta файлы самых длинных контигов и сравнены с уже собранной хромосомой Buchnera aphidicola (GenBank/EMBL AC — CP009253) программой blast2seq (megablast). Результаты приведены в таблице 3. Согласно таблице видно, что процент несоответствий (миссматчей) и гэпов в выравниваниях примерно одинаковый между 3 -мя контигами. Расчеты производились в программе excel. Результаты доступны в том же файле, что и для k-меров excel.
Таблица 3. Анализ самых длинных контигов
Ссылка на fasta, длина выравниванияE-valueПокрытиеИдентичностьГэпыНесоответствия
Контиг 7. 86 586 п.н.0.073%81%2 205 (2,55%)16 324 (18,85%)
Контиг 19. 73 984 п.н.0.068%79%1 938 (2,62%)14 770 (19,96%)
Контиг 8. 55 803 п.н.0.073%83%1 172 (2,10%)10 194 (18,27%)
На рисунке 1 представлена визуализация выравниваний для этих контигов. По оси Х расположены контиги , а по У - референсная хромосома. Контиг 7 соответствует участку от 480 660 до 584 329 на хромосоме (17 участков) , контиг 19 - от 248 967 до 349 674 (всего 20 участков. Кажется, что этот участок инвертирован, однако так как программа-сборщик не знает ориентации цепи, то она выбирается случаным образом, поэтому так как обращен контиг целиком, нельзя утверждать о том, что этот участок инвертирован.), а контиг 8 - от 11 103 до 35 124 и от 604 795 до 621 055 (13 участков). Такой большой "разрыв" связан с тем, что бактерии имеют кольцевую хромосому, и просто начало нумерации нуклеотидов в хромосоме совпало с серединой участка, выровненного с контигом, поэтому то мы и видим на карте два участка - один в начале, другой в конце. Анализируя таблицу, можно заметить, что у всех трех контигов процент несоответствий примерно одинаковый, что говорит о том, что контиги собраны правильно, а различия в позиционировании их на геном связаны с наличием делеций и вставок между двумя данными штаммами. Это и неудивительно, ведь референсный штамм BAg симбионт Соевой тли (Aphis glycines), а исследуемый Tuc7 - Гороховой тли (Acyrthosiphon pisum), поэтому их геномы и различаются. Если обратить внимание на общий вид карт, то можно заметить, что последовательности выровнены линейно, есть лишь какие-то делеции и инсерции, то есть общая (коровая) структура генома этих штаммов близка, а различия связаны с адаптациями к разным хозяевам.
Рисунок 1. Визуализация выравниваний для контига 7(A), 19(В) и 8 (С)

Анализ сборки, составленной из половины ридов

Из очищенного файла в отдельный файл была записана половина ридов (wc -l 2.fastq , tail -n 14569564 2.fastq > bad.fastq). Полученный файл был обработан аналогично тому, как описано выше (длина k-меров 29). Примечательно, что программа обрабатывала такой файл 18 секунд, а первоначальный 40-60 секунд. В таблице 4 приведено сравнение качества сборки файла, содержащего все риды и файла, содержащего только половину.
Таблица 4. Сравнение качества сборки
ПараметрПоловина ридовВсе риды
N5030 23473 133
Общая длина, п.н.658 385664 866
Число контигов339608
Самые длинные контигиa)ID11, lgth 42 588, cov 24.60;
b)ID:6, lgth 41 368, cov 24.77;
c)ID:8, lgth 36 360, cov 25.97.
a)ID:7, lgth 115 468, cov 51.99 ;
b)ID:19, lgth 106 076, cov 45.77;
c)ID:8, lgth 75 082, cov 54.26.

Видно, что геном собран полностью (общая длина примерно одинаковая), однако N50 в два раза меньше и число контигов тоже в два раза меньше (видимо мало коротких, так как значимых - длиной больше 100 п.н. в изначальном -56, а в урезанном - 64). Кроме того, меньше размер самых длинных контигов (раза в 3), а покрытие в среднем ниже в два раза. То есть можно сделать вывод, что геном собрать можно, однако достоверность будет ниже, но для получения чернового варианта такое количество ридов вполне сгодится.

Сборка с помощью SPAdes

Тот же самый файл 2.fastq был собран с помощью другой программы Spades [3]. Команда для запуска spades.py -s 2.fastq -k 29 -o spades. -s -флаг, указывающий, что исходный файл содержит простые риды, -k -длин k-меров, -o -директория, куда будут записаны выходные файлы. В моем случае этап Mismatch Correction был пропущен, так как риды одиночные, не парные, и нет референсных ридов.
В общем, программа SPAdes содержит гораздо больше опций для работы с разными типами ридов ( по сравнению с velvet), можно задавать файл с достоверными референсными ридами для сравнения на этапе корректировки и проверки ридов, собирать one-cell sequence (--sc), а также продолжать работу с места ошибки. также стоит отметить, что эта программа прездназначена конкретно для сборки бактериальных геномов. Но зато она работает гораздо дольше (вся процедура около 40 мин), чем velvet.
Выходные файлы содержат: contigs.fasta, contigs.fastg – последовательности контигов в разных форматах (fastg - похож на фаста, только содержит куски, записанные в виде графов, что полезно, не нужно записывать много фаста файлов, например для разных аллелей), scaffolds.fasta, scaffolds.fastg – последовательности скаффолдов, corrected/ – директория, содержащая файлы после коррекции ридов (актуально, если риды спаренные), configs/ – рабочие файлы для коррекции ридов, params.txt –параметры SPAdes в этой сессии, spades.log, dataset.info – общая информация о программе SPAdes.
В таблице 5 приведено сравнение работы программы velvet и SPAdes (статистика для программы SPAdes получена с помощью QUAST [4], информация о конкретных контигах получены из названия контигов в fasta-файле, обработано в excel). Интересно, что значимых контигов (длиной больше 100 п.о. в программе velvet получилось 56, а в SPAdes - 111), относительно общего количества гораздо больше, чем полученных программой velvet и они в среднем длиннее.
Таблица 5. Сравнение качества сборки разными программами
ПараметрSPAdesVelvet
N5013 84173 133
Общая длина, п.н.663 444664 866
Число контигов143608
Самые длинные контигиID:1, lgth 32 944, cov 49,08 ;
b)ID:3, lgth 31 521, cov 52,40;
c)ID:5, lgth 31 329, cov 48,65.
a)ID:7, lgth 115 468, cov 51.99 ;
b)ID:19, lgth 106 076, cov 45.77;
c)ID:8, lgth 75 082, cov 54.26.

Список источников

[1] Программа Trimmomatic.
[2] Программа Velveth.
[3] Программа Spades.
[4] Программа QUAST.