我有一个床单看起来像这样:

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。我想使用特定的标志来计数构成每个“合并”片段的条目,然后仅保留那些值为“ 1”的条目,但是问题来了:我不知道如何保存有关链,分数( (应始终为0)和名称(可以从前3列中重新构建)。
有人知道如何将这些东西放在一起吗?

输出应与输入(上)完全相同,但仅与不与其他任何行重叠的这些行相同。

1   183113  183114  chr1:183113-183240  0   +
1   187286  187287  chr1:187128-187287  0   -

最佳答案

好,我解决了这个问题:

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

07-24 13:18