内容

本课程的材料要求R版本3.2和Bioconductor版本3.2

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

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

1.1类、方法和包

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

1.2动机

序列分析是专门的

额外的注意事项

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

2核心包

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)

3.核心类

3.1案例研究: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

发现哪些类农庄扩展,找到记录的行为的帮助页侧面当应用于农庄对象,

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

方法(class = "农庄”)
# #总anyNA [1]  <= < ## [ 5 ] == >= > != ## [ 9)追加。字符为。complex as。data.frame ## [13] as。env。因式为。integer为。列出##[17]为。逻辑。数字。[37] elementMetadata<- elementMetadata end<- end ## [41] eval expand export extractROWS ## [45] extractUpstreamSeqs findOverlaps side follow ## [49] gap [<- [$<- # [53] $ getPromoterSeq granges head ## [57] high2low %in% intersect isDisjoint ## [61] length length liftOver mapCoords ## [65]mapfromalments mapFromTranscripts mapToAlignments mapToTranscripts ## [69] match mcols<- mcols metadata<- # [73] metadata mstack names<- names ## [77] narrow nearest NROW Ops ## [81] order overlapsAny parallelSlotNames parallelVectorNames ## [85] pgap pintersect pmapcods pmapfromalments ## [89] pmapFromTranscripts pmapToAlignments pmapToTranscripts precede ## [93] promoters psetdiff punion range ## [101] ranges<- ranges rank reduce ## relistToClass relist rename rep.int ## [105]replaceROWS rep resize restrict ## [109] rev ROWNAMES rowRanges<- ScanBamParam ## [113] ScanBcfParam scanFa scanTabix score<- ## [117] score seqinfo<- seqinfo seqlevelsInUse ## [121] seqnames<- seqnames setdiff shiftApply ## [125] shift showAsCell show sort ## [129] split split<- start<- start ## [133] strand<- strand subsetByOverlaps子集## [137]summarizeOverlaps表尾tapply ## [141] tile trim union unique ## [145] update updateObject values<- values ## [149] width<- width window<-窗口##[153]与XTFRM ##见'?方法' for accessing help and source code

注意可用的侧面()方法中定义的方法进行了扩展GenomicRanges包,包括那些(通过继承)与农庄类。

grep("侧翼",方法(类="GRanges"),值=TRUE)
##[1] "侧翼,基因组范围-方法"

验证帮助页是否记录了我们刚刚观察到的行为。

?”旁边,GenomicRanges-method”

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

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

3.2GenomicRanges

3.2.1之上农庄而且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] chrUn_gl000241 [35706, 35859] - | 289965 ## [289966] chrUn_gl000241 [36711, 36875] - | 289966 ## [289967] chrUn_gl000243 [11501, 11530] + | 289967 ## [289968] chrUn_gl000243 [13608, 13637] + | 289968 ## [289969] chrUn_gl000247 [5787, 5816] - | 289969 ## ------- # 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非常有用

  • 代表注释-基因、变异、调控元件、拷贝数区域、…
  • 代表数据-对齐读取,ChIP峰值,称为变体,…

3.2.2基因组范围代数

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

  • 计数对齐reads和已知基因之间的重叠GenomicRanges: summarizeOverlaps ()
  • 最接近调控区域的基因GenomicRanges::最近的()[ChIPseeker] []
  • 称为与临床表型相关的变异VariantFiltering

农庄代数

  • Intra-range方法
    • 独立于同一对象中的其他范围
    • GRanges变体链感知
    • 转变()狭窄的()侧面()发起人()调整()限制()削减()
    • 看到" ? intra-range-methods
  • Inter-range方法
    • 取决于同一对象中的其他范围
    • range ()reduce ()空白()分离()
    • 覆盖()(!)
    • 看到" ? inter-range-methods
  • Between-range方法
    • 两个(或多个)范围对象的函数
    • findOverlaps ()countOverlaps ()、……% / %%在%% %外联盟()相交()setdiff ()punion ()pintersect ()psetdiff ()

Alt范围代数

3.3Biostrings(DNA或氨基酸序列)

方法- - - - - -

相关的包

例子

3.4GenomicAlignments(对齐读取)

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

方法

例子

