SAMファイル/BAMファイルとは

はじめに

シーケンサーから出力されたリード(塩基配列)を参照配列にマッピングすると得られるファイルです。 リードがどこにマッピングされたか、どのようにマッピングされたかを表現することができます。

一般的にリードは FASTQファイル、参照配列はFASTAファイルで表現されます。これらをインプットとして、HISAT2STARBowtie2、BWAといったソフトウェアを使用してマッピングすることで、SAMファイル/BAMファイルが得られます。 SAMファイルはテキスト形式で、BAMファイルは同等の情報を保持したバイナリ形式のファイルです。BAMファイルの方がファイルサイズが小さいので、マッピング結果はBAMファイルとして保持することが多いです。

SAM形式/BAM形式

例えば以下のようなマッピング結果があった場合を考えていきます。

座標1234567891011121314**15161718192021222324252627282930313233343536373839404142434445
参照配列AGCATGTTAGATAA**GATAGCTGTGCTAGTAGGCAGTCAGCGCCAT
+r001/1TTAGATAAAGGATA*CTG
+r002aaaAGATAA*GGATA
+r003gcctaAGCTAA
+r004ATAGCT..............TCAGC
-r003ttagctTAGGC
-r001/2CAGCGGCAT

小文字で書かれている塩基はリードの端が参照配列とマッチしていないことを表しています。r001/1とroo1/2はペアのリードで、r003はキメラリード、r004はSplit alignmentとなっています。

これに対応するSAMファイルは以下のようになります。

SAMファイルの例

@HD VN:1.6 SO:coordinate @SQ SN:ref LN:45 r001 99 ref 7 30 8M2I4M1D3M = 37 39 TTAGATAAAGGATACTG * r002 0 ref 9 30 3S6M1P1I4M * 0 0 AAAAGATAAGGATA * r003 0 ref 9 30 5S6M * 0 0 GCCTAAGCTAA * SA:Z:ref,29,-,6H5M,17,0; r004 0 ref 16 30 6M14N5M * 0 0 ATAGCTTCAGC * r003 2064 ref 29 17 6H5M * 0 0 TAGGC * SA:Z:ref,9,+,5S6M,30,1; r001 147 ref 37 30 9M = 7 -39 CAGCGGCAT * NM:i:1

@から始まる行はヘッダ行となります。

それ以降の行がマッピングの結果で、タブ区切りの必須の11カラムと追加の12カラム以降で表現されます。カラムの内容は以下の通りです。

カラム名内容
1カラム目QNAMEリードの名前
2カラム目FLAGマッピング結果に関する様々なフラグ
3カラム目RNAME参照配列の名前
4カラム目POSマッピング位置
5カラム目MAPQマッピングクオリティ
6カラム目CIGARマッピング結果の文字列による表現
7カラム目RNEXTペアリードの名前
8カラム目PNEXTペアリードのマッピング位置
9カラム目TLENインサート長
10カラム目SEQ塩基配列
11カラム目QUAL塩基配列のクオリティ

FLAGやCIGARカラムのさらに詳しい情報等はこちらをご覧ください。