RNA-seq解析入門④:マッピング編

RNA-seq
📚 この記事について
リードをゲノム上に対応づける工程です。RNA-seq ではスプライシングへの対応が要になります。
🔙 前の記事RNA-seq解析入門③:トリミング編
🔜 次の記事RNA-seq解析入門⑤:カウント編
📌 前提:トリミング済みの FASTQ、参照ゲノム(FASTA)、アノテーション(GTF)が揃っていること

RNA-seq(RNA sequencing)のマッピングは、読み取ったリードが参照ゲノムのどこ由来かを特定する工程です。ここでは4つのツールの使い分けと、STAR の実践的な使い方を押さえます。

1. マッピングのゴールと、RNA-seq 固有の難所


トリミングで整えたリードを、参照ゲノム上に貼り合わせます。この作業をマッピング(アライメント)と呼び、結果は SAM / BAM ファイルとして出力されます。

RNA-seq に固有の難所がスプライシングです。転写後にイントロンが除かれるため、1本のリードがゲノム上の離れた2つのエクソンにまたがることがあります。これを正しく扱えるかどうかが、ツール選びの分かれ目になります。

図1:RNA-seq のマッピングはスプライシングを越える
図1:RNA-seq のマッピングはスプライシングを越える
💡 用語:SAM / BAM ファイル
マッピング結果を格納する形式です。SAM はテキスト、BAM はそれを圧縮したバイナリです。BAM は容量が小さく処理も速いため、実際の解析では BAM を使います。次のカウント工程でもこの BAM を入力にします。

2. 4つのツールと使い分け


ツール スプライシング 特徴
HISAT2 対応 RNA-seq 向けの定番。省メモリで高速
STAR 対応 RNA-seq 向け。高精度・大規模データ向きだがメモリを大量消費
Bowtie2 非対応 DNA-seq 向け。ChIP-seq・ATAC-seq で実績
TopHat2 対応 開発終了。新規解析では選ばない

HISAT2 は TopHat2 の後継として開発された RNA-seq 向けツールで、メモリ使用量が少なく高速です(Kim et al., Nature Biotechnology, 2019)。メモリが限られた環境に向いています。

STAR は高速かつ高精度で、大規模データや長いリードに強く、キメラリードの検出も行えます(Dobin et al., Bioinformatics, 2013)。ただしメモリを大量に消費し(ヒトゲノムで 30 GB 以上が目安)、インデックス構築にも時間がかかります。十分なメモリを確保できるなら、現在の標準的な選択肢です。

Bowtie2 はスプライシングに対応しないため RNA-seq には使えません(Langmead & Salzberg, Nature Methods, 2012)。ATAC-seqや ChIP-seq など DNA-seq 系の解析で選びます。

TopHat2 はかつての標準でしたが、現在は開発が終了し、公式に HISAT2 への移行が案内されています(Kim et al., Genome Biology, 2013)。古い論文を読む際に名前が出るため、位置づけだけ知っておけば十分です。

状況 選択
精度重視・大規模データ・メモリに余裕がある STAR
メモリが限られる環境で RNA-seq を回す HISAT2
ChIP-seq・ATAC-seq(DNA-seq 系) Bowtie2

3. STAR の使い方


図2:STAR はインデックス構築とマッピングの2ステップ
図2:STAR はインデックス構築とマッピングの2ステップ

STAR は2ステップで動きます。①インデックス構築は参照ゲノムごとに1回だけ行い、②マッピングをサンプルごとに実行します。

インストール

bash
# conda でインストール(推奨)
conda install -c bioconda star

# バージョン確認
STAR --version
💡 用語:インデックス
ゲノム配列を高速に検索できるよう、あらかじめ構築しておくデータ構造です。構築には時間がかかりますが、一度作れば同じ参照ゲノムに対して何度でも再利用できます。

ステップ①:ゲノムインデックスの構築(1回だけ)

bash
STAR \
  --runMode genomeGenerate \
  --genomeDir genome_index/ \
  --genomeFastaFiles genome.fa \
  --sjdbGTFfile annotation.gtf \
  --runThreadN 4
オプション 意味
--runMode genomeGenerate インデックス構築モードで実行します
--genomeDir インデックスの保存先。事前にフォルダを作成しておきます
--genomeFastaFiles 参照ゲノムの FASTA(例:hg38.fa)
--sjdbGTFfile スプライシング情報を含む GTF。指定するとマッピング精度が上がります
--runThreadN 4 使用する CPU コア数

ステップ②:マッピングの実行(シングルエンド)

bash
STAR \
  --runMode alignReads \
  --genomeDir genome_index/ \
  --readFilesIn trimmed.fastq.gz \
  --readFilesCommand zcat \  # .gz を読むために必要
  --outSAMtype BAM SortedByCoordinate \
  --outFileNamePrefix output/sample_ \
  --runThreadN 4
