我的床文件看起来像这样:
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 -
我的目标是仅提取条目与其他条目不重叠的行。有一段时间我一直在根据doc尝试 bedtools merge 。我想使用特定的标志来计算构成每个"合并的条目"片段,然后只保留那些有价值的" 1"但问题出在这里:我不知道如何保留关于链的信息,得分(这应该总是0)和名称(这可能是从前3列重建的)。 有谁知道如何将这些东西放在一起?
输出应该看起来与输入(上方)完全相同,但只有这些行与其他任何内容都不重叠。
1 183113 183114 chr1:183113-183240 0 +
1 187286 187287 chr1:187128-187287 0 -
答案 0 :(得分:2)
好的,我解决了这个问题:
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