第9章: 集団ゲノミクス
9. 集団ゲノミクス
学習目標
- 本章の主要概念を説明できる(用語/前提条件含む)
- 現実データ/ユースケースでの適用手順を述べられる
- ベストプラクティスや落とし穴を理由とともに指摘できる
9.1 ゲノムワイド関連解析(GWAS)
GWAS実装:
以下はGWAS処理の責務を示す説明用断片で、入力QC、欠測処理、集団構造補正、multiple testing、外部検証、依存ライブラリ準備を省略しているため、そのまま実行しない。 🧪 概念例(実行不可: 依存ライブラリ準備(インストール等)・入力前処理を省略した説明用Python断片)
import numpy as np
import pandas as pd
import statsmodels.api as sm
from scipy import stats
class GWASAnalyzer:
"""GWAS解析パイプライン"""
def __init__(self, genotype_matrix, phenotype, covariates=None):
self.genotypes = genotype_matrix
self.phenotype = phenotype
self.covariates = covariates
def run_gwas(self):
"""
線形回帰によるGWAS
"""
results = []
for snp_idx in range(self.genotypes.shape[1]):
snp_data = self.genotypes[:, snp_idx]
# 線形モデルの構築
X = snp_data
if self.covariates is not None:
X = np.column_stack([X, self.covariates])
X = sm.add_constant(X)
# 回帰分析
model = sm.OLS(self.phenotype, X)
result = model.fit()
# P値とベータ値の抽出
p_value = result.pvalues[1] # SNPの効果
beta = result.params[1]
results.append({
'snp_idx': snp_idx,
'p_value': p_value,
'beta': beta
})
return pd.DataFrame(results)
def manhattan_plot(self, results):
"""マンハッタンプロットの作成"""
import matplotlib.pyplot as plt
# -log10(p-value)の計算
results['neglog10p'] = -np.log10(results['p_value'])
plt.figure(figsize=(12, 6))
plt.scatter(results.index, results['neglog10p'], alpha=0.5)
plt.axhline(y=-np.log10(5e-8), color='r', linestyle='--')
plt.xlabel('SNP Position')
plt.ylabel('-log10(P-value)')
plt.title('Manhattan Plot')
plt.show()
9.2 集団構造解析
PCAによる集団構造: 以下はPCAによる集団構造確認の考え方を示す説明用断片で、入力QC、欠測処理、LD pruning、依存ライブラリ準備を省略しているため、そのまま実行しない。 🧪 概念例(実行不可: 依存ライブラリ準備(インストール等)・入力前処理を省略した説明用Python断片)
import numpy as np
class PopulationStructure:
"""集団構造解析"""
def __init__(self, genotype_matrix):
self.genotypes = genotype_matrix
def perform_pca(self, n_components=10):
"""
遺伝的主成分分析
"""
from sklearn.decomposition import PCA
# アレル頻度の標準化
standardized = self.standardize_genotypes()
# PCA実行
pca = PCA(n_components=n_components)
pc_coords = pca.fit_transform(standardized)
return pc_coords, pca.explained_variance_ratio_
def standardize_genotypes(self):
"""Patterson et al. 2006の標準化"""
p = np.mean(self.genotypes, axis=0) / 2
std_geno = (self.genotypes - 2*p) / np.sqrt(2*p*(1-p))
return std_geno
9.3 選択圧の検出
自然選択の検出手法: 以下は選択圧指標の計算責務を示す説明用断片で、実務で必要な推定量選択、集団定義、QC、信頼区間評価を省略しているため、そのまま実行しない。 🧪 概念例(実行不可: 推定量選択・QCを省略した説明用Python断片)
import numpy as np
class SelectionDetection:
"""自然選択シグナルの検出"""
def calculate_fst(self, pop1_geno, pop2_geno):
"""
集団間の遺伝的分化(F_ST)の簡易指標。
注: Weir & Cockerham などの推定量とは異なる。
"""
# アレル頻度の計算
p1 = np.mean(pop1_geno, axis=0) / 2
p2 = np.mean(pop2_geno, axis=0) / 2
# 全体のアレル頻度
p_total = (p1 + p2) / 2
# F_ST の単純化した近似(2集団・二値アレル・欠測なし等の前提)
num = (p1 - p2)**2
denom = p_total * (1 - p_total)
fst = num / (denom + 1e-10)
return fst
def integrated_haplotype_score(self, haplotypes, position):
"""
iHS (integrated Haplotype Score)の計算
"""
# Extended Haplotype Homozygosityの計算
# 実装省略(計算集約的)
pass
Source notes / 次の一歩
- 2026年版出典監査メモ: pangenome / reference bias / PRS(HPRC、GWAS Catalog、PGS Catalog、PRS transferability の確認日)
- 第3章: アルゴリズムとデータ構造(pangenome graph、k-mer、BWT/FM-index などの背景)
- 第4章: ゲノム解析(参照配列、mapping、variant calling、annotation の責任境界)
- 第11章: プライバシー保護・セキュリティ(ヒトゲノム・表現型データのアクセス制御と二次利用条件)
- 第12章: 臨床応用・医療システム連携(研究用PRS/biomarker情報と臨床判断の境界)
2026年時点の更新メモ: 参照ゲノム・集団差・PRS
集団ゲノミクスでは、解析対象のサンプル構成だけでなく、どの参照ゲノム・imputation panel・variant set・phenotype definition を使ったかが結果の意味を左右します。GRCh38、T2T-CHM13、ヒトパンゲノムは用途が異なり、線形参照だけに依存した mapping / variant discovery では reference bias が下流の association study に影響し得ます。12
GWAS と PRS / PGS を扱うときは、summary statistics の列名や p-value だけでなく、sample ancestry、sex、phenotype definition、genotyping array、imputation reference、reference build、effect allele、allele frequency、外部検証集団、calibration を記録します。sample ancestry は自己申告属性や race/ethnicity の単純な代替ラベルではなく、データ収集・解析上のメタデータとして扱います。GWAS Catalog と PGS Catalog は、study / trait / sample metadata、scoring file、performance metrics、ancestry description を確認する入口になります。3456
PRS は discovery cohort と target cohort の ancestry、LD構造、環境、測定法、医療制度に依存します。欧州系データ中心のスコアを別集団へそのまま適用すると、予測性能の低下や格差拡大につながり得るため、本章では研究・教育用の概念説明に留め、臨床リスク判定や個人の健康判断には使いません。7
| 確認項目 | なぜ必要か | 記録する証跡 |
|---|---|---|
| reference build / pangenome | 座標、variant representation、mapping bias が変わる | GRCh38/T2T/pangenome の別、liftover/remap 手順、checksum、使用ツールversion |
| sample ancestry / population structure | GWASの交絡、PRS transferability、外部妥当性に影響する | PCA、relatedness、self-reported ancestry と genetic ancestry の扱い、除外基準 |
| imputation / allele alignment | effect allele の反転、strand ambiguity、panel差で結果が変わる | imputation panel、INFO/R2、effect allele、non-effect allele、frequency照合 |
| external validation | discovery cohort での性能は別集団・別測定系へ一般化できない | 検証集団、performance metric、calibration、適用しない集団・用途 |
最小入出力(期待成果物/期待ログ)
- 入力: ジェノタイプ(VCF/BCF等)とサンプル情報、表現型/共変量(GWASを行う場合)
- 出力(期待成果物): QC後データ、集団構造(PCA等)の要約、GWAS結果(summary statistics)、選択圧検出の結果(最小限)
- 期待ログ(例): サンプル数/変異数、QCの閾値、解析ステップの正常終了と主要指標が記録されている
| 前へ: シングルセル・空間解析 | 目次 | 次へ: データベース技術 |
演習
- 本章の手順をサンプルデータで再現し、各ステップのログと主要指標を記録して提出せよ。
- 代替ツール/パラメータで同等の分析を実施し、結果差分と選定理由を考察せよ。
具体課題例
- 公開データを用いた再現(SRA/GEO/ArrayExpressから実在アクセッションを選定し)、前処理→主解析→結果要約まで実施。
- 代替ツールの比較 (例: ツールA vs ツールB)。処理時間/メモリ/精度など評価指標を定義し、比較表を作成。
- 成果物一式(レポート、使用コマンド/パラメータ、ツール/ライブラリのバージョン、入力/出力、実行ログ、MultiQC等のレポート、図表)を添付。
データセット選定ガイダンス(参考)
- 小規模(総容量≲1GB、サンプル数≲数点)を優先し、短時間で再現可能なものを選ぶ。
- レビュアブル(権利許諾・再配布条件)を確認。個人情報・機微情報は扱わない。
- 例: (RNA-seq)GEOで「RNA-seq AND muscle」等のクエリで小規模を選定/(single-cell)10x GenomicsのPBMC 3k 公開データ/(集団ゲノミクス)1000 Genomesの一部サブセット。
-
Human Pangenome Reference Consortium, Human Pangenome Reference Consortium(参照日: 2026-05-13 JST) ↩
-
Human Pangenome Reference Consortium, HPRC Data Release 2(参照日: 2026-05-13 JST) ↩
-
Human Pangenome Reference Consortium, HPRC Data Use: Best Practices(参照日: 2026-05-13 JST) ↩
-
NHGRI-EBI GWAS Catalog, GWAS Catalog documentation(参照日: 2026-05-13 JST) ↩
-
PGS Catalog, Download information(参照日: 2026-05-13 JST) ↩
-
PGS Catalog, Ancestry description(参照日: 2026-05-13 JST) ↩
-
Martin et al., Clinical use of current polygenic risk scores may exacerbate health disparities(参照日: 2026-05-13 JST) ↩