アメリエフの技術ブログ

Amelieff Staff Blog

各リードが1回だけ登場するBAMを作るには

マッピング率を計算する時など、BAMファイルから、マッピングされたリード数を取得したい場合があると思います。

samtools idxstatsでもマッピング結果の統計を出すことができるのですが、マルチマッピングのBAMの場合は重複してカウントされてしまうようで、正確なリード数が得られません。

samtools viewに-Fオプションをつけて実行すると各リードが1回だけ登場するBAMを作成することができます。

【実行例】
samtools view -bh -F 256 -o hoge_uniq.bam hoge.bam

【解説】
・BAMの2列目は「フラグ」列です。
 同じリードが2回目以降マッピングされた場合、フラグに0x100(=256)が立ちます。
・samtools viewの-Fオプションは、「そのフラグを持つデータを除く」の意味なので、-F 256とすると「1回目のマッピング箇所のみ残す」ことができます。

このBAMに対してsamtools idxstatsをかけると、正確なマッピング数やアンマッピング数を得られます。