bedtools intersect可以对两个基因组特征 (genomic features) 进行overlap,找到两者重合的区域。比如求两个peaks的交集,或者看很多位点信息在没在peaks或其他区域中,用这个工具非常方便快捷。
默认用法为:
代码语言:javascript复制bedtools intersect [OPTIONS] -a <FILE>
-b <FILE1, FILE2, ..., FILEN>
或者:
代码语言:javascript复制intersectBed [OPTIONS] -a <FILE>
-b <FILE1, FILE2, ..., FILEN>
其中a和b提供的文件为BAM/BED/GFF/VCF格式。
下边举例几种常见用法:
1.默认
默认情况下取两个文件的交集区域:
代码语言:javascript复制cat A.bed
chr1 10 20 chr1 30 40
代码语言:javascript复制cat B.bed
chr1 15 18
代码语言:javascript复制intersectBed -a A.bed -b B.bed
chr1 15 18
2.-wa -wb参数
-wa 输出有overlap区域的原-a文件中的内容:
代码语言:javascript复制intersectBed -a A.bed -b B.bed -wa
输出: chr1 10 20
-wb会输出overlap的区域和其中-b文件中的内容:
代码语言:javascript复制intersectBed -a A.bed -b B.bed -wb
输出: chr1 15 18 chr1 15 18
-wa -wb 输出overlap的区域所在-a和-b中的原内容:
代码语言:javascript复制intersectBed -a A.bed -b B.bed -wa -wb
输出: chr1 10 20 chr1 15 18
3.-v 参数 -v输出在-a参数文件中没有overlap的区域:
代码语言:javascript复制intersectBed -a A.bed -b B.bed -v
输出: chr1 30 40
4.-wo 输出overlap的长度:
代码语言:javascript复制 intersectBed -a A.bed -b B.bed -wo
输出: chr1 10 20 chr1 15 18 3
此外还有一点要注意,假如是看两个位点是否一致,这里是不可以的,比如: C.bed: chr1 10 10 D.bed: chr1 11 11
代码语言:javascript复制intersectBed -a C.bed -b D.bed -wa -wb
输出:chr1 10 10 chr1 11 11
也就是这里会认为是overlap的。但是,C.bed和D.bed第三列分别加1,即C.bed改成chr1 10 11, D.bed改成chr1 11 12,则不会有overlap了。