1 Bedtools:一個(gè)強(qiáng)大的基因組算法工具集
Bedtools是由猶他大學(xué)昆蘭實(shí)驗(yàn)室開(kāi)發(fā)的基因組算法工具集,它堪稱是基因組分析工具中的瑞士軍刀。Bedtools可以對(duì)基因組廣泛使用的數(shù)據(jù)格式BAM,BED,GFF/GTF,VCF進(jìn)行處理,進(jìn)行取交集、并集、補(bǔ)集、計(jì)數(shù)以及格式轉(zhuǎn)變等操作。Bedtools被設(shè)計(jì)成許多獨(dú)立的小工具,這些小工具自身只能處理簡(jiǎn)單任務(wù),對(duì)于復(fù)雜的分析過(guò)程可以通過(guò)多個(gè)簡(jiǎn)單工具的組合進(jìn)行處理。Bedtools也提供了詳盡的教程,請(qǐng)參考
https://Bedtools.readthedocs.io/en/latest/index.html
2 bedtools備注
- 從2.28.0版開(kāi)始,bedtools使用htslib庫(kù)支持CRAM格式
- 除了BAM文件,bedtools默認(rèn)所有的輸入文件都以TAB鍵分割
- 除非使用-sorted選項(xiàng),bedtools默認(rèn)不支持大于512M的染色體
- 如果沒(méi)有使用-sorted參數(shù)對(duì)染色體按編碼順序進(jìn)行排序(e.g., sort -k1,1 -k2,2n ),則必須使用-g參數(shù)輸入相同排序染色體
- bedtools要求染色體命名方案在比較文件中是相同的(例如‘chr1’和‘1’不能同時(shí)存在)
3 Bedtools 須知(典范示例):
基因組特征可以是功能元件(如基因),基因多態(tài)性(SNP、INDEL、SV)或者是由測(cè)序或者基因組瀏覽器發(fā)現(xiàn)或管理的其他注釋,以及各個(gè)實(shí)驗(yàn)室或者研究者規(guī)定的傳統(tǒng)注釋。最基本的基因組特征是其所在的染色體,起始位置,終止位置,正負(fù)鏈特征。最廣泛使用的基因組格式是BED文件和GFF文件。現(xiàn)有的許多物種的基因組注釋可以很容易地從UCSC基因組瀏覽器的“表格瀏覽器”中以BED和GFF格式下載。
3.1 輸入文件參數(shù)
下列例子中Feature A與Feature B有交集,但是與Feature C沒(méi)有交集:
bedtools intersect –a snps.bed –b exons.bed
如果fileA是BAM格式,需要使用”-abam”選項(xiàng)
bedtools intersect –abam alignedReads.bam –b exons.bed
如果只需要輸入一個(gè)基因組特征,則需要使用”-i”選項(xiàng)
bedtools merge –i repeats.bed
3.2 各種格式的起始位置
3.2.1 BED文件的起始位置以0開(kāi)始,終止位置以1開(kāi)始
具體來(lái)說(shuō),bedtools使用UCSC基因組瀏覽器的內(nèi)部數(shù)據(jù)庫(kù)約定,起始位置為0,結(jié)束位置為1,下面的BED特征代表的是1號(hào)染色體的一個(gè)堿基。這樣存儲(chǔ)特征的格式是為了方便計(jì)算特征的長(zhǎng)度,如果起始位置以1開(kāi)始,特征的長(zhǎng)度((end-start)+1),這樣計(jì)算比計(jì)較復(fù)雜
chr1 0 1 first_base
3.2.2 GFF文件的起始和終止位置都是以1開(kāi)始
Bedtools自身能識(shí)別GFF文件的正確位置,不需要再對(duì)GFF文件的初始位置減去1轉(zhuǎn)變成bed格式
3.2.3 VCF文件的坐標(biāo)是以1開(kāi)始
和GFF文件類似,Bedtools自身能識(shí)別VCF文件的正確位置,不需要再對(duì)VCF文件的初始位置減去1轉(zhuǎn)變成bed格式
3.3 大部分情況FileB文件會(huì)被加載到內(nèi)存中
當(dāng)比較兩個(gè)文件的特征時(shí),file B一般會(huì)被加入到內(nèi)存中,file A會(huì)被遍歷各行與內(nèi)存中的file B進(jìn)行比較。因此為了減少對(duì)內(nèi)存的使用,一般需要將比較小的文件當(dāng)做file B。例如,當(dāng)比較一個(gè)含有數(shù)百萬(wàn)條reads的比對(duì)文件和數(shù)千條基因特征的注釋文件時(shí),會(huì)將比對(duì)文件當(dāng)做file A,將注釋文件當(dāng)做file B。
3.4 Bedtools可以將特征以管道符的方式作為標(biāo)準(zhǔn)輸入
當(dāng)需要比較兩個(gè)文件時(shí),Bedtools將file A或者file B轉(zhuǎn)化為”stdin” 或者 “-” 進(jìn)行表示
cat snps.bed | bedtools intersect –a stdin –b exons.bed
cat snps.bed | bedtools intersect –a - –b exons.bed
當(dāng)只需要輸入一個(gè)文件時(shí),Bedtools處理標(biāo)準(zhǔn)輸入時(shí)可以忽略”-i”參數(shù)
cat snps.bed | bedtools sort –i stdin
cat snps.bed | bedtools sort
bedtools的結(jié)果直接以標(biāo)準(zhǔn)輸出的方式輸出
bedtools intersect –a snps.bed –b exons.bed
chr1 100100 100101 rs233454
chr1 200100 200101 rs446788
chr1 300100 300101 rs645678
以”>”符號(hào)輸出到特定文件
bedtools intersect –a snps.bed –b exons.bed > snps.in.exons.bed
cat snps.in.exons.bed
chr1 100100 100101 rs233454
chr1 200100 200101 rs446788
chr1 300100 300101 rs645678
3.5 用”-h”參數(shù)來(lái)獲取bedtools的幫助
使用“-h”參數(shù),bedtools會(huì)列出使用的示例和全部的參數(shù)文件
3.6 BED文件位置信息不能包含負(fù)值,起始位置要<=終止位置
Bedtools通常不能包含負(fù)值。但是,在特殊情況下可以將BEDPE位置設(shè)置為-1,以指示BEDPE的一個(gè)或多個(gè)端點(diǎn)位置未對(duì)齊。
3.7 寫(xiě)出未壓縮的BAM文件
當(dāng)用一組復(fù)雜的管道處理大的BAM文件時(shí),向下一個(gè)流程傳遞未壓縮的BAM文件有利于節(jié)省解壓的時(shí)間,所以用Bedtools輸出BAM文件(intersect,window)時(shí)可以用-ubam選擇性的輸出未壓縮的BAM文件
4 Bedtools各功能參數(shù)列表:
| Utility | Description |
|---|---|
| annotate | 注釋多個(gè)文件的覆蓋特征 |
| bamtobed | 將bam文件轉(zhuǎn)換為BED格式 |
| bamtofastq | 將bam文件轉(zhuǎn)換為FASTQ格式 |
| bed12tobed6 | 將BED12間隔轉(zhuǎn)換為BED6間隔 |
| bedpetobam | 將BEDPE間隔轉(zhuǎn)化為BAM格式 |
| bedtobam | 將間隔轉(zhuǎn)換為BAM記錄 |
| closest | 尋找最近的潛在的非重疊區(qū)間 |
| cluster | 聚類(不合并)重疊的區(qū)間 |
| complement | 獲得區(qū)間的補(bǔ)集 |
| coverge | 計(jì)算特定區(qū)間的覆蓋 |
| expand | 根據(jù)列值重復(fù)行數(shù) |
| flank | 從當(dāng)前區(qū)間側(cè)翼創(chuàng)建新的區(qū)間 |
| genomecov | 從整個(gè)基因組計(jì)算覆蓋深度 |
| getfasta | 根據(jù)區(qū)間從FASTA文件中提取序列 |
| groupby | 按特征列進(jìn)行分組 |
| igv | 創(chuàng)建一個(gè)IGV快照批處理腳本 |
| intersect | 用各種不同的方式尋找重疊區(qū)域 |
| jaccard | 計(jì)算b/w兩個(gè)間隔區(qū)域的Jaccard統(tǒng)計(jì)量 |
| links | 創(chuàng)建一個(gè)連接UCSC位點(diǎn)的HTML頁(yè)面 |
| makewindows | 創(chuàng)建基因組區(qū)間窗口 |
| map | 為每個(gè)重疊區(qū)間隊(duì)列應(yīng)用一個(gè)函數(shù) |
| maskfasta | 利用區(qū)間隱藏FASTA文件序列 |
| merge | 合并重疊區(qū)間形成一個(gè)新的區(qū)間 |
| multicov | 計(jì)算多個(gè)BAM文件在特定區(qū)間的覆蓋深度 |
| multiinter | 標(biāo)記多個(gè)區(qū)間文件的公共區(qū)間 |
| nuc | 分析FASTA文件某區(qū)間的核酸含量 |
| overlap | 計(jì)算兩個(gè)區(qū)間重疊范圍的長(zhǎng)度 |
| pairtobed | 找出以各種方式重疊區(qū)間的對(duì) |
| pairtopair | 找出以各種方式重疊其他配對(duì)的配對(duì) |
| random | 產(chǎn)生一個(gè)基因組的隨機(jī)區(qū)間 |
| reldist | 計(jì)算兩個(gè)文件的相對(duì)距離分布 |
| shift | 調(diào)整區(qū)間的位置 |
| shuffle | 在基因組中隨機(jī)重新分配時(shí)間間隔 |
| slop | 調(diào)整區(qū)間的大小 |
| sort | 對(duì)區(qū)間進(jìn)行排序 |
| subtract | 對(duì)兩個(gè)區(qū)間文件取差集 |
| tag | 根據(jù)區(qū)間的重疊區(qū)域標(biāo)記BAM Tag |
| unionbedg | 根據(jù)多個(gè)BEDGRAPH文件合并覆蓋區(qū)間 |
| window | 在一個(gè)間隔周圍的窗口尋找重疊區(qū)間 |
4.1 annotate
Bedtools annotate 命令用于統(tǒng)計(jì)一個(gè)BED/VCF/GFF文件與多個(gè)BED/VCF/GFF文件的重疊區(qū)域的比例和數(shù)目,這樣就可以知道一個(gè)特征與多個(gè)特征的一致程度。
示例:
bedtools annotate [OPTIONS] -i <BED/GFF/VCF> -files FILE1 FILE2 FILE3 ... FILEn
$ cat variants.bed
chr1 100 200 nasty 1 -
chr2 500 1000 ugly 2 +
chr3 1000 5000 big 3 -
$ cat genes.bed
chr1 150 200 geneA 1 +
chr1 175 250 geneB 2 +
chr3 0 10000 geneC 3 -
$ cat conserve.bed
chr1 0 10000 cons1 1 +
chr2 700 10000 cons2 2 -
chr3 4000 10000 cons3 3 +
$ cat known_var.bed
chr1 0 120 known1 -
chr1 150 160 known2 -
chr2 0 10000 known3 +
$ bedtools annotate -i variants.bed -files genes.bed conserve.bed known_var.bed
chr1 100 200 nasty 1 - 0.500000 1.000000 0.300000
chr2 500 1000 ugly 2 + 0.000000 0.600000 1.000000
chr3 1000 5000 big 3 - 1.000000 0.250000 0.000000
參數(shù):
| Option | Description |
|---|---|
| -counts | 輸出的是多個(gè)特征與–i輸入特征重疊的個(gè)數(shù). 默認(rèn)輸出的是多個(gè)特征與-i輸入特征重疊的比例 |
| -both | 輸出的不僅是多個(gè)特征與–i輸入特征重疊的個(gè)數(shù),還包括多個(gè)特征與-i輸入特征重疊的比例 |
| -s | 規(guī)定了相同的正負(fù)鏈。只有A和B首先具有相同的正負(fù)鏈時(shí),才認(rèn)為具有重疊區(qū)域,而默認(rèn)不考慮正負(fù)鏈信息 |
| -S | 規(guī)定了相反的正負(fù)鏈. 只有A和B首先具有相反的正負(fù)鏈時(shí),才認(rèn)為具有重疊區(qū)域,而默認(rèn)不考慮正負(fù)鏈信息 |
4.2 bamtobed
Bedtools bamtobed命令用于將序列比對(duì)文件bam格式轉(zhuǎn)化為BED,BED12或者BEDPE格式。
示例:
bedtools bamtobed [OPTIONS] -i <BAM>
$ bedtools bamtobed -i reads.bam | head -3
chr7 118970079 118970129 TUPAC_0001:3:1:0:1452#0/1 37 -
chr7 118965072 118965122 TUPAC_0001:3:1:0:1452#0/2 37 +
chr11 46769934 46769984 TUPAC_0001:3:1:0:1472#0/1 37 -
參數(shù):
| Option | Description |
|---|---|
| -bedpe | 將BAM格式轉(zhuǎn)化為BEDPE格式。只有成對(duì)雙端的reads才會(huì)被輸出。當(dāng)成對(duì)的雙端reads分別比對(duì)到不同的染色體時(shí),染色體字符低的染色體會(huì)被排在一行的前面。如果成對(duì)的reads,只有一條reads和參考序列比對(duì)上,那么沒(méi)有比對(duì)上的那條reads的染色體和正負(fù)鏈會(huì)被設(shè)置為“.”,而起始和終止位置會(huì)被設(shè)置為-1。默認(rèn)輸出的格式是BED格式 |
| -bed12 | 輸出BED12格式。默認(rèn)輸出格式BED6格式 |
| -tag | 用BAM的其他tag當(dāng)做BED score.默認(rèn)的BED scroe值是bam文件中的MAPQ值 |
| -cigar | 輸出cigar值當(dāng)做BED文件的第7列 |
4.3 bamtofastq
bedtools bamtofastq 命令用于從比對(duì)的bam文件中提取fastq文件
示例:
bedtools bamtofastq [OPTIONS] -i <BAM> -fq <FASTQ>
參數(shù):
| Option | Description |
|---|---|
| -fq2 | 默認(rèn)-fq輸出的是一個(gè)fastq文件,添加-fq2參數(shù)可以將成對(duì)的fastq文件分別輸出到兩個(gè)文件中。 但是輸入的bam文件需要先對(duì)reads按名字進(jìn)行排序 (samtools sort -n aln.bam aln.qsort) |
4.4 bed12tobed6
bedtools bed12tobed6命令用于將BED12格式按照基因的外顯子區(qū)塊分隔成BED6格式
示例:
bedtools bed12tobed6 [OPTIONS] -i <BED12>
head data/knownGene.hg18.chr21.bed | tail -n 3
chr21 10079666 10120808 uc002yiv.1 0 - 10081686 1 0 1 2 0 6 0 8 0 4 528,91,101,215, 0,1930,39750,40927,
chr21 10080031 10081687 uc002yiw.1 0 - 10080031 1 0 0 8 0 0 3 1 0 2 200,91, 0,1565,
chr21 10081660 10120796 uc002yix.2 0 - 10081660 1 0 0 8 1 6 6 0 0 3 27,101,223,0,37756,38913,
head data/knownGene.hg18.chr21.bed | tail -n 3 | bed12ToBed6 -i stdin
chr21 10079666 10080194 uc002yiv.1 0 -
chr21 10081596 10081687 uc002yiv.1 0 -
chr21 10119416 10119517 uc002yiv.1 0 -
chr21 10120593 10120808 uc002yiv.1 0 -
chr21 10080031 10080231 uc002yiw.1 0 -
chr21 10081596 10081687 uc002yiw.1 0 -
chr21 10081660 10081687 uc002yix.2 0 -
chr21 10119416 10119517 uc002yix.2 0 -
chr21 10120573 10120796 uc002yix.2 0 -
參數(shù):
| Option | Description |
|---|---|
| -i | 輸入的是BED12格式. 通過(guò)管道輸入時(shí)以”stdin”代替 |
4.5 bedtobam
bamtools bedtobam命令用于將bed格式轉(zhuǎn)變成BAM格式。這對(duì)于儲(chǔ)存大型壓縮注釋文件和可視化非常有用
示例:
bedtools bedtobam [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> > <BAM>
head -5 rmsk.hg18.chr21.bed
chr21 9719768 9721892 ALR/Alpha 1004 +
chr21 9721905 9725582 ALR/Alpha 1010 +
chr21 9725582 9725977 L1PA3 3288 +
chr21 9726021 9729309 ALR/Alpha 1051 +
chr21 9729320 9729809 L1PA3 3897 -
bedToBam -i rmsk.hg18.chr21.bed -g human.hg18.genome > rmsk.hg18.chr21.bam
samtools view rmsk.hg18.chr21.bam | head -5
ALR/Alpha 0 chr21 9719769 255 2124M * 0 0 * *
ALR/Alpha 0 chr21 9721906 255 3677M * 0 0 * *
L1PA3 0 chr21 9725583 255 395M * 0 0 * *
ALR/Alpha 0 chr21 9726022 255 3288M * 0 0 * *
L1PA3 16 chr21 9729321 255 489M * 0 0 * *
參數(shù):
| Option | Description |
|---|---|
| -mapq | 設(shè)定輸出BAM文件的mapping quality.默認(rèn)的mapping quality是255 |
| -ubam | 輸出未壓縮的BAM文件,默認(rèn)輸出的是壓縮后的BAM文件 |
4.6 closet
與intersect類似,closest命令會(huì)尋找A和B兩個(gè)BED文件中的重合特征。但是,如果A和B的BED區(qū)域沒(méi)有重疊,那么closet命令將會(huì)尋找B中與A的起始或者終止位置最近的區(qū)域。
示例:
bedtools closest [OPTIONS] -a <FILE>
-b <FILE1, FILE2, ..., FILEN>
cloest 示意圖:

4.7 Cluster
與merge功能類似,cluster命令會(huì)報(bào)告一個(gè)區(qū)間中的重疊區(qū)域。與merge命令不同,cluster命令不會(huì)合并重疊區(qū)間形成一個(gè)新區(qū)間,而是賦予各個(gè)區(qū)間一個(gè)聚類ID編號(hào)來(lái)反應(yīng)各個(gè)區(qū)間的重疊或者遠(yuǎn)近。這對(duì)于反應(yīng)一個(gè)區(qū)間中的重疊區(qū)域具有很好的效果。
示例:
bedtools cluster [OPTIONS] -i <BED/GFF/VCF>
$ cat A.bed
chr1 100 200
chr1 180 250
chr1 250 500
chr1 501 1000
$ bedtools cluster -i A.bed
chr1 100 200 1
chr1 180 250 1
chr1 250 500 1
chr1 501 1000 2
參數(shù):
| Option | Description |
|---|---|
| -s | 具有相同的正負(fù)鏈才能歸為一類.默認(rèn)忽略正負(fù)鏈進(jìn)行分類 |
| -d | 規(guī)定了兩個(gè)特征聚類的最長(zhǎng)距離. 默認(rèn)的是有重疊區(qū)間或者兩個(gè)區(qū)間緊鄰時(shí)才能聚類 |
cluster 示意圖:

4.8 Complement
bedtools complement 命令返回BED文件在一個(gè)基因組文件上的補(bǔ)集
示例:
bedtools complement -i <BED/GFF/VCF> -g <GENOME>
$ cat A.bed
chr1 100 200
chr1 400 500
chr1 500 800
$ cat my.genome
chr1 1000
chr2 800
$ bedtools complement -i A.bed -g my.genome
chr1 0 100
chr1 200 400
chr1 800 1000
chr2 0 800
complement 示意圖:

4.9 coverage
Bedtools coverage命令可以計(jì)算BED文件B在A文件上覆蓋的深度和廣度。例如bedtools coverage可以計(jì)算B文件在A文件特定的1kb窗口上的覆蓋情況。Coverage命令的一大優(yōu)勢(shì)是它不僅計(jì)算與A文件各特征的重疊數(shù)目,而且計(jì)算重疊的比例。此外coverage也計(jì)算了與A文件各個(gè)區(qū)間重疊的區(qū)域的大小。
示例:
bedtools coverage [OPTIONS] -a <FILE> \
-b <FILE1, FILE2, ..., FILEN>
$ cat A.bed
chr1 0 100
chr1 100 200
chr2 0 100
$ cat B.bed
chr1 10 20
chr1 20 30
chr1 30 40
chr1 100 200
$ bedtools coverage -a A.bed -b B.bed
chr1 0 100 3 30 100 0.3000000
chr1 100 200 1 100 100 1.0000000
chr2 0 100 0 0 100 0.0000000
4.10 flank
bedtools flank 命令會(huì)在輸入的區(qū)間的左右兩側(cè)形成兩個(gè)新的區(qū)間,但是在兩翼形成的區(qū)間不會(huì)超過(guò)染色體的大小范圍(也就是說(shuō)新形成的兩翼區(qū)間起始位置要大于0,終止位置要小于染色體的大?。?/p>
示例:
bedtools flank [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> [-b or (-l and -r)]
$ cat A.bed
chr1 100 200
chr1 500 600
$ cat my.genome
chr1 1000
$ bedtools flank -i A.bed -g my.genome -b 5
chr1 95 100
chr1 200 205
chr1 495 500
chr1 600 605
$ bedtools flank -i A.bed -g my.genome -l 2 -r 3
chr1 98 100
chr1 200 203
chr1 498 500
chr1 600 603
參數(shù):
| Option | Description |
|---|---|
| -b | 兩翼擴(kuò)展范圍的大小. 需是整數(shù) |
| -l | 左翼擴(kuò)展范圍的大小 .需是整數(shù) |
| -r | 右翼擴(kuò)展范圍的大小 .需是整數(shù) |
4.11 genomecov
bedtools genomecov 用于在基因組層面計(jì)算各個(gè)位點(diǎn)的覆蓋深度,覆蓋深度以單個(gè)堿基展示(-d參數(shù)),覆蓋深度以BED區(qū)域的形式展示(-bg參數(shù))
需要注意的點(diǎn)是:
- 如果輸入的格式是BED/GFF/VCF, 通過(guò)-i參數(shù)輸入的文件必須對(duì)染色體和位置進(jìn)行簡(jiǎn)單的排序(sort –k 1,1 in.bed),當(dāng)輸入的文件是BED/GFF/VCF格式時(shí),必須提供-g genome文件
- 當(dāng)輸入的格式是BAM格式時(shí),需要由-ibam參數(shù)導(dǎo)入,輸入的BAM文件也需要先進(jìn)行排序
示例:
bedtools genomecov [OPTIONS] [-i|-ibam] -g (iff. -i)
$ bedtools genomecov -ibam NA18152.bam -bg | head
chr1 554304 554309 5
chr1 554309 554313 6
chr1 554313 554314 1
chr1 554315 554316 6
chr1 554316 554317 5
chr1 554317 554318 1
chr1 554318 554319 2
chr1 554319 554321 6
chr1 554321 554323 1
chr1 554323 554334 7
genomecov 示意圖:

4.12 getfasta
Bedtools getfasta 命令可以從BED/GFF/VCF等格式定義的區(qū)間提取FASTA文件的中特定區(qū)域的序列。需要注意的點(diǎn)是:
- 輸入的FASTA文件的表頭必須和BED文件中染色體的列的名稱精確匹配
- 可以用UNIX的fold –w 60命令規(guī)定每行顯示的堿基的數(shù)目
示例:
bedtools getfasta [OPTIONS] -fi <input FASTA> -bed <BED/GFF/VCF>
$ cat test.fa
>chr1
AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG
$ cat test.bed
chr1 5 10
$ bedtools getfasta -fi test.fa -bed test.bed
>chr1:5-10
AAACC
# optionally write to an output file
$ bedtools getfasta -fi test.fa -bed test.bed -fo test.fa.out
$ cat test.fa.out
>chr1:5-10
AAACC
getfasta 示意圖:

4.13 groupby
Bedtools groupby 是一個(gè)有用的工具它可以對(duì)BED文件的部分列進(jìn)行分組,并對(duì)指定的列進(jìn)行統(tǒng)計(jì)。例如,如果一個(gè)文件的特定列(-g參數(shù)指定)已經(jīng)進(jìn)行了分組,groupby命令可以對(duì)指定的列(-c參數(shù))進(jìn)行統(tǒng)計(jì)。本工具不僅適用于基因組相關(guān)的研究,只要符合TAB鍵分隔的分組都可以用此工具處理。
示例:
bedtools groupby [OPTIONS] -i <input> -g <group columns> -c <op. column> -o <operation>
$ cat variantsToRepeats.bed
chr21 9719758 9729320 variant1 chr21 9719768 9721892 ALR/Alpha 1004 +
chr21 9719758 9729320 variant1 chr21 9721905 9725582 ALR/Alpha 1010 +
chr21 9719758 9729320 variant1 chr21 9725582 9725977 L1PA3 3288 +
chr21 9719758 9729320 variant1 chr21 9726021 9729309 ALR/Alpha 1051 +
chr21 9729310 9757478 variant2 chr21 9729320 9729809 L1PA3 3897 -
chr21 9729310 9757478 variant2 chr21 9729809 9730866 L1P1 8367 +
chr21 9729310 9757478 variant2 chr21 9730866 9734026 ALR/Alpha 1036 -
chr21 9729310 9757478 variant2 chr21 9734037 9757471 ALR/Alpha 1182 -
chr21 9795588 9796685 variant3 chr21 9795589 9795713 (GAATG)n 308 +
chr21 9795588 9796685 variant3 chr21 9795736 9795894 (GAATG)n 683 +
chr21 9795588 9796685 variant3 chr21 9795911 9796007 (GAATG)n 345 +
chr21 9795588 9796685 variant3 chr21 9796028 9796187 (GAATG)n 756 +
chr21 9795588 9796685 variant3 chr21 9796202 9796615 (GAATG)n 891 +
chr21 9795588 9796685 variant3 chr21 9796637 9796824 (GAATG)n 621 +
$ bedtools groupby -i variantsToRepeats.bed -g 1,2,3 -c 9
chr21 9719758 9729320 6353
chr21 9729310 9757478 14482
chr21 9795588 9796685 3604
$ bedtools groupby -i variantsToRepeats.bed -g 1,2,3 -c 9 -o min
chr21 9719758 9729320 1004
chr21 9729310 9757478 1036
chr21 9795588 9796685 308
參數(shù):
| Option | Description |
|---|---|
| -i | 需要進(jìn)行分類和統(tǒng)計(jì)的文件 |
| -g (-grp) | 指定哪些列進(jìn)行分類.指定分類的列可以逗號(hào)進(jìn)行分隔,或者是 采用范圍的方式(e.g. 1-4) |
| -c (-opCol) | 指定特定的需要進(jìn)行統(tǒng)計(jì)的列. 必須參數(shù) |
| -o (-op) | 統(tǒng)計(jì)參數(shù)的選擇,默認(rèn)是對(duì)統(tǒng)計(jì)列相同的類別進(jìn)行加和操作. |
| - | Valid operations: |
| - | sum - numeric only |
| - | count - numeric or text |
| - | count_distinct - numeric or text |
| - | min - numeric only |
| - | max - numeric only |
| - | mean - numeric only |
| - | median - numeric only |
4.14 intersect
bedtools intersect 命令可以篩選兩個(gè)基因組特征中的重疊區(qū)域。此外,它還設(shè)置了一系列參數(shù)可以輸出不同形式的重復(fù)區(qū)域,bedtools intersect輸入的格式可以是BED/GFF/VCF以及BAM格式。需要注意的是:從版本2.21.0開(kāi)始,intersect命令的-b參數(shù)可以輸入多個(gè)文件,也就是可以一次性分析一個(gè)查詢文件(-a參數(shù)輸入)與多個(gè)數(shù)據(jù)庫(kù)文件(-b參數(shù)輸入)的重疊區(qū)域。我們現(xiàn)在使用的版本是v2.17.0
示例:
bedtools intersect [OPTIONS] -a <FILE> \
-b <FILE1, FILE2, ..., FILEN>
參數(shù):
| Option | Description |
|---|---|
| -a | 輸入的A文件,格式可以是BAM/BED/GFF/VCF 格式. 每次比較的是A文件與B文件之間的交集 |
| -b | 輸入的B文件,格式可以是BAM/BED/GFF/VCF格式. 新版本的-b參數(shù)可以輸入多個(gè)文件,尋找多個(gè)文件之間的交集 |
| -abam | 輸入的BAM格式的A文件. 輸出BAM文件與 B文件區(qū)間的交集. 使用“stdin”代表管道的輸入,命令如下: samtools view -b <BAM>/bedtools intersect -abam stdin -b genes.bed |
| -ubam | 輸出未壓縮的BAM文件。默認(rèn)輸出的壓縮格式的BAM文件 |
| -bed | 當(dāng)輸入的A文件是BAM格式時(shí)(-abam),添加本參數(shù)輸出的是BED格式. 而不添加本參數(shù),默認(rèn)輸出的是BAM格式 |
| -wa | 輸出A文件與B文件的重疊區(qū)域,并保留A文件原有的輸入格式 |
| -wb | 輸出A文件與B文件的重疊區(qū)域,并保留B文件原有的輸入格式 |
| -loj | 如果A文件與B文件沒(méi)有重疊區(qū)域時(shí),默認(rèn)不輸出不重疊的區(qū)域。添加本參數(shù)后,不重疊區(qū)域也輸出,不過(guò)以不同形式顯示 |
| -wo | 添加本參數(shù)后,不僅輸出A文件與B文件的重疊區(qū)域,而且輸出重疊區(qū)域的大小 |
| -wao | 添加本參數(shù)后,不僅輸出A文件與B文件的重疊區(qū)域和重疊區(qū)域大小,同時(shí)輸出不重疊區(qū)域,不過(guò)以不同形式展示 |
| -u | 添加-u 參數(shù)只是輸出A文件中與B文件有重復(fù)區(qū)域的區(qū)間 |
intersect 示意圖:

4.15 Jaccard
Bedtools intersect 命令可以列舉出兩個(gè)文件中重疊的區(qū)間,但是我們經(jīng)常需要統(tǒng)計(jì)的是兩個(gè)文件中重疊區(qū)間的比例來(lái),以此來(lái)計(jì)算區(qū)間的相似程度。Jaccard 命令就統(tǒng)計(jì)了重疊區(qū)間占整個(gè)聯(lián)合區(qū)間的比例。
示例:
bedtools jaccard [OPTIONS] -a <BED/GFF/VCF> -b <BED/GFF/VCF>
$ cat a.bed
chr1 10 20
chr1 30 40
$ cat b.bed
chr1 15 20
$ bedtools jaccard -a a.bed -b b.bed
intersection union jaccard n_intersections
5 20 0.25 1
jaccard 示意圖:

4.16 links
該命令會(huì)創(chuàng)建一個(gè)HTML文件,該文件中的區(qū)間鏈接了UCSC瀏覽器網(wǎng)站的特定區(qū)域,這個(gè)工具對(duì)于手動(dòng)查看不同區(qū)間的注釋信息和其他特征非常有幫助。
示例:
linksBed [OPTIONS] -i <BED/GFF/VCF> > <HTML file>
head genes.bed
chr21 9928613 10012791 uc002yip.1 0 -
chr21 9928613 10012791 uc002yiq.1 0 -
chr21 9928613 10012791 uc002yir.1 0 -
chr21 9928613 10012791 uc010gkv.1 0 -
chr21 9928613 10061300 uc002yis.1 0 -
chr21 10042683 10120796 uc002yit.1 0 -
chr21 10042683 10120808 uc002yiu.1 0 -
chr21 10079666 10120808 uc002yiv.1 0 -
chr21 10080031 10081687 uc002yiw.1 0 -
chr21 10081660 10120796 uc002yix.2 0 -
linksBed -i genes.bed > genes.html
4.17 map
bedtools map命令可以統(tǒng)計(jì)B文件中與A文件重疊區(qū)域的特征。例如,bedtools map可以計(jì)算與A文件有重疊區(qū)域的B文件個(gè)區(qū)間score值的平均值,加和,最小值等指標(biāo)。
示例:
bedtools map [OPTIONS] -a <bed/gff/vcf> -b <bed/gff/vcf>
$ cat a.bed
chr1 10 20 a1 1 +
chr1 50 60 a2 2 -
chr1 80 90 a3 3 -
$ cat b.bed
chr1 12 14 b1 2 +
chr1 13 15 b2 5 -
chr1 16 18 b3 5 +
chr1 82 85 b4 2 -
chr1 85 87 b5 3 +
$ bedtools map -a a.bed -b b.bed
chr1 10 20 a1 1 + 12
chr1 50 60 a2 2 - .
chr1 80 90 a3 3 - 5
參數(shù):
| Option | Description |
|---|---|
| -c | 統(tǒng)計(jì)B文件與A文件重疊區(qū)間的特定列,默認(rèn)是第5列對(duì)score值進(jìn)行統(tǒng)計(jì) |
| -o | 對(duì)特定列統(tǒng)計(jì)的指標(biāo): |
| - | Valid operations: |
| - | sum - numeric only |
| - | count - numeric or text |
| - | count_distinct - numeric or text |
| - | min - numeric only |
| - | max - numeric only |
| - | absmin - numeric only |
| - | absmax - numeric only |
| - | mean - numeric only |
| - | 默認(rèn)是對(duì)列的score值進(jìn)行加和 |
map 示意圖:

4.18 maskfasta
與getfasta命令相反,bedtools maskfasta 命令可以根據(jù)輸入的文件的區(qū)間遮蓋特定的FASTA文件位點(diǎn),需要注意的是輸入的FASTA文件的表頭必須和BED文件中染色體的列的名稱精確匹配。
示例:
$ bedtools maskfasta [OPTIONS] -fi <input FASTA> -bed <BED/GFF/VCF> -fo <output FASTA>
$ cat test.fa
>chr1
AAAAAAAACCCCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG
$ cat test.bed
chr1 5 10
$ bedtools maskfasta -fi test.fa -bed test.bed -fo test.fa.out
$ cat test.fa.out
>chr1
AAAAANNNNNCCCCCCCCCCGCTACTGGGGGGGGGGGGGGGGGG
參數(shù):
| Option | Description |
|---|---|
| -soft | 添加該參數(shù)會(huì)將遮蓋區(qū)間內(nèi)的字母變?yōu)樾?xiě)。不添加該參數(shù),默認(rèn)將遮蓋區(qū)間內(nèi)的字母變?yōu)镹。 |
| -mc | 添加該參數(shù)會(huì)將遮蓋區(qū)間內(nèi)的字母變?yōu)檩斎胱址?/td> |
maskfasta 示意圖:

