提问人:maciek 提问时间:4/16/2017 最后编辑:Timur Shtatlandmaciek 更新时间:10/2/2020 访问量:1996
过滤床文件中的重叠条目
Filter overlapping entries in bed file
问:
我有一个床文件,如下所示:
1 183113 183114 chr1:183113-183240 0 +
1 187286 187287 chr1:187128-187287 0 -
1 187576 187587 chr1:187375-187577 0 -
1 187580 187590 chr1:187379-187577 0 -
我的目标是仅提取那些条目不与其他任何条目重叠的行。一段时间以来,我一直在尝试根据文档合并床上工具。我想使用特定的标志来计算构成每个“合并”片段的条目,然后只保留值为“1”的条目,但问题来了:我不知道如何保留有关链、分数(这应该始终为 0)和名称(这可能从前 3 列重建)的信息。 有谁知道如何把这些东西放在一起?
输出应与输入(上)床完全相同,但仅与这些行不与其他任何内容重叠。
1 183113 183114 chr1:183113-183240 0 +
1 187286 187287 chr1:187128-187287 0 -
答:
3赞
maciek
4/19/2017
#1
好的,我解决了这个问题:
1) 计算原始输入中的重叠项
bedtools merge -i IN.bed -c 1 -o count > counted
2)只过滤掉那些不与任何内容重叠的行
awk '/\t1$/{print}' counted > filtered
3)将其与原始输入相交,并仅保留过滤后找到的原始行
bedtools intersect -a IN.bed -b filtered -wa > OUT.bed
上一个:Seaborn热图上的次级x轴
评论
reduce
bedtools merge
bedtools complement
bedtools intersect