created: 2022-10-23
SAM Sequence Alignment/Mapping
1つのheader sectionと1つのalignment sectionからなる。
HEADER
- 各header行は@で始まり、2文字のコードが続く。
- その後はタブ区切りのKEY:VALUE形式が並ぶ。
- @SQ
- 参照配列に関する情報を保存
- KEYにはSNとLNがある。
- SN 配列名
- LN 配列長
- @RG
- リードグループとサンプルメタ情報を保存
- KEYにはIDとSM,PLがある。
- ID 必須かつ一意的。実用上は特定のseq runに関する情報などを使用。
- SM 試料情報を保存(option)
- PL seq platform (ILLUMINAなど)を保存(option)
- @PG
- programに関するメタ情報を保存
- KEYにはID, VN, CLがある。
- ID プログラム固有のID値
- VN version番号
- CL 実行command line
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 | 配列ミスマッチ |