第5章: トランスクリプトーム解析

5. トランスクリプトーム解析

RNA-seq ワークフロー(QC→トリミング→定量/アライメント→正規化→DE解析→機能解析)
図 5-1: RNA-seq 解析の全体像(QC→トリミング→定量/アライメント→正規化→差次的発現→機能解析)。各段階の入出力と依存関係を見通せることが重要。

学習目標

  • RNA-seq解析の全体像(QC→定量→差次的発現→機能解析)を説明できる
  • 疑似アライメントとアライメントの違い、代表ツールの使い分けを理解する
  • DE解析と多重検定の基本、GO/KEGGを用いた機能解釈を実践できる
  • long-read RNA-seq による isoform 同定・定量と、RNA velocity の解釈上の注意を説明できる

なぜ IT 技術者に必要か

RNA-seq は、FASTQ から count matrix や発現量表へ変換する過程で、参照トランスクリプトーム、annotation version、ライブラリ設計、batch、反復数、正規化方法に強く依存します。IT 技術者がこの依存関係を把握していると、ワークフローの入出力、ログ、計算資源、再実行条件、研究者へ確認すべき設計上の前提を整理しやすくなります。

この章では、RNA-seq の統計モデルや生物学的解釈を本章だけで確定するのではなく、入力、出力、QC、metadata、annotation、限界を説明できることを重視します。

前提知識

  • FASTQ、FASTA、GTF/GFF、count matrix、sample metadata の役割を区別できること。
  • 第2章の実行環境、CPU / メモリ / I/O、ログ記録、ワークフロー管理の基本。
  • 第4章の reference / accession / version / checksum の考え方。
  • 多重検定、FDR、batch、replicate、confounding は第13章と合わせて確認すること。

基本概念

  • count matrix と発現量表: raw counts、TPM、normalized counts は用途が異なるため、統計モデル、可視化、機能解釈で混用しない。
  • 正規化と差次的発現: library size、composition bias、batch、design matrix、contrast、FDR、effect size を分けて記録し、DE 結果を研究上の仮説生成として読む。
  • 機能解釈: GO / KEGG / GSEA は DB 版、背景遺伝子集合、ID 変換条件に依存するため、臨床的有用性や因果関係を単独で主張しない。
  • long-read RNA-seq: full-length transcript、isoform、direct RNA の情報を扱える一方、定量精度、read depth、protocol、basecaller、reference annotation に依存する。

入力データと出力データ

入力 主な処理 出力 確認すること
FASTQ QC、trim、定量またはアラインメント QC report、mapping / assignment summary quality、adapter、read length、library type
参照 transcriptome / genome、GTF/GFF index 作成、annotation mapping index、transcript-to-gene table release、build、gene ID体系、checksum
sample metadata design matrix 作成 条件表、batch情報、contrast定義 replicate、batch、交絡、除外基準
count / TPM table 正規化、DE解析、機能解析 DE table、pathway / GO summary FDR、effect size、独立検証、研究用途限定

標準的なワークフロー

  1. 研究目的、比較条件、反復数、batch、除外基準を metadata として固定する。
  2. FASTQ と参照データの accession、release、checksum、取得日を記録する。
  3. FastQC / MultiQC 等で入力品質を確認し、trim や除外の理由をログに残す。
  4. Salmon / kallisto / STAR / HISAT2 等の選択理由、version、parameter、計算資源を記録する。
  5. tximport / DESeq2 / edgeR / limma などで使う design、contrast、FDR、effect size を明示する。
  6. GO / KEGG / GSEA 等の機能解釈は、DB版と背景遺伝子集合を記録し、研究上の仮説生成として扱う。

実務上の落とし穴

  • サンプル数が少ない例を、そのまま実務研究の十分な設計とみなさない。
  • TPM、FPKM、raw counts、normalized counts を同じ目的で混用しない。
  • transcript-level と gene-level の集約条件、multi-mapping、annotation version の違いを無視しない。
  • batch、library type、strandness、read depth の違いを DE 結果の生物学的差として読まない。
  • GO / KEGG enrichment を、実験的検証なしに因果関係や臨床的有用性として表現しない。

小さな実例と結果の読み方

章内の Salmon + tximport / DESeq2 例は、入出力と受け渡しの構造を理解するための環境依存例です。結果を読むときは、quant.sf の TPM / NumReads、sample metadata、design、contrast、FDR、effect size、QC summary を分けて確認します。小さな公開データでは、実行できることよりも、どの条件をログ化し、どこから研究者・統計担当者へ確認を戻すかを重視します。

限界と注意点

本章のコード断片と試験問題形式の例は、RNA-seq の概念を説明するための簡略例です。入力FASTQ、参照インデックス、十分な反復数、batch設計、統計モデル、機能解析DBの版を省略した状態では、研究結論や臨床判断に使えません。single-cell RNA-seq や spatial omics は第8章で扱い、本章では bulk RNA-seq との違いを誤解しないための入口に留めます。