オプション 意味
--genomeDir ステップ①で作ったインデックスのフォルダ
--readFilesIn 入力 FASTQ。トリミング後のファイルを使います
--readFilesCommand zcat .gz 形式の圧縮ファイルを読む際に必要です
--outSAMtype BAM SortedByCoordinate ゲノム座標でソート済みの BAM を出力します。次のカウント工程に必要な形式です
--outFileNamePrefix 出力ファイル名の接頭辞。フォルダ名も含めて指定できます

ペアエンドへの応用
--readFilesIn に R1・R2 をスペース区切りで並べるだけです。

bash
STAR \
  --genomeDir genome_index/ \
  --readFilesIn trimmed_R1.fastq.gz trimmed_R2.fastq.gz \  # R1 R2 の順
  --readFilesCommand zcat \
  --outSAMtype BAM SortedByCoordinate \
  --outFileNamePrefix output/sample_ \
  --runThreadN 4

慣れてきたら次のオプションも使えます。

  • --quantMode GeneCounts:マッピングと同時に遺伝子ごとのカウントも出力します。
  • --twopassMode Basic:2パスでマッピングし、スプライスジャンクションの検出精度を上げます。
  • --outSAMattributes NH HI AS NM:BAM に付加する属性。定量ツールによっては必須になります。
  • --outFilterMultimapNmax 10:複数箇所にマップされるリードの最大許容数(既定 10)。
  • --alignIntronMax 1000000:イントロンの最大長。生物種に応じて調整します。

4. 注意点


  • メモリを確認する:STAR はヒトゲノムで 30 GB 以上のメモリを要します。足りない環境では HISAT2 を選びます。
  • 参照ゲノムと GTF の版を揃える:インデックス構築時と、次のカウント工程で同じ GTF を使います。版が違うと遺伝子 ID が対応しません。
  • マッピング率を確認する:STAR が出力する Log.final.out でユニークマップ率を確認します。極端に低い場合は、参照ゲノムの取り違えや汚染を疑います。

メモリが足りないとき


マッピングは、この連載で最初に計算資源が問題になる工程です。STAR はヒトゲノムのインデックスを読み込むだけで 30 GB 以上のメモリを要求するため、手元のノートパソコンでは構築の段階で止まります。ここでの現実的な解は、マシンを買い替えることではなく、研究機関の計算サーバやスーパーコンピュータに処理を投げることです。ただ、そのためにはジョブの投入方法やファイル転送を知っておく必要があります。

『生命科学データ解析をはじめる前に読む本』には、解析環境の構築に加えてスパコンの利用方法を扱う章があります。手元で無理に回そうとしてメモリ不足に突き当たっている段階で読むと、次に取るべき手が見えます。

生命科学データ解析をはじめる前に読む本

生命科学データ解析をはじめる前に読む本(実験医学別冊)

羊土社・2026年5月/3,960円(税込)。清水秀幸/著。Linux コマンドの基本から、公共データベースからのデータ取得、gzip による圧縮・解凍、cut・sort・uniq をパイプでつないだ集計、解析環境の構築、スパコンの利用方法までを扱う。

※上記リンクはアフィリエイト広告(PR)です

まとめ


  • マッピングはリードをゲノム上に対応づける工程で、結果は BAM に出力される。
  • RNA-seq ではスプライシング対応が必須。HISAT2 か STAR を使う(Bowtie2 は DNA-seq 向け)。
  • STAR はインデックス構築(1回)→ マッピング(サンプルごと)の2ステップ。
  • ペアエンドは --readFilesIn に R1・R2 を並べるだけ。

関連記事


参考文献


  • Dobin, A., Davis, C. A., Schlesinger, F., et al. (2013). STAR: ultrafast universal RNA-seq aligner. Bioinformatics, 29(1), 15–21. doi:10.1093/bioinformatics/bts635
  • Kim, D., Paggi, J. M., Park, C., Bennett, C., & Salzberg, S. L. (2019). Graph-based genome alignment and genotyping with HISAT2 and HISAT-genotype. Nature Biotechnology, 37(8), 907–915. doi:10.1038/s41587-019-0201-4
  • Langmead, B., & Salzberg, S. L. (2012). Fast gapped-read alignment with Bowtie 2. Nature Methods, 9(4), 357–359. doi:10.1038/nmeth.1923
  • Kim, D., Pertea, G., Trapnell, C., et al. (2013). TopHat2: accurate alignment of transcriptomes in the presence of insertions, deletions and gene fusions. Genome Biology, 14(4), R36. doi:10.1186/gb-2013-14-4-r36

コメント

タイトルとURLをコピーしました