我正在尝试用R研究基因组数据,我已经看到了几个主题,它们有两个数据帧和重叠区间相关的很好的答案.我的问题是我有一个重叠间隔的数据帧,我想合并,即:
chrom start stop
5 100 105
5 100 105
5 200 300
9 275 300
9 280 301
Run Code Online (Sandbox Code Playgroud)
我想最终得到这样的东西:
chrom start stop
5 100 105
5 200 300
9 275 301
Run Code Online (Sandbox Code Playgroud)
我也在努力改进编码,所以我想知道最优雅的方法是什么.希望这不是一些其他查询的冗余,
Aru*_*run 16
使用GenomicRanges :: reduce:
require(GenomicRanges)
as.data.frame(reduce(GRanges(df$chrom, IRanges(df$start, df$stop))))
# seqnames start end width strand
# 1 5 100 105 6 *
# 2 5 200 300 101 *
# 3 9 275 301 27 *
Run Code Online (Sandbox Code Playgroud)
它也可以使用data.table::foverlaps或GenomicRanges::findOverlaps,但不是那么简单.
| 归档时间: |
|
| 查看次数: |
494 次 |
| 最近记录: |