Практикум №14

Введение в траскриптомный анализ

В данном практикуме необходимо проанализировать одноконцевые чтения RNA-seq.

1. Подготовка референса

Для начала референс, 8-я хромосома человека, был проиндексирован командой:

hisat2-build -p 10 chr8.fna chr8

Подавая на вход fasta-файл, получили на выход 8 бинарных файлов с расширением .ht2.

2. Оценка качества чтений

Я анализировал одноконцевые чтнеия, которые были мне выданы (SRR2015717). При помощи команды:

fastqc SRR2015717_1.fasta.gz

получили страничку (ссылка). Всего получилось 31803919 чтений.


Качество чтений достаточно неплохое, но почему-то есть провал по качеству не только в конце, но и в начале.

Как видно, все чтения имеют длину 101 (так нет таких чтений, которые бы имели длину 100 или 102)

3. Картирование чтений на референс

Откартируем наши чтения на хромосому:

hisat2 -p 10 -x chr8 -k 3 -U SRR2015719_1.fastq.gz > rna.sam 2> log.txt (файл)

Здесь -p задаёт число ядер, -х - референс, -k - пороговое значение веса выравнивания рида на референс, -U задаёт файл с ридами. Из файла: 1180890 (3.71%) aligned exactly 1 time и 21718 (0.07%) aligned >1 times (простите, надеюсь, что можно просто вставлять английский текст, так как я так больше не могу).

Теперь отсортируем bam файл, проиндексируем его и посмотрим статистику (итог). Команды:

samtools sort -O bam -@ 10 rna.sam -o rna.bam

samtools index -b -@ 10 rna.bam rna.bai

samtools flagstat -@ 10 rna.bam > rna_flag.txt

Как видно из файла, закартировалось 3.87% ридов

Теперь надо отбрать только те чтения, что легли на нашу хромосому (в файле с ридами тотальная мРНК). Команды:

samtools faidx chr8.fna -o chr8.fai

samtools view -h rna.bam NC_000008.11 > rna.chr8.sam

samtools view -bS rna.chr8.sam > rna.chr8.bam

samtools flagstat -@ 10 rna.chr8.bam > rna.chr8_flag.txt

samtools index -b -@ 10 rna.chr8.bam rna.chr8.bai

Из файла видим, что теперь все чтения принадлежат нашей хромосоме, значит, всё хорошо.

4. Поиск экспрессирующихся генов

При помощи команды head изучим файл с разметкой.

##description: evidence-based annotation of the human genome (GRCh38), version 35 (Ensembl 101)
##provider: GENCODE
##contact: gencode-help@ebi.ac.uk
##format: gtf
##date: 2020-06-03
NC_000008.11	HAVANA	gene	64091	64320	.	-	.	gene_id "ENSG00000253620.2"; gene_type "processed_pseudogene"; gene_name "AC144568.1"; level 2; havana_gene "OTTHUMG00000163938.2";
NC_000008.11	HAVANA	transcript	64091	64320	.	-	.	gene_id "ENSG00000253620.2"; transcript_id "ENST00000520139.2"; gene_type "processed_pseudogene"; gene_name "AC144568.1"; transcript_type "processed_pseudogene"; transcript_name "AC144568.1-201"; level 2; transcript_support_level "NA"; ont "PGO:0000004"; tag "basic"; havana_gene "OTTHUMG00000163938.2"; havana_transcript "OTTHUMT00000376500.2";
NC_000008.11	HAVANA	exon	64269	64320	.	-	.	gene_id "ENSG00000253620.2"; transcript_id "ENST00000520139.2"; gene_type "processed_pseudogene"; gene_name "AC144568.1"; transcript_type "processed_pseudogene"; transcript_name "AC144568.1-201"; exon_number 1; exon_id "ENSE00002132061.2"; level 2; transcript_support_level "NA"; ont "PGO:0000004"; tag "basic"; havana_gene "OTTHUMG00000163938.2"; havana_transcript "OTTHUMT00000376500.2";
NC_000008.11	HAVANA	exon	64091	64175	.	-	.	gene_id "ENSG00000253620.2"; transcript_id "ENST00000520139.2"; gene_type "processed_pseudogene"; gene_name "AC144568.1"; transcript_type "processed_pseudogene"; transcript_name "AC144568.1-201"; exon_number 2; exon_id "ENSE00002126516.2"; level 2; transcript_support_level "NA"; ont "PGO:0000004"; tag "basic"; havana_gene "OTTHUMG00000163938.2"; havana_transcript "OTTHUMT00000376500.2";
NC_000008.11	HAVANA	gene	72601	79775	.	+	.	gene_id "ENSG00000253896.3"; gene_type "lncRNA"; gene_name "AC144568.2"; level 2; havana_gene "OTTHUMG00000163939.3";

Gene Transfer Format (GTF) - одна из трёх версий GFF. Каждая строка в файле формата GFF содержит 9 колонок, разделенных знаком табуляции. Каждая колонка называется полем и имеет своё назначение. Список названий полей и их содержание приведены ниже.

Название поля Описание (спасибо, вики)
1 seqid Название (идентификатор) последовательности, где находится данный элемент.
2 source Источник определения элемента
3 type Тип элемента
4 и 5 start Начальные и конечные координаты элемента.
6 score Вес элемента
7 strand Направление элемента относительно цепи, на которой располагается. + 5'-->3' и - 3'-->5'
8 frame Рамка считывания или фаза для белок-кодирующих последовательностей. Указывает какому основанию участка соответствует первое основание кодона раки
9 attribute Поле для дополнительной информации

При помощи htseq-count посчитаем для каждого гена число картированных на этот ген чтений:

htseq-count -f bam -s no -m union -t exon rna.chr8.bam gencode.chr8.gtf -o rna.chr8.sam 1> log_cons.txt 2> log_err.txt (файл)

А теперь поподробнее о команде. -а - задаёт формат (bam), -s no - чтение считается перекрывающимся с функцией, независимо от того, сопоставлено ли оно с той же или противоположной цепью, что и объект, -m - режим для обработки операций чтения, перекрывающих более одной функции, -t - здесь (exon) задаёт, чтобы из файла брались только экзоны.

Осталось только получить чтения, попавшие в гены. Команда:

wc -l log_cons.txt | head -n $lines-5 log_cons.txt | awk '{s+=$2}END{print s}'

Получили 840337 чтений, попавших в гены. Чтобы узнать, сколько чтений не попали в границы генов, надо прочитать конец файла: tail log_cons.txt. Получаем 288871 ридов.