Sam/Bam文件格式詳解

作者:麥茬道
審稿:童蒙
編輯:amethyst

隨著生物信息數(shù)據(jù)的爆發(fā)式增長(zhǎng)铅乡,存儲(chǔ)生物信息的文件格式也多樣化起來(lái)溉委,不同的文件格式往往有不同的目的:
為了軟件之間的兼容性鹃唯;
人類(lèi)可讀的用于數(shù)據(jù)加工、解析和處理的格式瓣喊,比如.tsv,.csv等坡慌;
為了提高計(jì)算機(jī)計(jì)算效率的數(shù)據(jù)格式,一般可讀性不強(qiáng)的二進(jìn)制文件藻三,比如今天要講解到的bam文件洪橘。

介紹

bam文件是sam文件的二進(jìn)制格式,sam 文件是Sequence Alignment/Map Format的簡(jiǎn)寫(xiě)棵帽,產(chǎn)生于比對(duì)之后的數(shù)據(jù)輸出熄求,記錄了比對(duì)的具體情況。文件中以tab鍵分割逗概,包括上下兩部分:

  • Header section
  • Alignments section

01.Header section

  • 該部分全部以“@”開(kāi)頭弟晚,提供基本的軟件版本,參考序列信息,排序信息等
  • @HD行:這一行中有各種不同的標(biāo)識(shí)
  • 標(biāo)識(shí)“VN”用以說(shuō)明格式版本
  • 標(biāo)識(shí)“SO”用以說(shuō)明比對(duì)排序的情況卿城,有unknown (default)枚钓、unsorted、queryname和coordinate,對(duì)于coordinate瑟押,排序的主鍵是Alignments section的第三列“RNAME”搀捷,其順序由@SQ行的“SN”標(biāo)識(shí)的順序定義,次要排序鍵是Alignments section的第四列“POS”字段勉耀。對(duì)于RNAME和POS相等的比對(duì)指煎,排列順序則是任意的
  • @SQ行的“SN”標(biāo)簽是參考序列說(shuō)明蹋偏,它的值主要是用于Alignments section的第三列“RNAME”和第七列“MRNM”比對(duì)的記錄
  • @PG行是使用的程序說(shuō)明便斥;該行“ID”為程序記錄標(biāo)識(shí)符,“PN”為程序名字威始,“CL”為命令行
  • @CO行是任意的說(shuō)明信息

02.Alignments section

該部分包含了11列必需字段枢纠,無(wú)效或者沒(méi)有的字段一般用“0”或者“*”表示。
下面黎棠,以數(shù)據(jù)詳細(xì)介紹下bam文件的Alignments section中的每一列的含義晋渺。
下圖是reads比對(duì)情況的示意圖


  • Coor是參考基因組上的位置坐標(biāo)
  • ref為參考序列
  • +r001/1和-r001/2組成1對(duì)Reads
  • +r003和-r003是反向互補(bǔ)關(guān)系,其實(shí)是一條read
  • +r002脓斩、+r003和+r004都是單條read比對(duì)

下圖是將比對(duì)情況記錄成bam文件格式的樣子


圖中的Alignments section有6行12列信息詳細(xì)介紹了6條read的比對(duì)情況木西,其中前11列為必需字段,每列的含義簡(jiǎn)單匯總成下表随静。接下來(lái)八千,我們仔細(xì)解讀下表1中的信息。


第1列:Qname
Read的名字

