我在 R 中有几个床文件作为 data.frame 对象。现在我想按元素找到两个精益床文件之间的重叠。
为了澄清我的问题,我需要在第一床文件(已经在数据框对象中)中逐行进行测试,因此只取数据框的一行作为查询,然后将其提供给间隔树保存的间隔树第二床文件(但需要先强制 Granges 对象)。
我的数据看起来像:
idx chrom start End name score p-value
1 chr1 32727 32817 MACS_peak_1 8.69 1.150748e-11
2 chr1 52489 52552 MACS_peak_2 4.26 2.347418e-11
3 chr1 65527 65590 MACS_peak_3 4.19 2.386635e-11
4 chr1 65773 65904 MACS_peak_4 2.02 4.950495e-11
5 chr1 66001 66117 MACS_peak_5 5.66 1.766784e-11
6 chr1 115700 115769 MACS_peak_6 10.30 9.708738e-12
7 chr1 136389 136452 MACS_peak_7 4.26 2.347418e-11
8 chr1 235352 235415 MACS_peak_8 4.26 2.347418e-11
9 chr1 235636 235700 MACS_peak_9 5.66 1.766784e-11
10 chr1 432895 432958 MACS_peak_10 4.26 2.347418e-11
f1 <- function(bed.1, bed.2){
query<- GRanges()
subject = bed.2
for(i in 1: length(bed.1)){
query<-bed.1[i]
o <- GenomicRanges::findOverlaps(query, subject, minoverlap = 2L, algorithm="intervaltree")
hitfrom_<-query[queryHits(o)]
hitTo_<-subject[subjectHits(o)]
pint <-pintersect(hitfrom_, hitTo_)
return(pint)
}
}
这是我的代码如何在 bed.1 中迭代一组 GRanges 对象并调用 findOverlap() 函数来查找重叠的 GRanges 的位置。这段代码没有给我想要的结果。有人帮我吗??谢谢