Сборка de novo

Для всех последующих действий использовались одноконцевые чтения РНК из хлоропластов Резуховидки Таля SRR1724089, полученные технологией Illumina

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

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

/mnt/scratch/NGS/adapters

В ней 6 файлов: NexteraPE-PE.fa, TruSeq2-PE.fa, TruSeq2-SE.fa, TruSeq3-PE-2.fa, TruSeq3-PE.fa, TruSeq3-SE.fa

У меня возник вопрос: стоит ли объединять адаптеры вместе, а если не объединять, то какие лучше использовать, ведь некоторые из них относятся к парным чтениям.

Если мы объединим все адаптеры в один файл и проведём триммирование с такими параметрами:

TrimmomaticSE -phred33 -threads 4 SRR1724089.fastq.gz SRR1724089_trimmed_all_adapters.fastq.gz ILLUMINACLIP:adapters.fasta:2:7:7

То в результате такой операции 8237 или 0.06% чтений отбросятся. Привожу файл с отчётом.

При этом fastqc анализ покажет, что количество адаптеров (Adapter Content) сократиться почти до нуля (или до нуля)

Рис.1 - Кол-во адаптеров до применения Trimmomatic
Рис.2 - Кол-во адаптеров после обрезки всех адаптеров

Однако мы также можем взять адаптеры только из файла TruSeq3-PE-2.fa и провести триммирование адаптеров командой:

TrimmomaticSE -phred33 -threads 4 SRR1724089.fastq.gz SRR1724089_trimmed_adapters.fastq.gz ILLUMINACLIP:TruSeq3-SE.fa:2:7:7

То у нас отбросятся только 1310 или 0.01% чтений (Отчет), при этом fastqc анализ также почти не выявит содержание адаптеров:

Рис.3 - Кол-во адаптеров после обрезки адаптеров из файла TruSeq3-SE.fa

Возможно два вывода отсюда: либо когда мы используем все адаптеры отбрасываются лишние чтения из-за случайного совпадения, либо fastqc неправильно отображает количество адаптеров. Я доверюсь fastqc и буду использовать чтения, обрезанные при помощи адаптеров из TruSeq3-SE.fa. Не хочется терять данные. В пользу первой теории говорит тот факт, что файл с чтениями весит 943Мб, файл с вырезанными адаптерами из файла TruSeq3-SE.fa — 926Мб, а файл, из которого вырезали все адаптеры, — 925Мб

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

TrimmomaticSE -phred33 -threads 4 SRR1724089_trimmed_adapters.fastq.gz SRR1724089_trimmed_adapters_quality.fastq.gz MINLEN:32 TRAILING:20

Она удаляет нуклеотиды с плохим качеством с 3' конца и фильтрует чтения длины меньше 32 нуклеотидов. В результате выполнения команды было отброшено 223135 или 1.54% чтений. Прилагаю файл с отчётом.

Начальный файл с чтениями весит 943МБ

Файл с отброшенными адаптерами весит 926Мб

Файл, дополнительно отфильтрованный по качеству и длине чтений, весит 899МБ

Я провёл анализ fastqc начального fastq файла и fastq файла после двух триммирований. И, действительно, заметно улучшение качества с 3' конца чтений:

Рис.4 - Распределение качества по нуклеотидам чтения до триммирования
Рис.5 - Распределение качества по нуклеотидам чтения после триммирований

Задание 2. Подготовка k-меров на основе моих чтений

Для построения 31-меров для моих одноконцевых чтений длиной 101 нуклеотид я использовал следующую команду:

velveth velveth_out 31 -fastq.gz -short SRR1724089_trimmed_adapters_quality.fastq.gz

В результате выполнения команды внутри папки были созданы файлы Log (текстовый файл с параметрами запуска команд), Roadmaps (показывают расположение k-меров в чтениях) и Sequences (база данных всех чтений)

Задание 3. Сборка на основе генома

Затем, применяя к получившейся директории команду velvetg без параметров:

velvetg velveth_out

Я получил контиги генома хлоропласта. Используя, средство Python (Использованный код), я вычислил L50 и N50:

N50 = 124 нуклеотида

L50 = 18193 контига

Такие плохие качества сборки объясняются скорее всего тем, что в чтениях имелись как РНК хлоропласта, так и РНК ядра, это также становится очевидным, если мы посмотрим на три самых длинных контига и на их покрытие:

Контиг длиной 2348 нуклеотидов с покрытием 15.8

Контиг длиной 1801 нуклеотидов с покрытием 7.328628

Контиг длиной 1625 нуклеотидов с покрытием 19.47

Хотя при этом в сборке имеется контиг длиной 401 нуклеотид и покрытием 724. Очевидно, что первые три контига состоят из чтений ядра, а последний контиг состоит из чтений хлоропласта. Хлоропластный геном короткий и содержит много копий, поэтому очевидно, что при высоком кол-во чтений (в нашем случае >10 000 000) покрытие для контигов, принадлежащих геному хлоропласта, должно быть огромным. И так как мы хотим сборку именно хлоропластного генома, то должны сделать фильтр по покрытию, чтобы отобрать только те контиги, которые имеют высокий показатель покрытия.

С этой целья я добавил опции к команде velvetg:

velvetg velveth_new_out -exp_cov auto -cov_cutoff 70

-exp_cov auto позволяет программе определять ожидаемое покрытие для сборки, что может помочь в разрешении сложных ситуаций, -cov_cutoff 70 удаляет контиги с покрытием меньше 70.

Качество сборки значительно улучшилось:

N50 = 518 нуклеотидов

L50 = 74 контига

При это три самых больших контига имеют огромное покрытие:

Контиг длиной 5415 нуклеотидов с покрытием 694.8

