HISAT2を用いたリファレンスゲノムへのRNA-seqデータのマッピング
RNA-seq解析では、シーケンサーから得られたショートリードのそれぞれについて参照ゲノムのどの領域と対応するかを調べる「マッピング」によって転写産物を推定することがある。
しかし、DNAシーケンスと違い、RNA-seqではスプライスを考慮してマッピングする必要がある。したがって、BWAやBowtie2といったスプライスを基本的に考慮しない設計のソフトウェアは用いることができない。
HISAT2はスプライスを考慮してマッピングをおこなうツール(splice-aware aligner/spliced aligner)である。HISATおよびTophatの後継であり、高速かつ少ないメモリ消費で済む。
インストール
HISAT2のホームページからバイナリファイルがダウンロードできる。ただ解凍するだけでインストールできる。簡単!

# バイナリのダウンロードと解凍
wget ftp://ftp.ccb.jhu.edu/pub/infphilo/hisat2/downloads/hisat2-2.1.0-Linux_x86_64.zip
unzip hisat2-2.1.0-Linux_x86_64.zip
# パスを通す
echo export PATH='/path/to/hisat2:$PATH' >> ~/.bash_profile
リファレンスのインデックスを作成
マッピングの前段階としてリファレンスゲノムのインデックスを作成しておく必要がある。この処理はひとつのゲノムに対して一度おこなっておけば使いまわせる。
# referenceのindexを作成
hisat2-build -p 8 reference.fasta reference_idx
オプション:
- -p <int> スレッド数
無事に終われば、reference_idx.*.ht2というファイルが8つできる。
リファレンスへのマッピング
リファレンスゲノムのインデックスが作成できたら、そのインデックスを使ってリードをマッピングする。リードはfastqファイルをgzやbz2で圧縮したもので良い。
# referenceにペアエンドリードをマッピング
hisat2 -p 8 -x reference_idx \
-1 read1.fq -2 read2.fq -S output.sam --dta
オプション:
- -p <int> スレッド数
- -x <index> 作成したindex(作成時に引数として渡した名前でOK)
- -1 <fq> -2 <fq> ペアエンドリード
- -U <fq> シングルエンドリード
SAMファイルは非常に重いため、BAMに変換するとよい。
# samをbamに変換してsort(-@はスレッド数)
samtools sort -@ 8 output.sam > output.sort.bam
マッピングした結果を直接BAMに変換する場合はつぎのよう。
#referenceにシングルエンドリードをマッピング
hisat2 -p 8 -x reference_idx \
-U read.fq --dta | samtools sort -@ 8 > output.bam
なお、マッピング後の操作(アセンブルや発現変動解析)にCufflinksを用いる場合は”–dta” の代わりに “–dta-cufflinks” をオプションとしてつける必要がある。
まとめ
リファレンスゲノムが存在するようなモデル生物のRNA-seqでは、リファレンスゲノムにマッピングすることが多い。ただし、スプライスを考慮してリードをちぎりながらマッピングしなければならない。
HISAT2 はスプライスを考慮してマッピングをおこなうことができる非常に高速なマッピングツールである。
マッピングの流れは
- hisat2-buildによるリファレンスのインデックスを作成
- hisat2でマッピング
- samtoolsを用いたSAMからBAMへの変換
参考
Kim et al. (2019) Graph-based genome alignment and genotyping with HISAT2 and HISAT-genotype. Nature Biotechnology リンク