periodicDNA

雅克Serizay

2022-11-01

周期性dna简介

短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周期性强度的连续线性轨迹。

周期性dna的内部步骤

为了估计给定k-mer在一个或几个序列中的周期性强度,周期性dna执行以下步骤:

  1. 将k-mer事件映射,并计算它们的成对距离。
  2. 生成所有产生的成对距离的分布(也称为“图”)。
  3. 该图表转换为频率直方图,并使用3的移动窗口进行平滑,以掩盖普遍的三碱基基因组周期性。为了使距离衰减的频率归一化,然后从平滑的频率中减去局部平均值(通过对移动窗口为10的频率进行平均得到)。
  4. 最后,通过对归一化频率直方图应用快速傅里叶变换(图1F)来估计功率谱密度(PSD)。PSD值的大小表示给定周期对感兴趣的k-mer的总体周期性的贡献。

量化一组序列上的k-mer周期性

基本用法

周期性dna的主要目标是量化给定k-mer在一组序列中的周期性。例如,我们可以利用无所不在启动子tss周围的序列来评估TT二核苷酸的周期性getPeriodicity ()

在下面的例子中,getPeriodicity ()直接使用GRanges对象运行,指定GRanges来自哪个基因组。

图书馆(ggplot2)图书馆(magrittr)图书馆(periodicDNA)数据(ce11_TSSs)periodicity_result < -getPeriodicityce11_TSSs [[“Ubiq”。]] [1500],基因组=“BSgenome.Celegans.UCSC.ce11”主题=的TTBPPARAM =setUpBPPARAM1#> -映射k-mers。#> - 523903测量的成对距离。计算成对的距离分布。#> -规范化图表向量。#> -应用快速傅里叶变换到归一化的图表。

主要输出getPeriodicity ()是一个与离散频率相关的功率谱密度(PSD)值的表,使用快速傅里叶变换计算。对于给定的频率,高PSD分数表示感兴趣的k-mer的高周期性。

在前面的例子中,TT二核苷酸在无所不在启动子tss周围的序列是高度周期性的,周期性为10 bp。

(periodicity_resultPSD)#>频率周期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_resultperiodicityMetrics,期= =10#>频率周期PSD#> 20 0.1 10 3.633071e-06

图表输出getPeriodicity ()可以通过plotPeriodicityResults ()功能:

plotPeriodicityResults(periodicity_result)

第一个图显示了在提供的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 < -getPeriodicityce11_TSSs [[“Ubiq”。]] [1500],基因组=“BSgenome.Celegans.UCSC.ce11”主题=的TTn_shuffling =5#> -计算观测的PSD#> -映射k-mers。#> - 523903测量的成对距离。计算成对的距离分布。#> -规范化图表向量。#> -应用快速傅里叶变换到归一化的图表。#> -洗牌1/5#> -洗牌2/5#> -洗牌3/5#> -洗牌4/5#> -洗牌5/5#>只有5次洗牌。不能计算准确的经验p值。要计算经验p值,将n_shuffle设置为至少100。只返回l2FC值(periodicity_resultperiodicityMetrics)#>频率周期PSD_observed l2FC pval fdr . ##> 1 0.005 200.00000 6.26e-08 -1.2851533 NA NA#> 2 0.010 100.00000 2.20e-08 0.3423978 NA NA#> 3 0.015 66.66667 2.22e-09 -0.2691410 NA NA#> 4 0.020 50.00000 1.11e-08 2.3073608 NA NA#> 5 0.025 40.00000 4.65e-09 -1.3508550 NA NA#> 6 0.030 33.33333 2.66e-08 1.2743709 NA NA子集(periodicity_resultperiodicityMetrics,期= =10#>频率周期PSD_observed l2FC pval fdr . ##> 20 0.1 10 3.63e-06 9.586643 NA NAplotPeriodicityResults(periodicity_result)#>警告:' guides( = FALSE) '已弃用。请使用“参考线”( =#> "none")代替。

如果>= 100,还计算了相关的经验p值(North et al 2002)。该指标表明,对于每个单独的周期T,观察到的PSD是否显著大于洗牌输入序列后测量到的PSD值。请注意,经验p值只是对真实p值的估计。值得注意的是,小的p值被系统性地低估了(North et al 2002)。

请注意

getPeriodicity ()也可以直接运行一组感兴趣的序列,如下所示:

