opentargets-database について
Open Targets Platform の GraphQL API を利用するスキルで、標的と疾患の関連や創薬を調べる研究者向けです。遺伝学的エビデンス、credible set、標的の創薬可能性、疾患関連、臨床候補薬を照会できます。
主な機能
- 01GWAS と QTL の credible set 取得
- 02Locus-to-Gene 予測の照会
- 03標的の創薬可能性データの確認
- 04標的と疾患・疾患と薬剤の関連検索
- 05カスタム GraphQL クエリの実行
活用シーン
- 01疾患に関連する標的遺伝子の検索
- 02変異座位の候補遺伝子の確認
- 03標的の創薬可能性と試験安全性の確認
- 04疾患と臨床段階を指定した薬剤検索
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ google-deepmind/ science-skills --skill opentargets-databaseインストール後、Claude Code で/opentargets-databaseを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
references/citation.bibOpenTargets_GraphQL_Guide.mdscripts/query_opentargets.py詳細
Open Targets Database スキル
概要
このスキルは、Open Targets Platform GraphQL API へのアクセスを提供します。遺伝学(GWAS/eQTL)、経路、動物モデル、臨床試験から得られるマルチモーダルなエビデンスを集約し、標的と疾患の関連性を順位付けして、創薬可能な遺伝子を特定します。
前提条件
uv:uvスキルを読み、そのセットアップ手順に従って、uvがインストールされ、PATH に設定されていることを確認してください。- ユーザーへの通知:.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-studiesdisease_id:特定の疾患 ID に関連するすべての GWAS 研究を取得します(例:関節リウマチの場合はMONDO_0008383)。get-study-credible-setsstudy_id:指定した研究 ID のすべてのクレディブルセットを取得します(例:FINNGEN_R12_RX_CROHN_2NDLINE)。信頼度、ファインマッピング手法、バリアント、p 値の情報を返します。get-qtl-credible-setsvariant_id:特定のバリアント ID の QTL クレディブルセットを取得します(例:19_44908822_C_T)。get-l2gvariant_id [--study-id ID]:遺伝子座から最も可能性の高い原因遺伝子を特定するための、Locus-to-Gene(L2G)予測/スコアを返します。必須なのはvariant_idのみです。特定の研究に絞り込むには--study-idを使用してください。chrプレフィックスを使用できます(例:chr1_113834946_A_G)。get-target-druggabilityensembl_id:遺伝子/標的のドラッガビリティデータ(低分子、抗体など)と臨床試験の安全性情報を提供します。get-associated-targetsdisease_id:特定の疾患 ID(EFO または MONDO)に関連するすべての標的遺伝子を検索します。get-disease-drugsdisease_id [--min-stage STAGE]:疾患に関連するすべての薬剤と臨床開発候補を検索します。--min-stageを使用して絞り込みます(例:第 III 相または承認済みの場合はPHASE_3)。get-associated-diseasesensembl_id:特定の標的 Ensembl ID に関連するすべての疾患を検索します。search-diseasequery_string:疾患名で検索し、その ID やその他のメタデータを取得します。get-credible-sets-near-targetensembl_id [--window N]:標的のクレディブルセットを取得し、標的周辺のゲノム領域内にあるものに絞り込みます。遺伝子の「近傍」にあるバリアントを探すのに便利です。custom-queryquery [--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)を指定する必要があります。遺伝子シンボルしかない場合は、カスタムの GraphQLsearchクエリを使って、まずマッピングする必要があります。 - バリアント 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)を指定できます。
- 疾患 ID は通常、MONDO ID(例:関節リウマチの場合は
- 切り詰め:コンテキストウィンドウを保護するため、ツールは
--limitを超える配列を切り詰めます。"_truncated"が表示された場合、さらにデータが必要であれば、より大きな値を指定してクエリを再実行できますが、大きな制限値を指定する場合は注意してください。ターミナル出力の切り詰めを避けるため、必ず--outputフラグを使って結果をファイルに保存してください。 - ページネーションと不完全な結果:
--page-sizeオプション(デフォルト:200)は、API から取得する項目数を制御します。レスポンスのcountフィールドを必ず確認し、実際に返されたrowsの数と比較してください。countが行数より大きい場合、データは不完全です。--page-sizeを増やしてさらに取得するか、結果セットの一部のみが返されたことをユーザーに伝えてください。これは、--study-idを指定しないget-l2gで、数百の信頼できるセットが返される可能性がある場合に特に重要です。