本文鏈接:https://blog.csdn.net/genome_denovo/article/details/78712972
第二章:生物信息分析
第一節(jié):解讀sam格式文件
1型凳,SAM文件格式介紹
SAM(The Sequence Alignment / Map format)格式瀑凝,即序列比對(duì)文件的格式目锭,詳細(xì)介紹文檔:http://samtools.github.io/hts-specs/SAMv1.pdf
SAM文件由兩部分組成浪默,頭部區(qū)和主體區(qū)喉童,都以tab分列者填。
頭部區(qū):以’@'開始忌堂,體現(xiàn)了比對(duì)的一些總體信息证舟。比如比對(duì)的SAM格式版本颂暇,比對(duì)的參考序列缺谴,比對(duì)使用的軟件等。
主體區(qū):比對(duì)結(jié)果耳鸯,每一個(gè)比對(duì)結(jié)果是一行湿蛔,有11個(gè)主列和一個(gè)可選列。
2县爬,頭部區(qū)簡要介紹
@HD VN:1.0 SO:unsorted (排序類型)
頭部區(qū)第一行:VN是格式版本煌集;SO表示比對(duì)排序的類型,有unknown(default)捌省,unsorted苫纤,queryname和coordinate幾種。samtools軟件在進(jìn)行行排序后不能自動(dòng)更新bam文件的SO值,而picard卻可以卷拘。
@SQ SN:contig1 LN:9401 (序列ID及長度)
參考序列名喊废,這些參考序列決定了比對(duì)結(jié)果sort的順序,SN是參考序列名栗弟;LN是參考序列長度污筷;每個(gè)參考序列為一行。
例如:@SQ SN:NC_000067.6 LN:195471971
@RG ID:sample01 (樣品基本信息)
Read Group乍赫。1個(gè)sample的測序結(jié)果為1個(gè)Read Group瓣蛀;該sample可以有多個(gè)library的測序結(jié)果,可以利用bwa mem -R 加上去這些信息雷厂。
例如:@RG ID:ZX1_ID SM:ZX1 LB:PE400 PU:Illumina PL:Miseq
ID:樣品的ID號(hào) SM:樣品名 LB:文庫名 PU:測序以 PL:測序平臺(tái)
這些信息可以在形成sam文件時(shí)加入惋增,ID是必須要有的后面是否添加看分析要求
@PG ID:bowtie2 PN:bowtie2 VN:2.0.0-beta7 (比對(duì)所使用的軟件及版本)
例如:@PG ID:bwa PN:bwa VN:0.7.12-r1039 CL:bwa sampe -a 400 -f ZX1.sam -r @RG ID:ZX1_ID SM:ZX1 LB:PE400 PU:Illumina PL:Miseq …/0_Reference/Reference_Sequence.fa ZX_HQ_clean_R1.fq.sai ZX_HQ_clean_R2.fq.sai …/2_HQData/ZX_HQ_clean_R1.fq …/2_HQData/ZX_HQ_clean_R2.fq
這里的ID是bwa,PN是bwa改鲫,VN是0.7.12-r1039版本诈皿。CL可以認(rèn)為是運(yùn)行程序@RG是上面RG表示的內(nèi)容,后面是程序內(nèi)容像棘,這里的@GR內(nèi)容是可以自己在運(yùn)行程序是加入的
3稽亏,主體部分介紹
主體部分有11個(gè)主列和1個(gè)可選列
QNAME 比對(duì)的序列名稱 例如:M04650:84:000000000-B837R:1:1101:22699:1759(一條測序reads的名稱)
FLAG Bwise FLAG(表明比對(duì)類型:paring,strand缕题,mate strand等) 例如:99
RENAME 比對(duì)上的參考序列名 例如:NC_000075.6
POS 1-Based的比對(duì)上的最左邊的定位 例如:124057649
MAPQ 比對(duì)質(zhì)量 例如:60
CIGAR Extended CIGAR string(操作符:MIDNSHP)比對(duì)結(jié)果信息截歉;匹配堿基數(shù),可變剪接等 例如:87M
MRNM 相匹配的另外一條序列烟零,比對(duì)上的參考序列名 例如:=
MPOS 1-Based leftmost Mate Position (相比于MRNM列來講意思和POS差不多) 例如:124057667
ISIZE 插入片段長度 例如:200
SEQ 和參考序列在同一個(gè)鏈上比對(duì)的序列(若比對(duì)結(jié)果在負(fù)義鏈上瘪松,則序列是其反向重復(fù)序列,反向互補(bǔ)序列) 例如:ATTACTTGGCTGCT
QUAL 比對(duì)序列的質(zhì)量(ASCII-33=Phred base quality)reads堿基質(zhì)量值 例如:-8CCCGFCCCF7@E-
可選的列 以TAG:TYPE:VALUE的形式提供額外的信息
4瓶摆,對(duì)于每一列內(nèi)容的詳細(xì)注解
(如果某一列為“0”或“*”表示這一列沒有信息)
第一列:QNAME
進(jìn)行reads比對(duì)時(shí)通常表示reads的名字凉逛,如果這條reads比對(duì)到多條序列或比對(duì)到這條序列的多個(gè)位置性宏,相同名字會(huì)出現(xiàn)多次群井。如果是pair-end reads,相同名字會(huì)出現(xiàn)2次毫胜,分別表示來自于R1文件的reads和R2文件的reads书斜,如果其matepair reads也比對(duì)2個(gè)位置,也會(huì)出現(xiàn)2次酵使,則相同名字共出現(xiàn)4次荐吉,如果一條reads也比對(duì)2個(gè)位置,則其matepair比對(duì)1個(gè)位置口渔,則共出現(xiàn)3次样屠,如果其matepair reads沒有比對(duì)上序列也會(huì)出現(xiàn)1次(第三列顯示“*”),所以pair-end測序,R1文件和R2文件同時(shí)mapping痪欲,相同reads的id最少出現(xiàn)2次悦穿。
第二列:FLAG
數(shù)值結(jié)果如下:
1(1)該read是成對(duì)的paired reads中的一個(gè)
2(10)paired reads中每個(gè)都正確比對(duì)到參考序列上
4(100)該read沒比對(duì)到參考序列上
8(1000)與該read成對(duì)的matepair read沒有比對(duì)到參考序列上
16(10000)該read其反向互補(bǔ)序列能夠比對(duì)到參考序列
32(100000)與該read成對(duì)的matepair read其反向互補(bǔ)序列能夠比對(duì)到參考序列
64(1000000)在paired reads中,該read是與參考序列比對(duì)的第一條
128(10000000)在paired reads中业踢,該read是與參考序列比對(duì)的第二條
256(100000000)該read是次優(yōu)的比對(duì)結(jié)果
512(1000000000)該read沒有通過質(zhì)量控制
1024(10000000000)由于PCR或測序錯(cuò)誤產(chǎn)生的重復(fù)reads
2048(100000000000)補(bǔ)充匹配的read
具體的flag值的解釋栗柒,可以參考samtools軟件提供的結(jié)果
samtools(Version: 1.3.1)
其中的samtools flags用法可提供flag值的查找結(jié)果
About: Convert between textual and numeric flag representation
Usage: samtools flags INT|STR[,...]
例如:
samtools flags 10
0xa 10 PROPER_PAIR,MUNMAP(10=2+8)
samtools flags 12
0xc 12 UNMAP,MUNMAP(12=4+8)
具體的flag值的解釋,也可參考如下網(wǎng)站:https://broadinstitute.github.io/picard/explain-flags.html
或者在必應(yīng)當(dāng)中搜索flag sam點(diǎn)擊Explain SAM Flags-GitHub Pages進(jìn)入該網(wǎng)頁知举,也可以輸入組合flag數(shù)值會(huì)出現(xiàn)所存在的意思
第三列:RNAME
表示read比對(duì)的那條序列的序列名稱(名稱與頭部的@SQ相對(duì)應(yīng))瞬沦,如果這列是“*”,可以認(rèn)為這條read沒有比對(duì)上的序列雇锡,則這一行的第四逛钻,五,八遮糖,九 列是“0”绣的,第六,七列與該列是相同的表示方法
第四列:POS
表示read比對(duì)到RNAME這條序列的最左邊的位置欲账,如果該read能夠完全比對(duì)到這條序列(CIGAR string為M)則這個(gè)位置是read的第一個(gè)堿基比對(duì)的位置屡江,如果該read的反向互補(bǔ)序列比對(duì)到這條序列,則這個(gè)位置是read的反向互補(bǔ)序列的第一個(gè)堿基比對(duì)的位置赛不,所以無論該read是正向比對(duì)到該序列惩嘉,或是其反向互補(bǔ)序列比對(duì)到該序列,比對(duì)結(jié)果均是最左端的比對(duì)位置
第五列:MAPQ
表示為mapping的質(zhì)量值踢故,mapping Quality, It equals -10log10Pr{mapping position is wrong}, rounded to the nearest integer, A value 255 indicates that the mapping quality is not available. 該值的計(jì)算方法是mapping的錯(cuò)誤率的-10log10值文黎,之后四舍五入得到的整數(shù),如果值為255表示mapping值是不可用的殿较,如果是unmapped read則MAPQ為0耸峭,一般在使用bwa mem或bwa aln(bwa 0.7.12-r1039版本)生成的sam文件,第五列為60表示mapping率最高淋纲,一般結(jié)果是這一列的數(shù)值是從0到60劳闹,且0和60這兩個(gè)數(shù)字出現(xiàn)次數(shù)最多
第六列:CIGAR
CIGAR string,可以理解為reads mapping到第三列序列的mapping狀態(tài)洽瞬,
對(duì)于mapping狀態(tài)可分為以下幾類:
M:alignment match (can be a sequence match or mismatch)
表示read可mapping到第三列的序列上本涕,則read的堿基序列與第三列的序列堿基相同,表示正常的mapping結(jié)果伙窃,M表示完全匹配菩颖,但是無論reads與序列的正確匹配或是錯(cuò)誤匹配該位置都顯示為M
I:insertion to the reference
表示read的堿基序列相對(duì)于第三列的RNAME序列,有堿基的插入
D:deletion from the reference
表示read的堿基序列相對(duì)于第三列的RNAME序列为障,有堿基的刪除
N:skipped region from the reference
表示可變剪接位置
P:padding (silent deletion from padded reference)
S:soft clipping (clipped sequences present in SEQ)
H:hard clipping (clipped sequences NOT present in SEQ)
clipped均表示一條read的序列被分開晦闰,之所以被分開放祟,是因?yàn)閞ead的一部分序列能匹配到第三列的RNAME序列上,而被分開的那部分不能匹配到RNAME序列上呻右。
"="表示正確匹配到序列上
"X"表示錯(cuò)誤匹配到序列上
而H只出現(xiàn)在一條read的前端或末端舞竿,但不會(huì)出現(xiàn)在中間,S一般會(huì)和H成對(duì)出現(xiàn)窿冯,當(dāng)有H出現(xiàn)時(shí)骗奖,一定會(huì)有一個(gè)與之對(duì)應(yīng)的S出現(xiàn)
例如:
162M89S
162H89M
149M102S
149H102M
40S211M
20M1D20M211H
S可以單獨(dú)出現(xiàn),而H必須有與之對(duì)應(yīng)的S出現(xiàn)時(shí)才可能出現(xiàn)醒串,不可在相同第一列的情況下單獨(dú)出現(xiàn)
N:如果是mRNA-to-genome执桌,N出現(xiàn)的位置代表內(nèi)含子,其它比對(duì)形式出現(xiàn)N時(shí)則沒有具體解釋
M/I/S/=/X:這些數(shù)值的加和等于第10列SEQ的長度
第七列:MRNM
這條reads第二次比對(duì)的位置芜赌,在利用bwa mem產(chǎn)生sam文件時(shí)仰挣,如果該列是“”而
第3列RNAME不是“”則表示該reads比對(duì)到第3列顯示序列名的序列上,而沒有比對(duì)到其他位置缠沈,在利用bwa aln及bwa sampe比對(duì)生成的sam文件膘壶,如果和上述情況相同,則第7列為“=”洲愤,上述情況均表示該reads只比對(duì)到這一個(gè)位置
如果第3列RNAME和第7列MRNM都為“*”颓芭,則說明這條reads沒有匹配上的序列,如果這條reads匹配兩個(gè)序列柬赐,則第一個(gè)序列的名稱出現(xiàn)在第3列亡问,而第二個(gè)序列的名稱出現(xiàn)在第7列
第八列:MPOS
該列表示與該reads對(duì)應(yīng)的mate pair reads的比對(duì)位置,如果這對(duì)pair-end reads比對(duì)到同一條reference序列上肛宋,在sam文件中reads的id出現(xiàn)2次州藕,Read1比對(duì)的第4列等于Read2比對(duì)的第8列。同樣Read1比對(duì)的第8列等于Read2比對(duì)的第4列酝陈。例如:
第1列(Read id)····第4列(Read1比對(duì)位置)····第8列(mate-pair reads比對(duì)位置)
22699:1759····124057649····124057667
22699:1759····124057667····124057649
相同的reads id一個(gè)來自Read1文件床玻,一個(gè)來自Read2文件,第4列和第8列是對(duì)應(yīng)的
第九列:ISIZE
TLEN:signed observed Template LENgth (可以理解為文庫插入片段長度)
如果R1端的read和R2端的read能夠mapping到同一條Reference序列上(即第三列RNAME相同)沉帮,則該列的值表示第8列減去第4列加上第6列的值锈死,R1端和R2端相同id的reads其第九列值相同,但該值為一正一負(fù)遇西,R1文件的reads和R2文件的reads馅精,相同id的reads要相對(duì)來看严嗜。在進(jìn)行該第列值的計(jì)算時(shí)粱檀,如果取第6列的數(shù)值,一定要取出現(xiàn)M的值漫玄,S或H的值不能取茄蚯。
the unisgned observed template length equals the number of base from the leftmost mapped base to the rightmost mappedbase. Theleftmost segment has a plus sign and the rightmost has a minus sign
處理bam文件的主要生信軟件有
bwa压彭,bowtie2,samtools渗常,bedtools等
可以看mapping等多方面結(jié)果和統(tǒng)計(jì)壮不,bedtools工具中g(shù)enomeCoverageBed的功能是:Compute the coverage of a feature file among a genome
————————————————
版權(quán)聲明:本文為CSDN博主「genome_denovo」的原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議皱碘,轉(zhuǎn)載請附上原文出處鏈接及本聲明询一。
原文鏈接:https://blog.csdn.net/genome_denovo/article/details/78712972