数据(ce11_proms_seqs)periodicity_result < -getPeriodicityce11_proms_seqs,主题=的TTBPPARAM =setUpBPPARAM1#> -映射k-mers。#> - 117630测量的成对距离。计算成对的距离分布。#> -规范化图表向量。#> -应用快速傅里叶变换到归一化的图表。子集(periodicity_resultperiodicityMetrics,期= =10#>频率周期PSD#> 20 0.1 10 1.16806e-06

一组基因组范围的周期性跟踪

周期性dna的另一个目的是在感兴趣的基因组位点上生成k-mer周期性强度的连续线性轨迹。getPeriodicityTrack ()可以用来生成吸吮基因组轨迹。在下面的例子中,

WW_10bp_track < -getPeriodicityTrack基因组=“BSgenome.Celegans.UCSC.ce11”农庄=ce11_proms,主题=“WW”时间=10BPPARAM =setUpBPPARAM1),bw_file =“WW-10-bp-periodicity_over-proms.bw”

当在泛在、种系或体细胞tss上绘制时,所得到的轨迹清楚地显示出WW比泛在和种系tss增加10个bp的周期性,而体细胞tss没有显示这种增加。

数据(ce11_TSSs)plotAggregateCoverageWW_10bp_track,ce11_TSSs,xlab =“与TSS的距离”ylab =10-bp周期性强度(正向舞会)

会话信息

sessionInfo()#> R正在开发中(不稳定)(2022-10-25 r83175)#>平台:x86_64-pc-linux-gnu(64位)运行在Ubuntu 22.04.1 LTS下# >矩阵产品:默认值#> BLAS: /home/biocbuild/bbs-3.17-bioc/R/lib/libRblas.so#> LAPACK: /usr/lib/x86_64-linux-gnu/ LAPACK /liblapack.so.3.10.0# ># >语言环境:#> [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] stats4 stats graphics grDevices utils数据集方法#>[8]基地# >#>其他附加包:#> [1] BSgenome.Celegans.UCSC.ce11_1.4.2 periodicDNA_1.9.0#> [3] BiocParallel_1.33.0 BSgenome_1.67.0#> [5] rtracklayer_1.59.0 Biostrings_2.67.0#> [7] XVector_0.39.0 magrittr_2.0.3#> [9] ggplot2_3.3.6基因组序列_1.51 1.0#> [11] GenomeInfoDb_1.35.0 IRanges_2.33.0#> [13] S4Vectors_0.37.0 BiocGenerics_0.45.0# >#>通过命名空间加载(并且没有附加):#> [1] SummarizedExperiment_1.29.0 gtable_0.3.1#> [3] rjson_0.2.21 xfun_0.34#> [5] bslib_0.4.0 lattice_0.20-45#> [7] Biobase_2.59.0 vctrs_0.5.0#> [9] tools_4.3.0 bitops_1.0-7#> [11] generics_0.1.3 parallel_4.3.0#> [13] tibble_1 .1.8 fansi_1.0.3#> [15] highr_0.9 pkgconfig_2.0.3#> [17] Matrix_1.5-1 assertthat_0.2.1#> [19] lifecycle_1.0.3 GenomeInfoDbData_1.2.9#> [21] farver_2.1.1 compiler_4.3.0#> [23] string_1 .4.1 Rsamtools_2.15.0 . ##> [25] munsell_0.5.0 codetools_0.2-18#> [27] htmltools_0.5.3 sass_0.4.2#> [29] RCurl_1.98-1.9 yaml_2.3.6#> [31] pillar_1.8.1 crayon_1.5.2#> [33] jquerylib_0.1.4 cachem_1.0.6 . ##> [35] DelayedArray_0.25.0 tidyselect_1.2.0#> [37] digest_0.6.30 stringi_1.7.8#> [39] dplyr_1.0.10 restfulr_0.0.15#> [41] labeling_0.4.2 cowplot_1.1.1#> [43] fastmap_1.1.0 grid_4.3.0#> [45] colorspace_2.0-3 cli_3.4.1#> [47] XML_3.99-0.12 utf8_1.2.2#> [49] with thr_2.5.0 scales_1.2.1#> [51] rmarkdown_2.17 matrixStats_0.62.0#> [53] zoo_1.8-11 evaluate_0.17#> [55] knitr_1.40 BiocIO_1.9.0#> [57] rlang_1.0.6 glue_1.6.2#> [59] DBI_1.1.3 jsonlite_1.8.3#> [61] R6_2.5.1 MatrixGenerics_1.11.0#> [63] zlibbioc_1.45.0