Практикум 13. Bedtools.

Анализ покрытия ридами при помощи BEDtools.

Была создана рабочая директория, в нее был скопирован файл с картированными ридами, отсортированными соответственно их координате в геноме, в формате .bam:

	cd /nfs/srv/databases/ngs/potapenko/
	cp ./pr12/chr22.1_sorted_alignment.bam ./pr13  

Далее файл с картированными отсортированными ридами был переведен в формат .bed (расшифровывается как Browser Extensible Data). По умолчанию команда выводит результат своей работы на консоль, этот результат работы был записан в файл:

	 bedtools bamtobed -i chr22.1_sorted_alignment.bam > chr22.1.bed 

Формат .bam бинарный, формат .bed - текстовый. Полученный файл содержит 23094 строк, строки имеют вид:

	chr22	22888095	22888146	D00795:16:C7BV0ACXX:5:2208:21047:101214	60	+  

Т.е. в каждой строке сначала указана хромосома (везде chr22, т.к. изначально были взяты риды, полученные секвенированием РНК, транскрибированных с этой хромосомы), далее - координаты рида на хромосоме (помним, что все риды имеют дину 50 или 51) "+" означает положительную цепь (во строках стоит "+"), "60" в предпоследней колонке, видимо, score (везде стоит "60", в описании формата на сайте сказано, что score может иметь значение от 0 до 1000. Можно предположить, что score одинаковый во всех строках и значение такое небольшое, т.к. все риды имеют небольшую почти одинаковую длину (?))

Команда bedtools intersect была запущена с опцией -h, чтобы выбрать, как и с какими опциями ее запускать. Команда принимает на вход два файла, название одного записывается после опиции -а, название второго после -b, и ищет пересечения между двумя файлами с особенностями. По умолчанию файлы должны иметь формат .bed, но возможна и обработка файлов .bam (тогда нужна опция -abam). В нашем случае один файл - это картированные сортированные риды, второй - файл с разметкой генов по версии Gencode для генома человека сборки hg19. Опция -u позволяет не выводить информацию о записях разметки генома, никак не пересекающихся с ридами.

	bedtools intersect -u -a /P/y14/term3/block4/SNP/rnaseq_reads/gencode.genes.bed -b chr22.1.bed > chr22.1_intersect.bed 

Создан файл chr22.1_intersect.bed, содержащий 197 строк вида:

	chr22	22890123	22901768	protein_coding	PRAME  

Понятно, что первые три столбца - это номер хромосомы и координаты позиция в хромосоме, куда выравнялся рид. Последний столбец содержит название белка, закодированного в гене, с которым пересекается данный рид. Во всех строках, кроме двух последних, в этом столбце записано "PRAME" (это уже знакомый preferentially expressed antigen in melanoma). Значит, этот ген пересекается со 195 ридами. В двух последних строках в этом столбце записано "LL22NC03-63E9.3". Это неохарактеризованный локус, для которого известен один транскрипт (та некодирующая РНК, риды которой и были найдены при картировании). Вероятно, отсеквенировать хотели транскрипты PRAME, а LL22NC03-63E9.3 попали случайно, т.к. находятся в геноме рядом (см. рисунок 1).

Опция -с добавляет в последний столбец информацию, сколько для каждой фичи из первого файла (в данном случае - для каждого элемента разметки генома) с ней пересекается фич из второго файла (в данном случае - сколько ридов пересекается с данной разметкой генома). При этом нельзя применить одновременно опции -с и -u: -с считает, сколькими фичами из второго файла покрываются фичи из первого, -u позволяет выводить только те фичи из первого файла, которые покрыты какими-то фичами из второго. Поэтому опицю -u надо убрать и добавить grep, чтобы убрать строки с нулями:

	 bedtools intersect -c -a /P/y14/term3/block4/SNP/rnaseq_reads/gencode.genes.bed -b chr22.1.bed | grep 0 -v -w > chr22.1_c_grep.bed 

Рисунок 1. Белок-кодирующий ген PRAME и ген LL22NC03-63E9.3 лежат рядом на хромосоме, ген PRAME имеет 14 транскриптов (картинка с сайта ensemble).

Таблица 1. Характеристики генов, в границы которых попали риды.

