我环顾四周,似乎在此之前没有发布任何问题。我有两个带有一些坐标的GRanges对象,我想从另一个中减去一个的间隔。这与查找与findOverlaps()或使用intersect()的重叠不同。
例如:
granges.in
seqnames ranges$start ranges$end
chr01 1100 2000
chr01 2100 3000
chr02 1000 4000
chr03 1500 3500
granges.out
seqnames ranges$start ranges$end
chr01 1000 1200
chr02 2500 3000
chr03 1500 2000
chr03 3000 3500
我希望:
granges.ref
seqnames ranges$start ranges$end
chr01 1200 2000
chr01 2100 3000
chr02 1000 2500
chr02 3000 4000
chr03 2000 3000
以下工作,但它非常笨拙,我必须染色体染色体,因为每个染色体的间隔数量在两个物体之间不匹配。
setdiff(ranges(genome.ref[seqnames(granges.in) == "chr01"]), ranges(interval[seqnames(granges.out)== "chr01"]))
使用两个GRanges对象作为一个整体有更快,更有效的方法吗?谢谢!