Анализ транскриптома

Одноконцевые RNA-Seq чтения из биологической реплики 1 (файл с чтениями chr8.1.fastq) картировались на референсную последовательность хромосомы 8 H. sapiens.
На основании разметки человеческого генома Gencode 19 для сборки hg19 определялись гены, с которых были транскрибированы отсеквенированные РНК выбранной реплики.

Методы

Все полученные файлы хранятся в рабочей директории /nfs/srv/databases/ngs/stepan_puhov/pr12 в соответствующих поддиректориях.

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

ДействиеКоманда
Первичный контроль качества чтений(в директории reads)
fastqc --extract chr8.1.fastq
Попытка очистить чтения(в директории reads)
java -jar /nfs/srv/databases/ngs/suvorova/trimmomatic/ trimmomatic-0.30.jar SE -phred33 chr8.1.fastq chr8_trimmed.1.fastq TRAILING:20 MINLEN:25
Картирование чтений на референсную последовательность(в директории alignments)
hisat2 --no-softclip --summary-file mapping_report.txt -x ../../pr11/reference/chr8 -U ../reads/chr8.1.fastq -S chr8.sam
Подсчёт чтений, картированных по принципу spliced-alignment(в директории alignments)
grep -E -c "^[^@]([A-Za-z0-9:]+\s){5}[0-9A-Z]+[0-9]+N" chr8.sam
Перевод картированных чтений в bam формат(в директории alignments)
samtools view -b -o chr8.bam chr8.sam
Сортировка bam-файла по координатам картирования чтений(в директории alignments)
samtools sort chr8.bam chr8_sorted
Индексирование отсортированного bam-файла (создаётся файл chr8_sorted.bam.bai)(в директории alignments)
samtools index chr8_sorted.bam
Подсчёт картированных чтений, попадающих на гены, способом "union"(в директории alignments)
htseq-count -f bam -s no chr8_sorted.bam /nfs/srv/databases/ngs/Human/rnaseq_reads/*.gtf > reads_count_union.table
Подсчёт картированных чтений, попадающих на гены, способом "intersection-strict"(в директории alignments)
htseq-count -f bam -s no -m intersection-strict chr8_sorted.bam /nfs/srv/databases/ngs/Human/rnaseq_reads/*.gtf > reads_count_intersectstrict.table
Поиск непустых features в выдаче программы htseq-count(в директории alignments)
grep -E -e "^[A-Z0-9\.]+\s[^0]" -e "^__" reads_count*.table


Анализ качества чтений

С помощью программы FastQC был получен отчёт о качестве чтений.

Из раздела отчёта "Basic statistics" видно, что в исследуемом образце всего 17763 чтений, длина чтений составляет от 25 nt до 51 nt, ни одно чтение не помечено как "чтение плохого качества" и используется кодировка качества Phred+33.
Из раздела отчёта "Sequence length distribution" понятно, что большинство чтений имеют длину более 49 nt:

В разделе отчёта "Per base sequence quality" видим, что большинство чтений имеют очень хорошее качество; для каждого выбранного нуклеотида более, чем в 90% случаев, качество будет хорошим (Q > 28):

В разделе отчёта "Per base sequence content" выдаётся ошибка, ибо наблюдается картина сильно отклоняющаяся от того, что ожидается от случайной библиотеки чтений, полученных с одного генома, где частота каждого основания должна быть примерно одинаковой в любой позиции чтения (примерно равной частоте в геноме):

Однако это не удивительно для библиотеки секвенирования РНК из-за перепредставленности некоторых чтений, связанной с разными уровнями экспрессии генов, с которых считываются секвенированные транскрипты − частота оснований в каждой позиции, таким образом, смещена в сторону средней частоты по соответствующей позиции в РНК генов с высокой экспрессией.
По той же причине разного содержания разных РНК в исследуемом образце выдаётся ошибка в разделе отчёта "Sequence duplication level", из которого видно, что при удалении копий повторяющихся чтений остаётся лишь 36.93% чтений, и предупреждение в разделе "Overrepresented sequences" − это никак не говорит о качестве чтений.

В целом, можно утверждать, что чтения имеют очень хорошее качество.
Попытка очистить чтения программой Trimmomatic, отрезав с 3'-конца нуклеотиды с Q < 20 и при этом сохранив минимальную длину чтений равной 25 nt, оказалась бесполезной − ни одно чтение не было триммировано.


Картирование чтений и анализ выравнивания

Картирование чтений на референсную последовательность было произведено программой hisat2 c отключенной опцией --no-spliced-alignment.
Отключение этой опции позволяет программе разделять чтение на участки и картировать полученные участки независимо на одну и ту же цепь референса в предположении о наличии "сплайсинг-сайта" (вырезанного интрона) в данном чтении. Для чтения, картированного таким способом, в поле CIGAR sam-файла указывается длина прерывающего его интрона (кодом в регулярном выражении [0-9]+N); с помощью программы grep было подсчитанно, что так картировалось 4514 чтений.

Из отчёта картирования программы hisat2 видно, что из 17763 данных программе чтений 304 чтения не картировались, а из остальных чтений 17455 картировались ровно 1 раз и 4 чтения картировались более 1 раза. Таким образом, всего картировалось 98.29% чтений.
С помощью программы grep было выяснено, что у всех 17455 чтений, что картировались лишь 1 раз, было высокое качество картирования (Q = 60), а у 4 чтений, которые картировались более 1 раза, качество картирования было очень низким (Q = 1 или Q = 0). Можно заключить, что картирование, в целом, имеет высокое качество.

Для дальнейшей работы файл sam-формата с картированными чтениями с помощью программ пакета Samtools был переведён в bam-формат, а полученный bam-файл был отсортирован по координате картирования чтений и проиндексирован.


Подсчёт чтений

Подсчёт чтений, картированных на гены, определяемые согласно разметке Gencode 19 сборки hg19, производился программой htseq-count.

Программа принимает файл с картированными чтениями и файл формата gtf или gff с разметкой генома и для каждого участка генома, выделенного данной разметкой, (так называемого feature) считает число попавших на него чтений по 1 из 3 алгоритмов: union (для каждого чтения учитывается вхождение в участок генома (feature) хотя бы 1 нуклеотидом), intersection-strict (для каждого чтения учитывается вхождения в участок генома (feature) только по всем нуклеотидам чтения) или intersection-nonempty (для каждого чтения учитывется вхождение в feature по всем нуклеотидам чтения, входящих хотя бы в какой-нибудь feature).
В данном случае за features принимались гены, как совокупность их экзонов (то есть вхождение чтения в feature по данному нуклеотиду − это вхождение этого нуклеотида чтения в какой-нибудь экзон данного гена). При этом 3 алгоритма подсчёта чтений могут давать следующие результаты в разных ситуациях:

Важные опции для запуска htseq-count:
  • -f определяет формат входного файла с картированными чтениями
  • -s значение "yes" считает чтения для feature, только если они на той же цепи, что и feature, значение "reverse" − только если чтения на противоположной цепи, значение "no" позволяет считать чтения, картирующиеся на обе цепи по отношению к данному feature
  • -t определяет название для выбранного типа feature во входном gtf файле (default: exon)
  • -i определяет аттрибут в записях gtf файла, значение которого принимается за feature ID (default: gene_id)
  • -m определяет 1 из 3 способов подсчёта чтений (default: union)

Сначала был проведён подсчёт чтений, ложащихся на гены, представленные как совокупности экзонов, (то есть определние генов дефолтными значениями опций -t -i) по рекомендованному алгоритму union:
ENSG00000104738.12      294
ENSG00000253729.3       15941
__no_feature    	1219
__ambiguous     	1
__too_low_aQual 	0
__not_aligned   	304
__alignment_not_unique  8
Затем чтения, ложащиеся на гены (при том же определении генов), были подсчитаны по алгоритму intersection-strict:
ENSG00000104738.12    	273
ENSG00000253729.3     	15511
__no_feature  		1671
__ambiguous   		0
__too_low_aQual       	0
__not_aligned 		304
__alignment_not_unique  8

Из вывода программы htseq-count выясняется, что
  • 304 чтения не были картированы (они были определены ещё программой hisat2);
  • 8 выравниваний не были уникальными (это выравнивания для тех самых 4 чтений с более, чем 1 картированием; у каждого из них есть 2 координаты картирования, что видно из sam файла);
  • 1 чтение частично лежит на пересечении экзонов 2 разных генов;
  • 1671 чтение хотя бы частично попадают на интроны, а частично могут попадать на экзоны гена PRKDC или гена MCM4, из них 1219 чтений полностью попадают на интроны;
  • 273 и 15511 чтений полностью попадают на экзоны генов MCM4 и PRKDC соответсвенно.
Вообще, для чтений, полученных секвенированием мРНК, ожидаются картирования, как на строках 1 или 4 приведённой выше в этом разделе схемы. Картирования полностью в интрон или одним концом в интрон можно об'яснить присутствием в чтениях некодирующих РНК (а таких, например, 2 в гене PRKDC) или контаминацией незрелыми мРНК из ядра, а картирование на 2 экзона и интрон между ними (как в строке 3 схемы) об'ясняется скорее всего ядерной контаминацией незрелыми мРНК. Случай из 6 строки схемы, с пересекающимися экзонами с разных генов не понятен (а такой присутствует в 1 из исследуемых чтений, судя по разному подсчёту 2 разными алгоритмами поля "ambiguous").


В результате, чтения, картированные на экзоны, попали на 2 соседних гена:
  • PRKDC − ген каталитической суб'единицы ДНК-активируемой протеинкиназы, серин/треониновой протеинкиназы, участвующей в NHEJ-репарации.
  • MCM4 − один из 8 паралогичных генов, белки которых образуют гетерооктамерный комплекс, выполняющий роль главной хеликазы при репликации ядерной ДНК.


Главная страница


© Степан Пухов

2019