4.19 merge
Bedtools merge 命令可以將重疊的區(qū)間或者緊鄰的區(qū)間合并成一個(gè)新的區(qū)間。
示例:
bedtools merge [OPTIONS] -i <BED/GFF/VCF/BAM>
$ cat A.bed
chr1 100 200
chr1 180 250
chr1 250 500
chr1 501 1000
$ bedtools merge -i A.bed
chr1 100 500
chr1 501 1000
參數(shù):
| Option | Description |
|---|---|
| -s | 規(guī)定了相同的正負(fù)鏈才能進(jìn)行合并,默認(rèn)合并不考慮正負(fù)鏈信息 |
| -S | 規(guī)定只能選擇正鏈或者負(fù)鏈進(jìn)行合并‘+’,‘-’。默認(rèn)合并不考慮正負(fù)鏈信息 |
| -d | 規(guī)定了兩個(gè)區(qū)間合并的最長(zhǎng)距離. 默認(rèn)的是有重疊區(qū)間或者兩個(gè)區(qū)間緊鄰或者重疊時(shí)才能進(jìn)行合并 |
merge 示意圖:

4.20 multicov
Bedtools mulitcov 命令可以輸入多個(gè)BAM文件,與BED文件的各區(qū)間進(jìn)行比對(duì),分別計(jì)算各個(gè)區(qū)間重疊的比對(duì)數(shù)目。
示例:
bedtools multicov [OPTIONS] -bams BAM1 BAM2 BAM3 ... BAMn -bed <BED/GFF/VCF>
$ cat ivls-of-interest.bed
chr1 0 10000 ivl1
chr1 10000 20000 ivl2
chr1 20000 30000 ivl3
chr1 30000 40000 ivl4
$ bedtools multicov -bams aln1.bam aln2.bam aln3.bam -bed ivls-of-interest.bed
chr1 0 10000 ivl1 100 2234 0
chr1 10000 20000 ivl2 123 3245 1000
chr1 20000 30000 ivl3 213 2332 2034
chr1 30000 40000 ivl4 335 7654 0
4.21 window
與bedtools intersect 命令類似,window命令可以尋找A文件和B文件的重疊區(qū)域。然而,除了重疊區(qū)域,window命令還增加了特定的搜尋范圍(默認(rèn)是增加1000bp),它會(huì)將與A文件區(qū)間上下游特定范圍與B文件區(qū)域有重疊的區(qū)域也列出。
示例:
$ cat A.bed
chr1 100 200
$ cat B.bed
chr1 500 1000
chr1 1300 2000
$ bedtools window -a A.bed -b B.bed
chr1 100 200 chr1 500 1000
$ cat A.bed
chr1 100 200
$ cat B.bed
chr1 500 1000
chr1 1300 2000
-w 參數(shù)列出了增加搜索范圍的具體數(shù)值
$ bedtools window -a A.bed -b B.bed -w 5000
chr1 100 200 chr1 500 1000
chr1 100 200 chr1 1300 2000
window 示意圖:

