bedtools intersect用法 (intersectBed)

2020-04-01 16:29:39 浏览数 (3)

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了。

0 人点赞