?

Log in

No account? Create an account

Entries by category: экономика

Юзаем BEDTools
evfratov
Набор программ для всяческих манипуляций с выравниваниями ридов и аннотациями, используются общепринятые форматы выравниваний - SAM/BAM, форматы аннотаций - GFF/BED/VCF (и BEDPE - Paired-End BED, поддерживающий разъединённую аннотацию). Не забываем про референсный геном в FASTA. Фокус работы стоит на элементах аннотаций - features. Что такое features - это метка, описание чего-то на сиквенсе, адрес: хромосома, начало, конец, цепь и разные текстово-числовые атрибуты, составляющие содержание.
Координаты в BED нулевые, zero-based для начала и one-based для конца features, потому координаты "0\t1" это первый нуклеотид, следует помнить что GFF и VCF используют one-based координаты. Заголовки поддерживаются - инструменты игнорируют первую строку если она начинается с #, browser и track. Пакет поддедживает сжатые файлы. Некоторые инструменты поддеживают "расщеплённые" BAM выравнивания (с -N в CIGAR строке) и блочные BED аннотации (типа BED12), для этого нужен специальный флаг -split.

Компоненты программного пакета умеют:
intersectBed - возвращать пересекающиеся features из двух файлов BED/GFF/VCF/BAM.
windowBed - возвращать пересекающиеся features из двух файлов того-же набора с некоторым окном близости.
closestBed - возвращать ближайшие features для каждого элемента в BED/GFF/VCF.
coverageBed - строить суммарную глубину и ширину покрытия features в файле BED/GFF и BAM относительно других features.
genomeCoverageBed - строить гистограмму покрытия генома, применяется для анализа reads coverage.
pairToBed - возвращать пересечения элементов между BEDPE файлом и BED/GFF/VCF/BAM.
pairToPair - возвращать пересечения элементов между двумя BEDPE файлами.
bedToBam - преобразовывать BED/GFF/VCF в BAM.
bedToIgv - делать в пакетном режиме скриншоны из IGV ждя каждого интервала в файле BED/GFF/VCF.
bed12ToBed6 - конвертировать между BED12 форматом и BED6.
substractBed - удалять пересекающиеся интервалы features.
mergeBed - сливать пересекающиеся features в одни features.
fastaFromBed - извлекать наборы сиквенсов на основе файлов аннотаций BED/GFF.
maskFastaFromBed - скрывать блоки FASTA файла на основе файла BED/GFF.
shuffleBed - перемешивать положения features по геному.
slopBed - корректировать (?*) features по запрашиваемому числу пар оснований.
sortBed - сортировать BED/GFF файл.
linksBed - строить HTML линки из BED/GFF файла.
complementBed - возвращать интервалы, не покрытые features на основе файла аннотаций.
overlap - вычислять величины перекрывания (положительные величины) или расстояния (отрицательные величины) между features.
groupBy - группировать features.
unionBedGraph - сливать множество bedgraph файлов в один с учётом coverage и пр.
annotateBed - аннотировать пересечения одного файла аннотаций между многими другими.

Формат BED: минимальный 3-столбчатый формат, опционально расшиярем до 12ти. 1 колонка - хромосома или контиг, 2 - старт в 0-координатах, 3 - конец в 1-координатах. Первые три обязательные, составляют формат BED3, остальные опциональны. 4 - имя, 5 - score, 6 - цепь, 7 и 8 - начало и конец субсиквенса, 9 - RGB маркировка, 10 - число блоков, 11 - размер блока, 12 - список блоков. Дополнительные колонки игнирируются, но не отбрасыватются bedtools, могут быть вариаци и в формате записи и порядке колонок. Распространены форматы BED3, BED4, BED5, BED6 и BED12.
Формат BEDPE: минимальный 6-столбчатый формат, часто расширяем до 10 и далее. 1 колонка - первая хромосома (. если неизвестно), 2 - первый старт  в 0-координатах (-1 если неизвестно), 3 - первый конец в 1-координатах (-1 если неизвестно), 4 - вторая хромосома (. если неизвестно), 5 - второй старт, 6 - второй конец. 7 - опциональное имя, 8 - score, 9 и 10 - цепи на первой и второй хромосомах.

Общий синтаксис базируется на вводе двух файлов через параметры -a и -b, когда файл один, он вводится через -i. Помним что файл 2 загружается в память.

