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

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

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

学習目標

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

5.1 RNA-seq解析の基礎

RNA-seqの原理と技術:

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

定量化アルゴリズム:

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

実行例(Kallisto/Salmon + DESeq2)

# 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等)
# 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 差次的発現解析

統計モデル:

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

定量化と統計解析:

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

🎯 認定試験ポイント

重要概念チェックリスト

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) 文献調査による生物学的妥当性検証

関連する付録・章

  • 付録G: 認定試験全体の対策情報
  • 付録H: トランスクリプトーム解析ツール・データベース一覧
  • 第4章: ゲノム解析技術(DNA解析との比較)
  • 第6章: エピゲノム・マルチオミクス解析(統合解析)
  • 第13章: 機械学習・AI手法(高度な解析手法)

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

演習

  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の一部サブセット。