第2列:FLAG
每一個(gè)read的比對(duì)情況可以用十進(jìn)制數(shù)字(或者十六進(jìn)制數(shù)字)表示燎猛,如果比對(duì)情況 有多個(gè)恋捆,將多個(gè)比對(duì)情況所代表的十進(jìn)制數(shù)字加和就是這一行的FLAG。
比如重绷,圖1中r001的FLAG是99(1+2+32+64)沸停,則表示了“該read是pair read中的一個(gè)”,“pair read中每個(gè)都能夠正確比對(duì)上”昭卓,“該read的mate read的反向互補(bǔ)可以比對(duì)上”愤钾,“該read是pari read中的read1”;r001的另一個(gè)FLAG是147(1+2+16+128)候醒,則表示“該read是pair read中的一個(gè)”能颁,“pair read中每個(gè)都能夠正確比對(duì)上”,“該read是原read的反向互補(bǔ)”火焰,“該read是pari read中的read2”(也就是說(shuō)劲装,該read是read2的反向互補(bǔ)序列)。
值得注意的是,r001是pair read占业,而且都能比對(duì)上绒怨,所以r001出現(xiàn)了兩次,如果r001的read1比對(duì)到參考序列的2個(gè)地方谦疾,r001的名字則會(huì)出現(xiàn)三次南蹂;如果read1比對(duì)上一次,read2沒(méi)有比對(duì)上念恍,r001仍會(huì)出現(xiàn)2次六剥,不過(guò),其中一個(gè)r001的第三列為“*”峰伙;所以pair-end測(cè)序疗疟,read1文件和read2文件同時(shí)mapping,相同reads的id最少出現(xiàn)2次瞳氓。
另策彤,以下網(wǎng)站可以通過(guò)輸入FLAG值,直接找出該FLAG是那些FLAG的加和:Decoding SAM flags(https://broadinstitute.github.io/picard/explain-flags.html


FLAG釋義表如下:

第3列:RNAME
比對(duì)上的參考序列的名字匣摘,該名字出現(xiàn)在Header section的@SQ行的SN標(biāo)識(shí)中店诗,如果該read沒(méi)有比對(duì)上,也就是說(shuō)該read在參考序列上沒(méi)有坐標(biāo)音榜,那么這一列則用“”表示庞瘸,那么這一行的POS和CIGAR列也會(huì)是“”。

第4列:POS
read比對(duì)到的參考序列“RNAME”最左側(cè)的位置坐標(biāo)赠叼,也是CIGAR中第一個(gè)比對(duì)標(biāo)識(shí)“M”對(duì)應(yīng)的最左側(cè)堿基在參考序列的位置擦囊,未比對(duì)上的read在參考序列中沒(méi)有坐標(biāo),此列標(biāo)識(shí)為“0”梅割。

第5列:MAPQ
比對(duì)的質(zhì)量值霜第,計(jì)算方法為比對(duì)錯(cuò)誤率的-10*log10的值,一般是四舍五入的整數(shù)值户辞,如果是255泌类,說(shuō)明該比對(duì)值無(wú)效。

第6列:CIGAR
CIGAR標(biāo)識(shí)符表示read中每個(gè)堿基的比對(duì)情況底燎,主要有以下標(biāo)識(shí)符:

  • M: alignment match (can be a sequence match or mismatch)
    read上的堿基與參考序列“RNAME”完全匹配刃榨,堿基一一對(duì)應(yīng)苛让,包括了正確匹配與錯(cuò)誤匹配
  • I: insertion to the reference
    read上的堿基相對(duì)于參考序列“RNAME”有插入現(xiàn)象(如下):
REF:  CACGATCA**GACCGATACGTCCGA 
READ1:  CGATCAGAGACCGATA 
CIGAR:6M2I8M
  • D: deletion from the reference
    read上的堿基相對(duì)于參考序列“RNAME”有刪除現(xiàn)象(如下):
REF: AGCTAGCATCGTGTCGCCCGTCTAGCATACGC
READ:             GTGTAACC-GACTAG
CIGAR:8M1D6M
  • N: skipped region from the reference
    read上的堿基相對(duì)于參考序列“RNAME”存在連續(xù)沒(méi)有比對(duì)上的空缺啼肩,這些空缺用N來(lái)表示懊亡,跟“D”相似但遠(yuǎn)比“D”缺失的更多惫撰,這種比對(duì)類(lèi)型也叫“Spliced alignment”,常見(jiàn)cDNA與參考序列比對(duì)(如下):"…"表示intron
REF:AGCATCGTGTCGCCCGTCTAGCATACGCATGATCGACTGTCAGCTAGTCAGACTA
READ:     GTGTAACCC................................TCAGAATA
CIGAR:9M32N8M
  • S: soft clipping (clipped sequences present in SEQ)
  • H: hard clipping (clipped sequences NOT present in SEQ)
    read的開(kāi)頭或者結(jié)尾部分沒(méi)有比對(duì)到參考序列"RNAME”上力九,但這部分未比對(duì)上的連續(xù)序列仍保留在sam文件的該read序列中卦睹,用“S”來(lái)表示金句;如果未保留,則用“H”表示搬卒,也即“hard cliping”(如下所示瑟俭,也可同圖2中r003的比對(duì)CIGAR中看出)
REF: AGCTAGCATCGTGTCGCCCGTCTAGCATACGCAT
READ:          gggGTGTAACC-GACTAGgggg
CIGAR:3S8M1D6M4S (在sam中存儲(chǔ)為GGGGTGTAACCGACTAGGGGG)
CIGAR:3H8M1D6M4H (在sam中存儲(chǔ)為GTGTAACCGACTAG)
  • P: padding (silent deletion from padded reference)
    多條read比對(duì)到參考序列的同一位置時(shí),如果不同read單獨(dú)同該參考序列比對(duì)時(shí)契邀,參考序列的情況也不同摆寄,比如下方READ1同參考序列比對(duì)時(shí),“GA”屬于插入(6M2I8M)坯门,READ2同參考序列比對(duì)時(shí)微饥,“A”屬于插入(4M1I9M ),READ3同參考序列完全匹配(10M)古戴,沒(méi)有插入欠橘,但是三條read之前卻沒(méi)有可比性。因此允瞧,當(dāng)參考序列“比對(duì)情況包含完整”且序列唯一時(shí)简软,所有read同時(shí)進(jìn)行比對(duì),read3這種原本沒(méi)有插入?yún)s默認(rèn)插入的比對(duì)稱(chēng)之為Padded alignment述暂,這種情況用“P”表示。
