您好,登錄后才能下訂單哦!
怎樣理解SAM/BAM文件格式,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
重點介紹下SAM文件中比對部分的含義,比對部分的信息是\t
分隔的11列文件,每列的含義如下
第一列是QNAME
, 代表輸入序列的名字,通常是reads的標識符。
第二列是FLAG
, 事先定義了以下幾種flag, 每個flag用一個數字表示,對應一種比對的情況
1
代表這個序列采用的是PE雙端測序
2
代表這個序列和參考序列完全匹配,沒有插入缺失
4
代表這個序列沒有mapping到參考序列上
8
代表這個序列的另一端序列沒有比對到參考序列上,比如這條序列是R1,它對應的R2端序列沒有比對到參考序列上
16
代表這個序列比對到參考序列的負鏈上
32
代表這個序列對應的另一端序列比對到參考序列的負鏈上
64
代表這個序列是R1端序列
128
代表這個序列是R2端序列
256
代表這個序列不是主要的比對,一條序列可能比對到參考序列的多個位置,根據map的質量值,可以將所有的alignments劃分為primary alignments和secondary alignments
512
代表這個序列在QC時失敗了,被過濾不掉了
1024
代表這個序列是PCR重復序列
2048
代表這個alignments是Supplement alignments, 一條reads的比對通常是全長比對上了基因組上的一段區域,但是對于嵌合體序列而言,一條reads會比對到基因組上兩個不同的區域,此時就會形成兩個alignments, 這些alignments 就叫做Supplement alignments
上面的這幾個標簽都是2的n次方,這樣的數列有一個特點,就是隨機挑選其中的幾個,它們的和是唯一的,比如65只能是1和 64組成,代表這個序列是雙端測序,而且是read1。
第三列是RNAME
, 代表基因組序列的名字,通常是染色體的名字。
第四列是POS
, 代表reads比對到染色體上的起始位置。
第五列是MAPQ
,代表mapping quality
第六列是CIGAR
,代表比對的描述信息,采用以下幾個字符來描述reads的比對情況。
M
表示match,可以是精確匹配,也可以是錯配,I
表示在基因組上插入堿基,D
表示在基因組上刪除堿基,N
代表跳過基因組上的堿基,S
代表在序列中去除部分堿基。
示例比對情況如下
ref : AAG CGCTATAGAA query AAGTCGCT AG
對于查詢序列而言,首先是有3個堿基的匹配,用3M
表示;然后在參考序列上插入了1個堿基,用1I
表示; 接下來又有4個堿基的匹配,用4M
表示;在然后是查詢序列上有2個bp的插入,相對基因組而言是2個bp的缺失,用2D
表示,最后是2個堿基的匹配,用2M
表示。
綜上,這個alignment對用的CIGAR為3M1I4M2D2M
。
第七列是RNEXT
, 如果一條reads比對上了基因組的多個位置,這一列記錄的是下一個alignment比對的染色體的名字,如果只比對上基因組的一個位置,該列的內容為”*”。
第八列是PNEXT
, 如果一條reads比對上了基因組的多個位置,這一列記錄的是下一個alignment比對的位置,如果只比對上基因組的一個位置,該列的內容為”*”。
第九列是TLEN
,代表插入片段的長度,根據reads比對的情況,可以估算出插入片段的長度。
第十列是SEQ
,代表輸入的序列,通常是fastq文件中的序列。
第十一列是QUAL
,代表輸入序列的質量,通常是fastq文件中的堿基質量。
除了以上11列內容外,還有一些可選的其他tag信息,這些tag信息的寫法為tag:type:value
, 每種type用一個字母表示,A
表示單個字符;Z
表示字符串,i
表示整數,f
表示浮點數。
比如NH
這個tag表示reads的alignments的個數,寫法如下
NH:i:2
表示這條reads比對上基因組的兩個位置。所有tag的詳細解釋參考如下鏈接
https://samtools.github.io/hts-specs/SAMtags.pdf
看完上述內容,你們掌握怎樣理解SAM/BAM文件格式的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。