Анализ данных High Throughput Sequencing в R-Bioconductor

Jul 17, 2013 02:37

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

Bioconductor - ресурс частично согласованных библиотек для анализа и манипуляций (в хорошем смысле) с биоинформатичекими данными в статистическом языке R.

Для обработки данных HST, чаще для удобства именуемого Next Generation Sequencing (NGS) используется серия "базовых" библиотек и наборы дополнительных библиотек под конкретные задачи (эти библиотеки, как правило, зависимы от "базовых" библиотек). Какие это библиотеки и что они из себя представляют?

Не буду останавливаться на BiocGenerics, включаемый автоматически.

Для ввода/вывода, хранения и базовых операций с объектами типа Run-Length Encoding (диапазоны, интервалы, блоки на прямой) используется модуль IRanges, которым можно создавать RLE векторы и выполнять операции логического типа. На базе объектов типа RLE построена работа с геномными аннотациями, которая ведётся за счёт модуля GenomicRanges, который использует составные из серий RLE объекты GRanges (пример: UTR'ы и экзоны транскрипта) и составные из серий GRanges объектов объекты GRangesList (пример: альтернативные формы транскрипта) в качестве способов хранения и работы элементов аннотации. Также пакет имеет интерфейс импорта файлов выравниваний (нарпример, BAM) с поддержкой блочных выравниваний со хранением в объектах специального типа GappedAlignment. На этих пакетах базируется система базы данных геномных аннотаций GenomicFeatures, зависимая от интерфейса AnnotationDbi. Объекты в базе хранятся как GRanges и GRangesList, сделаны минимальные функции обращения к базам. Главной частью модуля является обеспечение собственно базами аннотаций (транскрипты, снипы и т.д.) для основных рабочих организвом (также возможна и самостоятельная сборка баз) на основе данных UCSC, поставлямых как отдельные пакеты, например TxDb.Hsapiens.UCSC.hg19.knownGene, FDb.InfiniumMethylation.hg19 и FDb.UCSC.snp135common.hg19. Для импорта/экспорта (веб тоже) треков геномных браузеров используется модуль rtracklayer, хранящий данные как GRanges и RangedData.

Для ввода/вывода, хранения и работы с собственно последовательностями геномов и прочего применяется модуль Biostrings с импортом файлов последовательностей (FASTA и FASTQ - позволяет читать и риды), хранящий сиквенсы в виде объектов XString и XStringSet и большим количеством операций с преобразованиями, поиском и выравниваниями (от поиска по паттерам до PWM и от парного выравнивания до вртуальных ампликонов). В качестве расширения реализован модуль BSgenome, но принципиально новых мощных элементов он не несёт в себе.

Для работы с данными short read sequencing используется модуль ShortRead, способый читать исходные (хранение в классе ShortRead, базирующемся на DNAStringSet) и выравненные риды (хранение в классе AlignedRead). С первыми могут выполнятся операции в роде анализа и фильтрации по качеству и доступные для DNAString, со вторыми возможно проводить анализ покрытия, окружения и визуализацию (в основном за счёт инструментария других пакетов).

Для работы с данным на уровне картированных ридов используется модуль Rsamtools, базирующися на Samtools, т.е. являющйся интерфейсом к Samtools для R. Реализована часть операций Samtools, в т.ч. и с VCF, сделана мощная система импорта данных (большие BAM, фрагменты, загрузка по сети). Объекты хранятся в общем как GappedAlignments и GRanges.

Для визуализации относительно стандартными являются пакеты ggbio и Gviz для отображения общих геномных данных (features и coverage для картинок в статьи) и данных rtracklayer

Для анализа данных транскриптомного RNA-Seq используются пакеты для дифференциальной экспрессии DESeq, DEXSeq и edgeR, стат-анализ, нормировку и специализированное графопостроение для покрытия генов ридами; для работы с cullfinks сделан cummeRbund; для связывания с GO реализованы пакеты gage и goseq. Остальные пакеты минорны либо по применимости, либо по специфике.

На пакетах для Chip-Seq, motif discovery CLIP-Seq, BS-Seq, 3/5C и т.п. экзотических методах останавливаться не буду. Следующим более подробно разберу именно визуализацию.

r, bioinformatics, наука

Previous post Next post
Up