Sam&bam文件
SAM是一種序列比對格式標准, 由sanger制定,是以TAB為分割符的文本格式。主要應用於測序序列mapping到基因組上的結果表示,當然也可以表示任意的多重比對結果。當測序得到的fastq文件map到基因組之后,我們通常會得到一個sam或者bam為擴展名的文件。SAM的全稱是sequence alignment/map format。而BAM就是SAM的二進制文件(B取自binary)。
SAM由頭文件和map結果組成。頭文件由一行行以@起始的注釋構成;而map結果是類似下面的東西:在SAM輸出的結果中每一行都包括十二項通過Tab分隔,從左到右分別是:
1 序列的名字(ID)
2 概括出一個合適的標記,各個數字分別代表
- 1? 序列是一對序列中的一個
- 2? 比對結果是一個pair-end比對的末端
- 4? 沒有找到位點
- 8? 這個序列是pair中的一個但是沒有找到位點
- 16? 在這個比對上的位點,序列與參考序列反向互補
- 32? 這個序列在pair-end中的的mate序列與參考序列反響互補
- 64 序列是 mate 1
- 128 序列是 mate 2
假如說標記為以上列舉出的數目,就可以直接推斷出匹配的情況。假如說標記不是以上列舉出的數字,比如說83=(64+16+2+1),就是這幾種情況值和。
3? 參考序列的名字
4 在參考序列上的位置(頭or尾?)
5? mapping qulity?? 越高則位點越獨特
bowtie2有時並不能完全確定一個短的序列來自與參考序列的那個位置,特別是對於那些比較簡單的序列。但是bowtie2會給出一個值來顯示出 這個段序列來自某個位點的概率值,這個值就是mapping qulity。Mapping qulity的計算方法是:Q=-10log10p,Q是一個非負值,p是這個序列不來自這個位點的估計值。
假如說一條序列在某個參考序列上找到了兩個位點,但是其中一個位點的Q明顯大於另一個位點的Q值,這條序列來源於前一個位點的可能性就比較大。Q值的差距越大,這獨特性越高。
Q值的計算方法來自與SAM標准格式,請查看SAM總結。
6 代表比對結果的CIGAR字符串,如37M1D2M1I,這段字符的意思是37個匹配,1個參考序列上的刪除,2個匹配,1個參考序列上的插入。M代表的是alignment match(可以是錯配)
7? mate 序列所在參考序列的名稱
8 mate 序列在參考序列上的位置
9? 估計出的片段的長度,當mate 序列位於本序列上游時該值為負值。
10 read的序列
11 ASCII碼格式的序列質量
12 可選的區域
- AS:i? 匹配的得分
- XS:i? 第二好的匹配的得分
- YS:i? mate 序列匹配的得分
- XN:i? 在參考序列上模糊鹼基的個數
- XM:i? 錯配的個數
- XO:i? gap open的個數
- XG:i? gap 延伸的個數
- NM:i? 編輯距離。但是不包含頭尾被剪切的序列。一般來說等於序列中error base的個數
- YF:i? 說明為什么這個序列被過濾的字符串
- YT:Z
- MD:Z? 代表序列和參考序列錯配的字符串
不同軟件比對出來的sam文件略有不同,一下就bowtie以及samtools兩種軟件輸出的文件格式分別說明。
SAM-bowtie2版本
1,簡介:
文件后綴名:.sam
Bowtie2是現下最流行的短序列比對軟件,SAM(Sequence Alignment/Map)格式是一種通用的比對格式,用來存儲reads到參考序列的比對信息。
注釋:以@開頭的行
行:除注釋外,每一行是一個read
列:
第一列:read name,read的名字通常包括測序平台等信息
eg.ILLUMINA-379DBF:1:1:3445:946#0/1
第二列:sum of flags,為flag的總和(整數),flag取值見備注(3)
eg.16
第三列:RNAM,reference sequence name,實際上就是比對到參考序列上的染色體號。若是無法比對,則是*
eg.chr1
第四列:position,read比對到參考序列上,第一個鹼基所在的位置。若是無法比對,則是0
eg.36576599
第五列:Mapping quality,比對的質量分數,越高說明該read比對到參考基因組上的位置越唯一。
eg.42
第六列:CIGAR值,鹼基匹配上的鹼基數。match/mismatch、insertion、deletion 對應字母 M、I、D
eg.36M 表示36個鹼基在比對時完全匹配
注:第七列到第九列是mate(備注1)的信息,若是單末端測序這幾列均無意義。
第七列:MRNM(chr),mate的reference sequence name,實際上就是mate比對到的染色體號,若是沒有mate,則是*
eg.*
第八列:mate position,mate比對到參考序列上的第一個鹼基位置,若無mate,則為0
eg.0
第九列:ISIZE,Inferred fragment size.詳見Illumina中paired end sequencing 和 mate pair sequencing,是負數,推測應該是兩條read之間的間隔(待查證),若無mate則為0
eg.0
第十列:Sequence,就是read的鹼基序列,如果是比對到互補鏈上則對read進行了reverse completed
eg.CGTTTCTGTGGGTGATGGGCCTGAGGGGCGTTCTCN
第十一列:ASCII,read質量的ASCII編碼。
eg.PY[[YY_______________QQQQbILKIGEFGKB
第十二列之后:Optional fields,以tab建分割。詳見備注(2)
eg.AS:i:-1 XN:i:0 XM:i:1 XO:i:0 XG:i:0 NM:i:1 MD:Z:35T0 YT:Z:UU
擴展
3,應用舉例:
SAM文件可以作為很多后續分析的源文件,也可以從其中提取感興趣的信息。
4,備注:
(1)mate,在Illuminated中有兩種測序技術:paired end sequencing,mate pair sequencing。這兩種測序都是測的一個片段的兩端,這兩端產生的reads被稱為mate1,mate2,單末端測序則無mate。
(2)Optional fields:
AS:i:<N>
Alignment score.可以為負的,在local下可以為正的。 只有當Align≥1 time才出現
XS:i:<N>
Alignment score for second-best alignment. 當Align>1 time出現
YS:i:<N>
Alignment score for opposite mate in the paired-end alignment. 當該read是雙末端測序中的一條時出現
XN:i:<N>
The number of ambiguous bases in the reference covering this alignment.(推測是指不知道錯配發生在哪個位置,推測是針對於插入和缺失,待查證)
XM:i:<N>
錯配鹼基的數目
XO:i:<N>
The number of gap opens(針對於比對中的插入和缺失)
XG:i:<N>
The number of gap extensions(針對於比對中的插入和缺失)
NM:i:<N>
The edit distance(read string轉換成reference string需要的最少核苷酸的edits:插入/缺失/替換)
YF:Z:<S>
該reads被過濾掉的原因。可能為LN(錯配數太多,待查證)、NS(read中包含N或者.)、
SC(match bonus低於設定的閾值)、QC(failing quality control,待證)
YT:Z:<S>
值為UU表示不是pair中一部分(單末端?)、CP(是pair且可以完美匹配)
DP(是pair但不能很好的匹配)、UP(是pair但是無法比對到參考序列上)
MD:Z:<S>
比對上的錯配鹼基的字符串表示
(3)flag取值
0:比對到參考序列的正鏈上(待求證)
1:是paired-end或mate pair中的一條
2:雙末端比對的一條
4:沒有比對到參考序列上
8:是paired-end或mate pair中的一條,且無法比對到參考序列上
16:比對到參考序列的負鏈上
32:雙末端reads的另一條(mate)比對到參考序列的負鏈上
64:這條read是mate 1
128:這條read是mate 2