3.5VariantAnnotation(称为变种)

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

函数和方法

例子

相关的包

参考

3.6rtracklayer(基因组注释)

3.7SummarizedExperiment

Alt SummarizedExperiment

函数和方法

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

4.1BAM文件的对齐读取-GenomicAlignments

召回:整体工作流程

  1. 实验设计
  2. 湿实验室制备
  3. 高通量测序
  4. 对齐
    • 全基因组vs.转录组
  5. 总结
  6. 统计分析
  7. 理解

对齐读取的BAM文件

GenomicAlignments

4.2其他格式和包

Alt文件和输入它们的Bioconductor包

5资源

确认

5.1sessionInfo ()

sessionInfo ()
## R版本3.2.2(2015-08-14)##平台:x86_64-pc-linux-gnu(64位)##运行在Debian GNU/Linux stretch/sid ## ##语言环境:## [1]LC_CTYPE=en_US。UTF-8 LC_NUMERIC=C LC_TIME=en_US。UTF-8 ## [4] LC_COLLATE=en_US。utf - 8 LC_MONETARY = en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME=C LC_ADDRESS= c# # [10] lc_phone =C LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:## [1]stats4并行统计图形grDevices utils数据集方法基础## ##其他附加包:# # # # [1] VariantAnnotation_1.15.34 RNAseqData.HNRNPC.bam.chr14_0.7.0 [3] GenomicAlignments_1.5.18 Rsamtools_1.21.21 # # [5] ALL_1.11.0 org.Hs.eg.db_3.2.3 # # [7] RSQLite_1.0.0 DBI_0.3.1 # # [9] ggplot2_1.0.1 airway_0.103.1 # # [11] limma_3.25.18 DESeq2_1.9.51 # # [13] RcppArmadillo_0.6.100.0.0 Rcpp_0.12.1 # # [15] BSgenome.Hsapiens.UCSC.hg19_1.4.0 BSgenome_1.37.6 # # [17] rtracklayer_1.29.28 TxDb.Hsapiens.UCSC.hg19.knownGene_3.2.2 # # [19] GenomicFeatures_1.21.33 AnnotationDbi_1.31.19 # # [21][23] genome icranges_1 .21.32 GenomeInfoDb_1.5.16 ## [25] microbenchmark_1.4-2 Biostrings_2.37.8 ## [27] XVector_0.9.4 IRanges_2.3.26 ## [29] S4Vectors_0.7.23 BiocGenerics_0.15.11 ## [31] BiocStyle_1.7.9 ## ##通过命名空间加载(并且没有附加):[1] splines_3.2.2 Formula_1.2-1 latticeExtra_0.6-26 yaml_2.1.13 ## [5] lattice_0.20-33 digest_0.6.8 RColorBrewer_1.1-2 colorspace_1.2-6 ## [9] sandwich_2.3-4 htmltools_0.2.6 plyr_1.8.3 XML_3.98-1.3 ## [13] biomaRt_2.25.3 genefilter_1.51.1 zlibbioc_1.15.0 xtable_1.7-4 ## [17] mvtnorm_1.0-3 scales_0.3.0 BiocParallel_1.3.54 annotate_1.47.4 ## [21] TH.data_1.0-6 nnet_7.3-11 proto_0.3-10 survival_2.38-3 ## [29] magrittr_1. 1.5 evaluate_0.8 MASS_7.3-44 foreign_0.8-66 ## [29] BiocInstaller_1.19.14tools_3.2.2 formatR_1.2.1 multcomp_1. 1-1 ## [33] stringplotter_1 .0.0 munsell_0.4.2 locfit_1. 1- 9.1 cluster_2.0.3 ## [37] lambda.r_1.1.7 futile.logger_1.4.1 grid_3.2.2 RCurl_1.95-4.7 ## [41] labeling_0.3 bitops_1.0-6 rmarkdown_0.8.1 gtable_0.1.2 ## [45] codetools_0.2-14 reshape2_1.4.1 gridExtra_2.0.0 zoo_1. 12 ## [49] knitr_1.11 Hmisc_3.17-0 futile.options_1.0.0 stringi_0.5-5 ## [53] geneplotter_1.47.0 rpart_1 .1-10 acepack_1. 3.3