4.22 Overlap
Overlap命令可以計(jì)算相同行中兩個(gè)重疊區(qū)域的大小
示例:
overlap [OPTIONS] -i <input> -cols s1,e1,s2,e2
windowBed -a A.bed -b B.bed -w 10
chr1 10 20 A chr1 15 25 B
chr1 10 20 C chr1 25 35 D
windowBed -a A.bed -b B.bed -w 10 | overlap -i stdin -cols 2,3,6,7
chr1 10 20 A chr1 15 25 B 5
chr1 10 20 C chr1 25 35 D -5
參數(shù):
| Option | Description |
|---|---|
| -i | 輸入文件.或者用“stdin”代替管道輸入. |
| -cols | 指定的列,分別代表兩個(gè)區(qū)間的起始和終止位置。輸入的各列必須按指定的方式排列: start1,end1,start2,end2 |
4.23 random
bedtools random 命令會(huì)產(chǎn)生一個(gè)BED6格式的隨機(jī)區(qū)間。可以用(-n)參數(shù)指定產(chǎn)生區(qū)間的數(shù)目,可以用(-l)參數(shù)指定產(chǎn)生區(qū)間的大小。
示例:
bedtools random [OPTIONS] -g <GENOME>
$ bedtools random -g hg19.genome -l 5
chr9 54133731 54133736 1 5 +
chr1 235288830 235288835 2 5 -
chr8 26744718 26744723 3 5 +
chr3 187313616 187313621 4 5 -
chr11 88996846 88996851 5 5 -
chr13 84714855 84714860 6 5 -
chr13 10759738 10759743 7 5 -
chr6 122569739 122569744 8 5 +
chr17 50884025 50884030 9 5 -
chr11 38576901 38576906 10 5 +
參數(shù):
| Option | Description |
|---|---|
| -l | 設(shè)定產(chǎn)生區(qū)間的大小,默認(rèn)是100bp |
| -n | 設(shè)定產(chǎn)生區(qū)間的個(gè)數(shù).默認(rèn)是1,000,000個(gè) |
| -seed | 設(shè)定隨機(jī)數(shù)種子產(chǎn)生特定的區(qū)間 |
random 示意圖:

4.24 reldist
Bedtools reldist 命令可以計(jì)算相對(duì)距離值,發(fā)現(xiàn)一些特定的基因組模式。傳統(tǒng)的兩組基因組區(qū)間相似性比較的方法是基于交叉間隔的數(shù)量或者比例。然而,這樣的測(cè)量方法在很大程度上忽略了兩組基因組之間的空間相關(guān)性,有些基因區(qū)間,盡管間隔一致或者接近,交叉點(diǎn)卻很少(例如,增強(qiáng)子和轉(zhuǎn)錄起始位點(diǎn)很少重疊,但他們彼此之間的距離比兩組隨機(jī)間隔要近得多)。如果兩個(gè)集合之間沒(méi)有空間相關(guān)性,那么在相對(duì)距離0至0.5之間應(yīng)該是均勻分布的。然而,如果間隔碰巧比預(yù)期近得多,觀測(cè)到的相對(duì)距離的分布就會(huì)向較低的相對(duì)距離值偏移(如下圖)。

示例:
bedtools reldist [OPTIONS] -a <BED/GFF/VCF> -b <BED/GFF/VCF>
$ bedtools reldist \
-a data/refseq.chr1.exons.bed.gz \
-b data/gerp.chr1.bed.gz
reldist count total fraction
0.00 20629 43422 0.475
0.01 2629 43422 0.061
0.02 1427 43422 0.033
0.03 985 43422 0.023
0.04 897 43422 0.021
0.05 756 43422 0.017
0.06 667 43422 0.015
0.07 557 43422 0.013
0.08 603 43422 0.014
reldist 示意圖:

