mcpField
O
open-targets-search

open-targets-search

github.com/yorkeccak生産性64127 回インストール3 週間前に更新
リポジトリ

open-targets-search について

open-targets-searchは、生物医学研究向けにOpen Targetsの薬物と疾患の関連および標的検証データを自然言語で検索するスキルです。セマンティック検索により、エビデンススコアを含む全文結果を取得できます。

主な機能

  1. 01自然言語によるセマンティック検索
  2. 02標的検証データの検索
  3. 03薬物と疾患の関連検索
  4. 04全文とエビデンススコアの取得
  5. 05利用可能な画像リンクの表示

活用シーン

  1. 01疾患標的の検証
  2. 02研究対象の優先順位付け
  3. 03薬物再配置の機会探索
  4. 04標的の遺伝学的エビデンス分析

インストール

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

$npx skills add https://github.com/yorkeccak/scientific-skills --skill open-targets-search

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

同梱ファイルscripts/searchscripts/search.mjs

詳細

Open Targets 検索

Valyu のセマンティック検索 API を利用した自然言語クエリで、Open Targets の薬剤と疾患の関連性およびターゲット検証データの完全なデータベースを検索します。

このスキルの強み

  • API パラメーターの解析が不要:自然言語のクエリをそのまま渡すだけで検索できます。複雑な検索パラメーターを構築する必要はありません
  • セマンティック検索:キーワードの一致だけでなく、クエリの意味を理解します
  • 全文データへのアクセス:エビデンススコア付きの、ターゲットと疾患の関連データ全体を返します
  • 画像リンク:利用可能な場合はデータの可視化も含まれます
  • 網羅的なカバレッジ:Open Targets の薬剤と疾患の関連データすべてにアクセスできます

必要条件

  1. Node.js 18 以降(組み込みの fetch を使用)
  2. Valyu API キー(https://platform.valyu.ai から取得できます。10 ドル分の無料クレジット付き)

重要:スクリプトのパス解決

このドキュメントに記載されている scripts/search コマンドのパスは、このスキルのインストールディレクトリを基準としています。

コマンドを実行する前に、次の方法でスクリプトの場所を確認してください。

OPEN_TARGETS_SCRIPT=$(find ~/.claude/plugins/cache -name "search" -path "*/open-targets-search/*/scripts/*" -type f 2>/dev/null | head -1)

その後、すべてのコマンドで完全なパスを使用してください。

$OPEN_TARGETS_SCRIPT "JAK2 inhibitors" 15

API キーの設定手順

検索を実行し、"setup_required": true を受け取った場合は、次の手順に従ってください。

  1. ユーザーに API キーを求めます。 「Open Targets を検索するには、Valyu API キーが必要です。https://platform.valyu.ai から無料で取得できます(10 ドル分のクレジット付き)。」

  2. ユーザーからキーを受け取ったら、次を実行します。

    scripts/search setup <api-key>
    
  3. 元の検索を再試行します。

このスキルの用途

  • 疾患のターゲット検証
  • 薬剤と疾患の関連性の確認
  • 研究におけるターゲットの優先順位付け
  • ターゲットの遺伝学的エビデンス
  • ターゲットと疾患の経路解析
  • 治療仮説の検証

出力形式

{
  "success": true,
  "type": "open_targets_search",
  "query": "JAK2 inhibitors",
  "result_count": 10,
  "results": [
    {
      "title": "Target-Disease Association",
      "url": "https://platform.opentargets.org/...",
      "content": "Association data, evidence, scores...",
      "source": "open-targets",
      "relevance_score": 0.95,
      "images": ["https://example.com/pathway.png"]
    }
  ],
  "cost": 0.025
}

結果の処理

jq を使用する場合
# Get association titles
scripts/search "query" 10 | jq -r '.results[].title'

# Get URLs
scripts/search "query" 10 | jq -r '.results[].url'

# Extract full content
scripts/search "query" 10 | jq -r '.results[].content'

一般的なユースケース

ターゲット検証
# Find target evidence
scripts/search "kinase targets in inflammatory diseases" 50
薬剤の再利用
# Search for repurposing opportunities
scripts/search "drugs targeting IL-6 pathway" 20
遺伝学的エビデンス
# Find genetic associations
scripts/search "loss of function variants protective effects" 15
疾患メカニズム
# Search for mechanistic insights
scripts/search "immune checkpoint targets in cancer" 25

エラー処理

すべてのコマンドは、success フィールドを含む JSON を返します。

{
  "success": false,
  "error": "Error message"
}

終了コード:

  • 0 - 成功
  • 1 - エラー(詳細は JSON を確認してください)

API エンドポイント

  • ベース URL:https://api.valyu.ai/v1
  • エンドポイント:/search
  • 認証:X-API-Key ヘッダー

アーキテクチャ

scripts/
├── search          # Bash wrapper
└── search.mjs      # Node.js CLI

Node.js 組み込みの fetch() を使って API を直接呼び出します。外部依存関係はありません。

プロジェクトへの追加

AI プロジェクトを構築していて、Open Targets Search をアプリケーションに直接統合したい場合は、Valyu SDK を使用してください。

Python との統合
from valyu import Valyu

client = Valyu(api_key="your-api-key")

response = client.search(
    query="your search query here",
    included_sources=["valyu/valyu-open-targets"],
    max_results=20
)

for result in response["results"]:
    print(f"Title: {result['title']}")
    print(f"URL: {result['url']}")
    print(f"Content: {result['content'][:500]}...")
TypeScript との統合
import { Valyu } from "valyu-js";

const client = new Valyu("your-api-key");

const response = await client.search({
  query: "your search query here",
  includedSources: ["valyu/valyu-open-targets"],
  maxResults: 20
});

response.results.forEach((result) => {
  console.log(`Title: ${result.title}`);
  console.log(`URL: ${result.url}`);
  console.log(`Content: ${result.content.substring(0, 500)}...`);
});

統合例と SDK リファレンスの全容については、Valyu ドキュメントを参照してください。

コメント