内容

1概述

在这个小插图中,我们提供了一个简短的概述ChIPexoQual包中。该包提供了一个统计质量控制(QC)管道,使ChIP-exo/nexus实验的探索和分析成为可能。在这个小插图中,我们使用了对齐的读取chr1在小鼠肝脏ChIP-exo实验中(Serandour et al. 2013)来说明管道的使用。加载我们使用的包:

库(ChIPexoQual)库(ChIPexoQualExample)

ChIPexoQual从ChIP-exo(或ChIP-nexus)实验中获取一组对齐的读取作为输入,并执行以下步骤:

  1. 从读覆盖范围中识别读孤岛,即被间隙隔开的重叠读集群。
  2. 计算\ (d1 \),岛中读取数我\ \ (),\ (U_i \),岛数我\ \ ()至少有一个对齐读取的位置,\(i=1, \cdots, i \)
    • 对于每个岛屿我\ \ ()\(i=1, \cdots, i \)计算岛屿统计数据:\[开始\{对齐*}\ mbox{弧}_i & = \压裂{D_i} {W_i} \四\ mbox {URC} _i = \压裂{U_i} {D_i} \ \ % \ mbox {URC} _i & = \压裂{U_i} {D_i} \ \ \ mbox {FSR} _i & = \压裂{(\文本{转发链读取次数调整岛我美元})}{D_i},{对齐*}\结束\]
    在哪里\ (W_i \)表示岛的宽度我\ \ (),.
  3. 生成诊断图(i) URC与ARC图;(ii)区域组成图;(iii) FSR分布图。
  4. 随机样本\ \(米)(至少1000个)岛屿,\[开始\{对齐*}D_i = \ beta_1 U_i + \ beta_2 W_i + \ varepsilon_i \{对齐*}结束\]在哪里\ \ varepsilon_i \ ()表示独立误差项。重复这个过程\ (B \)并生成估计时间的箱形图\ \ beta_1 \ ()而且\ \ beta_2 \ ()

我们分析了一个更大的ChIP-exo/nexus实验集合(Welch et al. 2016)包括此示例的完整版本。

2创建一个ExoData对象

使用的最小输入ChIPexoQual是ChIP-exo/nexus实验的对齐读数。ChIPexoQual类中的读操作GAlignments对象:

Files = list.files(system。file("extdata", package = "ChIPexoQualExample"),full.names = TRUE)
## [1] "ChIPexo_carroll_FoxA1_mouse_rep1_chr1.bam"
ex1 = ExoData(file = files[1],mc. ex1 = ExoData(file = files[1],mc. ex1)内核= 2L,verbose = FALSE) ex1
与655785年# # ExoData对象范围和11元数据列:# # seqnames范围链| fwdReads revReads # # < Rle > < IRanges > < Rle > | <整数> <整数> # # [1]chr1 3000941 - 3000941 * | 2 0 # # [2] chr1 3001457 - 3001457 * | 0 1 # # [3] chr1 3001583 - 3001583 * | 0 2 # # [4] chr1 3001647 - 3001647 * | 1 0 # # [5] chr1 3001852 - 3001852 * | 1 0  ## ... ... ... ... . ... ...# # [655781] chr1 197192012 - 197192012 * | 0 1 # # [655782] chr1 197192421 - 197192421 * | 0 1 # # [655783] chr1 197193059 - 197193059 * | 1 0 # # [655784] chr1 197193694 - 197193694 * | 0 3 # # [655785] chr1 197194986 - 197194986 * | 0 2 # # fwdPos revPos深度uniquePos弧# # <整数> <整数> <整数> <整数> <数字> # # [1]1 0 2 1 0.0555555555555556 # # 0.0277777777777778 [2]0 1 1 1 0 1 2 1 # # [3]0.0555555555555556 # # # # 0.0277777777777778 [4]1 0 1 1 [5]1 0 1 1 0.0277777777777778  ## ... ... ...... ... ...# # 0.0277777777777778 [655781] 0 1 1 1 0 1 1 1 # # [655782] 0.0277777777777778 # # 0.0277777777777778 [655783] 1 0 1 1 0 1 3 1 # # [655784] 0.0833333333333333 # # [655785] 0 1 2 1 0.0555555555555556 # # URC FSR米# # <数字> <数字> <数字> <数字> # #[1]0.5 - 1负无穷到正无穷# #[2]1 0负负无穷到# #[3]0.5 0负负无穷到# #[4]1 1负无穷到正无穷# #[5]1 1负无穷到正无穷  ## ... ... ... ... ...## [655781] 1 0 -Inf -Inf ## [655782] 1 0 -Inf -Inf ## [655783] 1 1 -Inf Inf ## [655784] 0.3333333333333 0 -Inf -Inf ## [655785] 0.5 0 -Inf -Inf ## ------- ## seqinfo: 1个来自未指定基因组的序列;没有seqlengths
read = readGAlignments(files[1],param = NULL) ex2 = ExoData(reads = reads,mc。内核= 2L,verbose = FALSE)相同的(GRanges(ex1),GRanges(ex2))
##[1]真

