Bowtie などのマッピングプログラムでリードをリファレンス上にマッピンスすると、その結果は BAM あるいは SAM と呼ばれるフォーマットのファイルに保存される。BAM は SAM のバイナリーバージョンであり、SAM よりサイズが小さく、プログラム処理に便利である。一方、SAM はサイズが大きいものの 人が読めるような形式で記述されている。SAM と BAM に記載される情報は同等であり、samtools を利用すれば交互変換が可能である。
SAM ファイルは、ファイルの最初の部分にメタ情報が記載されている。メタ情報の下にアラインメント、すなわちリードがどこにマッピングされたか、ミスマッチは何個あったかが記載されている。
SAM ファイルの一例。
@HD VN:1.0 SO:unsorted @SQ SN:1 LN:248956422 @SQ SN:10 LN:133797422 @SQ SN:11 LN:135086622 @SQ SN:12 LN:133275309 ## 中略 ERR030890.64313195 0 9 35766194 39 65M * 0 CTCATTGTGGTTTTAATTTGCATTTTCCTAATGTTTAATGACATTGAGCATCTTTTTATGTGCTT FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<<<<FFF=F AS:i:0 XS:i:-38 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:65 YT:Z:UU ERR030890.64313017 0 6 75917822 42 65M * 0 AGACATTTTCATTCACAGGTCATTACTATGGTTCTCAGCGATCCAAATATGTAGATCATTGGTTT FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF<FFF<FFFFFFFF<F AS:i:0 XN:i:0 XM:i:0 XO:i:0 XG:i:0 NM:i:0 MD:Z:65 YT:Z:UU ERR030890.64313110 0 9 93109713 39 65M * 0 GCCTGCCTCAGCCTCCCAAAGTGCTGGGATTATAGGCATGAGCCATTGTGCCTGGCTTCAACTTA FFFFFFFFFFFFFFFFFF=F==:??FFFFFFFFFF=FFFF;?====;=DD8?;8;77::5FFFFF
タグ
SAM ファイルの上部にある「@」で始まるタグのあとに、アラインメントに関する情報が記載されている。例えば、以下にあげたようなタグが存在する。その他にも多くのタグが定義されている。(SAM ファイルの定義)
タグ | 定義 | |
@HD | ファイルヘッダー | |
VN | SAMフォーマットのバージョン | |
SO | アライメントのソート情報。「unknown」、「unsorted」、「queryname」または「coordinate」のいずれか記載される | |
@SQ | リファレンス配列の情報 | |
SN | リファレンス配列の名前 | |
LN | リファレンス配列の長さ | |
AS | ゲノムアセンブリーID | |
M5 | MD5 checksum | |
SP | 生物種 | |
UR | 配列のURI | |
@PG | プログラム | |
ID | マッピングを行ったプログラム | |
VN | プログラムのバージョン | |
CL | マッピングを行うときに実際に入力したコマンドが記載される |
アラインメント
SAM ファイル中のアラインメントの部分はタブ区切りで、全部で 11 カラム以上からなる。それぞれのカラムは以下のようになっている。SAM ファイルの定義では最低限、以下で定義される 11 カラムを含むことになる。
QNAME | FLAG | RNAME | POS | MAPQ | CIGAR | RNEXT | PNEXT | TLEN | SEQ | QUAL |
Bowtie などのプログラムを利用してマッピングを行った際に、12 カラム目以降にミスマッチやユニークマップなどの情報が記載される。
QNAME | リードの名前 |
FLAG | アラインメント結果を整数値で記載される。例えば、「ペアエンドでもう片方がマップされていない」、「相補鎖にマッピングされている」などのような情報を知ることができる。 |
RNAME | リファレンスの名前。ほとんどの場合、マッピングプログラム用のインデックスを作るときに使用した FASTA ファイルのヘッダー名である。例えば Ensembl ゲノムを利用したのならば、染色体番号となる。 |
POS | リファレンス上における、リードがマップされた開始位置。 |
MAPQ | マッピングクオリティ。ミスマッチの一数を N 個とすると、クオリティは -10log10Pr(N) と計算される。マッピングクオリティが無効な場合は 255 となる。 |
RNEXT | ペアエンドの場合、相手方のリード名(QNAME)。 |
PNEXT | ペアエンドの場合、相手方のマップされた開始位置。 |
TLEN | |
SEQ | FASTQ の塩基配列データ |
QUAL | FASTQ のクオリティデータ。 |
12 カラム目以降に記載される情報は「TAG:TYPE:VALUE」の規則に従い記述される。TYPE は A、i、f、Z、H、B のいずれかを用いる。例えば A を用いると VALUE は文字列でなければならない、また i を用いると VALUE は整数値でなければならない。
12 カラム目以降の TAG は SAM フォーマットで定義されているものもあれば、Bwotie などのマッピングプログラムが独自に定義されているものもある。後者の場合、その取り扱い方は、プログラムのマニュアルを読むと詳しく書かれている。
フォーマット変換
SAM ファイルと BAM ファイルに記載されている内容は同等であり、samtools を用いれば交互変換することができる。
SAM → BAM
samtools view -Sb SRR115657.sam > SRR115657.bam
BAM → SAM
samtools view -h SRR115657.bam > SRR115657.sam