REF:  CACGATCA**GACCGATACGTCCGA 
READ1:  CGATCAGAGACCGATA 
READ2:    ATCA*AGACCGATAC 
READ3:   GATCA**GACCG  
The padded CIGAR are different: 
READ1: 6M2I8M 
READ2: 4M1P1I9M 
READ3: 5M2P5M
  • =:sequence match 正確匹配
  • X:sequence mismatch 錯(cuò)誤匹配

第7列:MRNM
該read的mate read比對(duì)上的參考序列的名字建炫,該名字出現(xiàn)在Header section的@SQ行的SN標(biāo)識(shí)中畦韭,

  • 如果和該read所在行的第三列“RNAME”一樣,則用“=”表示肛跌,說(shuō)明這對(duì)read比對(duì)到了同一條參考序列上艺配;
  • 如果mate read沒(méi)有比對(duì)上,第七列則用“*”表示衍慎;
  • 如果這對(duì)read沒(méi)有比對(duì)到同一條參考序列转唉,那么這一列則是mate read所在行第三列的“RNAME”。

第8列:MPOS
該read的mate read比對(duì)到的參考序列“RNAME”最左側(cè)的位置坐標(biāo)稳捆,也是mate read CIGAR中第一個(gè)比對(duì)標(biāo)識(shí)“M”對(duì)應(yīng)的最左側(cè)堿基在參考序列的位置赠法,未比對(duì)上的read在參考序列中沒(méi)有坐標(biāo),此列標(biāo)識(shí)為“0”乔夯。

第9列:ISIZE
表示pair read完全匹配到同一條參考序列時(shí)砖织,兩個(gè)read之間的長(zhǎng)度,可簡(jiǎn)單理解為測(cè)序文庫(kù)的長(zhǎng)度末荐。這個(gè)定義有兩種情況(虛線(xiàn)表示未比對(duì)上的序列侧纯,即soft-clipped bases):

  • 第一種情況如圖4左所示,Read1和Read2比對(duì)到同一條參考序列甲脏,此時(shí)ISIZE即為Read2的最右側(cè)比對(duì)坐標(biāo)減去Read1最左側(cè)比對(duì)坐標(biāo)眶熬;
  • 第二種情況如圖4右所示妹笆,由于至今沒(méi)有明確的定義和共識(shí),因此ISIZE可以是TLEN#1娜氏,也可以是TLEN#2晾浴,視情況而定。