对于小插图的其余部分,我们生成一个ExoData对象:

files = files[grep("bai",files,invert = TRUE)] ##忽略索引文件exampleExoData = lapply(files,ExoData,mc. exe)内核= 2L,verbose = FALSE)

最后,我们可以恢复组成ExoData对象,使用nreads功能:

酸式焦磷酸钠(exampleExoData nreads)
## [1] 1654985 1766665 1670117

2.1丰富分析和库复杂性:

要创建ARC vs URC图提出了(Welch et al. 2016),我们使用ARC_URC_plot函数。这个函数可以直观地比较不同的样本:

ARCvURCplot (exampleExoData名字。input = paste("Rep",1:3,sep = "-"))

对于任何给定的样本,该图通常显示以下三种模式之一。在所有三个面板中,我们可以观察到两条手臂:第一个是低的平均读系数(ARC)和不同的唯一读系数;第二点是URC随着增加。随着ARC的增加,第1次和第3次重复的URC呈现明显的下降趋势。这表明这些样品比第二个重复样品具有更高的ChIP富集。另一方面,前两个复制的总体URC水平高于第三个复制,说明前两个复制的库比第三个复制的库更复杂。

2.2链不平衡

要创建FSR分布而且地区组成Welch et. al 2016(已提交)中建议的图,我们使用FSR_dist_plot而且region_comp_plot,分别。

p1 = regionCompplot(exampleExoData,names. p1)input = paste("Rep",1:3, sep = "-"),depth。p2 = FSRDistplot(exampleExoData,names. value = seq_len(50)) p2 = FSRDistplot(exampleExoData,names. value)输入=粘贴(“代表”,1:3,9 =“-”),分位数= c(二十五分,5,综合成绩),深度。values = seq_len(100))排列(p1,p2,nrow = 1)

左侧面板显示区域组成图右边的面板显示正向链比(FSR)分布图,两者都突出了重复2和重复3的特定问题。的区域组成图在一条排他链中由碎片形成的区域的比例上表现出明显的减少趋势。高质量的实验往往表现出单链区域比例的指数衰减,而对于低质量的实验,这种趋势可能是线性甚至恒定的。重复2和重复3的FSR分布更分散在各自的中位数附近。FSR分布在中位数附近变得更加集中的速率表明了上述第二次复制的低富集和第三次复制的低复杂性。第二个复制的不对称行为是低富集的特征,而复制3的常量值对于低的最小读数表明该复制具有由排列在极少数独特位置的读组成的岛。

2.2.1ChIP-exo数据的进一步探索

所有的绘图功能ChIPexoQual允许一个列表或几个单独的ExoData对象。这允许探索每个复制的岛屿子集。例如,为了表明第一个臂是由排列到少数位置的读取形成的区域组成的,我们可以生成下面的图:

ARCvURCplot(exampleExoData[[1]],子集(exampleExoData[[1]],uniquePos > 10),子集(exampleExoData[[1]],uniquePos > 20), names。input = c("All", "uniquePos > 10", "uniquePos > 20"))

对于这个数字,我们使用ARC vs URC图中显示了几个区域如何低配值由对齐到少数唯一位置的读取组成。这种技术强调了一种可以用于进一步探索数据的策略,就像使用前面列出的所有绘图函数一样,我们可以比较分区中岛屿的不同子集。

2.3质量评价

