生信常用文件格式--SAM/BAM

SAM格式規(guī)范(V 1.6)

SAM為Sequence Alignment/Map格式秤标,一種由制表符(Tab)分隔的文本格式,由header部分(可選)和alignment部分組成唯蝶。當header部分存在時悍缠,必須在alignment部分前,且以“@”開頭。alignment部分有11列必填字段(下文介紹)满钟。

header部分

每個header行以字符“@”開頭胜榔,后跟本節(jié)中定義的兩個字母header記錄類型代碼之一。在header中湃番,每一行都以制表符分隔夭织,除了@CO行,每個數(shù)據(jù)字段都遵循一種格式“Tag:Value”吠撮,其中Tag是一個兩個字符的字符串尊惰,用于定義值的格式和內(nèi)容。

下表描述了@HD可能使用預(yù)定義Tag泥兰。

@HD為文件級元數(shù)據(jù)弄屡。可選擇的鞋诗。如果存在膀捷,則必須只有一個@HD行,它必須是文件的第一行削彬。

Tag 描述
VN 文件格式版本全庸,@HD存在時必須
SO alignments的排列順序。有效值:未知(默認)融痛、未排序壶笼、QueryName和坐標。對于坐標排序雁刷,主要排序鍵是RNAME字段覆劈,使用標頭中的@SQ行順序定義的順序。次要排序鍵是POS字段沛励。對于具有相同RNAME和POS的對齊责语,順序是任意的。在NameField中帶有“*”的所有對齊方式都遵循帶有其他值的對齊方式侯勉,但在其他情況下,它們的順序是任意的铝阐。對于queryname的順序址貌,除了在整個文件中一致應(yīng)用排序之外,沒有對排序提出明確要求
GO alignments分組徘键,表示相似的alignments記錄被分組在一起练对,但文件不必整體排序。有效值:無(默認)吹害、查詢(alignments按QName分組)和引用(alignments按Name/POS分組)螟凭。
SS alignments的子排序順序。有效值的格式為sort order:sub sort它呀,其中sort order是存儲在SO Tag中的相同值螺男,sub sort是一個依賴于實現(xiàn)的冒號分隔字符串棒厘,進一步描述排序順序,如果一個算法依賴于一個坐標排序下隧,在每個坐標處奢人,該排序按查詢名稱進一步排序,則標頭可以包含@HD SO:coordinate SS:coordinate:queryname淆院。如果主排序不是預(yù)定義的主排序順序之一何乎,則應(yīng)使用未排序,并且子排序?qū)嶋H上是主排序土辩。例如支救,如果按輔助標記按坐標排序,則標題可以包含@HD SO:unsorted SS:unsorted:MI:coordinate

下表描述了@SQ可能使用預(yù)定義Tag拷淘。

@SQ描述參考基因組信息各墨,此行定義alignment行的順序

Tag 描述
SN 參考序列名。所有@SQ行中的SN標簽和所有獨立的AN名稱必須是不同的辕棚,為必填字段
LN 參考序列長度欲主,為必填字段
AH 表明該序列是一個備用軌跡。該值是該序列作為替代序列的主程序集中的軌跡逝嚎,格式為“chr:start-end”扁瓢、“chr”(如果已知)或“*”(如果未知),其中“chr”是主要組裝結(jié)果中的序列
AN 可選參考序列名稱
AS 基因組組裝標識符
DS 描述补君,可以使用UTF-8編碼
M5 序列的MD5校驗
SP 物種
TP 分子拓撲引几。有效值:linear(默認)和circular
UR 參考序列的URI,這個值從一個標準的協(xié)議開始挽铁,例如伟桅,“http:”或“ftp:”,如果不是這些協(xié)議作為開始叽掘,那么就應(yīng)該是文件系統(tǒng)路徑

下表描述了@RG可能使用預(yù)定義Tag楣铁。

@RG為Read Group,1個樣本的測序結(jié)果為1個Read Group更扁,允許有多個無序的@RG行

