mcpField
O
opentargets-database

opentargets-database

github.com/google-deepmindデータ・データベース3.4k2.2k 回インストール5 日前に更新
リポジトリ

opentargets-database について

Open Targets Platform の GraphQL API を利用するスキルで、標的と疾患の関連や創薬を調べる研究者向けです。遺伝学的エビデンス、credible set、標的の創薬可能性、疾患関連、臨床候補薬を照会できます。

主な機能

  1. 01GWAS と QTL の credible set 取得
  2. 02Locus-to-Gene 予測の照会
  3. 03標的の創薬可能性データの確認
  4. 04標的と疾患・疾患と薬剤の関連検索
  5. 05カスタム GraphQL クエリの実行

活用シーン

  1. 01疾患に関連する標的遺伝子の検索
  2. 02変異座位の候補遺伝子の確認
  3. 03標的の創薬可能性と試験安全性の確認
  4. 04疾患と臨床段階を指定した薬剤検索

インストール

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

$npx skills add https://github.com/google-deepmind/science-skills --skill opentargets-database

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

同梱ファイル

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

references/
citation.bib
OpenTargets_GraphQL_Guide.md
scripts/
query_opentargets.py

詳細

Open Targets Database スキル

概要

このスキルは、Open Targets Platform GraphQL API へのアクセスを提供します。遺伝学(GWAS/eQTL)、経路、動物モデル、臨床試験から得られるマルチモーダルなエビデンスを集約し、標的と疾患の関連性を順位付けして、創薬可能な遺伝子を特定します。

前提条件

  1. uv:uv スキルを読み、そのセットアップ手順に従って、uv がインストールされ、PATH に設定されていることを確認してください。
  2. ユーザーへの通知:.licenses/opentargets_database_LICENSE.txt がワークスペースのルートディレクトリに存在しない場合は、(1)https://platform-docs.opentargets.org/licence に記載された利用規約を確認するようユーザーに目立つ形で通知し、(2)通知文とタイムスタンプを記録したファイルを作成してください。

基本ルール

  • ラッパーを使用する:データベースに直接アクセスするのではなく、必ず付属のヘルパースクリプトを実行してデータベースをクエリしてください。スクリプトによって適正利用が自動的に適用され、再試行ロジックも実装されています。
  • 出力フラグ:出力が非常に大きくなる可能性があるため、--output フラグは常に必須です。jq を使用するか、独自のコードを記述してこの JSON ファイルを処理してください。
  • 通知:このスキルを使用した場合は、その旨を出力に記載してください。

クイックリファレンス

データベースをすばやくクエリするには、必ず付属の Python スクリプト scripts/query_opentargets.py を使用してください。API 通信、再試行、フォーマット処理を行い、サイズが大きすぎる応答は自動的に切り詰めます。独自の curl リクエストなどを作成することは絶対に避けてください。

使用方法:

uv run scripts/query_opentargets.py --output /tmp/opentargets_results.json [OPTIONS] COMMAND [ARGS]...

主なオプション:

  • --output PATH:必須。JSON 出力ファイルの書き込み先パスです。
  • --limit N:配列で返される項目数を制限します(デフォルトは 50)。予備調査では 10 など、小さな値を使用してください。
  • --page-size N:API のページネーションサイズを設定します(デフォルトは 200)。さらに多くの結果が必要な場合(たとえば、クレディブルセットが多数ある研究など)は、この値を大きくしてください。

使用可能なコマンド:

  • get-gwas-studies disease_id:特定の疾患 ID に関連するすべての GWAS 研究を取得します(例:関節リウマチの場合は MONDO_0008383)。
  • get-study-credible-sets study_id:指定した研究 ID のすべてのクレディブルセットを取得します(例:FINNGEN_R12_RX_CROHN_2NDLINE)。信頼度、ファインマッピング手法、バリアント、p 値の情報を返します。
  • get-qtl-credible-sets variant_id:特定のバリアント ID の QTL クレディブルセットを取得します(例:19_44908822_C_T)。
  • get-l2g variant_id [--study-id ID]:遺伝子座から最も可能性の高い原因遺伝子を特定するための、Locus-to-Gene(L2G)予測/スコアを返します。必須なのは variant_id のみです。特定の研究に絞り込むには --study-id を使用してください。chr プレフィックスを使用できます(例:chr1_113834946_A_G)。
  • get-target-druggability ensembl_id:遺伝子/標的のドラッガビリティデータ(低分子、抗体など)と臨床試験の安全性情報を提供します。
  • get-associated-targets disease_id:特定の疾患 ID(EFO または MONDO)に関連するすべての標的遺伝子を検索します。
  • get-disease-drugs disease_id [--min-stage STAGE]:疾患に関連するすべての薬剤と臨床開発候補を検索します。--min-stage を使用して絞り込みます(例:第 III 相または承認済みの場合は PHASE_3)。
  • get-associated-diseases ensembl_id:特定の標的 Ensembl ID に関連するすべての疾患を検索します。
  • search-disease query_string:疾患名で検索し、その ID やその他のメタデータを取得します。
  • get-credible-sets-near-target ensembl_id [--window N]:標的のクレディブルセットを取得し、標的周辺のゲノム領域内にあるものに絞り込みます。遺伝子の「近傍」にあるバリアントを探すのに便利です。
  • custom-query query [--variables '{}']:その他の Open Targets データを取得するために、GraphQL クエリを直接実行します。

