2016-09-13 60 views
1

我試圖執行一個非常簡單的操作,但我還沒有弄明白。我試圖得到我在R中導入的特定BED文件中所有間隔的平均間隔長度。此BED文件不包含重疊間隔。這是文件的樣子:使用Bioconductor的BED文件的平均間隔長度

GRanges object with 12917252 ranges and 3 metadata columns: 
     seqnames    ranges strand |     name  score    thick 
      <Rle>   <IRanges> <Rle> |   <character> <numeric>   <IRanges> 
    [1]  chr1  [10524, 10551]  + |  1:10524-10551  122  [10538, 10538] 
    [2]  chr1  [11236, 11258]  + |  1:11236-11258  43  [11247, 11247] 
    [3]  chr1  [11456, 11474]  + |  1:11456-11474  47  [11465, 11465] 
    [4]  chr1  [12054, 12099]  + |  1:12054-12099  206  [12077, 12077] 
    [5]  chr1  [12276, 12330]  + |  1:12276-12330  249  [12303, 12303] 

任何操作將適用於ranges

+1

更適合於https://support.bioconductor.org/ – Arun

回答

4

使用IRanges ::寬度()

library(GenomicRanges) #loads IRanges, too. 

#dummy data 
gr = GRanges("chr1",IRanges(
    start = c(11236, 11456, 12054, 12276), 
    end = c(11258, 11474, 12099, 12330))) 

#get mean of ranges' "lengths" using width(), then take the mean(). 
mean(width(gr)) 
# [1] 35.75 

?width

寬度(x):每個範圍內的整數值數。這是一個與x長度相同的非負整數的矢量 。