R 样本间基因组间隔相等

R 样本间基因组间隔相等,r,overlap,genome,R,Overlap,Genome,我希望在样本之间找到完全相同的基因组间隔(NE\u id) 我的意见: chr start_call end_call NE_id chr1 150 200 NE01 chr1 150 200 NE02 chr2 100 150 NE01 chr2 100 160 NE02 chr3 200 300 NE01 chr3

我希望在样本之间找到完全相同的基因组间隔(
NE\u id

我的意见:

chr  start_call   end_call  NE_id 
chr1    150         200      NE01
chr1    150         200      NE02
chr2    100         150      NE01
chr2    100         160      NE02
chr3    200         300      NE01   
chr3    200         300      NE02
我的预期产出:

chr  start_call   end_call  NE_id 
chr1    150         200      NE01, NE02   
chr3    200         300      NE01, NE02
在本例中,
chr2
基因组区间有一些重叠,但它并不对应于完全相同的基因组区间(大小差异==
10


非常感谢。

这是一个解决方案

library(GenomicRanges)
NE01 <- GRanges(c("chr1","chr2","chr3"),
         IRanges(c(150,100,200),c(200,150,300)),
         ID=rep("NE01",3))
NE02 <- GRanges(c("chr1","chr2","chr3"),
            IRanges(c(150,100,200),c(200,160,300)),
            ID=rep("NE02",3))
findOverlaps(NE01,NE02,type="equal")
库(基因组范围)

NE01如果数据是
dat
,您可以尝试:

res <-aggregate(NE_id~., data=dat, FUN=I)
res[sapply(res$NE_id,length)>1,]
#    chr  start_call end_call     NE_id
# 3 chr1        150      200 NE01, NE02
# 4 chr3        200      300 NE01, NE02
res1,]
#chr开始\呼叫结束\呼叫新标识
#3 chr1 150 200 NE01,NE02
#4 chr3 200 300 NE01,NE02

您的输出正确吗?同一个身份证两次?不,我搞定了。非常感谢。查看软件包
基因组范围
。你可以在BaseR中做很多这方面的工作,是的,但是你正在重新发明轮子。这似乎工作得很好。然而,在我的大数据框架中,最后一个COLLMN
NE_id
给我数字,而不是原始id(NE01、NE02、NE03…)。你知道为什么吗??感谢you@user3091668. 检查列是否为factor.dat$NE_id 1,]chr start_call end_call NE_id 3 chr1 150 200 1,2 4 chr3 200 300 1,2
user309168
。您可以将其转换为字符。dat$NE_id