SAM BAM相關的高階知識

2021-10-11 16:26:11 字數 2071 閱讀 8118

1. samtools和picard的排序問題

samtoolspicard都有對sam/bam檔案進行排序的功能,一般都是基於座標排序(還提供了-n選項來設定用reads名進行排序),先是對chromosome或contig進行排序,再在chromosome/contig內部基於start site從小到大排序,對start site排序很好理解,可是對chromosome/contig排序的時候是基於什麼標準呢?

基於你提供的ref.fa檔案中的chromosome/contig的順序。當你使用比對工具將fastq檔案中的reads比對上參考基因組後會生成sam檔案,sam檔案包含頭資訊,其中有以@sq開頭的頭資訊記錄,reference中有多少條chromosome/contig就會有多少條這樣的記錄,而且它們的順序與ref.fa是一致的。

當使用samtools或picard對sam/bam檔案進行排序時,這些工具就會讀取頭資訊,按照頭資訊指定的順序來排chromosome/contig。所以進行排序時需要提供包含頭資訊的sam/bam檔案。

@rg:比對上的序列(read)說明

第二部分:聯配必要資訊,每一行有12行,通過tab鍵分割。

第一列:rname(qname)即為fq對應的read id。這一列代表read的名字(比對片段的編號)

第二列:flag 比對資訊位。

想要讀懂他的乙個關鍵點是將flag值轉換為一串由0,1組成的二進位製碼,這一串二進位制數中的每乙個

位(bit)都代表乙個特定的資訊,他一共有12位,所以一般會用乙個16位的整數來代表,這個整數的

值就是由12個0或1組合計算得出的。因此他的數值範圍在0~2^12(2048)

舉乙個例子,flag=77=000001001101(左邊補5個0)=1+4+8+64

flag包含資訊:pe reads、read比對不上參考序列,它的配對read也比對不上,它是read1

這個值告訴我們這個read比對到參考序列上這個位置的可靠程度。相當於q

第六列:cigar 比對資訊(雪茄字串)

它用數字和幾個字元的組合形式記錄了read比對到參考序列上的細節資訊,讀起來比flag直觀友好很多,只是

記錄的資訊不同。例子:33s117m,意思是在比對的時候這條read開頭的33bp被跳過了(s),緊接其後的117bp

則比對上參考序列(m)。這裡的s意思都是soft clip。

cigar的標記字元有:midnshp=xb

第七、八、九列:mate information

rnext:配對read所比對到的染色體(pe才有)

=號代表比對到了相同的染色體上。

pnext:配對read所比對到的位置(pe才有)

tlen:插入片段的長度:如果所有段都對映到相同的參考序列,則tlen的絕對值等於模板的對映末端與模板的對映起始點之間的距離,包括端值(即end-start + 1)。當多段模板的第乙個或最後乙個段未對映時,或者當兩個對映到不同的參考序列時,它將設定為0。

第十、十一列:

seq:read序列

qual:read質量值

這兩列相當於fastq的二四行

第十二列:metadata 元資訊

前端高階 作用域的相關知識

學習筆記 1 瀏覽器對js的解析大致可以分為兩個步驟 1 預解析 找到 var 宣告的變數和 function引數 1 var a undefined 第一次進行解析時所有宣告的變數都賦值為未定義 2 f1 function f1 第一次解析時所有函式都是函式塊 遇到重名的留靠後的乙個,變數和函式重...

mysql相關知識 MySQL相關知識

字串拼接 select from tablename where mydata like concat curdate limit 3 這裡concat是字串拼接,concat mys q l mysql 顯示日期不帶時間的函式,如 2015 05 14 curdate 是日期不算時間 2015 0...

函式的高階知識

四 元組和字典的拆包 了解 五 函式的遞迴 def demo num,num list print 函式開始 num num num num num num list num list num list 列表變數使用 不會做相加在賦值的操作 本質上是在呼叫列表的 extend 方法 num list...