Tag 描述
ID Read Group標識符盖腕。每一個@RG行必須有唯一的ID。ID的值用于alignments記錄的RG標記浓镜。在header部分的所有Read Group中必須是唯一的溃列。在合并SAM文件以處理沖突時,可以修改Read Group的ID膛薛,為必填項
BC 識別樣本或庫的條形碼序列听隐。該值是在沒有錯誤的情況下,測序機讀取的預(yù)期條形碼基數(shù)哄啄。如果樣本/庫有多個條形碼(例如雅任,模板兩端各有一個)风范,建議使用連字符('-')將所有條形碼連接起來
CN 測序中心提供的read名稱
DS 描述,可以使用UTF-8編碼
DT 生產(chǎn)運行的日期(ISO8601日期或日期/時間)椿访。
FO 流動順序乌企。與每次讀取的每個流所用核苷酸相對應(yīng)的核苷酸堿基陣列。多堿基流以IUPAC格式編碼成玫,非核苷酸流以各種其他字符編碼加酵。
KS 與每次讀取的鍵序列相對應(yīng)的核苷酸堿基數(shù)組。
LB 文庫
PG 用于處理Read Group的程序哭当。
PI 預(yù)測的中間插入大小
PL 用于產(chǎn)生讀數(shù)的平臺/技術(shù)猪腕。有效值:CAPILLARY、DNBSEQ(MGI/BGI)钦勘、HELICOS陋葡、ILLUMINA、IONTORRENT彻采、LS454腐缤、ONT(Oxford Nanopore)、PACBIO(Pacific Biosciences)和固體肛响。當技術(shù)不在此列表中(盡管在這種情況下PM字段可能仍然存在)或未知時岭粤,應(yīng)省略此字段。
PM 平臺模型特笋。提供所用平臺/技術(shù)的更多詳細信息的自由格式文本剃浇。
PU 平臺單元(例如,flowcell條形碼猎物。用于照明的滑道或用于固體的滑道)虎囚。唯一標識符
SM 樣品,在對池進行排序的位置使用池名稱

下表描述了@PG可能使用預(yù)定義Tag蔫磨。

@PG為program

Tag 描述
ID 程序記錄標識符
PN 程序名稱
CL 命令行淘讥,可以使用UTF-8編碼
PP 前面的@PG-ID,必須匹配另一個@PG header的ID標簽堤如∑蚜校可以使用PP標記鏈接@PG記錄,鏈中的最后一條記錄沒有PP標記煤惩。該鏈定義應(yīng)用于對齊的程序的順序嫉嘀。在合并SAM文件以處理PG id沖突時炼邀,可以修改PP值魄揉。鏈中的第一個PG記錄(即SAM記錄中的PG標記所引用的記錄)描述了在SAM記錄上操作的最新程序。鏈中的下一個PG記錄描述了在SAM記錄上操作的下一個最新程序拭宁。SAM記錄上的PG ID不需要引用鏈中最新的PG記錄洛退。它可以引用鏈中的任何PG記錄瓣俯,這意味著SAM記錄已經(jīng)被PG記錄中的程序操作過,并且程序通過PP標記引用
DS 描述兵怯,可以使用UTF-8編碼
VN 程序版本

@CO為單行文本的評論彩匕。允許多個@CO行無序排列,可以使用UTF-8編碼


alignment部分

必填字段
字段 類型 簡單描述
1 QNAME String 查詢template名
2 FLAG Int 位標記媒区,template mapping情況的數(shù)字表示驼仪,每一個數(shù)字代表一種比對情況,這里的值是符合情況的數(shù)字相加總和
3 RNAME String 參考序列名稱
4 POS Int 基于1的最左比對位置
5 MAPQ Int 比對質(zhì)量
6 CIGAR String CIGAR字符串
7 RNEXT String 比對到的參考(染色體)名字
8 PNEXT Int 配對到的第一個堿基的位置
9 TLEN Int 可以理解為文庫插入片段長度
10 SEQ String 序列片段
11 QUAL String Phred-scale的ASCII碼袜漩,基于QUALity+33

下面詳細解釋每個字段的意義

  • 1绪爸、QNAME:查詢模板名稱。具有相同QNAME的Reads/segments被認為來自相同的template宙攻。QNAME為“*”表示信息不可用奠货。

  • 2、FLAG 位標記座掘,下表是每一個代號代表的意義