Контиг длиной 3009 нуклеотидов с покрытием 607.3

Контиг длиной 2578 нуклеотидов с покрытием 221.77

Конечно имеются контиги с достаточно низким покрытием в 71-75, их длина колеблется от 110 до 260 нуклеотидов. Также имеются контиги небольшой длины (62-150 нуклеотидов), но имеющие огромное покрытие (больше 10 000, а иногда превышает даже 100 000).

При это стоит учесть, что если мы не так сильно ограничим покрытие контигов, то при выполнении следующей команды:

velvetg velveth_new_out -exp_cov auto -cov_cutoff 25

Мы сможем увидеть даже контиг длиной 8186 нуклеотидов, покрытие тоже будет приличным: 300

Кроме вышеупомянутого контига, здесь также имеются контиг длиной 5415 и покрытием 694.8 из предыдущей сборки, контиг длиной 3858 и покрытием 307.9, контиг длиной 2934 и покрытием 236.6

Задание 4. Гомология с геномом Arabidopsis thaliana

Для Megablast я использовал хлоропластную хромосому Arabidopsis thaliana из базы данных RefSec Genomes (идентификатор сборки генома GCF_000001735.4) с идентификатором NC_000932.1

Я решил сначала пробластовать контиг длиной 8186 нуклеотидов на наличие гомологии с геномом Arabidopsis thaliana. Этот контиг выровнялся на три участка хлоропласта (файл с выравниванием), но интерес представляют только первые находки, так как они представляют идентичные выравнивания, но на разных цепях хромосомы хлоропласта. Первая находка на участке: от 93628 до 85453. Вторая находка на участке: от 145021 до 153196. Каждый участок отличается от запроса на 19 нуклеотидов и 9 гэпов и имеют один и тот же счёт: 15001 bits(8123). А расположение находок на противоположных цепях говорит нам об инвертированных повторах на участке от 85453 до 153196. Инвертированные повторы часто используются организмами для стабилизации генома и уменьшения скорости мутаций для жизненно важных генов

Score:15001, bits(8123), Expect:0.0, Identities:8166/8185(99%), Gaps:9/8185(0%) - характеристики выравнивания для каждой находки

В области выравнивания с контигов находятся: первый экзон гена рибосомального белка L2, ген рибосомального белка L23, тРНК изолейцина, ген белка Ycf2 (обеспечивает транспорт белков)

При этом контиг захватил только внешнюю часть инвертированного повтора. В подтверждение того, что мы имеем дело с инвертированными повторами привожу dot plot выравниваний:

Рис.6 - Dot Plot контига длиной 8186 нуклеотидов

Megablast не смог найти гомологии контига длиной 5415 нуклеотидов с геномом Arabidopsis thaliana, однако он нашёл почти полную гомологию с геномом бактериофага phiX174. В интернете было сказано, что геном этого бактериофага добавляется при секвенировании Illumina в библиотеку для внутреннего контроля (привожу файл с выравниваниями для доказательства). Так как этот контиг не принадлежит хромосоме хлоропласта, Dot plot приводить не буду.

Затем я решил взять контиг длиной 3858 нуклеотидов из результатов выполнения команды velvetg при -cov_cutoff 25. Он также почти идеально выровнялся с участком на хромосоме хлоропласта с 21763 до 17910 нуклеотиды:

Score:6889 bits(7639), Expect:0.0, Identities:3847/3859(99%), Gaps:6/3859(0%), Strand: Plus/Minus

Данный участок соответствует генам бета субъединицы РНК-полимеразы. Привожу Dot Plot выравнивания:

Рис.7 - Dot Plot контига длиной 3858 нуклеотидов

Если мы возьмем контиг длиной 2934 нуклеотида (снова из результатов выполнения команды velvetg при -cov_cutoff 25) и пробластуем по хлоропласту, то получим прекрасное выравнивание по всей длине (файл) со следующими характеристиками:

Score:5601 bits(2913), Expect:0.0, Identities:2931/2935(99%), Gaps:2/2935(0%), Strand: Plus/Minus

по участку хромосомы хлоропласта от 25586 до 22653 нуклеотидов, соответствующему бета субъединице РНК полимеразы

Рис.8 - Dot Plot контига длиной 2934 нуклеотидов

Я также хотел бы взять контиг из результатов выполнения velvetg при параметре cov_cutoff 75 длиной 3009 нуклеотидов для поиска гомологии в геноме: он очень хорошо выровнялся (файл) по всей своей длине с хромосомой со следующими характеристиками:

Score:5544 bits(3002), Expect:0.0, Identities:3007/3009(99%), Gaps:1/3009(0%), Strand: Plus/Minus

по участку от 81103 до 78096 нуклеотидов, что соответствует генам: альфа субъединице РНК полимеразы, рибосомальным белкам: S11, L36, S8, L14

Рис.9 - Dot Plot контига длиной 3009 нуклеотидов

Также для контроля хорошо бы было взять контиг из результатов выполнения velvetg без всяких опций: я взял контиг длиной 2348 нуклеотидов. Как и следовало ожидать, megablast не смог найти гомологии с хромосомой хлоропласта, однако при поиске гомологии по всем хромосомам Megablast смог выровнять целых три участка из пятой хромосомы (файл) с моим контигом. При этом одна из находок выровнялась полностью с моим контигом без гэпов и мисматчей:

Показатели выравнивания самого крупного участка: Score:3278 bits(1775), Expect:0.0, Identities:1775/1775(100%), Gaps:0/1775(0%), Strand: Plus/Minus

участки выравниваний соответствуют экзонам гена GUN5, который кодирует субъединицу H магний-хелатазы, участвующую в синтезе хлорофилла

Рис.9 - Dot Plot контига длиной 2348 нуклеотидов