mcpField
T
tooluniverse-gwas-trait-to-gene

tooluniverse-gwas-trait-to-gene

github.com/mims-harvardデータ・データベース1.8k364 回インストール3 日前に更新
リポジトリ

tooluniverse-gwas-trait-to-gene について

GWAS CatalogとOpen Targets Geneticsのデータから、疾患や形質に関連する遺伝子を調べる研究者向けのToolUniverseスキルです。関連の強さ、再現性、ファインマッピング、L2Gスコアで候補を順位付けし、関連は因果の確定ではない点も示します。

主な機能

  1. 01GWAS関連と研究の検索
  2. 02有意性と再現性による遺伝子の順位付け
  3. 03ファインマッピング済み信頼区間の取得
  4. 04L2Gスコアによる遺伝子候補の優先付け
  5. 05祖先集団とマッピングの限界に関する指針

活用シーン

  1. 01疾患に関連する遺伝子候補の探索
  2. 02創薬標的候補の優先順位付け
  3. 03GWAS変異の候補遺伝子への対応付け

MCP 対応

このスキルはToolUniverseのツールでGWAS Catalogを検索し、Open Targets GeneticsのファインマッピングおよびL2G根拠を取得します。

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-gwas-trait-to-gene

インストール後、Claude Code で/tooluniverse-gwas-trait-to-geneを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

.env.template
python_implementation.py
test_gwas_tools.py
test_skill_comprehensive.py

詳細

GWAS形質から遺伝子を特定

最も近い遺伝子が正しいとは限りません。 eQTL、クロマチン相互作用、距離データを統合したOpen TargetsのL2G(locus-to-gene)スコアを使用してください。L2G > 0.5は有力な予測です。原因遺伝子を主張する際に、位置情報に基づくマッピングだけを使用してはいけません。p < 5e-8を満たすGWAS研究が1件だけの場合は示唆的な結果にすぎず、高い確度を得るには独立したコホートでの再現が必要です。GWASヒットは、研究対象集団における関連を示すものです。LDパターンの違いにより、祖先集団間で効果量や関連が示された遺伝子さえも異なる場合があります。GWASの遺伝子リストは、確定した原因遺伝子ではなく、検証対象となる候補の順位付けとして扱ってください。

推測せずに検索する:形質と遺伝子の対応やL2Gスコアを決めつけないでください。必ずgwas_search_associationsとOpenTargets_get_study_credible_setsを呼び出して最新データを取得してください。新たなGWASの発表に伴い、関連情報は更新されます。

ゲノムワイド関連解析(GWAS)を用いて、疾患や形質に関連する遺伝子を特定する

概要

このスキルでは、2つの主要なリソースからGWASデータを解析し、疾患/形質に関連する遺伝子を体系的に特定できます。

  • GWAS Catalog(EBI/NHGRI):50万件を超える関連情報を収録した、公開済みGWASのキュレーション済みカタログ
  • Open Targets Genetics:ファインマッピング済みのGWASシグナルと、locus-to-gene(L2G)予測

ユースケース

臨床研究

  • 「2型糖尿病に関連する遺伝子は何ですか?」
  • 「冠動脈疾患の遺伝的リスク因子を特定する」
  • 「アルツハイマー病への感受性に寄与する遺伝子はどれですか?」

創薬ターゲットの特定

  • 疾患の原因に対する遺伝学的エビデンスが強い遺伝子を特定する
  • L2Gスコアと複数研究での再現性に基づいてターゲットの優先順位を付ける
  • ゲノムワイド有意な関連(p < 5e-8)を持つ遺伝子を見つける

機能ゲノミクス

  • 疾患関連バリアントを候補遺伝子に対応付ける
  • 複雑形質の遺伝的構造を解析する
  • 多遺伝子性疾患のメカニズムを理解する

ワークフロー

1. Trait Search → Search GWAS Catalog by disease/trait name
       ↓
2. SNP Aggregation → Collect genome-wide significant SNPs (p < 5e-8)
       ↓
3. Gene Mapping → Extract mapped genes from associations
       ↓
4. Evidence Ranking → Score by p-value, replication, fine-mapping
       ↓
5. Annotation (Optional) → Add L2G predictions from Open Targets

主な概念

ゲノムワイド有意性

  • 標準的な閾値:p < 5×10⁻⁸
  • 約100万個の一般的なバリアントに対する多重検定の負担を考慮
  • より高い確度:p < 5×10⁻¹⁰、または複数の研究で再現

遺伝子マッピングの手法

  • 位置情報に基づくマッピング:リードSNPに最も近い遺伝子
  • ファインマッピング:統計的に絞り込み、信用できるバリアントを特定
  • Locus-to-Gene(L2G):複数のエビデンス種別を組み合わせた統合スコア

エビデンスの確度レベル

  • 高:L2Gスコア > 0.5、またはp < 5e-10を満たす複数の研究
  • 中:p < 5e-8を満たす研究が2件以上
  • 低:単一の研究、または境界的な有意性

必須のToolUniverseツール

