bedtools | 快速筛选重合区间

时间:2022-07-23
本文章向大家介绍bedtools | 快速筛选重合区间,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

bedtools是一个强大的基因组分析工具,包含了各种各样的功能,能够轻松解决我们基因组分析过程中遇到的各种问题,其引用率高达8462次!

大家可以在 https://github.com/arq5x/bedtools2/releases 下载最新版本的bedtools。

## bedtools安装
tar -zxvf bedtools-2.29.0.tar.gz
cd bedtools2
make

安装好以后,小编教大家使用bedtools的“ intersect ”功能,快速筛选重合区间。

有时候,我们想看一下基因组某个区间上有哪些基因,或者批量比对两个区间是否有重合,自己写for循环一行一行比对搜寻的话速度会很慢,而且循环写不好很容易出错,这时我们就可以用bedtools的“ intersect ”快速将重合区间筛选出来!

首先,我们需要准备两个文件(以“tab" 为分隔符,第一列为染色体名称,第二列为区间的起始位置,第三列为区间的终止位置,第四列为区间名称)。

文件一:

文件二:

我们想看一下文件一中的区间有哪些与文件二中的区间是重合的。

bedtools intersect -a test1.bed -b test2.bed -wao > out

打开结果文件,我们可以看到,前四列代表文件一里的区间,第5至8列代表文件一与文件二重合的区间,第九列代表他们重合的长度。我们可以看到,文件一中的区间b同时与文件二中的A,B区间重和,重合长度分别为5和3。文件一中的区间d在文件二中未找到重和区间。

我们还可以把结果再整理一下。

bedtools groupby -i out -g 1-4 -c 8 -o collapse

-g:选择哪几列的值进行合并。“-g 1-4”表示合并前四列相同的行。

-c:选择第几列的值汇总结果。“-c 8”表示选择第八列的值进行汇总。

这样,我们就可以直观的看到文件一中的区间b与文件二中的区间A和B重合啦!

bedtools还有许多非常便捷的功能,我们后续再讲!

参考资料:

https://bedtools.readthedocs.io/en/latest/content/tools/intersect.html

https://bedtools.readthedocs.io/en/latest/content/tools/groupby.html

https://www.jianshu.com/p/6c3b87301491