複数回シーケンスしたデータを統合するため、bamファイルをmergeすることがある。
gatkのチームもこの話題を取り上げており、以下のURLで見ることができる。
https://software.broadinstitute.org/gatk/documentation/article.php?id=3060
mergeするにはsamtoolsのmergeコマンドを使う。
samtools merge merged.bam 1.bam 2.bam
merged.bamが出力される。リードグループに注意する。
bamから特定のクロモソーム情報を取り出すなら、
samtools view -b recal_reads.bam I chr19 > chr19.bam
このように行う。
fasta名がchr19になる。個人的にはスペース混じりの複雑な名前でも抽出してくれるのがありがたい。
計算リソースが潤沢な環境なら、分割してパラレルにランして解析速度を速めるような用途にも使えると思われる。
追記
elprep
sam/bam関係のツールまとめ - macでインフォマティクス
split インプット (sam/bam/cram)をクロモソームごとに分割する。unmapリードは別出力する。
elprep split input.sam output/ --output-prefix "split-sam" --output-type sam --nr-of-threads 8 --single-end
ソートやindexファイルがなくても動作する。シングルエンドのinputは--single-endをつける。デフォルトでは入力をペアエンドとして扱う。
merge splitで分割した複数のインプット (sam/bam/cram)をマージする。
elprep merge input/ output.sam --nr-of-threads 8
シングルエンドのinputは--single-endをつける。デフォルトでは入力をペアエンドとして扱う。bamとcram出力にも対応している。