GWAS Catalog(11個のツール)
  • gwas_get_associations_for_trait - 形質に関するすべての関連情報を取得(p値順)。注意:このツールは動作しません。代わりに、動作するgwas_search_associations(query=trait)を使用してください
  • gwas_search_snps - 遺伝子マッピングに基づいてSNPを検索
  • gwas_get_snp_by_id - SNPの詳細を取得(MAF、帰結、位置)
  • gwas_get_study_by_id - 研究のメタデータを取得
  • gwas_search_associations - フィルターを指定して関連情報を検索(形質の検索に推奨)
  • gwas_search_studies - 形質/コホートで研究を検索
  • gwas_get_associations_for_snp - SNPに関するすべての関連情報を取得
  • gwas_get_variants_for_trait - 形質に関連するバリアントを取得。p値の閾値を指定するパラメーターはありません(指定しても無視されます)。pvalue_mantissa/pvalue_exponentでクライアント側のフィルタリングを行ってください(以下の注記を参照)
  • gwas_get_studies_for_trait - 形質に関する研究を取得
  • gwas_get_snps_for_gene - 遺伝子にマッピングされたSNPを取得。パラメーターはgene_symbolです(mapped_geneではありません)
  • gwas_get_associations_for_study - 研究の関連情報を取得
Open Targets Genetics(6 個のツール)
  • OpenTargets_search_gwas_studies_by_disease - 疾患オントロジーで研究を検索
  • OpenTargets_get_study_credible_sets - 研究のファインマッピング済み座位を取得
  • OpenTargets_get_variant_credible_sets - バリアントのクレディブルセットを取得
  • OpenTargets_get_variant_info - バリアントのアノテーション(頻度、影響)を取得
  • OpenTargets_get_gwas_study - 研究のメタデータを取得
  • OpenTargets_get_credible_set_detail - クレディブルセットの詳細情報を取得

パラメーター

必須

  • trait - 疾患/形質名(例:「2 型糖尿病」、「冠動脈疾患」)

任意

  • p_value_threshold - 有意性のしきい値(デフォルト:5e-8)
  • min_evidence_count - 研究の最小件数(デフォルト:1)
  • max_results - 返す遺伝子の最大数(デフォルト:100)
  • use_fine_mapping - L2G 予測を含める(デフォルト:true)
  • disease_ontology_id - Open Targets の疾患オントロジー ID(例:「MONDO_0005148」)

出力スキーマ

{
  "genes": [
    {
      "symbol": str,              # Gene symbol (e.g., "TCF7L2")
      "min_p_value": float,       # Most significant p-value
      "evidence_count": int,      # Number of independent studies
      "snps": [str],              # Associated SNP rs IDs
      "studies": [str],           # GWAS study accessions
      "l2g_score": float | null,  # Locus-to-gene score (0-1)
      "credible_sets": int,       # Number of credible sets
      "confidence_level": str     # "High", "Medium", or "Low"
    }
  ],
  "summary": {
    "trait": str,
    "total_associations": int,
    "significant_genes": int,
    "data_sources": ["GWAS Catalog", "Open Targets"]
  }
}

結果の例

2 型糖尿病

TCF7L2:  p=1.2e-98, 15 studies, L2G=0.82 → High confidence
KCNJ11:  p=3.4e-67, 12 studies, L2G=0.76 → High confidence
PPARG:   p=2.1e-45, 8 studies,  L2G=0.71 → High confidence
FTO:     p=5.6e-42, 10 studies, L2G=0.68 → High confidence
IRS1:    p=8.9e-38, 6 studies,  L2G=0.54 → High confidence

アルツハイマー病

APOE:    p=1.0e-450, 25 studies, L2G=0.95 → High confidence
BIN1:    p=2.3e-89,  18 studies, L2G=0.88 → High confidence
CLU:     p=4.5e-67,  16 studies, L2G=0.82 → High confidence
ABCA7:   p=6.7e-54,  14 studies, L2G=0.79 → High confidence
CR1:     p=8.9e-52,  13 studies, L2G=0.75 → High confidence

ベストプラクティス

1. 精度を高めるために疾患オントロジー ID を使用する

# Instead of:
discover_gwas_genes("diabetes")  # Ambiguous

# Use:
discover_gwas_genes(
    "type 2 diabetes",
    disease_ontology_id="MONDO_0005148"  # Specific
)

2. エビデンスの強さでフィルタリングする

# For drug targets, require strong evidence:
discover_gwas_genes(
    "coronary artery disease",
    p_value_threshold=5e-10,    # Stricter than GWAS threshold
    min_evidence_count=3,       # Multiple independent studies
    use_fine_mapping=True       # Include L2G predictions
)

3. 結果を慎重に解釈する

  • 関連性 ≠ 因果関係:GWAS で特定されるのは相関するバリアントであり、必ずしも原因遺伝子とは限りません
  • 連鎖不平衡:リード SNP は、近傍遺伝子にある真の原因バリアントを示している場合があります
  • ファインマッピング:L2G スコアは、位置マッピングよりも原因遺伝子を示すエビデンスとして優れています
  • 機能的エビデンス:相補的なデータ(eQTL、ノックアウトモデルなど)を用いて検証してください

ツール固有の注意事項(更新)

