CRAM
cramファイルにはマッピングされたリードデータが圧縮された状態で保存されています。
cramファイルはbamファイルより圧縮率が高いです。
このパイプラインではcramファイルは一時的にbamファイルに変換されます。
変換されたbamファイルをもとにマッピングより下流の解析が実行されます。
エンコーディング
圧縮するときはfastaファイルが必要です。
[username@gc016 ~]$samtools view -C -T Homo_sapiens_assembly38.fasta test.bam > test.cram
[username@gc016 ~]$samtools index test.cram
デコーディング
解凍するときもfastaファイルが必要です。
[username@gc016 ~]$samtools view -h -T Homo_sapiens_assembly38.fasta test.cram > test.sam
Note
M5とUR
cramが作成されるとき、cramのヘッダーにはM5タグとURタグが追加されます。
-T オプションが設定されていない場合は、$HOME/.cache/hts-ref/{x}/{y}/{z}を参照します。
({x}, {y}, {z}の文字列を連結したものがM5タグに記載されているハッシュ値と一致します。)
該当するファイルがない場合はfastaファイルに記載されているM5タグをもとに参照するデータを探索します。
該当するデータが見つからない場合はURタグに記載されているfastaファイルを参照します。
ユーザー環境が異なるとcramの処理に再現性がない場合もあるので気をつけてください。
詳しくは https://www.htslib.org/doc/samtools.html#REFERENCE_SEQUENCES を参考にしてください。