您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關SAM和BAM文件是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
當我們測序得到的fastq數據map到基因組之后,會得到一個以sam或bam為擴展名的文件。這里,SAM的全稱是sequence alignment/map format。而BAM就是SAM的二進制文件,也就是壓縮格式的sam文件。 那么SAM文件的格式是什么樣子的呢?這里給大家簡單解釋一下。
SAM格式簡介
SAM文件由頭文件和map結果組成。頭文件為注釋信息,以@開頭,可有可無,就不做多介紹了。重要的是比對結果,例如這樣的:
E00514:173:H3C3JCCXY:4:1124:12398:67234 337 Chr00 32904 0 150M Chr09 33498107 0 TCAATTTCACTTGAAGCTTACTTGTAGTTTCAGGCTTGGTCAAGCGCGATACAAACCATGTAGTAGGAGTCCTCCAAGTCGCCAAGCTAGGGGATCTGCTGAAAGAGGTGACAGACAAGGTAAGCAATCAGAGCTCTAAGCAATCAGTCC iieiiiii`eiiiiiiiiiiiiiiieiiiiiiiieiiiiiiiiiiiiiiiiiiiiieiiiiiiiiiiiiieiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieiiiiiiiii`iiieeieieeieee`` AS:i:-6 XN:i:0 XM:i:1 XO:i:0 XG:i:0 NM:i:1 MD:Z:136C13 YT:Z:UU NH:i:8 CC:Z:Chr10 CP:i:18604313 HI:i:0 RG:Z:J36CK1 E00514:173:H3C3JCCXY:4:1124:12398:67234 369 Chr00 32904 0 150M Chr16 2469225 0 TCAATTTCACTTGAAGCTTACTTGTAGTTTCAGGCTTGGTCAAGCGCGATACAAACCATGTAGTAGGAGTCCTCCAAGTCGCCAAGCTAGGGGATCTGCTGAAAGAGGTGACAGACAAGGTAAGCAATCAGAGCTCTAAGCAATCAGTCC iieiiiii`eiiiiiiiiiiiiiiieiiiiiiiieiiiiiiiiiiiiiiiiiiiiieiiiiiiiiiiiiieiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieiiiiiiiii`iiieeieieeieee`` AS:i:-6 XN:i:0 XM:i:1 XO:i:0 XG:i:0 NM:i:1 MD:Z:136C13 YT:Z:UU NH:i:8 CC:Z:Chr10 CP:i:18604313 HI:i:2 RG:Z:J36CK1 E00514:173:H3C3JCCXY:4:1124:12398:67234 369 Chr00 32904 0 150M Chr16 29515410 0 TCAATTTCACTTGAAGCTTACTTGTAGTTTCAGGCTTGGTCAAGCGCGATACAAACCATGTAGTAGGAGTCCTCCAAGTCGCCAAGCTAGGGGATCTGCTGAAAGAGGTGACAGACAAGGTAAGCAATCAGAGCTCTAAGCAATCAGTCC iieiiiii`eiiiiiiiiiiiiiiieiiiiiiiieiiiiiiiiiiiiiiiiiiiiieiiiiiiiiiiiiieiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieiiiiiiiii`iiieeieieeieee`` AS:i:-6 XN:i:0 XM:i:1 XO:i:0 XG:i:0 NM:i:1 MD:Z:136C13 YT:Z:UU NH:i:8 CC:Z:Chr10 CP:i:18604313 HI:i:4 RG:Z:J36CK1 E00514:173:H3C3JCCXY:4:1124:12398:67234 369 Chr00 32904 0 150M Chr17 31040767 0 TCAATTTCACTTGAAGCTTACTTGTAGTTTCAGGCTTGGTCAAGCGCGATACAAACCATGTAGTAGGAGTCCTCCAAGTCGCCAAGCTAGGGGATCTGCTGAAAGAGGTGACAGACAAGGTAAGCAATCAGAGCTCTAAGCAATCAGTCC iieiiiii`eiiiiiiiiiiiiiiieiiiiiiiieiiiiiiiiiiiiiiiiiiiiieiiiiiiiiiiiiieiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieiiiiiiiii`iiieeieieeieee`` AS:i:-6 XN:i:0 XM:i:1 XO:i:0 XG:i:0 NM:i:1 MD:Z:136C13 YT:Z:UU NH:i:8 CC:Z:Chr10 CP:i:18604313 HI:i:6 RG:Z:J36CK1 E00514:173:H3C3JCCXY:4:1212:19025:24532 409 Chr00 33538 0 150M * 0 0 GATTCCAAGTGCTGACTGATTGCTCTCTTTCTCCTTGTCTTGCAGGTAAGAACAAGGCCAAAGGAAAAGACAGGGAAAAAACATGAAATGAGATACTCTTGCTTTTAACCCTGATGATATGAGATATTCTTGCTCTAGTATAGCTTGTTT ii`e`ei[iiiiiiiiiiiiie[ieeieieiiiiieiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiieee`` AS:i:-12 XN:i:0 XM:i:2 XO:i:0 XG:i:0 NM:i:2 MD:Z:52T33T63 YT:Z:UU NH:i:20 CC:Z:Chr01 CP:i:11331871 HI:i:0 RG:Z:J36CK1
字段之間也就是列之間由Tab隔開,每一字段具體含義參考下圖:
其中:
1. QNAME 表示reads名稱;
2. FLAG:表示比對的結果,由數字表示,不同的數值含義不同,其列表如下:
中文解釋:
1 : 代表這個序列采用的是PE雙端測序 2: 代表這個序列和參考序列完全匹配,沒有錯配和插入缺失 4: 代表這個序列沒有mapping到參考序列上 8: 代表這個序列的另一端序列沒有比對到參考序列上,比如這條序列是R1,它對應的R2端序列沒有比對到參考序列上 16:代表這個序列比對到參考序列的負鏈上 32 :代表這個序列對應的另一端序列比對到參考序列的負鏈上 64 : 代表這個序列是R1端序列, read1; 128 : 代表這個序列是R2端序列,read2; 256: 代表這個序列不是主要的比對,一條序列可能比對到參考序列的多個位置,只有一個是首要的比對位置,其他都是次要的 512: 代表這個序列在QC時失敗了,被過濾不掉了(# 這個標簽不常用) 1024: 代表這個序列是PCR重復序列(#這個標簽不常用) 2048: 代表這個序列是補充的比對(#這個標簽具體什么意思,沒搞清楚,但是不常用
比對結果數值也可以是上述數值的組合(即數值相加),如FLAG為83(64+16+2+1)表示paired-end reads中的第一個reads比對到參考序列上了;
3. RNAME:表示參考序列的名稱,如基因組的染色體編號等,如果沒有比對上則顯示為*;
4. POS:表示比對的起始位置,以1開始計數,如果沒有比對上則顯示為0;
5. MAPQ:比對質量;(數字越大,特異性越高)
6. CIGAR:字符串,即比對的詳細情況, 記錄插入,缺失,錯配,后剪切拼接的接頭;
7. RNEXT:雙末端測序中下一個reads比對的參考系列的名稱,如果沒有則用 " * " 表示,如果和前一個reads比對到同一個參考序列則用" = "表示;
8. PNEXT:下一個reads比對到參考序列上的位置,如果沒有則用0表示;
9. TLEN:序列模板的長度;
10. SEQ:reads的序列信息;
11. QUAL:reads的序列質量信息;
12. 可選字段:格式如:TAG:TYPE:VALUE,其中TAG有兩個大寫字母組成,每個TAG代表一類信息,每一行一個TAG只能出現一次,TYPE表示TAG對應值的類型,可以是字符串、整數、字節、數組等。
常用bam/sam文件處理
由于sam格式的文件通常都非常大,所以為了節省存儲空間而將sam轉換為二進制格式以便于存儲,也就是bam文件。 sam/bam文件可以由特定的一些軟件(比如samtools)來處理的,包括格式互轉、排序、建立索引等操作。
1. bam文件讀取
bam文件為二進制的文件,不能直接查看,可用samtools讀取:
samtools view xxx.bam samtools view xxx.bam |less -S
2. sam/bam轉換
samtools view -h xxx.bam > xxx.sam samtools view -b -S xxx.sam > xxx.bam
3. 對bam文件排序
samtools sort xxx.bam outputPrefix
4. bam文件創建index
samtools index xxx.bam
5. 對mapping結果進行評估
在mapping之后,可以通過samtools對mapping的結果的質量進行評估。
samtools idxstats xxx.bam
執行這一步前需要經過sort和index,結果如下:
chr1 195471971 6112404 0 chr10 130694993 3933316 0 chr11 122082543 6550325 0 chr12 120129022 3876527 0 chr13 120421639 5511799 0 chr14 124902244 3949332 0 chr15 104043685 3872649 0
其中第一列是染色體名稱,第二列是序列長度,第三列是mapped reads數,第四列是unmapped reads數。
6. 統計flag信息
統計bam文件中的比對flag信息,并輸出比對統計結果。
samtools flagstat xxx.bam
total:分析的總reads數(bam文件所有行數) mapped:比對上的reads數(總體比對率) paired in sequencing:成對的reads總數 read1:屬于reads1的reads數量 read2:屬于reads2的reads數量 properly paired:正確配對的reads數量 with itself and mate mapped:一對reads均比對上的reads數 singletons:只有單條reads比對上的reads數 以上計數均以reads條數計,一對reads計為兩條。
還可以通過以下命令快速查看flag值所對應的含義:
$samtools flags 141 0x8d 141 PAIRED,UNMAP,MUNMAP,READ2 #flags值為141 #PAIRED表示這條序列采用雙端測序, 其值為1; #UNMAP表示這個序列沒有mapping到參考序列上, 其值為4; #MUNMAP表示這個序列的另一端序列沒有比對到參考序列上, 其值為8; #READ1表示這條序列是R1端序列,其值為128. #以上數值相加和為141
7. 合并BAM文件
將多個排序后的序列文件合并為一個文件
samtools merge -n out.bam in1.bam in2.bam in3.bam…
關于“SAM和BAM文件是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。