在基因开始或结束的 200kb 范围内通过重叠将范围划分为子集
GRanges to subset by overlap within 200kb of start or end of a gene
我有两个 GRanges 数据,我想通过重叠对它们进行子集化,这样重叠也可以出现在基因开始或结束的 200kb 以内。
我正在使用以下命令
subsetByOverlaps(gr2, gr1, type = "equal", maxgap = 200000)
使用 type = "equal" 和 maxgap= 200000 得到我想要的结果,我想知道这是否是回答我问题的正确方法。
我不确定我是否完全理解 maxgap 的用法,因此希望得到您的帮助或任何建议,以获得理想的结果。
提前致谢
最好的,
S
我认为正确的做法是subsetByOverlaps(gr2, gr1, type = "any", maxgap = 200000)
。
来自 findOverlaps
文档:
“‘maxgap’参数具有特殊含义
重叠类型。对于“开始”、“结束”和“等于”,它指定
开始、结束或两者的最大差异,
分别。对于“范围内”,它是最大数量
主题可能比查询更宽。如果设置了“maxgap”
到 -1(默认值),它在内部被 0 替换。"
事实上,让我们考虑如下两个 IRanges
对象:
library(IRanges)
d1 <- IRanges(start = c(1, 2100, 5000, 8000), width = c(100, 300, 400, 600))
d2 <- IRanges(start = c(1000, 2000, 4000, 9000), width = c(300, 200, 400, 100))
d1
##> IRanges object with 4 ranges and 0 metadata columns:
##> start end width
##> <integer> <integer> <integer>
##> [1] 1 100 100
##> [2] 2100 2399 300
##> [3] 5000 5399 400
##> [4] 8000 8599 600
d2
##> IRanges object with 4 ranges and 0 metadata columns:
##> start end width
##> <integer> <integer> <integer>
##> [1] 1000 1299 300
##> [2] 2000 2199 200
##> [3] 4000 4399 400
##> [4] 9000 9099 100
如果我们在间隙内寻找间隔之间的交点,type
设置为“等于”或“任意”:
findOverlapPairs(d1,d2, maxgap = 650, type = "equal")
##> > Pairs object with 1 pair and 0 metadata columns:
##> first second
##> <IRanges> <IRanges>
##> [1] 2100-2399 2000-2199
findOverlapPairs(d1,d2, maxgap = 650, type = "any")
##> > Pairs object with 3 pairs and 0 metadata columns:
##> first second
##> <IRanges> <IRanges>
##> [1] 2100-2399 2000-2199
##> [2] 5000-5399 4000-4399
##> [3] 8000-8599 9000-9099
我们可以看到使用“等于”我们错过了一些匹配项。
我有两个 GRanges 数据,我想通过重叠对它们进行子集化,这样重叠也可以出现在基因开始或结束的 200kb 以内。
我正在使用以下命令
subsetByOverlaps(gr2, gr1, type = "equal", maxgap = 200000)
使用 type = "equal" 和 maxgap= 200000 得到我想要的结果,我想知道这是否是回答我问题的正确方法。
我不确定我是否完全理解 maxgap 的用法,因此希望得到您的帮助或任何建议,以获得理想的结果。
提前致谢
最好的, S
我认为正确的做法是subsetByOverlaps(gr2, gr1, type = "any", maxgap = 200000)
。
来自 findOverlaps
文档:
“‘maxgap’参数具有特殊含义
重叠类型。对于“开始”、“结束”和“等于”,它指定
开始、结束或两者的最大差异,
分别。对于“范围内”,它是最大数量
主题可能比查询更宽。如果设置了“maxgap”
到 -1(默认值),它在内部被 0 替换。"
事实上,让我们考虑如下两个 IRanges
对象:
library(IRanges)
d1 <- IRanges(start = c(1, 2100, 5000, 8000), width = c(100, 300, 400, 600))
d2 <- IRanges(start = c(1000, 2000, 4000, 9000), width = c(300, 200, 400, 100))
d1
##> IRanges object with 4 ranges and 0 metadata columns:
##> start end width
##> <integer> <integer> <integer>
##> [1] 1 100 100
##> [2] 2100 2399 300
##> [3] 5000 5399 400
##> [4] 8000 8599 600
d2
##> IRanges object with 4 ranges and 0 metadata columns:
##> start end width
##> <integer> <integer> <integer>
##> [1] 1000 1299 300
##> [2] 2000 2199 200
##> [3] 4000 4399 400
##> [4] 9000 9099 100
如果我们在间隙内寻找间隔之间的交点,type
设置为“等于”或“任意”:
findOverlapPairs(d1,d2, maxgap = 650, type = "equal")
##> > Pairs object with 1 pair and 0 metadata columns:
##> first second
##> <IRanges> <IRanges>
##> [1] 2100-2399 2000-2199
findOverlapPairs(d1,d2, maxgap = 650, type = "any")
##> > Pairs object with 3 pairs and 0 metadata columns:
##> first second
##> <IRanges> <IRanges>
##> [1] 2100-2399 2000-2199
##> [2] 5000-5399 4000-4399
##> [3] 8000-8599 9000-9099
我们可以看到使用“等于”我们错过了一些匹配项。