5.1 RNA-seq解析の基礎

RNA-seqの原理と技術:

  • mRNAの逆転写とシークエンシング
  • ストランド特異的プロトコル
  • 全長転写産物解析(Full-length RNA-seq)

定量化アルゴリズム: 以下は RNA-seq 発現定量の処理境界を説明する Python 断片です。入力 FASTQ、参照インデックス、疑似アライメント実装、QC、エラー処理を省略しているため、そのままでは実行できません。 🧪 概念例(実行不可: 入力 FASTQ・参照インデックス・実装詳細を省略した Python 断片)

class RNAseqQuantifier:
    """RNA-seq発現定量"""
    
    def __init__(self, transcriptome_index):
        self.index = transcriptome_index
        
    def quantify_expression(self, fastq_files):
        """
        転写産物の発現量推定
        
        Returns:
            TPM, FPKM値
        """
        # 疑似アライメント(Kallisto/Salmon風)
        counts = self.pseudoalignment(fastq_files)
        
        # 長さ補正とライブラリサイズ補正
        tpm = self.calculate_tpm(counts)
        
        return tpm

環境依存の手順例(Salmon + tximport/DESeq2)

以下は Salmon による定量と tximport / DESeq2 へ渡す流れを示す手順例です。Salmon、参照トランスクリプトーム、実 FASTQ、出力ディレクトリ、計算資源、バージョン固定を別途準備する必要があります。 ⚠️ 環境依存(Salmon・参照 FASTA・FASTQ 入力に依存する手順例)

# 1) 参照トランスクリプトームのインデックス
salmon index -t transcripts.fa -i idx_transcripts

# 2) サンプルごとに定量(ペアエンド例)
salmon quant -i idx_transcripts -l A \
  -1 sample1_R1.fq.gz -2 sample1_R2.fq.gz -p 8 -o quant/sample1
salmon quant -i idx_transcripts -l A \
  -1 sample2_R1.fq.gz -2 sample2_R2.fq.gz -p 8 -o quant/sample2

# 出力: quant/*/quant.sf(各トランスクリプトのTPM/NumReads等)

以下は Salmon の quant.sf を R 側で読み込む流れを示す手順例です。R、tximport、DESeq2、サンプルメタデータ、transcript-to-gene 対応表、十分な反復数を別途確認する必要があります。 ⚠️ 環境依存(R・tximport/DESeq2・quant.sf 入力に依存する手順例)

# 3) tximport + DESeq2 によるDE解析(最小例)
library(tximport)
library(DESeq2)

samples <- data.frame(
  sample=c('sample1','sample2'),
  condition=c('A','B')
)
files <- file.path('quant', samples$sample, 'quant.sf')
names(files) <- samples$sample

txi <- tximport(files, type='salmon', txOut=TRUE)
dds <- DESeqDataSetFromTximport(txi, colData=samples, design=~ condition)
dds <- DESeq(dds)
res <- results(dds, contrast=c('condition','B','A'))
res <- lfcShrink(dds, coef=2, res=res)
head(res[order(res$padj), ])

5.2 差次的発現解析

統計モデル: 以下は RNA-seq カウントデータの統計モデルを説明する Python 断片です。入力行列、正規化、分散推定、複数検定補正、未定義の補助関数を省略しているため、そのままでは実行できません。 🧪 概念例(実行不可: 入力行列・分散推定・補助関数を省略した Python 断片)

import numpy as np
from scipy import stats

class DifferentialExpression:
    """差次的発現遺伝子の検出"""
    
    def __init__(self, count_matrix, conditions):
        self.counts = count_matrix
        self.conditions = conditions
        
    def deseq2_style_analysis(self):
        """
        DESeq2スタイルの負の二項分布モデル
        """
        # サイズファクター推定
        size_factors = self.estimate_size_factors()
        
        # 分散推定
        dispersions = self.estimate_dispersions()
        
        # Wald検定
        results = self.wald_test(dispersions)
        
        # 多重検定補正(Benjamini-Hochberg)
        padj = self.adjust_pvalues(results['pvalue'])
        
        return results

遺伝子セット解析:

  • Gene Ontology(GO)エンリッチメント
  • KEGG パスウェイ解析
  • GSEA(Gene Set Enrichment Analysis)

5.3 選択的スプライシング解析

イベント検出:

  • Exon skipping
  • Alternative 5’/3’ splice sites
  • Intron retention
  • Mutually exclusive exons

定量化と統計解析: 以下はスプライシング解析の処理境界を説明する Python 断片です。BAM 入力、junction 抽出実装、PSI 算出条件、群間比較、統計検定を省略しているため、そのままでは実行できません。 🧪 概念例(実行不可: BAM 入力・junction 抽出・統計検定を省略した Python 断片)

