SAM
リンク
概要
- 主にマッピングの結果情報を格納する形式です。設計方式として拡張性を考慮している分、SAM形式の出力結果には、ツールごとの拡張書式部分での方言が存在します。SAMtoolsなどにより、バイナリでの保存と、それに対するindex付加により、システムから直接参照することも可能です。
書式
ヘッダ
- "@"で始まります。
- 以下のような情報が格納されます。
- マッピング対象のリファレンス(染色体等)のシンボルや長さ
- マッピング条件
- コメント:ヘッダ部分は機械処理上、若干邪魔になりますが、BAMへの変換には、染色体長が必須ですので、除去したりしないようにして下さい。
標準フィールド
|
# | 略号 | 意味 | 例
|
1 | QNAME | リード名 | SRR015293.3
|
2 | FLAG | フラグ | 16
|
3 | RNAME | リファレンス名 | chr3
|
4 | POS | スタート位置 | 186338939
|
5 | MAPQ | マッピングクオリティ | 25
|
6 | CIGAR | CIGAR | 32M
|
7 | RNEXT | ペアリファレンス名 | *
|
8 | PNEXT | ペアリードのスタート位置 | 0
|
9 | TLEN | 総断片長 (インサートサイズ+両リード長) | 0
|
10 | SEQ | リード配列 | TTGTGATGATTTCGACGGTAAGCCACCATGAT
|
11 | QUAL | クオリティ | KVNKHYYQYYJSCHQYYYYYYTYYYYYYYYYY
|
12 | - | オプショナルフィールド(タグ) | XT:A:U NM:i:2 X0:i:1 X1:i:0 XM:i:2 XO:i:0 XG:i:0 MD:Z:4C7T19
|
オプショナルフィールド(タグ)
- 良く使用されるオプショナルフィールド
|
# | タグ名 | 書式(正規表現) | 例 | 説明
|
1 | MD | MD:Z:[0-9]+(([ACGTN]|\^[ACGTN]+)[0-9]+)* | MD:Z:4C7T19 | ミスマッチ位置を示す文字列。
|
2 | NM | NM:i:[-+]?[0-9]+ | NM:i:2 | 編集距離(ミスマッチ,InDel等の合計値?)。あいまいな塩基を含み、クリッピングされた領域を除く。
|
- その他の情報の有無はレコードに依存します。
- X*:.:*のフィールドはマッピングプログラムに依存します。この例はBWA。
- 詳細な定義はこちら
で確認して下さい。
フラグの意味と変換
- SAM/BAMの2列目の数値は以下のような情報フラグを足し合わせた数値が入ります。
|
# | 10進数 | 16進数 | 項目名 | 説明
|
1 | 1 | 0x1 | read paired | ペアか否か
|
2 | 2 | 0x2 | read mapped in proper pair | 適切なペアとしてマップされたか否かのフラグ。Insert長が想定外だったり、マッピングの方向や位置関係が想定範囲外の場合はこのフラグが付かない。
|
3 | 4 | 0x4 | read unmapped | この行で表現するリードがマップされなかったか否か。
|
4 | 8 | 0x8 | mate unmapped | この行の対となるリードがマップされなかったか否か。
|
5 | 16 | 0x10 | read reverse strand | この行で表現するリードが逆方向にマップされたか否か。
|
6 | 32 | 0x20 | mate reverse strand | この行の対となるリードが逆方向にマップされたか否か。
|
7 | 64 | 0x40 | first in pair | ペアの1番目か否か。
|
8 | 128 | 0x80 | second in pair | ペアの2番目か否か。
|
9 | 256 | 0x100 | not primary alignment | 1リードあたり複数のアライメントが得られる場合、代表とする1つ以外はこのフラグがつく(場合が多)。
|
10 | 512 | 0x200 | read fails platform/vendor quality checks | -
|
11 | 1024 | 0x400 | read is PCR or optical duplicate | -
|
12 | 2048 | 0x800 | supplementary alignment | -
|
シングルエンドの例
- シングルエンドのリードのマッピング結果でよく見られるフラグとその意味です。
|
ペアか | マップ無 | 逆鎖にマップ | = | フラグ | 説明
|
0 | 0 | 0 | = | 0 | 順方向にマップされたシングルエンドのリード
|
0 | 4 | 0 | = | 4 | マップされなかったシングルエンドのリード
|
0 | 0 | 16 | = | 16 | 逆方向にマップされたシングルエンドのリード
|
ペアエンドの例
- ペアエンドのRNA-seqのリードをTopHatでマップした場合に件数の多いもののみリストして、ステータスを列挙しています。
|
##############################################################################################################
|
ペアか | proper pair | リード 未マップ | ペア 未マップ | リード 逆鎖 | ペア 逆鎖 | リード1か | リード2か | not primary alignment | = | フラグ | この行は リード1/2 | リード の状況 | ペア の状況 | 簡易図示 | 件数
|
1 | 0 | 0 | 8 | 0 | 0 | 64 | 0 | 0 | = | 73 | リード1 | 順鎖にマップ | 未マップ | 1:=> | -
|
1 | 0 | 0 | 0 | 16 | 0 | 64 | 0 | 0 | = | 81 | リード1 | 逆鎖にマップ | 順鎖にマップ | 1:<=,2:=> | 多
|
1 | 0 | 0 | 8 | 16 | 0 | 64 | 0 | 0 | = | 89 | リード1 | 逆鎖にマップ | 未マップ | 1:<= | -
|
1 | 0 | 0 | 0 | 0 | 32 | 64 | 0 | 0 | = | 97 | リード1 | 順鎖にマップ | 逆鎖にマップ | 1:=>,2:<= | 多
|
1 | 0 | 0 | 8 | 0 | 0 | 0 | 128 | 0 | = | 137 | リード2 | 順鎖にマップ | 未マップ | 2:=> | -
|
1 | 0 | 0 | 0 | 16 | 0 | 0 | 128 | 0 | = | 145 | リード2 | 逆鎖にマップ | 順鎖にマップ | 1:=>,2:<= | 多
|
1 | 0 | 0 | 8 | 16 | 0 | 0 | 128 | 0 | = | 153 | リード2 | 逆鎖にマップ | 未マップ | 2:<= | -
|
1 | 0 | 0 | 0 | 0 | 32 | 0 | 128 | 0 | = | 161 | リード2 | 順鎖にマップ | 逆鎖にマップ | 1:<=,2:=> | 多
|
1 | 0 | 0 | 0 | 0 | 0 | 64 | 0 | 256 | = | 321 | リード1 | 順鎖にマップ | 順鎖にマップ | 1:=>,2:=> | -
|
1 | 0 | 0 | 0 | 16 | 0 | 64 | 0 | 256 | = | 337 | リード1 | 逆鎖にマップ | 順鎖にマップ | 1:<=,2:=> | -
|
1 | 0 | 0 | 0 | 0 | 32 | 64 | 0 | 256 | = | 353 | リード1 | 順鎖にマップ | 逆鎖にマップ | 1:=>,2:<= | -
|
1 | 0 | 0 | 0 | 16 | 32 | 64 | 0 | 256 | = | 369 | リード1 | 逆鎖にマップ | 逆鎖にマップ | 1:<=,2:<= | -
|
1 | 0 | 0 | 0 | 0 | 0 | 0 | 128 | 256 | = | 385 | リード2 | 順鎖にマップ | 順鎖にマップ | 1:=>,2:=> | -
|
1 | 0 | 0 | 0 | 16 | 0 | 0 | 128 | 256 | = | 401 | リード2 | 逆鎖にマップ | 順鎖にマップ | 1:=>,2:<= | -
|
1 | 0 | 0 | 0 | 0 | 32 | 0 | 128 | 256 | = | 417 | リード2 | 順鎖にマップ | 逆鎖にマップ | 1:<=,2:=> | -
|
1 | 0 | 0 | 0 | 16 | 32 | 0 | 128 | 256 | = | 433 | リード2 | 逆鎖にマップ | 逆鎖にマップ | 1:<=,2:<= | -
|
- 太字の"フラグ"列より左にある数値の和がフラグになります。
- シングルエンドに比べ格段に複雑化・多様化し情報量が増えているため、目で処理するのは現実的ではなくなります。
- TopHatの結果は基本リード未マップの行は出力されないので、read unmappedのフラグはすべて0になっています。
- このデータでは、大多数の結果でproper pairのフラグが立っていませんが、ツールやオプションによってはproper pairが100%などもあるため、注意が必要です。
参考情報
- 相互変換Webツール。
- SAMのフラグ関連の小ネタがまとめられています。マルチリードの件は知らなかったです...。参考になります。
- micro*macro(SAMフォーマットの注意点)
- multiread(複数の箇所にマップされたリード)を除きたい場合
- unmapped reads を除きたい場合
- マップされたのがどちら側の鎖か(forward か reverse か)を知りたい場合
- レファレンスとの編集距離(edit distance)を知りたい場合
- SEQがreverse complimentとは
- "read mapped in proper pair"について調査結果を報告されています。
- heard'emsay(2012-04-14 )
- 要約するとproper pairじゃないものは
- ペアがそれぞれ異なる染色体上にマップされるもの。
- ペアの向きが間違っていること。(例えばforward-reverseのサンプルで、forward-forward,reverse-reverseはinproper)
- ペア間の距離が想定範囲外であること。
- その他調査では分からなかった理由でinproperになる場合がある。
- SAM FLAGの12番目
- BWA MEMで出力される。
- 意味は"0x800 supplementary alignment (chimeric alignment)"
- The SAM Format Specification v1.5で追加。
SAMパーサや、SAMへのコンバータを作成する際に使用する情報
関連情報