第14章: ケーススタディ

この章を読む理由

第14章は、前章までに学んだ解析・機械学習・DB・臨床応用の観点を、 実在のケースで統合して判断する章です。 個別のツール知識よりも、目的、入力、制約、成果物、説明責任をどう結び付けるかを確認します。

本章で使う共通題材

  • 題材A: SARS-CoV-2 公開データ
    • SRR11140744 / MN908947.3
    • 変異追跡と監視系設計の最小例として使います。
  • 題材B: TCGA-LUAD 研究用ミニケース
    • TCGA-LUAD
    • 発現行列・変異情報・臨床メタデータを統合し、研究支援から臨床連携へ渡す境界を確認します。

学習目標

  • 各ケースの背景、目的、入力、制約、評価軸を説明できる
  • コスト、データ規模、規制、再現性の観点で代替設計を比較できる
  • 実務へ適用する際に、何を自動化し、何を人手判断へ残すべきか整理できる

14.1 COVID-19変異株解析

背景と目的: 2020年以降、SARS-CoV-2の変異株追跡が公衆衛生上の重要課題となった。リアルタイムでの変異検出と伝播パターンの解析が求められた。

実装アプローチ: この概念例は監視系の処理境界を示す簡略コードで、実データ取得、品質管理、lineage assignment tool、監査ログ、当局報告手順は省略しています。 🧪 概念例

class COVID19VariantTracker:
    """COVID-19変異株追跡システム"""
    
    def __init__(self):
        self.reference_genome = self.load_reference()
        self.variant_database = {}
        
    def analyze_new_sequence(self, sequence_data):
        """新規配列の変異解析"""
        # アライメント
        alignment = self.align_to_reference(sequence_data)
        
        # 変異検出
        mutations = self.call_mutations(alignment)
        
        # 既知変異株との比較
        lineage = self.assign_lineage(mutations)
        
        # 新規変異の評価
        novel_mutations = self.identify_novel_mutations(mutations)
        
        return {
            'lineage': lineage,
            'mutations': mutations,
            'novel_mutations': novel_mutations
        }
    
    def track_mutation_dynamics(self, time_series_data):
        """変異の時間的ダイナミクス追跡"""
        mutation_frequencies = {}
        
        for timepoint in time_series_data:
            for mutation in timepoint['mutations']:
                if mutation not in mutation_frequencies:
                    mutation_frequencies[mutation] = []
                    
                freq = timepoint['frequency']
                mutation_frequencies[mutation].append(
                    (timepoint['date'], freq)
                )
                
        return mutation_frequencies

成果物と利用上の境界:

  • 配列、変異、lineage、時系列頻度を同じ形式で記録し、監視系の更新・監査・説明資料に使える候補表を作る
  • 共有データや専門機関の評価と照合し、研究・監視上の仮説や追加確認事項を整理する
  • ワクチン開発、公衆衛生政策、リスク評価の最終判断は、本書の解析例だけでは行わず、疫学・実験・臨床・行政の別証拠と専門家レビューに委ねる

14.2 大規模がんゲノムプロジェクト

The Cancer Genome Atlas (TCGA)解析: この概念例は公開研究データの統合解析設計を示す簡略コードで、データ利用条件、前処理、統計モデル、臨床判断への接続は省略しています。 🧪 概念例

class TCGAAnalyzer:
    """TCGAデータの統合解析"""
    
    def __init__(self, cancer_type):
        self.cancer_type = cancer_type
        self.load_multiomics_data()
        
    def integrated_analysis(self):
        """マルチオミクス統合解析"""
        # 体細胞変異
        mutations = self.analyze_mutations()
        
        # コピー数変異
        cnv = self.analyze_copy_number()
        
        # 遺伝子発現
        expression = self.analyze_expression()
        
        # メチル化
        methylation = self.analyze_methylation()
        
        # 統合クラスタリング
        subtypes = self.consensus_clustering([
            mutations, cnv, expression, methylation
        ])
        
        return subtypes
    
    def survival_analysis(self, subtypes, clinical_data):
        """サブタイプ別の生存解析"""
        from lifelines import KaplanMeierFitter
        
        results = {}
        
        for subtype in subtypes.unique():
            mask = subtypes == subtype
            
            kmf = KaplanMeierFitter()
            kmf.fit(
                clinical_data[mask]['survival_time'],
                clinical_data[mask]['event']
            )
            
            results[subtype] = {
                'median_survival': kmf.median_survival_time_,
                'survival_function': kmf.survival_function_
            }
            
        return results

研究上の読み方:

  • 統合クラスタリングは、既報サブタイプや外部コホートと照合するための仮説生成として扱う
  • 生存解析や発現差は、予後予測バイオマーカー候補の優先順位づけであり、単独で臨床有用性を示さない
  • 治療標的候補は、機能検証、薬剤感受性、evidence level、専門家レビューを経て評価する

14.3 日本人基準ゲノム構築

プロジェクト概要: 日本人集団に特有の遺伝的多様性を反映した高精度な基準ゲノム配列の構築。

