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