第10列:SEQ
存儲(chǔ)的序列牍白,沒(méi)有存儲(chǔ)脊凰,此列則用“*”標(biāo)識(shí)。該序列的長(zhǎng)度一定等于CIGAR標(biāo)識(shí)中“M”茂腥,“I”狸涌,“S”,“=”最岗,“X”標(biāo)識(shí)的堿基長(zhǎng)度之和帕胆。

第11列:QUAL
序列的每個(gè)堿基對(duì)應(yīng)一個(gè)堿基質(zhì)量字符,每個(gè)堿基質(zhì)量字符對(duì)應(yīng)的ASCII碼值減去33(Sanger Phred-33 質(zhì)量值體系)般渡,即為該堿基的測(cè)序質(zhì)量得分(Phred Quality Score)懒豹。不同Phred Quality Score代表不同的堿基測(cè)序錯(cuò)誤率,如Phred Quality Score值為20和30分別表示堿基測(cè)序錯(cuò)誤率為1%和0.1%驯用。

參考資料

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末脸秽,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子蝴乔,更是在濱河造成了極大的恐慌记餐,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件薇正,死亡現(xiàn)場(chǎng)離奇詭異片酝,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)挖腰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)雕沿,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人猴仑,你說(shuō)我怎么就攤上這事审轮。” “怎么了宁脊?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵断国,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我榆苞,道長(zhǎng)稳衬,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任坐漏,我火速辦了婚禮薄疚,結(jié)果婚禮上碧信,老公的妹妹穿的比我還像新娘。我一直安慰自己街夭,他們只是感情好砰碴,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著板丽,像睡著了一般呈枉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上埃碱,一...
    開(kāi)封第一講書(shū)人閱讀 51,125評(píng)論 1 297
  • 那天猖辫,我揣著相機(jī)與錄音,去河邊找鬼砚殿。 笑死啃憎,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的似炎。 我是一名探鬼主播辛萍,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼羡藐!你這毒婦竟也來(lái)了贩毕?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤传睹,失蹤者是張志新(化名)和其女友劉穎耳幢,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體欧啤,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年启上,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了邢隧。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡冈在,死狀恐怖倒慧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情包券,我是刑警寧澤纫谅,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布,位于F島的核電站溅固,受9級(jí)特大地震影響付秕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜侍郭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一询吴、第九天 我趴在偏房一處隱蔽的房頂上張望掠河。 院中可真熱鬧,春花似錦猛计、人聲如沸唠摹。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)勾拉。三九已至,卻和暖如春盗温,著一層夾襖步出監(jiān)牢的瞬間藕赞,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工肌访, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留找默,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓吼驶,卻偏偏與公主長(zhǎng)得像惩激,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蟹演,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 一风钻、首先需要知道以下幾個(gè)知識(shí)點(diǎn): 詳細(xì)內(nèi)容請(qǐng)參考:http://samtools.github.io/hts-sp...
    二傻吧閱讀 9,745評(píng)論 0 18
  • RNA-seq或者ChIP-seq等等測(cè)序的上游分析流程里的比對(duì)步驟相信大家都知道,我之前也只是按照各種教程去走流...
    生信start_site閱讀 14,819評(píng)論 1 32
  • 前言 在各個(gè)行業(yè)都是有行業(yè)標(biāo)準(zhǔn)的唆途,這樣才能統(tǒng)一規(guī)范而方便后面的分析,在生物信息學(xué)領(lǐng)域中主要是各種大量序列數(shù)據(jù)掸驱、注釋...
    天涯清水閱讀 18,933評(píng)論 0 74
  • 表情是什么肛搬,我認(rèn)為表情就是表現(xiàn)出來(lái)的情緒。表情可以傳達(dá)很多信息毕贼。高興了當(dāng)然就笑了温赔,難過(guò)就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 124,908評(píng)論 2 7
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險(xiǎn)厭惡者帅刀,不喜歡去冒險(xiǎn)让腹,但是人生放棄了冒險(xiǎn)远剩,也就放棄了無(wú)數(shù)的可能。 ...
    yichen大刀閱讀 6,046評(píng)論 0 4