作者:马丁·摩根(mtmorgan@fredhutch.org
时间:2015年9月7日
车间大纲

本文件中的材料要求R3.2版及Bioconductor版本3.1

stopifnot(getRversion() >= '3.2' && getRversion() < '3.3', BiocInstaller::biocVersion() >= "3.1")

Bioconductor序列分析的“基础设施”

类、方法和包

本节重点介绍类、方法和包,目标是学习如何导航帮助系统和交互式发现工具。

动机

序列分析是专门的

额外的注意事项

解决方案:使用定义良好的表示复杂数据;方法操作类以执行有用的功能。类和方法放在一起并作为这样我们就可以从其他人的辛勤工作和测试代码中受益。

核心包

VariantAnnotation | v GenomicFeatures | v BSgenome | v rtracklayer | v GenomicAlignments | | v v summarizeexperimental Rsamtools ShortRead | | | | v v v v v v v v GenomicRanges Biostrings | | v v GenomeInfoDb (XVector) | | v v IRanges | v (S4Vectors)

核心类

案例研究:IRanges而且农庄

IRangesPackage定义了一个用于指定整数范围的重要类,例如:

- IRanges(start=c(10,20,30), width=5
长度3 ##开始结束宽度## [1]10 14 5 ## [2]20 24 5 ## [3]30 34 5

在范围上可以执行许多有趣的操作,例如,侧面()识别相邻范围

侧面(ir, 3)
长度3 ##开始结束宽度## [1]7 9 3 ## [2]17 19 3 ## [3]27 29 3

IRanges类是类层次结构的一部分。要看到这个,向R询问类红外类的类定义IRanges

类(红外)
# #[1]“IRanges”# # attr(“包”)# #[1]“IRanges”
getClass(类(ir))
##类“IRanges”[包“IRanges”]## ##槽位:## ##名称:起始宽度NAMES elementType elementMetadata ##类:整数整数characterORNULL字符DataTableORNULL ## ##名称:元数据##类:列表## ##扩展:##类“范围”,直接##类“IntegerList”,由类“范围”,距离2 ##类“RangesORmissing”,由类“范围”,距离2 ##类“AtomicList”,由类“范围”,距离3 ##类“列表”,由类“范围”,距离4 ##类“矢量”,由类“范围”,距离5 ##类“注解”,由类“范围”,距离6 ## ##已知子类:“NormalIRanges”

请注意,IRanges扩展了范围类。现在试着进入?旁边?”旁边,<选项卡> "如果不使用_RStudio,其中<选项卡>意思是按TAB键要求TAB补全)。你可以看到有帮助页面侧面操作几个不同的类。选择补全

?”旁边,Ranges-method”

并验证您所处的页面描述的方法与IRanges实例。探索其他基于范围的操作。

GenomicRangesPackage扩展了范围的概念,以包括与序列分析中范围应用相关的特性,特别是将范围与序列名(例如,染色体)和链相关联的能力。创建一个农庄实例,该实例基于IRanges实例,如下所示

库(GenomicRanges) gr < -农庄(c(“chr1”、“chr1”,“chr2”),红外光谱、链= c ("+", "-", "+")) gr
## seqnames ranges strand ##    ## [1] chr1 [10,14] + ## [2] chr1 [20,24] - ## [3] chr2 [30,34] + ## ------- ## seqinfo:来自未指定基因组的2个序列;没有seqlengths

侧翼序列的概念在生物学上有更微妙的含义。特别是我们可能期望侧翼序列在+链在值域之前,负链在值域之后。验证侧面适用于农庄对象具有此行为。

侧面(gr, 3)
## seqnames ranges strand ##    ## [1] chr1 [7,9] + ## [2] chr1 [25,27] - ## [3] chr2 [27,29] + ## ------- ## seqinfo:来自未指定基因组的2个序列;没有seqlengths

发现哪些类农庄扩展,找到记录的行为的帮助页侧面当应用于农庄对象,并验证帮助页是否记录了我们刚刚观察到的行为。

类(gr)
# #[1]“农庄”# # attr(“包”)# #[1]“GenomicRanges”
getClass(类(gr))
##类“GRanges”[包“GenomicRanges”]## ##插槽:## ##名称:seqnames ranges strand elementMetadata seqinfo ##类:Rle IRanges Rle DataFrame seqinfo ## ##名称:元数据##类:列表## ##扩展:直接# # # #“GenomicRanges”类,类“向量”,由“GenomicRanges”类,距离2 # #类“GenomicRangesORmissing”,由“GenomicRanges”类,距离2 # #类“GenomicRangesORGRangesList”,由“GenomicRanges”类,距离2 # #类“GenomicRangesORGenomicRangesList”,按类“GenomicRanges”,距离2 # #类“RangedDataORGenomicRanges”,按类“GenomicRanges”,距离2 # #类“注释”,由“GenomicRanges”类,距离3
?”旁边,GenomicRanges-method”

注意可用的侧面()方法中定义的方法进行了扩展GenomicRanges包中。

似乎有一些有用的方法可以用于基因组范围的研究;我们可以从命令行中发现其中一些,这表明这些方法应该是当前的search ()路径

方法(class = "农庄”)
= $ $<- %in% ## [5] < <= == > [9] >= BamViews GenomicFiles NROW ## [13] Ops ROWNAMES ScanBamParam ScanBcfParam ## [17] [[<- aggregate anyNA ## [21] appas .]字符为。complex as。data.frame ## [25] as。Env as.integer as。列表。逻辑## [29]as。数字。raw bamWhich<- blocks ## [33] browseGenome c chrom chrom<- ## [37] coerce coerce<- compare countOverlaps ## [41] coverage disjoin disjointBins distance ## [45] distanceToNearest duplestelementmetadata elementMetadata<- ## [49] end end<- eval export ## [53] extractROWS extractUpstreamSeqs findOverlaps侧边## [57]follow gaps getPromoterSeq granges ## [61] head high2low intersect isDisjoint ## [65] length liftOver mapCoords mapFromTranscripts ## [69] mapToTranscripts match mcols mcols<- ## #[73]元数据元数据<- mstack names ## [77] names<- narrow nearest order ## [81] overlapsAny pack parallelSlotNames parallelVectorNames ## [85] pgap pintersect pmapcods pmapFromTranscripts ## [89] pmapToTranscripts precede promoters psetdiff ## [93] punion range ranges ranges<- ## [97] rank reduce reduceByFile reduceByRange ## [101] relist relistToClass rename rep ## [105] rep.int replaceROWS resize restrict ## [109] rev rowRanges<- scanFa scanTabix ## [113] score score<- seqinfo seqinfo<-## [117] seqlevelsInUse seqnames seqnames<- setdiff ## [121] shift shiftApply show showAsCell ## [125] sort split split<- start ## [129] start<- strand strand<-子集## [133]subsetByOverlaps summarizeOverlaps表尾## [137]tapply tile trim union ## [141] unique update updateObject values ## [145] values<- width width<- window ## [149] window<- with xtfrm ## see '?方法来访问帮助和源代码

使用帮助()中列出帮助页GenomicRanges包,小插曲()查看和访问可用的小插图;这些也可以在Rstudio的“帮助”选项卡中找到。

帮助(包=“基因组范围”)小插图(包=“基因组范围”)小插图(包=“基因组范围”,“基因组范围”)

GenomicRanges

农庄而且GRangesList

另外:“TxDb”包提供了基因模型的R表示

txdb <- txdb . hsapiens . ucsc .hg19. knowngene . library(txdb . hsapiens . ucsc .hg19. knowngene

外显子()农庄

外显子(txdb)
## seqnames ranges strand | exon_id ##    |  ## [1] chr1 [11874, 12227] + | 1 ## [2] chr1 [12595,12721] + | 2 ## [3] chr1 [126136,12721] + | 3 ## [4] chr1 [12646,12697] + | 4 ## [5] chr1 [13221, 14409] + | 5 ## ... ... ... ... ... ...## [289965] chrY [27607404, 27607432] - | 277746 ## [289966] chrY [27635919, 27635954] - | 277747 ## [289967] chrY [59358329, 59359508] - | 277748 ## [289968] chrY [59360007, 59360115] - | 277749 ## [289969] chrY [59360501, 59360854] - | 277750 ## ------- # seqinfo: hg19基因组93个序列(1个循环)

Alt基因组范围

exonsBy ()GRangesList

exonsBy (txdb tx)
## seqnames ranges strand | exon_id exon_name exon_rank ##    |    ## [1] chr1 [11874,12227] + | 1  1 ## [2] chr1 [12613,12721] + | 3  2 ## [3] chr1 [13221, 14409] + | 5  3 ## ## $2 ## # GRanges对象有3个范围和3个元数据列:# # seqnames范围链| exon_id exon_name exon_rank # # [1] chr1(11874、12227)+ | 1 < NA > 1 # # [2] chr1(12595、12721)+ | 2 < NA > 2 # # [3] chr1(13403、14409)+ | 6 < NA > 3 # # # # # # 3美元农庄对象与范围和3元数据列:# # seqnames范围链| exon_id exon_name exon_rank # # [1] chr1(11874、12227)+ | 1 < NA > 1 # # [2] chr1(12646、12697)+ | 4 < NA > 2 # # [3] chr1(13221、14409)+ | 5 < NA > 3  ## ## ...## <82957更多元素> ## ------- ## seqinfo: 93个序列(1个循环)来自hg19基因组

Alt基因组序列列表

农庄/GRangesList非常有用

基因组范围代数

许多生物学上有趣的问题代表了范围上的运算

农庄代数

Alt范围代数

Biostrings(DNA或氨基酸序列)

方法- - - - - -

相关的包

例子

GenomicAlignments(对齐读取)

类——像基因组一样的行为

方法

例子

VariantAnnotation(称为变种)

类——类似基因组范围的行为

函数和方法

例子

相关的包

参考

rtracklayer(基因组注释)

SummarizedExperiment

Alt SummarizedExperiment

函数和方法

标准文件格式的输入和表示

BAM文件的对齐读取-GenomicAlignments

召回:整体工作流程

  1. 实验设计
  2. 湿实验室制备
  3. 高通量测序
  4. 对齐
  5. 总结
  6. 统计分析
  7. 理解

对齐读取的BAM文件

GenomicAlignments

其他格式和包

Alt文件和输入它们的Bioconductor包

〇大数据BiocParallelGenomicFiles

限制

迭代

迭代规划模型

平行的评价