class SplicingAnalyzer:
    """選択的スプライシング解析"""
    
    def detect_splicing_events(self, bam_file):
        # ジャンクションリードの検出
        junctions = self.extract_junctions(bam_file)
        
        # PSI(Percent Spliced In)値の計算
        psi_values = self.calculate_psi(junctions)
        
        return psi_values

5.4 Long-read RNA-seq / isoform 解析

Long-read RNA-seq は、transcript identification(どの transcript / isoform が存在するか)と quantification(どの程度発現しているか)を分けて設計します。PacBio Iso-Seq / Kinnex や Oxford Nanopore cDNA / direct RNA では full-length transcript を扱いやすく、novel isoform、alternative splicing、fusion transcript、allele-specific expression の探索に向きます。一方、発現量の比較では read depth、protocol、read accuracy、multi-mapping、annotation completeness、batch の影響を受けるため、short-read RNA-seq の count matrix と同じ精度で扱えるとは限りません。

処理 代表ツール例 確認すること
read QC / preprocessing platform summary、MultiQC read length、Q score、yield、poly(A) / adapter、basecaller model、direct RNA / cDNA の別
splice-aware alignment minimap2 等 splice preset、strand、junction annotation、reference genome / transcriptome、BAM checksum
transcript identification IsoQuant、FLAIR、bambu、StringTie2 long-read mode 等 novel isoform 判定、FSM/ISM/NIC などの分類、annotation release、minimum support
transcript quantification IsoQuant、FLAIR、bambu transcript-level counts / TPM、read assignment、replicate、normalization、低発現 isoform の不確実性
differential transcript usage DRIMSeq、DEXSeq、limma 等と連携 gene-level と transcript-level を混同しない、design / contrast / FDR を明示する
RNA modification / direct RNA ONT direct RNA と signal-aware tool kit、basecaller、signal model、control、orthogonal validation を固定し、単独で機能解釈しない

2024年の LRGASP systematic assessment では、transcript 同定では長く精度の高い read が有利で、定量では read depth が重要になり、よく注釈されたゲノムでは reference-based tool が良い性能を示す傾向が報告されています。本書では、IsoQuant、FLAIR、bambu を代表例として挙げますが、いずれも annotation_releasereference_genomeread_typetool_versioncontainer_digestmodel_or_parameters を固定して比較します。

5.5 RNA velocity の注意

RNA velocity は、spliced / unspliced read の比率や動力学モデルから細胞状態の向きを推定する仮説生成手法です。UMAP 上の矢印をそのまま「生物学的時間」や「分化の確定経路」として読まないでください。sampling、cell state、splicing kinetics、model assumption、batch、RNA capture、annotation、近傍グラフの作り方に依存します。

近年は veloVI のように RNA velocity の不確実性を明示的に扱うモデルもありますが、どの手法でも velocity は仮説生成の補助情報であり、UMAP 上の矢印だけで細胞分化経路を確定してはいけません。

実務では、velocity plot を単独の結論にせず、以下を同じレポートへ残します。

  • 使用 tool / model(例: scVelo steady-state / dynamical model)、version、parameter、random seed。
  • spliced / unspliced count の作成条件、reference / annotation release、filter、normalization。
  • latent time や矢印の不確実性、sampling の偏り、既知 marker / trajectory / perturbation / time-course との整合。
  • 研究上の仮説生成であり、臨床判断や介入順序の決定に使わないこと。

🎯 認定試験ポイント

重要概念チェックリスト

RNA-seq基礎 ⭐⭐⭐

  • RNA-seqとマイクロアレイの技術的違いと適用場面を理解している
  • リードカウント・RPKM・FPKM・TPMの違いと正規化手法を説明できる
  • バッチ効果と技術的バイアスの除去手法を把握している
  • 発現変動遺伝子(DEG)検出の統計的原理を理解している

転写制御機構 ⭐⭐⭐

  • 転写因子・エンハンサー・プロモーターの役割を説明できる
  • 選択的スプライシングの種類(エクソンスキップ・結合部位選択等)
  • 非コードRNA(miRNA・lncRNA・circRNA)の機能を理解している
  • 遺伝子発現制御ネットワークの構築手法を把握している

single-cell解析 ⭐⭐

  • scRNA-seqとbulk RNA-seqの違いと技術的課題を理解している
  • 細胞型クラスタリングと疑似時間解析の原理
  • ドロップアウト(零過多データ)への対処法
  • 細胞軌跡推定(trajectory inference)の手法

機能解析・パスウェイ解析 ⭐⭐

  • Gene Ontology(GO)の階層構造と enrichment解析の原理
  • KEGGパスウェイデータベースの構成と解析手法
  • Gene Set Enrichment Analysis(GSEA)の統計的手法
  • 共発現ネットワーク(co-expression network)の構築