4.25 shift
Bedtools shift命令可以將區(qū)間進(jìn)行橫向移動(dòng),相當(dāng)于
awk '{OFS="\t" print 2+<shift>,$3+<shift>}'命令,bedtools shift橫移后區(qū)間的范圍必須限定在染色體的范圍之內(nèi)(不能小于染色體的起始位置,不能大于染色體的終止位置)。
示例:
bedtools shift [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> [-s or (-m and -p)]
$ cat A.bed
chr1 5 100 +
chr1 800 980 -
$ cat my.genome
chr1 1000
$ bedtools shift -i A.bed -g my.genome -s 5
chr1 10 105 +
chr1 805 985 -
$ bedtools shift -i A.bed -g my.genome -p 2 -m -3
chr1 7 102 +
chr1 797 977 -
4.26 shuffle
bedtools shuffle 命令可以隨機(jī)的變換特征區(qū)間在基因組中的位置。還可以提供一個(gè)BED/GFF/VCF格式的文件,列出不希望放置的特殊區(qū)間。例如,人們不希望一些區(qū)間被放置在已知的基因組缺口中。
示例:
bedtools shuffle [OPTIONS] -i <BED/GFF/VCF> -g <GENOME>
$ cat A.bed
chr1 0 100 a1 1 +
chr1 0 1000 a2 2 -
$ cat my.genome
chr1 10000
chr2 8000
chr3 5000
chr4 2000
$ bedtools shuffle -i A.bed -g my.genome
chr4 1498 1598 a1 1 +
chr3 2156 3156 a2 2 -
參數(shù):
| Option | Description |
|---|---|
| -excl | 輸入的BED文件,指明不希望放置的區(qū)間 (e.g., genome gaps). |
| -incl | 輸入的BED文件,指明希望放置的區(qū)間 |
| -chrom | 進(jìn)行隨機(jī)變化位置時(shí),指定放置在相同染色體. 默認(rèn)情況下染色體和區(qū)間的位置都是隨機(jī)選擇的 |
| -seed | 設(shè)定隨機(jī)數(shù)種子產(chǎn)生特定的區(qū)間 |
shuffle 示意圖:

4.27 Slop
與flank功能類似,bedtools slop命令可以根據(jù)輸入?yún)?shù)擴(kuò)展輸入文件各區(qū)間的范圍。相當(dāng)于 awk '{OFS="\t" print 2-<slop>,$3+<slop>}'命令,擴(kuò)展后的區(qū)間范圍必須限定在染色體的范圍之內(nèi)(不能小于染色體的起始位置,不能大于染色體的終止位置)。
示例:
bedtools slop [OPTIONS] -i <BED/GFF/VCF> -g <GENOME> [-b or (-l and -r)]
$ cat A.bed
chr1 5 100
chr1 800 980
$ cat my.genome
chr1 1000
$ bedtools slop -i A.bed -g my.genome -b 5
chr1 0 105
chr1 795 985
$ bedtools slop -i A.bed -g my.genome -l 2 -r 3
chr1 3 103
chr1 798 983
參數(shù):
| Option | Description |
|---|---|
| -b | 規(guī)定區(qū)間左右兩側(cè)分別需要增加的堿基數(shù) |
| -l | 規(guī)定區(qū)間左側(cè)需要增加的堿基數(shù) |
| -r | 規(guī)定區(qū)間右側(cè)需要增加的堿基數(shù) |
slop 示意圖:

