短DNA序列基序为解释DNA中的指令提供了关键信息,例如通过为蛋白质提供结合位点或改变双螺旋结构。DNA序列基序的一个较少研究但重要的特征是它们的周期性。一个著名的例子是许多k-mers在核小体定位中的10-bp周期性(在Travers et al. 2010或Struhl and Segal 2013中进行了综述)。
periodicDNA提供了一个框架来量化DNA序列中感兴趣的k-mers的周期性。对于一个选定的k-mer,周期性dna可以通过使用随机洗牌方法来计算经验p值来识别在一组序列中统计丰富的周期。它还可以在基因组位点上生成k-mer周期性强度的连续线性轨迹。
为了估计给定k-mer在一个或几个序列中的周期性强度,周期性dna执行以下步骤:
周期性dna的主要目标是量化给定k-mer在一组序列中的周期性。例如,我们可以利用无所不在启动子tss周围的序列来评估TT二核苷酸的周期性getPeriodicity ()
.
在下面的例子中,getPeriodicity ()
直接使用GRanges对象运行,指定GRanges来自哪个基因组。
图书馆(ggplot2)图书馆(magrittr)图书馆(periodicDNA)#数据(ce11_TSSs)periodicity_result < -getPeriodicity(ce11_TSSs [[“Ubiq”。]] [1:500],基因组=“BSgenome.Celegans.UCSC.ce11”,主题=的TT,BPPARAM =setUpBPPARAM(1))#> -映射k-mers。#> - 523903测量的成对距离。计算成对的距离分布。#> -规范化图表向量。#> -应用快速傅里叶变换到归一化的图表。
主要输出getPeriodicity ()
是一个与离散频率相关的功率谱密度(PSD)值的表,使用快速傅里叶变换计算。对于给定的频率,高PSD分数表示感兴趣的k-mer的高周期性。
在前面的例子中,TT二核苷酸在无所不在启动子tss周围的序列是高度周期性的,周期性为10 bp。
头(periodicity_result$PSD)#>频率周期PSD#> 1 0.005 200.00000 6.256976e-08#> 2 0.010 100.00000 2.204282e-08#> 3 0.015 66.66667 2.215522e-09#> 4 0.020 50.00000 1.108237e-08#> 5 0.025 40.00000 4.649689e-09#> 6 0.030 33.33333 2.661198e-08子集(periodicity_result$periodicityMetrics,期= =10)#>频率周期PSD#> 20 0.1 10 3.633071e-06
图表输出getPeriodicity ()
可以通过plotPeriodicityResults ()
功能:
第一个图显示了在提供的grange序列中“TT”对之间距离的原始分布。第二个图显示的是衰减归一化分布。最后,第三个图显示了“TT”k-mer的PSD分数,由归一化分布测量。
周期性dna提供了一种方法来比较一组序列中给定k-mer的周期性与背景比较。对于一组输入序列中给定的k-mer在周期T时,通过迭代洗牌输入序列并估计得到的PSD值来估计其PSD对背景的折叠变化。
最终,计算观测到的PSD值与洗牌后测量到的PSD值的中值之间的log2 fold-change (l2FC)如下所示:
l2FC = log2(观察到的PSD /中位数(打乱的PSD))。
periodicity_result < -getPeriodicity(ce11_TSSs [[“Ubiq”。]] [1:500],基因组=“BSgenome.Celegans.UCSC.ce11”,主题=的TT,n_shuffling =5)#> -计算观测的PSD#> -映射k-mers。#> - 523903测量的成对距离。计算成对的距离分布。#> -规范化图表向量。#> -应用快速傅里叶变换到归一化的图表。#> -洗牌1/5#> -洗牌2/5#> -洗牌3/5#> -洗牌4/5#> -洗牌5/5#>只有5次洗牌。不能计算准确的经验p值。要计算经验p值,将n_shuffle设置为至少100。只返回l2FC值头(periodicity_result$periodicityMetrics)#>频率周期PSD_observed l2FC pval fdr . ##> 1 0.005 200.00000 6.26e-08 -1.4145210 NA NA#> 2 0.010 100.00000 2.20e-08 -0.7012219 NA NA#> 3 0.015 66.66667 2.22e-09 -2.4585150 NA NA#> 4 0.020 50.00000 1.11e-08 2.1919949 NA NA#> 5 0.025 40.00000 4.65e-09 -0.8075945 NA NA#> 6 0.030 33.33333 2.66e-08 0.9496752 NA NA子集(periodicity_result$periodicityMetrics,期= =10)#>频率周期PSD_observed l2FC pval fdr . ##> 20 0.1 10 3.63e-06 9.746344 NA NAplotPeriodicityResults(periodicity_result)
如果>= 100
,还计算了相关的经验p值(North et al 2002)。该指标表明,对于每个单独的周期T,观察到的PSD是否显著大于洗牌输入序列后测量到的PSD值。请注意,经验p值只是对真实p值的估计。值得注意的是,小的p值被系统性地低估了(North et al 2002)。
getPeriodicity ()
也可以直接运行一组感兴趣的序列,如下所示:
周期性dna的另一个目的是在感兴趣的基因组位点上生成k-mer周期性强度的连续线性轨迹。getPeriodicityTrack ()
可以用来生成吸吮基因组轨迹。在下面的例子中,
WW_10bp_track < -getPeriodicityTrack(基因组=“BSgenome.Celegans.UCSC.ce11”,农庄=ce11_proms,主题=“WW”,时间=10,BPPARAM =setUpBPPARAM(1),bw_file =“WW-10-bp-periodicity_over-proms.bw”)
当在泛在、种系或体细胞tss上绘制时,所得到的轨迹清楚地显示出WW比泛在和种系tss增加10个bp的周期性,而体细胞tss没有显示这种增加。
sessionInfo()#> R版本4.1.0 (2021-05-18)#>平台:x86_64-pc-linux-gnu(64位)运行在Ubuntu 20.04.2 LTS下# >矩阵产品:默认值#> BLAS: /home/biocbuild/bbs-3.13-bioc/R/lib/libRblas.so#> LAPACK: /home/biocbuild/bbs-3.13-bioc/R/lib/libRlapack.so# ># >语言环境:#> [1] LC_CTYPE=en_US。utf - 8 LC_NUMERIC = C#> [3] LC_TIME=en_GB 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# >#>附加基础包:#> [1] parallel stats4 stats graphics grDevices utils数据集#>[8]方法基础# >#>其他附加包:#> [1] BSgenome.Celegans.UCSC.ce11_1.4.2 periodicDNA_1.2.0#> [3] BiocParallel_1.26.0 BSgenome_1.60.0#> [5] rtracklayer_1.2.0 Biostrings_2.60.0#> [7] XVector_0.32.0 magrittr_2.0.1#> [9] ggplot2_3.3.3基因组范围_1.44.0#> [11] GenomeInfoDb_1.28.0 IRanges_2.26.0#> [13] S4Vectors_0.30.0 BiocGenerics_0.38.0# >#>通过命名空间加载(并且没有附加):#> [1] lattice_0.20-44 Rsamtools_2.8.0#> [3] zoo_1.8-9 assertthat_0.2.1#> [5] digest_0.6.27 utf8_1.2.1#> [7] R6_2.5.0 evaluate_0.14#> [9] highr_0.9 pillar_1.6.1#> [11] zlibbioc_1.38.0 rlang_0.4.11#> [13] jquerylib_0.1.4 Matrix_1.3-3#> [15] rmarkdown_2.8 labeling_0.4.2#> [17] string_1 .4.0 RCurl_1.98-1.3#> [19] munsell_0.5.0 DelayedArray_0.18.0#> [21] compiler_4.1.0 xfun_0.23#> [23] pkgconfig_2.0.3 htmltools_0.5.1.1#> [25] tidyselect_1.1.1摘要实验_1.22.0#> [27] tibble_3.1.2 GenomeInfoDbData_1.2.6#> [29] matrixStats_0.58.0 XML_3.99-0.6#> [31] fansi_0.4.2 crayon_1.4.1#> [33] dplyr_1.0.6 withr_2.4.2#> [35] genome alignments_1.28.0 bitops_1.0-7#> [37] grid_4.1.0 jsonlite_1.7.2#> [39] gtable_0.3.0 lifecycle_1.0.0 . ##> [41] DBI_1.1.1 scales_1.1.1#> [43] stringi_1.6.2 farver_2.1.0#> [45] bslib_0.2.5.1 ellipsis_0.3.2#> [47] generics_0.1.0 vctrs_0.3.8#> [49] cowplot_1.1.1 rjson_0.2.20#> [51] restfulr_0.0.13 tools_4.1.0#> [53] Biobase_2.52.0 glue_1.4.2#> [55] purrr_0.3.4 MatrixGenerics_1.4.0#> [57] yaml_2.2.1 colorspace_2.0-1#> [59] knitr_1.33 sass_0.4.0#> [61] BiocIO_1.2.0