典型的な出題パターン

【正規化・定量化】 🧪 概念例(実行不可: 試験問題形式の説明例)

問題例: 3遺伝子の TPM を計算せよ。
遺伝子A: カウント=1000, 長さ=3kb
遺伝子B: カウント=500,  長さ=2kb
遺伝子C: カウント=100,  長さ=1kb

解答:
1) RPK を求める(RPK = count / (length_kb))
   A: 1000/3 = 333.3,  B: 500/2 = 250.0,  C: 100/1 = 100.0
2) 章内全遺伝子の RPK 合計を求める
   合計 = 333.3 + 250.0 + 100.0 = 683.3
3) TPM を求める(TPM = RPK / ΣRPK × 1e6)
   A: 333.3/683.3×1e6 ≈ 487,900
   B: 250.0/683.3×1e6 ≈ 365,900
   C: 100.0/683.3×1e6 ≈ 146,200
   (端数により合計は ≈ 1,000,000)

補足: RPKM は「総リード数でスケーリング」だが、TPM は
      「まず RPK を合計で正規化」する点が異なる。

【統計解析】 🧪 概念例(実行不可: 試験問題形式の説明例)

問題例: DESeq2での発現変動遺伝子検出において、
負の二項分布を使用する理由を説明せよ。

解答: RNA-seqのカウントデータは分散が平均より大きい過分散を示すため。
負の二項分布は平均と分散を独立してモデル化でき、
生物学的および技術的バリエーションを適切に考慮できる。

【技術比較】 🧪 概念例(実行不可: 試験問題形式の説明例)

問題例: bulk RNA-seqとsingle-cell RNA-seqの利点・欠点を比較せよ。

解答: 
bulk RNA-seq: 高感度・低コスト・確立された解析法 / 細胞不均一性情報の喪失
scRNA-seq: 細胞レベル解像度・稀少細胞検出 / 低感度・高コスト・技術ノイズ

【バイオロジー統合】 🧪 概念例(実行不可: 試験問題形式の説明例)

問題例: RNA-seqで同定した発現変動遺伝子群の生物学的意味を
調べるための解析ステップを順序立てて説明せよ。

解答: 
1) GO enrichment解析で機能分類
2) KEGGパスウェイ解析で代謝経路関連を特定
3) 転写因子結合サイト解析で制御機構推定
4) 既知疾患遺伝子データベースとの照合
5) 文献調査による生物学的妥当性検証

関連する付録・章

Source notes / 次の一歩

2026年時点の更新メモ

RNA-seq では、ツール名だけでなく reference / annotation release、workflow、container、sample metadata、QC summary、MultiQC 等の集約ログを合わせて残すことを標準にします。long-read RNA-seq では read type、basecaller、tool model、isoform discovery threshold、direct RNA / cDNA の別を追加し、RNA velocity では model assumption と uncertainty を併記します。時点不明のRNA-seq手法 という表現に留めず、確認日付きの出典、ツール version、DB release、利用条件を記録してから本文や解析メモに反映します。

最小入出力(期待成果物/期待ログ)

  • 入力: 参照トランスクリプトーム(FASTA/GTF)とリード(FASTQ)、条件情報(サンプル表)
  • 出力(期待成果物): 定量結果(例: quant.sf)、DE結果(表)、QCレポート(FastQC/MultiQC)
  • 期待ログ(例): 定量の割当率/処理リード数、DE解析のサマリ(検出遺伝子数・主要パラメータ)

前へ: ゲノム解析技術 目次 次へ: エピゲノム・マルチオミクス解析

演習

  1. 公開データ(例: GEO/SRA の小規模データ)を取得し、FastQC→Trimming→定量(Kallisto/Salmon)→DE解析(DESeq2相当のワークフロー)→GO/KEGGエンリッチメントまで実施し、結果を要約せよ。
  2. 疑似アライメントとアライメント(STAR/HISAT2)の結果(処理時間・割当率・DE結果の差)を比較し、トレードオフを考察せよ。

データセット選定ガイダンス(参考)

  • 小規模(総容量≲1GB、サンプル数≲数点)を優先し、短時間で再現可能なものを選ぶ。
  • レビュアブル(権利許諾・再配布条件)を確認。個人情報・機微情報は扱わない。
  • 例: (RNA-seq)GEOで「RNA-seq AND muscle」等のクエリで小規模を選定/(single-cell)10x GenomicsのPBMC 3k 公開データ/(集団ゲノミクス)1000 Genomesの一部サブセット。

Tiny end-to-end ラボ

examples/labs/transcriptome/ には、合成count matrixを入力としてlibrary QCと成果物検証までを通すネットワーク不要の最小ラボがあります。実行入口は make lab-smoke です。これは標準的なRNA-seq differential expression workflowや生物学的結論を代替しません。