在R(尽管冗长):
这是一个测试数据框你知道吗
df <- data.frame(
"CHR" = c(1,1,1,2,2),
"START" = c(100, 200, 300, 100, 400),
"STOP" = c(150,350,400,500,450)
)
首先,我将GRanges作为对象:
gr <- GenomicRanges::GRanges(
seqnames = df$CHR,
ranges = IRanges(start = df$START, end = df$STOP)
)
然后我缩小间隔以折叠成新的granges对象:
reduced <- reduce(gr)
现在将一个新列附加到原始数据帧,以确认哪些行属于同一个连续的“chunk”。你知道吗
subjectHits(findOverlaps(gr, reduced))
输出:
> df
CHR START STOP locus
1 1 100 150 1
2 1 200 350 2
3 1 300 400 2
4 2 100 500 3
5 2 400 450 3
如何在Python中执行此操作?我知道pybedtools,但据我所知,这需要我保存我的数据框到磁盘。谢谢你的帮助。你知道吗
看来你正试图找到它们的交叉点。Pybedtools将接受流作为输入。将数据读入bed格式的字符串。你知道吗
“chr,开始,停止”
我从一个python字典开始,循环浏览它。你知道吗
https://github.com/biocore-ntnu/pyranges
它将在0.0.21后退出。谢谢你的主意!你知道吗
相关问题 更多 >
编程相关推荐