SAMフォーマットの注意点

あんまり需要はない知識ですが、SAMファイルをSAMToolsなどを使わずに直接いじくったときに引っかかったことをメモ。

The SAM Format Specification (v1.4-r962)(pdf)

multiread(複数の箇所にマップされたリード)を除きたい場合

  • あるリードが複数の箇所にマップされる時、その数だけSAMの行がつくられる。
  • 複数の箇所にマップされている場合、第二カラム(FLAG) の自然数を16進数 0x100とビット演算すると、1になる(ただし、ある一つの行にはそれがない)。
  • multireads を除きたい時には、後ろの方のカラムにある IHタグの値が2以上の行を除けばいい。

unmapped reads を除きたい場合

  • 第二カラム(FLAG) の自然数を16進数 0x4とビット演算すると1になる行を除けばいい。

マップされたのがどちら側の鎖か(forward か reverse か)を知りたい場合

  • 第二カラム(FLAG) の自然数を16進数 0x10とビット演算すると1になる行は、reverse strand にマップされている。

レファレンスとの編集距離(edit distance)を知りたい場合

  • 後ろの方のカラムにある NMタグの値が編集距離。

SEQがreverse complimentとは

  • reverse compliment というのは、reverse strand にマップされていたら、元の配列ではなくて相補鎖を表示するようという意味。