技術的アプローチ: この概念例は集団参照・pangenome の設計観点を示す簡略コードで、個人データ利用、同意、アセンブリ検証、臨床報告は省略しています。 🧪 概念例

class JapaneseReferenceGenome:
    """日本人基準ゲノム構築"""
    
    def __init__(self):
        self.samples = []
        self.assembly = None
        
    def construct_pangenome(self, population_samples):
        """パンゲノムの構築"""
        # 各個体のde novoアセンブリ
        assemblies = []
        for sample in population_samples:
            assembly = self.perform_hifi_assembly(sample)
            assemblies.append(assembly)
            
        # グラフゲノムの構築
        graph_genome = self.build_graph_genome(assemblies)
        
        # 日本人特異的変異の同定
        jp_specific = self.identify_population_specific_variants(
            graph_genome
        )
        
        return graph_genome, jp_specific
    
    def evaluate_research_sample(self, research_sample_genome):
        """研究用途の参照選択・頻度注釈候補を整理"""
        # 日本人集団参照へのマッピング条件を評価
        alignment_summary = self.evaluate_alignment_to_jp_reference(
            research_sample_genome
        )
        
        # 研究用のvariant候補を抽出
        candidate_variants = self.collect_candidate_variants(
            alignment_summary
        )
        
        # 集団頻度を添えて、専門家レビュー前の候補表を作る
        annotated_candidates = self.annotate_population_frequency(
            candidate_variants
        )
        
        return annotated_candidates

インパクト:

  • 日本人集団で見落としやすいvariant候補探索の補助
  • 薬理ゲノミクス研究や集団頻度注釈の基盤整備
  • 参照ゲノム選択と集団差に関する説明責任の向上

14.4 AI支援解析ケース: 構造予測・創薬・ゲノムモデル

背景: AI を使うケーススタディでは、構造予測、化合物生成、variant effect prediction、ゲノム foundation model を同じ「AI創薬」という言葉でまとめすぎると、入力、出力、検証方法、利用条件を誤解しやすくなります。このケースでは、AlphaFold 3 / AlphaFold DB、AlphaMissense、AlphaGenome、Evo 2、Nucleotide Transformer、scGPT を、研究用途の仮説生成・候補優先順位づけ・説明資料作成の道具として扱います。

目的:

  • 標的タンパク質、変異、発現・single-cell情報、ゲノム配列候補を、同じ評価表で比較できる形に整理する。
  • 予測モデルの出力を、薬効・安全性・臨床有用性の証明ではなく、次の実験・専門家レビューに渡す入力として扱う。
  • モデルカード、データカード、利用条件、version、乱数、入力配列、参照DB release を記録する。

データ:

  • 標的候補: 遺伝子名、isoform、UniProt/RefSeq/Ensembl ID、関連文献、疾患との関係。
  • 構造情報: AlphaFold DB の予測構造、AlphaFold 3 / AlphaFold Server 等の複合体予測、実験構造がある場合は PDB ID。
  • 変異・配列情報: AlphaMissense、AlphaGenome、Evo 2、Nucleotide Transformer 等の予測対象となる配列・variant・genomic interval。
  • 細胞文脈: scGPT などで扱う single-cell / multi-omics の細胞型、batch、組織、前処理条件。

ワークフロー:

  1. 問いを「結合部位探索」「variant の優先順位づけ」「ゲノム配列設計案の評価」「細胞状態の注釈支援」のいずれかに分ける。
  2. 入力データの accession、version、参照配列、前処理、利用条件を固定する。
  3. モデルごとに、入力、出力、confidence、適用外条件、非商用・研究用途などの制約を記録する。
  4. 予測結果を同じ表に統合し、実験検証、毒性評価、薬事・知財・ライセンス確認へ渡す候補を絞る。
  5. 最終判断は wet 実験、専門家レビュー、施設の品質管理、規制・契約確認に委ねる。

判断ポイント:

  • AlphaFold 3 / AlphaFold DB は構造仮説を与えるが、結合、活性、毒性、臨床効果を直接証明しない。
  • AlphaGenome / Evo 2 / Nucleotide Transformer は配列・variant・設計案の探索支援であり、個人ゲノムの臨床判断や安全性保証には使わない。
  • scGPT は single-cell 文脈の注釈・統合・仮説生成を支援するが、batch、組織、前処理、細胞型定義に依存する。
  • AlphaMissense などの variant effect prediction は優先順位づけの補助であり、臨床分類にはガイドライン、専門家レビュー、検証済みDBが必要になる。

失敗例:

  • 予測 confidence が高い構造を、阻害活性や薬効の証拠として扱う。
  • 非商用・研究用途のモデルやAPI出力を、商用提案書や臨床報告にそのまま転用する。
  • ゲノム foundation model の生成配列を、安全性・機能性が実証済みの設計案として扱う。
  • single-cell model の cell type annotation を、マーカー確認やサンプル由来の検証なしに確定ラベルとして扱う。