质量控制管道的最后一步是评估线性模型:

\[开始\{对齐*}D_i = \ beta_1 U_i + \ beta_2 U_2 + \ epsilon_i \{对齐*}结束\]

通过抽样建立模型参数的分布nregions区域(默认值为1000),拟合模型并重复此过程ntimes(默认值为100)。我们用箱形图来可视化参数的分布:

p1 = paramDistBoxplot(exampleExoData,其中。Param = "beta1",名称。input = paste("Rep",1:3,sep = "-")) p2 = paramDistBoxplot(exampleExoData,其中。Param = "beta2",名称。输入=粘贴(“代表”,1:3,9 =“-”))gridExtra::网格。排列(p1,p2,nrow = 1)

该分析的进一步细节见Welch et. al 2016(已提交)。简而言之,当ChIP-exo/nexus样品没有深度测序时,高的值{\ \(\帽子β}_1 \)表示库复杂度较低。相比之下,较低的值对应于较高质量的ChIP-exo实验。我们的结论是,样品与估计\(\hat{\beta_1} \leq 10\)看起来是高质量的样品。同样,样本与估计\(\hat{\beta_2} \约0\)可以认为是优质样品。方法可以访问这些参数的估计值beta1beta2,param_dist方法。例如,使用中位数为了总结这些参数分布,我们得出结论,这三个重复(在chr1)均为优质样本:

酸式焦磷酸钠(exampleExoData函数(x)中位数(beta1 (x)))
## [1] 1.890825 1.514885 8.093557
酸式焦磷酸钠(exampleExoData函数(x)中位数(beta2 (x)))
## [1] 0.015800891 0.009721249 0.047006588

2.4子抽样从实验中读取以评估质量

第三个FoxA1复制的行为可能表明样本中存在问题。然而,在深度测序实验中观察到这种模式也是很常见的。为了方便起见,我们添加了这个函数ExoDataSubsampling,在实验深度测序时执行Welch et. al 2016(提交)建议的分析。要使用这个函数,我们执行如下步骤:

sample.depth = seq(1e5,2e5,5e4) exoList = ExoDataSubsampling(file = files[3],sample.depth = sample.depth, verbose=FALSE)

的输出ExoDataSubsampling是一个列表ExoData对象,因此它的输出可以与任何绘图函数一起使用,以评估样本的质量。例如,使用我们可以使用paramDistBoxplot得到以下数据:

p1 = paramDistBoxplot(exoList,其中。param = "beta1") p2 = paramDistBoxplot(exoList,其中。param = "beta2") gridExtra::grid。排列(p1,p2,nrow = 1)

显然,两个图中都有增加的趋势,由于我们只使用1号染色体的读取,我们观察到的读取量比典型的ChIP-exo/nexus实验中要少。在高质量的实验中,它预计会显示更低{\ \(\帽子β}_1 \)而且{\ \(\帽子β}_2 \)的水平。此外,估计的速率{\ \(\帽子β}_2 \)参数的增加在低质量的实验中会更高。

3.结论

我们对ChIP-exo实验进行了系统的探索,并展示了如何使用中提供的QC管道ChIPexoQual.ChIPexoQual将对齐的读取作为输入,并自动生成几个诊断图和汇总度量,以评估丰富度和库的复杂性。诊断图和总结测量的含义很好地与更详细的分析相一致,这些分析在计算上执行起来更昂贵,并且/或需要通常无法获得的额外估算。

4SessionInfo