Bit 描述
1 標示對應(yīng)的二進制為01递惋,標示read有多個測序數(shù)據(jù),一般理解為有雙端測序數(shù)據(jù)溢陪,另一條沒有過濾掉
2 Pair對完美比對上
4 代表這個序列沒有mapping到參考序列上
8 代表這個序列的另一端序列沒有比對到參考序列上萍虽,比如這條序列是R1,它對應(yīng)的R2端序列沒有比對到參考序列上
16 代表這個序列比對到參考序列的負鏈上
32 代表這個序列對應(yīng)的另一端序列比對到參考序列的負鏈上
64 代表這個序列是R1端序列,read1
128 代表這個序列是R2端序列嬉愧,read2
256 代表這個序列不是主要的比對贩挣,一條序列可能比對到參考序列的多個位置,只有一個是首要的比對位置没酣,其他都是次要的
512 該read沒有通過質(zhì)量控制
1024 代表這個序列是PCR重復(fù)序列
2048 這條read可能存在嵌合王财,這個比對的部分只是來自其中的一部分序列(Supplementary alignment)
  • 3、RNAME:比對的參考序列名稱裕便,如果@SQ頭部行存在绒净,RNAME(如果不是“*”)必須出現(xiàn)在一個SQ-SN標記中。沒比對上此處就是“*”偿衰。然而挂疆,一個未必對的片段也有一個坐標以便排序。如果RNAME 是“*”下翎,也就沒有 POS 和 CIGAR

  • 4缤言、POS:于1的第一個匹配基的最左映射位置。參考序列中的第一個基的坐標是1视事。對于沒有坐標的未映射讀取胆萧,POS設(shè)置為0。如果POS為0俐东,RNAME和CIGAR也就沒有意義

  • 5跌穗、MAPQ:mapping質(zhì)量订晌,等于?10log10Pr(映射位置是錯的),四舍五入到最近的整數(shù)蚌吸,值255表示映射質(zhì)量特別差

  • 6锈拨、CIGAR:CIGAR字符串。下表為CIGAR字符串的解釋(‘*’表示無值)

Op BAM 描述 消耗待比對序列 消耗參考序列
M 0 位置能比對上 yes yes
I 1 相對參考序列有插入 yes no
D 2 相對參考序列有缺失 no yes
N 3 從參考序列上跳過一段 no yes
S 4 軟切割(被切割的序列保留在SEQ中) yes no
H 5 硬切割(被切割的序列不出現(xiàn)在SEQ中) no no
P 6 補陡搿(打了補丁的參考序列中的沉默缺失) no no
= 7 read堿基與參考序列相同 yes yes
X 8 read堿基與參考序列不同 yes yes

解釋:

  1. "消耗查詢序列"與"消耗參考序列"分別指CIGAR是否引起比對沿著查詢序列和參考序列的方向向前前進一個或幾個堿基
  2. H 只能出現(xiàn)在CIGAR的開始或最后
  3. S的兩邊必為H奕枢,否則必須位于CIGAR的兩端
  4. 對于mRNA到基因組的比對,N表示內(nèi)含子佩微。對于其他類型的比對验辞,N的解釋未被定義
  5. MIS=X的長度和應(yīng)該等于SEQ長度
  • 7、RNEXT:表示下一個片段比對上的參考序列的編號喊衫,比對不上用’*‘跌造,該片段和下一個片段比對上同一個參考片段,用“=”

  • 8族购、PNEXT:表示下一個片段比對上的位置壳贪,如果不可用,此處為0

  • 9寝杖、TLEN:表示Template的長度违施。如果第八列大于第四列担钮,則為正數(shù)陨囊,否則負數(shù)

  • 10框喳、SEQ:表示序列片段的序列信息项贺,(注意CIGAR中M/I/S/=/X對應(yīng)數(shù)字的和要等于序列長度),表示read的堿基序列觉啊,如果是比對到互補鏈上則是反轉(zhuǎn)互補序列

  • 11嘉抒、QUAL:序列的質(zhì)量信息, read質(zhì)量的ASCII編碼姿鸿。格式同F(xiàn)ASTQ一樣

  • 12殖卑、第十二列及之后:Optional fields站削,以tab建分割,可參考http://samtools.github.io/hts-specs/SAMv1.pdf


BAM文件

bam文件和sam文件內(nèi)容其實是一樣的孵稽,只是bam是二進制的壓縮文件许起,需要通過特定的軟件來進行查看,如samtools


一些術(shù)語和概念

