1) 安装
bedtools 提供了3种安装方式
- 从google code 下载源代码进行安装
- 利用系统中的包管理工具进行安装, 比如cnetos 下的yum, ubuntu下的apt-get, mac 下的homebrew
- 从github下载源代码,进行安装
由于访问不了google code,又想编译安装,就从github上下载最新版:https://github.com/arq5x/bedtools2
下载v2.25.0版本的源代码,进行安装
wget https://github.com/arq5x/bedtools2/archive/v2.25.0.tar.gz tar xzvf v2.25.0 cd bedtools2-2.25.0/ make cd bin/ export PATH=$PWD:$PATH
2) 使用
intersect: 求两个区间的交集,输入文件可以是bed,gff,vcf
准备两个测试文件,
cpg.bed,其内容为
chr1 20 70 CPG_1 chr1 100 120 CPG_2 chr1 150 250 CPG_3
exon.bed,其内容为
chr1 10 40 exon_1 chr1 50 60 exon_2 chr1 130 180 exon_3 chr1 200 280 exon_4
使用默认参数,求这个文件的overlap,运行
bedtools intersect -a cpg.bed -b exon.bed
结果为
chr1 20 40 CPG_1 chr1 50 60 CPG_1 chr1 150 180 CPG_3 chr1 200 250 CPG_3
可以看出,默认情况下只输出A中overlap的区域
添加-wa 参数, 再次运行
bedtools intersect -a cpg.bed -b exon.bed -wa
结果为:
chr1 20 70 CPG_1 chr1 20 70 CPG_1 chr1 150 250 CPG_3 chr1 150 250 CPG_3
可以看出,加上-wa 参数后,只要A中的这段区域与B中区域有交集,就输出,而且overlap几次,就输出几次
添加-wb 参数,运行
bedtools intersect -a cpg.bed -b exon.bed -wb
结果为:
chr1 20 40 CPG_1 chr1 10 40 exon_1 chr1 50 60 CPG_1 chr1 50 60 exon_2 chr1 150 180 CPG_3 chr1 130 180 exon_3 chr1 200 250 CPG_3 chr1 200 280 exon_4
可以看出,加上-wb参数后,除了输出A中的overlap区域外,还会输出B中的整个区间
加上-wa, -wb 参数,再次运行
bedtools intersect -a cpg.bed -b exon.bed -wa -wb
结果为:
chr1 20 70 CPG_1 chr1 10 40 exon_1 chr1 20 70 CPG_1 chr1 50 60 exon_2 chr1 150 250 CPG_3 chr1 130 180 exon_3 chr1 150 250 CPG_3 chr1 200 280 exon_4
可以看出,同时添加-wa和-wb参数会将overlap 区域成对输出
-c参数,统计A中每个区域与Boverlap的次数
bedtools intersect -a cpg.bed -b exon.bed -c
结果为:
chr1 20 70 CPG_1 2 chr1 100 120 CPG_2 0 chr1 150 250 CPG_3 2
-v参数:只输出A中没有与Boverlap的区域
bedtools intersect -a cpg.bed -b exon.bed -v
结果为:
chr1 100 120 CPG_2
可以看出,只要只要与B有overlap就不输出。
时间: 2024-12-22 08:21:21