sessionInfo(“ChIPexoQual”)
## R版本3.6.1(2019-07-05)##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 18.04.3 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.10-bioc/R/lib/libRblas。所以## LAPACK: /home/biocbuild/bbs-3.10-bioc/R/lib/libRlapack。所以## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=en_US。UTF-8 LC_COLLATE= c# # [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME= c# # [9] LC_ADDRESS=C lc_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基本包:##字符(0)## ##其他附加包:## [1]ChIPexoQual_1.10.0 ## ##通过命名空间加载(且未附加):# # [1] nlme_3.1 - 141 utils_3.6.1 # # [3] ProtGenerics_1.18.0 bitops_1.0-6 # # [5] matrixStats_0.55.0 bit64_0.9-7 # # [7] RColorBrewer_1.1-2 progress_1.2.2 # # [9] httr_1.4.1 GenomeInfoDb_1.22.0 # # [11] tools_3.6.1 backports_1.1.5 # # [13] R6_2.4.0 rpart_4.1-15 # # [15] Hmisc_4.2-0 DBI_1.0.0 # # [17] lazyeval_0.2.2 BiocGenerics_0.32.0 # # [19] colorspace_1.4-1 nnet_7.3-12 # # [21] tidyselect_0.2.5 gridExtra_2.3 # # [23] prettyunits_1.0.2 curl_4.2 # # [25] bit_1.1-14 compiler_3.6.1 # # [27] Biobase_2.46.0htmlTable_1.13.2 # # [29] datasets_3.6.1 DelayedArray_0.12.0 # # [31] labeling_0.3 rtracklayer_1.46.0 # # [33] bookdown_0.14 base_3.6.1 # # [35] scales_1.0.0 checkmate_1.9.4 # # [37] hexbin_1.27.3 askpass_1.1 # # [39] rappdirs_0.3.1 stringr_1.4.0 # # [41] digest_0.6.22 Rsamtools_2.2.0 # # [43] foreign_0.8 - 72 rmarkdown_1.16 # # [45] XVector_0.26.0 base64enc_0.1-3 # # [47] dichromat_2.0-0 pkgconfig_2.0.3 # # [49] htmltools_0.4.0 ensembldb_2.10.0 # # [51] BSgenome_1.54.0 dbplyr_1.4.2 # # [53] grDevices_3.6.1htmlwidgets_1.5.1 ## [55] rlang_0.4.1 rstudioapi_0.10 ## [57] RSQLite_2.1.2 chipexoqualexample_1 .20.0 ## [61] acepack_1.4.1 dplyr_0.8.3 ## [63] VariantAnnotation_1.32.0 RCurl_1.95-4.12 ## [65] magrittr_1. 1.5 GenomeInfoDbData_1.2.2 ## [67] Formula_1.2-3 Matrix_1.2-17 ## [69] Rcpp_1.0.2 munsell_0.5.0 ## [71] S4Vectors_0.24.0 viridis_0.5.1 ## [73] lifecycle_0.1.0 stringi_1.4.3 ## [75] yaml_2.2.0 SummarizedExperiment_1.16.0 ## [77] zlibbioc_1.32.0 plyr_1.8.4## [79] BiocFileCache_1.10.0 grid_3.6.1 ## [83] blob_1.2.0 parallel_3.6.1 ## [85] lattice_0.20-38 Biostrings_2.54.0 ## [87] splines_3.6.1 genome features_1 .38.0 ## [89] hms_0.5.1 zeallot_0.1.0 ## [91] knitr_1.25 pillar_1.4.2 ## [93] GenomicRanges_1.38.0 reshape2_1.4.3 ## [95] biomaRt_2.42.0 stats4_3.6.1 ## [97] XML_3.98-1.20 glue_1.3.1 ## [101] latticeExtra_0.6-28 data.table_1.12.6 ## [103] BiocManager_1.30.9 vctrs_0.2.0 ## [105] graphics_3.6.1 tidyr_1.0.0 ## [107] gtable_0.3.0 openssl_1.4.1 ## [109] purrr_0.3.3 assertthat_0.2.1 ## [111] ggplot2_3.2.1 xfun_0.10 ## [113] broom_0.5.2 AnnotationFilter_1.10.0 ## [115] viridisLite_0.3.0 survival_2.44-1.1 ## [117] tibble_2.1.3 GenomicAlignments_1.22.0 ## [119] stats_3.6.1 AnnotationDbi_1.48.0 ## [121] memoise_1.1.0 IRanges_2.20.0 ## [123] cluster_2.1.0 BiocStyle_2.14.0

参考文献

瑟兰杜尔,奥勒连,布朗·戈登,约书亚·科恩和杰森·卡罗尔,2013。“基于illumina芯片外切酶方法的开发为FoxA1-DNA结合特性提供了深入了解。”基因组生物学

韦尔奇、雷内、钟东俊、杰弗里·格拉斯、罗伯特·兰迪克和Sündüz kele。2016.ChIP-Exo/Nexus实验的数据探索、质量控制和统计分析提交