ген PRAME LL22NC03-63E9.3
название preferentially expressed antigen in melanoma uncharacterized LOC648691
размер гена 11666bp 7257bp (единственный транскрипт имеет длину 3108nt)
координаты 22547696..22559361 22,559,343..22,566,599
интронов от 2 до 5 (у гена всего 14 транскриптов) 2
экзонов всего 8, в разных транскриптах встречаются разные наборы 3
направление reverse forward

Задания по выбору.

Для поиска подходящих команд bedtools удобно использовать, например, "Summary of available tools" , где даны краткие описания команд. Чтобы узнать, какие опции нужны, использовался запуск команды с опцией -h.

1. Получите из файла c выравниванием файл с чтениями в формате fastq.

	 bedtools bamtofastq -i chr22.1_sorted_alignment.bam -fq chr22.1_task1.fastq 

Замечу, что файл с ридами получен из бинарного файла с выравниванием (.bam), а не из файла в формате .bed, с которым работала команда bedtools intersect. Если нужно получить файл в формате .fastq из файла .bed, нужно сначала преобразовать его в .bam, а потом в .bed. При этом команда bedtools bedtobam будет использовать файл с разметкой генома.

2. Получите файл с нуклеотидной последовательностью (.fasta) для одного из покрытых Вашими чтениями генов.

	bedtools getfasta -bed 1line.bed -fi ../pr11/chr22.fasta 

На вход подаются два файла: fasta-файл с последовательностью, часть которой нужно вырезать, (этот файл использовался в практикуме 11, поэтому используется ссылка на другую директорию) и файл с координатами, на которые выровнялся один из ридов. Этот файл может быть в формате BED/GFF/VCF. Я вручную создавала файл 1line.bed, в который вырезала одну строку из файла chr22.1_intersect.bed. Важно следить, чтобы в файле с координатами колонки были разделены табуляцией (а не несколькими пробелами), иначе команда не работает. Записываемой в файл последовательности дается имя ">chr22:22899965-22900000", то есть имя состоит из номера хромосомы и координат по хромосоме.

Если в файле формата .bed будет несколько строк, то в fasta-файл запишутся нескольк последовательностей.

4. Объедините Ваши чтения в кластеры (используйте bed файл с выровненными чтениями из Обязательной части задания).

	bedtools cluster -s -i chr22.1.bed > chr22.1_cluster_s.bed 

На вход принимается файл с картированными ридами, отсортированными по координате. Если риды не отсортированы, команда выдает ошибку и указывает, например, что координаты в 4й строке меньше координат в 3ей. У команды есть две опции. Опция -s указввает, что нужно кластеризовать риды с учетом того, на какой цепи они находятся (по умолчанию направление ридов не учитывается). Опция -d указывает на максимальное расстояния между концами ридов, которые нужно лкастеризовать. По умолчанию стоит 0, т.е. кластеризуются риды, пересекающиеся или идущие стык в стык.

На выходе создается файл chr22.1_cluster.bed, каждая строка соответствует одному риду, в полсеней колонке указан номер кластера, к которому был отнесен данный рид. Всего кластеров 25 штук, из них первые 12 относятся к прямой цепи, остальные к обратной. Самый большой кластер - двенадцатый, к нему относится 22952 строк-ридов, координаты ридов в кластере лежат в пределах 22890117..22901634, т.е. в эти рамки попадают координаты ридов, откартировавшиеся на PRAME, так и откартировавшиеся на LL22NC03-63E9.3. Меня немного смущает, что при этом PRAME лежит на обратной цепи (?).

Много кластеров, содержащих совсем мало ридов. Даже есть кластеры, состоящие из одного рида (кластеры 21, 23, 24, 25). Это риды, которые лежат относительно далеко от других ридов. Если в команду добавить опцию '-d 10', кластеров будет всего 19, при этом явно какие-то кластеры в начале слились, поэтому самый большой кластер теперь имеет номер 8, а не 12. Отсюда понятно, что кластеры находятся недалеко друг от друга. Можно задать опцию '-d -10', т.е. разрешить кластеризовать кластеры, которые пересекаются не менее, чем по 10 нуклеотидам, тогда кластеров станет, наоборот, больше (логично).

Вернуться на страницу семестра

Вернуться на главную


© potapenko 2017-2018