Template:一種DNA/RNA序列菩鲜,其一部分在測序機上測序或由原始序列組裝而成园细。
Segment:一個連續(xù)的序列或子序列。
Read:從測序機中產(chǎn)生的原始序列接校。一次讀取可能由多個段組成猛频。對于排序數(shù)據(jù),讀取按順序進行索引。
Linear alignment:一種將讀取序列與單個參考序列對齊的方法伦乔,該方法可以包括插入、刪除董习、跳過和剪切烈和,但不包括方向變化(即,正向鏈上的一部分對齊和反向鏈上的另一部分對齊)皿淋。線性對齊可以在單個SAM記錄中表示招刹。
Chimeric alignment:不能表示為線性對齊的讀取的對齊方式。嵌合排列被表示為一組沒有大重疊的線性排列窝趣。通常疯暑,嵌合體對齊中的一個線性對齊被視為“代表性”對齊,其他對齊被稱為“補充”對齊哑舒,并通過補充對齊標志進行區(qū)分妇拯。
Read alignment:一種線性對齊或嵌合體對齊,它是讀卡器對齊的完整表示洗鸵。
Multiple mapping:讀取的正確位置可能不明確越锈,例如。G由于重復(fù)膘滨。在這種情況下甘凭,同一讀取可能有多個讀取對齊。其中一條路線被視為主要路線火邓。所有其他路線都在代表它們的SAM記錄中設(shè)置了次級路線標志丹弱。所有SAM記錄的0x40和0x80標志具有相同的eqname和相同的值。通常铲咨,指定的主路線是最佳路線躲胳,但決策可能是任意的。
1-based coordinate system:一種坐標系纤勒,其中序列的第一個基是一泛鸟。在此坐標系中,區(qū)域由閉合間隔指定踊东。例如北滥,第3和第7堿基之間的區(qū)域為[3,7]。SAM闸翅、VCF再芋、GFF和Wiggle格式使用基于1的坐標系。
0-based coordinate system:序列的第一個基為零的坐標系坚冀。在此坐標系中济赎,區(qū)域由半閉半開區(qū)間指定。例如,第3和第7個基點之間的區(qū)域為[2,7)司训。BAM构捡、BCFv2、BED和PSL格式使用基于0的坐標系壳猜。
Phred scale:給定概率0< p ≤1, p的Phred scale等于?10log10p后的值四舍五入到最接近的整數(shù)勾徽。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市统扳,隨后出現(xiàn)的幾起案子喘帚,更是在濱河造成了極大的恐慌,老刑警劉巖咒钟,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件吹由,死亡現(xiàn)場離奇詭異,居然都是意外死亡朱嘴,警方通過查閱死者的電腦和手機倾鲫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來萍嬉,“玉大人级乍,你說我怎么就攤上這事≈阆妫” “怎么了玫荣?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長大诸。 經(jīng)常有香客問我捅厂,道長,這世上最難降的妖魔是什么资柔? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任焙贷,我火速辦了婚禮,結(jié)果婚禮上贿堰,老公的妹妹穿的比我還像新娘辙芍。我一直安慰自己,他們只是感情好羹与,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布故硅。 她就那樣靜靜地躺著,像睡著了一般纵搁。 火紅的嫁衣襯著肌膚如雪吃衅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天腾誉,我揣著相機與錄音徘层,去河邊找鬼峻呕。 笑死,一個胖子當著我的面吹牛趣效,可吹牛的內(nèi)容都是我干的瘦癌。 我是一名探鬼主播,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼跷敬,長吁一口氣:“原來是場噩夢啊……” “哼讯私!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起干花,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎楞黄,沒想到半個月后池凄,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡鬼廓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年肿仑,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碎税。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡尤慰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出雷蹂,到底是詐尸還是另有隱情伟端,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布匪煌,位于F島的核電站责蝠,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏萎庭。R本人自食惡果不足惜霜医,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望驳规。 院中可真熱鬧肴敛,春花似錦、人聲如沸吗购。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捻勉。三九已至昨登,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間贯底,已是汗流浹背丰辣。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工撒强, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人笙什。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓飘哨,卻偏偏與公主長得像,于是被迫代替她去往敵國和親琐凭。 傳聞我的和親對象是個殘疾皇子芽隆,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

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