intersectBed берёт 2 файла -a и -b (могут быть метки -abam для формата bam первого файла), он выводит в формате bed. Можно задать ввод с потока ввода в пайплане через "файл" stdin. При использовании первого файла как BAM -abam вывод переключается на BAM формат, для переключения вывода обратно в bed надо добавить метку -bed. Есть опция вывода в несжатый BAM -ubam.  Вывод прост, но не слишком информативен: каждый элемент аннотации - какое-то пересечение features из первого файла (именуется по названию этого features из 1 файла), размечается начало и конец пересечения, каждое пересечение - новый объект, потому один features из файла 1 может дать много пересечений. Инструмен хорош для разметки снипов из 1 по генам в 2, выведутся только значимые снипы. Получение не пересекающихся с -b features из -a ставится флаг -v. Можно выводить целиковый элемент из 1 для каждого пересечения -wa, флаг -wb выводит присоединённым к пересечениям набором колонок оригинальные пересекаемые элементы из 2 (BEDPE или BED12). -wo выводит в дополнение к этому ещё величину пересечения, -wao вводит к этому, но без величины пересечения, и висящие (нули по 2 хромосоме) элементы. Вывод элементов файла 1, которые хоть как-то пересекаются, без доп. инфы -u, вывод числа попадений совпадений для каждой записи -c. Количественные параметры -f и -r, влияют на -wb, -wo, -wao, -u, -c, -v. -f минимальная величина пересечения, дефолт 1E-9 (1нт, видимо меряется в мегабазах), -r мера общности функций, доля минимального совпадения для ОБОИХ функций (50% 1 от 2 И 50% 2 от 1). -split включает расщеплённый BAM или BED12, кратно - подавляет совпадение с интронами из второго в первом файле. Многие параметры комбинируются, но это очень усложняет интерпретацию вывода.

bamToBed преобразует BAM файл в BED6/12/PE формат. -i файл.bam, или -i stdin остальное опционально. -bedpe или -bed12 выводит в указанных форматах. -ed использует расстояние редактирования в поле BED score вместо стандартного качества картирования, -tag использует указанный числовой тег из BAM файла, -color использует указанное значение цвета вместо полного красного, -split указательно расщеплённого BAM.

windowBed детектирует соседние элементы между двумя файлами как intersectBed, но круче. Ввод такой-же: -a и -b файлы, -abam если нужно (и -bed/-ubam). -w величина окна, -l и -r левое и правое окно отдельно, -sw задать правое и левое окна как определяемые цепью, -sm выводить только совпадении цепей в 1 и 2, -u выводить элементы 1 просто только если хоть что-то пересекается вообще. -c выводить число пересечений с учётом ограничений -f. Флаг -v работает также.

closestBed ищет ближайшие элементы между двумя файлами, поддерживает BED/GFF/VCF. -s отключение учёта цепей, -d задание дистанции, -t контроль вывода: all (дефолт) вывод всех, которые в окне, first первый элемент, встречающийся в 2, last - последний элемент, встречающийся в 2.

subtractBed вычитает пересекающиеся между двумя BED/GFF/VCF файлами области, возвращает только неперекрывающиеся их фрагменты. -f минимальная величина перекрывания, дефолт 1Е-9 (1нт) а очень высокие значения будут давать оригинальные элементы 1, -s отключение контроля цепей.
mergeBed сливает в 2 или 1 файлах пересекающиеся, по дефолту дистанция (-d) слияния 0, можно отключить различение цепей (-s), нет именования, но можно через ; выводить имена сливаемых (флаг -nms). -n выводить число актов слияния на новый элемент.

coverageBed составляет оценку покрытия элементов из файла аннотаций 2 по файлу1 , для 1 поддерживается BAM (-abam), есть поддержка -split. Выводятся элементы 2 с 4 доп. колонками: 1 - число пересёкших элемент элементов из 1, 2 - число пар оснований с ненулевым покрытием, 3 - длина элемента, 4 - доля пар оснований с ненулевым покрытием. -s включает учёт цепей (отключён по дефолту), -hist перводит режим вычислений в 1 - глубину покрытия, 2 - число покрытых оснований, 3 - длину элемента, 4 - долю покрытия и добавляет суммарную гистограмму по блокам в виде доп. элементов. Флаг -d включает вывод покрытия для каждой позиции в 2 в 1-координатах в виде пары столбцов - координата и покрытие.

genomeCoverageBed строит гистограмму покрытия генома элементами (функциями или ридами). Ввод -i BED -g genome.tab, BED должен быть сортирован по хромосомам (сортировка sort -k1,1 сойдёт), genome.tab файл с длинами хромосом. Поддерживается ввод BAM (-ibam) и -split. Стандартный вывод даёт набор строк с 1 - хромосома, 2- глубина покрытия, 3 - число оснований с таким покрытием в хромосоме, 4 - размер хромосомы, 5 - доля оснований в ней с такм покрытием + такой-же набор строк для всего генома в целом. Максимальное ограничение покрытия -max представляет величины покрытия более этого значения равными этому значению. Режим -d выдаёт трёхстолбчатый вывод с хромосомой, координатой и величиной покрытия.

