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}
とすればよい。