L2G クエリの使い方

get-l2g コマンドには 2 つのモードがあります。

  • バリアントのみ(get-l2g <variant_id>):そのバリアントがリードバリアントであるすべての研究の、すべての信頼区間から L2G 予測を返します。結果が大量(例:数百件)になる場合があります。ある遺伝子座で最も原因である可能性が高い遺伝子を幅広く知りたい場合や、特定の研究が指定されていない場合に使用してください。
  • バリアント + 研究(get-l2g <variant_id> --study-id <study_id>):指定した研究の信頼区間についてのみ、L2G 予測を返します。特定の GWAS 研究について質問された場合や、結果を絞り込む必要がある場合に使用してください。

結果が不完全な場合の警告: バリアントのみのモードでは、数百件の信頼区間が返されることがあります。--page-size のデフォルトは 200 です。そのため、API が報告する count が返された rows の件数を上回る場合、結果が不完全です。必ず count と実際の行数を比較してください。異なる場合は、--page-size を増やすか、一部の結果のみ取得されたことをユーザーに伝えてください。

領域によるクエリ

遺伝子の「近く」にあるバリアントを持つ研究を探すには、ゲノム位置に基づいた柔軟な検索を行う get-credible-sets-near-target を使用してください。これはベース API を改良したものです。uv run scripts/query_opentargets.py --output /tmp/results.json get-credible-sets-near-target ENSG00000156515 --window 500000

Open Targets GraphQL スキーマには credibleSets の regions パラメーターがありますが、事前計算された領域文字列(例:chr10:68769984-69903496)との完全一致で検索するため、データが欠けている場合があります。ゲノム範囲の重複検索ができる get-credible-sets-near-target を使用してください。

このコマンドは、ターゲットに関連する信頼区間を取得し、バリアントのゲノム位置に基づいて Python で絞り込みます。

高度な GraphQL クエリ

組み込みのサブコマンドで公開されていないエンドポイントやフィールドをクエリする必要がある場合は、custom-query サブコマンドを使用してください。

カスタムクエリを作成する前に: API スキーマ、型、クエリ例を理解するため、リファレンスドキュメントを読んでください。スキーマの詳細、エンドポイント、例については、references/OpenTargets_GraphQL_Guide.md を参照してください。

例:疾患に対する薬剤の検索

uv run scripts/query_opentargets.py custom-query \
  query drugsForDisease($id: String!) {
    disease(efoId: $id) {
      name
      drugAndClinicalCandidates {
        count
        rows {
          maxClinicalStage
          drug {
            id
            name
          }
        }
      }
    }
  }' \
--variables '{"id": "EFO_1001006"}'
--output '/tmp/opentargets_result.json'

信頼度の星評価

Open Targets Platform は、ファインマッピング手法と品質チェックに基づいて、各信頼区間に信頼度レベルを割り当てます。これらは、プラットフォームの UI に表示される星評価に対応しています。

星信頼度文字列(API 値)
★★★★(4 つ星)SuSiE fine-mapped credible set with in-sample LD
★★★(3 つ星)SuSiE fine-mapped credible set with out-of-sample LD
★★(2 つ星)`PICS fine-mapped credible set extracted from summary
: : statistics` :
★(1 つ星)PICS fine-mapped credible set based on reported top hit
なしUnknown confidence

ユーザーが「N つ星の信頼度」について尋ねた場合、API レスポンスの confidence フィールドにある該当する文字列と照合してください。

ヒントとよくある間違い

  • ID の形式:
    • 疾患 ID は通常、MONDO ID(例:関節リウマチの場合は MONDO_0008383)または EFO ID(例:EFO_0009460)です。正しい ID を見つけるには、search-disease コマンドを使用してください。
    • ターゲット ID には HGNC シンボルではなく、Ensembl ID(例:ENSG00000169083)を指定する必要があります。遺伝子シンボルしかない場合は、カスタムの GraphQL search クエリを使って、まずマッピングする必要があります。
    • バリアント ID は chromosome_position_ref_alt の形式です(例:1_154426264_C_T)。chr プレフィックス(例:chr1_154426264_C_T)は、ツールによって自動的に削除されます。
    • 研究 ID には、GWAS Catalog ID(例:GCST90204201)またはプロジェクト固有の ID(例:FINNGEN_R12_RX_CROHN_2NDLINE)を指定できます。
  • 切り詰め:コンテキストウィンドウを保護するため、ツールは --limit を超える配列を切り詰めます。"_truncated" が表示された場合、さらにデータが必要であれば、より大きな値を指定してクエリを再実行できますが、大きな制限値を指定する場合は注意してください。ターミナル出力の切り詰めを避けるため、必ず --output フラグを使って結果をファイルに保存してください。
  • ページネーションと不完全な結果:--page-size オプション(デフォルト:200)は、API から取得する項目数を制御します。レスポンスの count フィールドを必ず確認し、実際に返された rows の数と比較してください。 count が行数より大きい場合、データは不完全です。--page-size を増やしてさらに取得するか、結果セットの一部のみが返されたことをユーザーに伝えてください。これは、--study-id を指定しない get-l2g で、数百の信頼できるセットが返される可能性がある場合に特に重要です。

コメント