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就不輸出。