过滤具有重叠区域的行

时间:2015-02-11 14:32:33

标签: r

如何删除一行的开头和结尾与同一个chr中的其他行重叠的行? -

   R_level  logp   chr start   end     CNA    Gene
        2   7.0    1  1159    4360    gain   Recl,Bcl
        1   2.4    1  1101    3689    gain   Bc1
        4   1.9    2  7180    9229    loss   Sox1,Tert
        2   4.5    2  8159    8360    loss   Sox1
        1   2.9    2  9154    10588   loss   Pekg

我想输出像这样的东西

R_level  logp   chr start   end     CNA    Gene
    2   7.0    1  1159    4360    gain   Recl,Bcl
    4   1.9    2  7180    9229    loss   Sox1,Tert
    1   2.9    2  9154    10588   loss   Pekg

1 个答案:

答案 0 :(得分:2)

由于这似乎是生物学,您可以使用IRanges中的Bioconductors包:

source("http://bioconductor.org/biocLite.R")
biocLite("IRanges")
library(IRanges)

df<-yourDataFrame
data<-RangedData(IRanges(df$start,df$end),df[,-c(3,4,5)],space=df$chr)
data[!(countOverlaps(data,type=c("within"))@unlistData>1),]