4.28 sort
bedtools sort 命令可以按照染色體或者其他標(biāo)準(zhǔn)進(jìn)行排序,默認(rèn)情況下,bedtools sort 命令首先按照染色體進(jìn)行升序排列,然后按照起始位置再進(jìn)行升序排列
示例:
bedtools sort [OPTIONS] -i <BED/GFF/VCF>
cat A.bed
chr1 800 1000
chr1 80 180
chr1 1 10
chr1 750 10000
sortBed -i A.bed
chr1 1 10
chr1 80 180
chr1 750 10000
chr1 800 1000
參數(shù):
| Option | Description |
|---|---|
| -sizeA | 按區(qū)間大小進(jìn)行升序排列 |
| -sizeD | 按區(qū)間大小進(jìn)行降序排列 |
| -chrThenSizeA | 首先根據(jù)染色體進(jìn)行排列,然后按區(qū)間大小進(jìn)行升序排列 |
| -chrThenSizeD | 首先根據(jù)染色體進(jìn)行排列,然后按區(qū)間大小進(jìn)行降序排列 |
| -chrThenScoreA | 首先根據(jù)染色體進(jìn)行排列,然后按score值進(jìn)行升序排列 |
| -chrThenScoreD | 首先根據(jù)染色體進(jìn)行排列,然后按score值進(jìn)行降序排列 |
4.29 Subtract
Bedtools subtract 命令計(jì)算區(qū)間之間的差集。如果A文件的區(qū)間和B文件的區(qū)間有重合,那就輸出A文件的區(qū)間時(shí)減去有重合區(qū)間的部分。
示例:
bedtools subtract [OPTIONS] -a <BED/GFF/VCF> -b <BED/GFF/VCF>
$ cat A.bed
chr1 10 20
chr1 100 200
$ cat B.bed
chr1 0 30
chr1 180 300
$ bedtools subtract -a A.bed -b B.bed
chr1 100 180
參數(shù):
| Option | Description |
|---|---|
| -f | 規(guī)定B文件的區(qū)間與A文件區(qū)間重合的區(qū)域占A區(qū)間的最小比例,只有重合區(qū)間大于這個(gè)比例,輸出差集時(shí)才減去這個(gè)重疊區(qū)間.默認(rèn)重疊區(qū)間的大小是1bp. |
| -F | 規(guī)定B文件的區(qū)間與A文件區(qū)間重合的區(qū)域占B區(qū)間的最小比例,只有重合區(qū)間大于這個(gè)比例,輸出差集時(shí)才減去這個(gè)重疊區(qū)間.默認(rèn)重疊區(qū)間的大小是1bp. |
| -r | 規(guī)定B文件的區(qū)間與A文件區(qū)間重合的區(qū)域占兩個(gè)區(qū)間的最小比例,只有重合區(qū)間大于這個(gè)比例,輸出差集時(shí)才減去這個(gè)重疊區(qū)間. |
| -s | 規(guī)定了取差集必須在相同的正負(fù)鏈之間進(jìn)行 |
| -S | 規(guī)定了取差集必須在相反的正負(fù)鏈之間進(jìn)行 |
| -A | 添加此參數(shù),如果A文件的任意區(qū)間與B文件的區(qū)間有重疊,則不只是重疊的部分被減去,而是整個(gè)區(qū)間都被減去 |
subtract 示意圖:

