【问题标题】:Extend range in both directions双向扩展范围
【发布时间】:2015-12-17 09:52:31
【问题描述】:

我有一个 GRanges 对象,我想扩展所有范围,例如两侧 1kb,因此每个范围将变得长 2kb。这很奇怪,但我无法使用 GenomicRanges 或 IRanges 的inter-range-methods 来做到这一点。产生所需结果的一种方法是使用两次调整大小,首先扩展 5',然后扩展 3'。但这当然是非常尴尬的。没有更直接的方法吗?请指教

gr <- GRanges(c('chr1','chr1'), IRanges(start=c(20, 120), width=10), strand='+')
gr <- resize(gr, fix='start', width=width(gr)+10)
gr <- resize(gr, fix='end', width=width(gr)+10)
gr

【问题讨论】:

    标签: r bioconductor iranges


    【解决方案1】:

    GRanges 支持 - 和 + 等运算符

    gr + 10 
    

    会成功的。

    【讨论】:

      【解决方案2】:

      这很简单。您可以在GenomicRanges 中使用startend 函数。

      gr <- GRanges(c('chr1','chr1'), IRanges(start=c(20, 120), width=10), strand='+')
      gr
      # GRanges object with 2 ranges and 0 metadata columns:
      #       seqnames     ranges strand
      #          <Rle>  <IRanges>  <Rle>
      #   [1]     chr1 [ 20,  29]      +
      #   [2]     chr1 [120, 129]      +
      #   -------
      #   seqinfo: 1 sequence from an unspecified genome; no seqlengths
      
      start(gr) <- start(gr) - 10
      end(gr) <- end(gr) + 10
      gr
      # GRanges object with 2 ranges and 0 metadata columns:
      #      seqnames     ranges strand
      #         <Rle>  <IRanges>  <Rle>
      #  [1]     chr1 [ 10,  39]      +
      #  [2]     chr1 [110, 139]      +
      #  -------
      #  seqinfo: 1 sequence from an unspecified genome; no seqlengths
      

      【讨论】:

      • 当然。但是由于有很多函数可以改变范围(调整大小、缩小等),或者根据现有的(侧翼、启动器)定义新的范围,我希望有一个专门的函数能够完成这个相当简单但(我认为)非常有用的操作。
      【解决方案3】:

      三年后,但是……

      一种直接的方法是使用带有 fix 参数的 GRanges 的 resize 方法:

      gr <- resize(gr, width = width(gr)+(desired_size*2), fix = "center")
      

      【讨论】:

        【解决方案4】:

        你可以使用flank:

        gr <- flank(gr, width=10, both=TRUE)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2018-01-03
          • 2012-04-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-04-04
          • 2014-09-20
          相关资源
          最近更新 更多