結果の読み方: 候補ごとに、入力データ、モデル名、model/version、出力指標、confidence、根拠リンク、適用外条件、次の検証を表で残します。順位は「次に調べる順番」であり、「有効性が高い順」ではありません。

限界: 予測モデルは、学習データ、参照DB、配列長、対象分子、組織・細胞型、実験条件に依存します。未知の化合物、希少variant、非標準的な細胞状態、生成配列では、外挿の危険が大きくなります。

倫理・法務・ライセンス注意: 個人ゲノムや医療データを使わず、公開・匿名化・利用許諾が確認できる研究データに限定します。非商用API、model weight terms、DB利用規約、CC BY-NC-SA 4.0 の扱いを記録し、商用利用可能性を本書だけで保証しません。

次に学ぶこと: 第7章で model evaluation / leakage / foundation model の限界、第10章で accession・version・provenance、第12章で臨床ゲノムの責任境界、第13章で再現性と研究デザインを確認します。

2026年時点のAI / foundation model導線(確認日: 2026-05-13 JST):

  • AlphaFold 3 / AlphaFold DB は、構造仮説と複合体予測の導線として扱い、利用条件、DB release、旧版取得方法、API field変更予定を記録する。
  • AlphaGenome、Evo 2、Nucleotide Transformer、scGPT、AlphaMissense は、研究用途の候補評価・仮説生成・注釈支援として位置づけ、直接の臨床判断や個人ゲノム予測の根拠にはしない。
  • 構造予測、化合物生成、ADMET予測、ゲノム foundation model、single-cell foundation model は入力・出力・検証単位が異なるため、同じ「AI」ラベルで混同しない。

🧪 概念例

class AIAssistedCandidateReview:
    """AI支援解析ケースの候補レビュー概念例"""
    
    def __init__(self):
        self.molecular_generator = self.build_generator()
        self.activity_predictor = self.build_predictor()
        
    def prioritize_candidates(self, target_protein, variant_context):
        """実験検証へ渡す候補の優先順位づけ"""
        # 標的タンパク質の構造仮説と variant context を分けて記録する
        binding_site = self.analyze_binding_site(target_protein)
        variant_notes = self.summarize_variant_context(variant_context)
        
        candidates = []
        for _ in range(10000):
            molecule = self.molecular_generator.generate()
            docking_score = self.perform_docking(molecule, binding_site)
            admet = self.predict_admet_properties(molecule)
            
            if self.passes_research_filters(docking_score, admet, variant_notes):
                candidates.append(molecule)
                
        return self.rank_for_experimental_follow_up(candidates)

成果:

  • 探索範囲の絞り込みや優先順位づけの効率化(ケースによる)
  • 実験検証へ進める候補を説明可能な基準で整理できる場合がある
  • 予測結果は薬効・安全性・臨床有用性の証明ではなく、追加検証の入力として扱う

まとめ

  • ケーススタディの価値は、手法を列挙することではなく、目的に応じて入力、評価軸、制約を切り替える点にあります。
  • SRR11140744 は最小パイプラインと監視設計の例として、TCGA-LUAD は研究支援と臨床連携の境界を考える例として有効です。
  • 本書を読み終えた後は、付録F/J/K を使って、自分の関心領域に近い題材へ横展開してください。

Source notes / 次の一歩

本書の締めとして意識したいこと

実務では、1 つの手法を覚えるよりも、 「この題材ならどのデータを使い、どこまで自動化し、誰に確認を渡すか」を説明できることが重要です。 付録の補助資料を使いながら、題材ごとの判断メモを残してください。

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

  • 入力: 公開データ(アクセッション/出典)と参照データ(ゲノム/注釈)、解析目的(何を比較/検出するか)
  • 出力(期待成果物): 再現レポート(手順・結果要約・図表)と、意思決定メモ(ツール/パラメータ選定理由、責任境界、追加検証条件)
  • 期待ログ(例): 実行コマンド・バージョン・主要指標(QC/統計)、入力snapshot、正常終了、未検証の仮定が分かるログ

前へ: 研究手法 目次 付録A

演習

  1. SRR11140744TCGA-LUAD のどちらかを選び、目的、入力、評価軸、制約、成果物を 1 ページで整理せよ。
  2. COVID-19 監視系、がんゲノム研究支援、日本人基準ゲノム、AI 創薬の 4 ケースについて、 データ規模、説明責任、規制、更新頻度の観点で比較表を作成せよ。
  3. 自動化すべき処理と、人手レビューを残すべき処理を切り分け、その理由を述べよ。

具体課題例

  • SRR11140744 を題材に、第4章の最小パイプラインから第10章の保存設計までを 1 つのメモにまとめる。
  • TCGA-LUAD を題材に、第7章のモデル評価、第10章のデータマート、第12章のレポート候補作成をつなげて説明する。
  • 現場導入前に必要な確認事項(同意、監査、コスト、再現性、追加検証、専門家レビュー)をチェックリスト化する。