4.30 Unionbedg
Bedtools unionbedg 命令可以將多個(gè)樣本的BED文件組合成一個(gè)文件,這樣就可以直接來(lái)比較多個(gè)樣本不同區(qū)間的基因組特征差異
示例:
bedtools unionbedg [OPTIONS] -i FILE1 FILE2 FILE3 ... FILEn
cat 1.bg
chr1 1000 1500 10
chr1 2000 2100 20
cat 2.bg
chr1 900 1600 60
chr1 1700 2050 50
cat 3.bg
chr1 1980 2070 80
chr1 2090 2100 20
cat sizes.txt
chr1 5000
bedtools unionbedg -i 1.bg 2.bg 3.bg
chr1 900 1000 0 60 0
chr1 1000 1500 10 60 0
chr1 1500 1600 0 60 0
chr1 1700 1980 0 50 0
chr1 1980 2000 0 50 80
chr1 2000 2050 20 50 80
chr1 2050 2070 20 0 80
chr1 2070 2090 20 0 0
chr1 2090 2100 20 0 20
參數(shù):
| Option | Description |
|---|---|
| -header | 打印出表頭,包括BED文件的染色體,起始位置,終止位置以及定義的BED特征名稱 |
| -names | 輸入一組樣品名稱列表,添加header參數(shù)時(shí)名稱列表會(huì)顯示在表頭上 |
| -empty | 添加基因組文件時(shí)(-g),同時(shí)輸出各樣品沒(méi)有覆蓋的區(qū)間 |
| -g | 添加基因組文件 |
| -filler TEXT | 沒(méi)有覆蓋的區(qū)域以指定的字符(例如‘N/A’)進(jìn)行表示. 默認(rèn)是以0進(jìn)行表示 |
5 Bedtools支持的文件格式
5.1 BED格式
完整的BED格式有12列,但是只有前三列是必須的,以下是各列的信息
- chrom 染色體的名稱
- start 從0開(kāi)始的染色體上的起始位置
- end 從1開(kāi)始的染色體上的終止位置
- name 定義的BED的特征名稱
- score UCSC定的該score值的范圍是從0到1000。Bedtools允許任何字符串存儲(chǔ)在這個(gè)字段中,以便提供更大的注釋靈活性。例如該score可以存儲(chǔ)科學(xué)計(jì)數(shù)法表示的p值,或者富集平均值
- strand 存儲(chǔ)正負(fù)鏈信息
- thickStart 特征的起始位置(會(huì)被bedtools忽略)
- thickEnd 特征的終止位置(會(huì)被bedtools忽略)
- itemRgb RGB值(會(huì)被bedtools忽略)
- blockCount 間隔或者外顯子的數(shù)量(會(huì)被bedtools忽略)
- blockSizes 逗號(hào)分隔的間隔大?。〞?huì)被bedtools忽略)
- blockStarts 逗號(hào)分隔的間隔的起始位置(會(huì)被bedtools忽略)
完整BED格式示例
track name=pairedReads description="Clone Paired Reads" useScore=1
chr22 1000 5000 cloneA 960 + 1000 5000 0 2 567,488, 0,3512
chr22 2000 6000 cloneB 900 - 2000 6000 0 2 433,399, 0,3601
5.2 GFF格式
- seqname 序列或者染色體名稱 例如,“chr1”,“myChrom”
- source 特征的來(lái)源,包括生成特征的軟件,特征來(lái)源的數(shù)據(jù)庫(kù)
- feature 特征的類型 例如 "CDS" "start_codon" "stop_codon" and "exon"
- start 特征的起始位置
- end 特征的終止位置
- score 和BED文件的sorce值類似
- strand 鏈的正負(fù)值‘+’或‘-’
- frame 閱讀框,如果是外顯子的編碼區(qū)該值處于0-2之間,如果不是外顯子編碼區(qū)為‘-’
- group 所有特征行的分組信息
GFF格式示例
browser position chr22:10000000-10025000
browser hide all
track name=regulatory description="TeleGene(tm) Regulatory Regions" visibility=2
chr22 TeleGene enhancer 10000000 10001000 500 + . touch1
chr22 TeleGene promoter 10010000 10010100 900 + . touch1
chr22 TeleGene promoter 10020000 10025000 800 - . touch2
5.3 BEDPE格式
Bedtools定義了一種新的文件格式(BEDPE)用來(lái)處理沒(méi)有交集的基因組特征文件,如結(jié)構(gòu)變異或者雙端序列比對(duì)。封閉的BED12格式不能定義染色體間的特性,而且BED12只能表示一條鏈,對(duì)于雙端序列比對(duì)表示有缺陷,不能很好的展示結(jié)構(gòu)變異。BEDPE文件前10列是必須的,第11列是添加的額外信息。
- chrom1 第一個(gè)特征的染色體名稱
- start1 第一個(gè)特征的染色體的起始位置
- end1 第一個(gè)特征的染色體的終止位置
- chrom2 第二個(gè)特征的染色體的名稱
- start2 第二個(gè)特征的染色體的起始位置
- end2 第二個(gè)特征的染色體的終止位置
- name 定義的BEDPE名稱
- score UCSC定的該score值的范圍是從0到1000。Bedtools允許任何字符串存儲(chǔ)在這個(gè)字段中,以便提供更大的注釋靈活性。例如該score可以存儲(chǔ)科學(xué)計(jì)數(shù)法表示的p值,或者富集平均值
- strand1 第一個(gè)特征的正負(fù)鏈信息‘+’或‘-’
- strand2 第二個(gè)特征的正負(fù)鏈信息‘+’或‘-’
- 備選列 倆個(gè)特征的編輯距離,或者“deletion”,”inversion”等信息
BEDPE格式示例
chr1 10 20 chr5 50 60 a1 30 + - 0 1
chr9 30 40 chr9 80 90 a2 100 + - 2 1
5.4 “genome”文件
在使用Bedtools的一些參數(shù)(genomecov,complement,slop)時(shí),需要知道BED文件依賴的特定物種的染色體的大小。這時(shí)你需要自己構(gòu)建”gennome”文件,就是簡(jiǎn)單的羅列出染色體的名稱和對(duì)應(yīng)的染色體的大小,并以Tab鍵進(jìn)行分隔。
“genome”文件示例
chrI 15072421
chrII 15279323
chrX 17718854
chrM 13794