gwas_get_variants_for_trait -- p 値によるフィルタリング

このツールには p 値のしきい値を指定するパラメーターがありません。p_value_threshold=... 引数は 無視されるため(実際に確認済み:指定の有無で出力は同一)、返された関連性を自分で フィルタリングしてください。最も強い関連性を先頭に取得するには sort="p_value", direction="asc" を使用し、 page/size でページを指定してください(metadata.pagination.totalElements が合計件数です)。

result = tu.tools.gwas_get_variants_for_trait(
    trait="type 2 diabetes", size=200, sort="p_value", direction="asc"
)

def genome_wide_significant(a, exp=-8, mant=5):        # p < 5e-8
    return (a['pvalue_exponent'], a['pvalue_mantissa']) < (exp, mant)

hits = [a for a in result['data'] if genome_wide_significant(a)]

p_value ではなく pvalue_mantissa と pvalue_exponent でフィルタリングしてください。p_value の浮動小数点値は、 非常に小さい p 値(例:3 x 10^-1315)では 0.0 にアンダーフローするため、しきい値との比較に使用できません。

gwas_get_associations_for_trait -- 動作不良

このツールは多くのクエリでエラーを返します。信頼できる代替手段として gwas_search_associations(query=<trait>) を使用してください。応答形式は {data: [{...}], metadata: {...}} です。

gwas_get_snps_for_gene -- パラメーター名の変更

明確さを高めるため、パラメーター名が mapped_gene から gene_symbol に変更されました。次のように使用してください:

result = tu.tools.gwas_get_snps_for_gene(gene_symbol="TCF7L2")

プログラムによるアクセス(ツール以外)

ToolUniverse ツールの結果が限られている場合や、GWAS Catalog 全体が必要な場合:

import requests, pandas as pd

# Download full GWAS Catalog (all associations, ~37MB TSV)
url = "https://www.ebi.ac.uk/gwas/api/search/downloads/alternative"
df = pd.read_csv(url, sep="\t")
# Filter locally by trait or gene
hits = df[df["DISEASE/TRAIT"].str.contains("type 2 diabetes", case=False, na=False)]
gene_hits = df[df["MAPPED_GENE"].str.contains("TCF7L2", na=False)]

# Per-study associations via REST
study_id = "GCST001234"
assocs = requests.get(f"https://www.ebi.ac.uk/gwas/rest/api/studies/{study_id}/associations").json()

# Summary statistics (when available)
# Check study page for fullPvalueSet=true, then download from linked FTP

ページネーション、一括ダウンロード、形式の解析パターンについては、tooluniverse-data-wrangling スキルを参照してください。


制限事項

  1. 遺伝子マッピングの不確実性

    • 位置マッピングでは SNP が最も近い遺伝子に割り当てられます(誤っている可能性があります)
    • ファインマッピングを利用できるのは一部の研究のみです
    • 遺伝子間バリアントはマッピングが困難です
  2. 集団バイアス

    • GWAS の大半はヨーロッパ系集団で実施されています
    • 効果量は祖先集団によって異なる場合があります
    • 希少バリアントは過少に代表されることがよくあります
  3. サンプルサイズへの依存

    • 大規模な研究ほど多くの関連性を検出します
    • 古い小規模研究では偽陰性が生じる可能性があります
    • p 値だけでは効果量はわかりません
  4. 検証に関するバグ

    • 一部の ToolUniverse ツールでは oneOf の検証に問題があります
    • 必要に応じて validate=False パラメーターを使用してください
    • Python 実装ではこの問題は自動的に処理されます

関連スキル

  • バリアントと疾患の関連:特定の SNP を検索します(例:rs7903146 → T2D)
  • 遺伝子と疾患の関連:既知の遺伝子に関連する疾患を特定します
  • 創薬ターゲットの優先順位付け:遺伝学的エビデンスに基づいてターゲットを順位付けします
  • 集団遺伝学解析:集団間でアレル頻度を比較します

データソース

GWAS Catalog

  • キュレーター:EBI および NHGRI
  • URL: https://www.ebi.ac.uk/gwas/
  • 対象範囲:100,000 件以上の論文、500,000 件以上の関連
  • 更新頻度:毎週

Open Targets Genetics

  • キュレーター:Open Targets コンソーシアム
  • URL: https://genetics.opentargets.org/
  • 対象範囲:ファインマッピング済み GWAS、L2G 予測、QTL 共局在
  • 更新頻度:四半期ごと

引用

このスキルを研究で使用する場合は、以下を引用してください。

Buniello A, et al. (2019) The NHGRI-EBI GWAS Catalog of published genome-wide
association studies. Nucleic Acids Research, 47(D1):D1005-D1012.

Mountjoy E, et al. (2021) An open approach to systematically prioritize causal
variants and genes at all published human GWAS trait-associated loci.
Nature Genetics, 53:1527-1533.

サポート

以下の問題について:

  • スキルの機能:tooluniverse/skills で issue を作成してください
  • GWAS データ:GWAS Catalog または Open Targets のサポートにお問い合わせください
  • ツールのエラー:ToolUniverse のツールステータスを確認してください

コメント