Tomlab Blog

created: 2022-10-23

SAM Sequence Alignment/Mapping

1つのheader sectionと1つのalignment sectionからなる。

HEADER


ALIGNMENT

tab区切りの必須11列

$1: QNAME Query(リード)名
$2: FLAG bit表現フラグ(アライメント結果を整数値で記載)
$3: RNAME リファレンス名
$4: POS リードのマッピング開始位置(1起算)/unmappedは0
$5: MAPQ マッピングクオリティスコア, Q=-10log10P
$6: CIGAR CIGAR文字列(マッピング状況)
$7: RNEXT PEの場合、相手方のリード名
*はRNEXTが存在しないことを意味
=はRNEXTがRNAMEと同じであることを意味
$8: PNEXT PEの場合、相手方のマッピング開始位置
RNEXTが存在しない場合、値は0
$9: TLEN PEの場合、templateの長さ
$10: SEQ マップした配列の塩基配列データ
$11: QUAL マップした配列のSequence Qualityデータ

bit表現フラグ

値は1(True), 0(False)

Flag(hex)
0x1 :PEである
0x2 :正しいペアとしてaligmentされている
0x4 :Mappingされていない
0x8 :メイトペアがMappingされていない
0x10 :配列は相補鎖にMappingされている
0x20 :メイトペアの配列が逆転している
0x40 :ペアの最初のリード
0x80 :ペアの2番めのリード
0x100 :secondary aligment
0x200 :QC失敗
0x400 :PCRまたは光学複製
0x800 :補助的アライメント

example

  $ samtools flags 147  # 147(10進数)は10010011(2進数)
                        # 第1,2,5,8bitが1(True)であることを意味
    0x93 147 PAIRED, PROPER, PAIR, REVERSE, READ2

CIGAR文字列

操作
M 0 aligment match
I 1 挿入
D 2 欠失
N 3 skip領域
S 4 ソフトクリッピング領域
H 5 ハードクリッピング領域
P 6 padding
= 7 配列マッチ
X 8 配列ミスマッチ