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中做很多这方面的工作,是的,但是你正在重新发明轮子。这似乎工作得很好。然而,在我的大数据框架中,最后一个COLLMNNE_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,2user309168
。您可以将其转换为字符。dat$NE_id