SAM 形式における、CIGAR コードとゲノム座標系・SEQ/QUALカラムの座標の対応

CIGAR コードの座標系と、ゲノム座標系と、SEQ/QUALカラムの座標の対応について。

  • CIGAR が M, D のとき、ゲノム座標が1つ進む
  • CIGAR が M, I, S のとき、SEQ/QUALは1つ進む。S は soft clip であり、POSITION などでは無視されているが SEQ/QUAL は出力されている

FLAG の 4bit目が1ならリファレンスに対して逆方向に配列を読んだわけだが、SEQもCIGARもPOSITIONも全てリファレンスの向きに合うように出力されている。POSITION カラムは、リードをリファレンスにマップした時の、リファレンスの 5' 側が常に出力される。別の言い方をすれば、順方向に読んだ時は POSITION は最初に読んだ塩基だし、逆方向に読んだ時は最後の塩基となる。

夕方追記:

QUAL を数字にするには、Ruby の場合

 qual.bytes.map {|e| e - 33}

とすればよい。