fastaFromBed извлекает последовательности из генома по файлам аннотаций. Стандартный ввод -fi in.fa -bed file.bed -fo out.fa. -name использует имя из BED вместо стандартного имени Хромосома:начало-конец, -tab переводит fasta вывод в табулированный формат, -s включение учёта цепей.

maskFastaFromBed скрывает в fasta файле аннотирование последовательности. Стандартно -fi in.fa -bed file.bed -fo out.fa. -soft включение мягкого скрывания вместо дефолтного жёсткого.

shuffleBed генерит рандомный разброс элементов по геному. Стандартно -i BED/GFF/VCF -g genome.tab. Ставит на элементы случайные хромосомы и координаты, -chrom фиксирует хромосомы. Исключение регионов куда нельзя случайно класть элементы -excl BED/GFF/VCF, -seed контролирование псевдослучайного набора.
slopBed расширяет размер каждого элемента, ограничиваясь длиной хромосомы. На входе -i BED/GFF/VCF -g genome.tab -b N / -l N1 -r N2. Удлинение на b, -l и -r для разных концов, -s включает учёт ориентации для l/r.

sortBed сортирует BED/GFF/VCF файл по основным параметрам. -i file.bed, параметры сортировки: -sizeA возрастание размера элемента, -sizeD убывание размера, -chrThenSizeA сначала по хромосомам, потом по возрастанию размера, -chrThenSizeD сначала по хромосомам, потом по убыванию размера, -chrThenScoreA по хромосомам, потом по возрастанию score, -chrThenScoreD по хромосомам, потом по убыванию score. Заявлено что грамотная сортировка sort работает быстрее и экономнее.

linksBed создаёт HTML файл с линками на UCSC браузер (локальный или глобальный). -i file.bed > file.html. -base задаёт базу данных, дефолтная http://genome.ucsc.edu -org задаёт организм, дефолт человек. -db сборка генома, дефолт hg18.
complementBed выводит интервалы генома, не покрытие какими-либо элементами. -i file.bed -g genome.tab. Нет дополнительных параметров.

bedToBam конвертирует файл аннотаций BED/GFF/VCF в BAM. -i file.bed -g genome.tab > file.bam. Задать параметр качества картирования -mapq N заместо дефолтного 255, использовать несжатый BAM -ubam, -bed12 - ввод в блочном BED, вывод в расщеплённом BAM.

overlap вычисляет длину перекрывающегося фрагмента или расстояние между элементами в одной строке ввода, применяется для анализа данных от других программ BEDTools. -i file.bed/stdin -cols (номера колонок в файлах ввода). Номера - старт1,конец1,старт2,конец2.

bedToIgv пишет пакетный скрипт для IGV. -i file.bed > script.batch. Путь для изображений задаётся -path, дефолт ./ , -sess индикатор новой сессии, по дефолту нет (чтобы загрузить самим что надо и настроить как надо). -sort сортировка BAM в изображении, по дефолту ничего, можно по base, position, quality, sample, readGroup. -clps схлопнуть риды, по дефолту нет, -name использовать имя из имени (столбец 4) для каждого снимка, по дефолту местоположение. -slop величина фланков в изображении по краям features. -img формат изображения, дефолт png, можно eps и svg.

bed12ToBed6 преобразует файл блочный bed12 в bed6, расщепляя блоки на наборы отдельных элементов.

gropuBy - займусь потом.

unionBedGraph объединяет много bedgraph файлов в один файл для сравнения покрытия и других параметров. Стандартно -i file1.bg file2bg... > file.bg. -hedaer печатает заголовок хромосомы, старт, конец и имена файлов. -names задаваемые имена значащих столбцов заместо имён файлов на вводе, -empty выводить пустые области, требует -g genome.tab. -filter TEXT вывод пустых значений как текста, по дефолту 0, можно задать N/A, -/- или что угодно. -examples - показать подробное применение в примерах. Программа работает и с нечисловыми данными.

annotateBed вычисляет какой-либо параметр покрытия для элементов файла аннотаций по набору других файлов аннотаций. Ввод -i BED/GFF/VCF -files (список файлов). Добавить заголовок -names, выведутся и стандартные имена столбцов. -counts вычислять число попавших элементов каждого типа заместо дефолтной доли покрытия, -both выводить и долю, и число. -s включить различение цепей.