mcpField
D
drug-discovery-search

drug-discovery-search

github.com/yorkeccak生产力64166 次安装3 周前更新
代码仓库

关于 drug-discovery-search

面向药物发现研究的搜索技能,通过 Valyu 语义搜索 API,以自然语言同时查询 ChEMBL、DrugBank、FDA 药品标签和 Open Targets。结果可用于靶点、化合物、开发信息及安全性研究。

主要功能

  1. 01自然语言语义搜索
  2. 02同时查询四类药物发现数据源
  3. 03返回化合物、靶点和药物信息
  4. 04提供分子结构及数据可视化链接
  5. 05以 JSON 格式输出结果

适用场景

  1. 01查找疾病相关靶点及候选化合物
  2. 02检索先导化合物的构效与相关数据
  3. 03调查药物再利用机会
  4. 04汇集药物安全性和相互作用信息

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/yorkeccak/scientific-skills --skill drug-discovery-search

安装后在 Claude Code 中输入/drug-discovery-search确认已加载。

附带文件scripts/searchscripts/search.mjs

详细介绍

药物发现搜索

使用 Valyu 的语义搜索 API,通过自然语言查询同时搜索所有主要药物发现数据库(ChEMBL、DrugBank、FDA 药品标签、Open Targets)。

此技能的强大之处

  • 无需解析 API 参数:直接传入自然语言查询即可,无需构造复杂的搜索参数
  • 语义搜索:理解查询的含义,而不仅仅是匹配关键词
  • 全文访问:返回完整的化合物、靶点和药物信息
  • 图片链接:包含分子结构和数据可视化内容
  • 全面覆盖:同时搜索 ChEMBL、DrugBank、药品标签和 Open Targets
  • 统一结果:通过单次查询获取所有药物发现来源的结果

要求

  1. Node.js 18+(使用内置的 fetch)
  2. Valyu API 密钥,获取地址:https://platform.valyu.ai(含 $10 免费额度)

重要:脚本路径解析

本文档中的 scripts/search 命令是相对于此技能的安装目录而言的。

运行任何命令之前,请先定位脚本:

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

然后在所有命令中使用完整路径:

$DRUG_DISCOVERY_SCRIPT "JAK2 inhibitors" 20

API 密钥设置流程

运行搜索并收到 "setup_required": true 时,请按以下流程操作:

  1. 向用户索取 API 密钥: “要搜索药物发现数据库,我需要你的 Valyu API 密钥。可在 https://platform.valyu.ai 免费获取(含 $10 额度)。”

  2. 用户提供密钥后,运行:

    scripts/search setup <api-key>
    
  3. 重试原始搜索。

何时使用此技能

  • 获取端到端的药物发现信息
  • 通过化合物和临床试验验证靶点
  • 获取完整的药物开发信息
  • 根据靶点数据优化化合物
  • 开展安全性和有效性研究

输出格式

{
  "success": true,
  "type": "drug_discovery_search",
  "query": "JAK2 inhibitors",
  "result_count": 20,
  "results": [
    {
      "title": "Compound/Drug/Target Title",
      "url": "https://...",
      "content": "Full data including compounds, targets, mechanisms...",
      "source": "chembl|drugbank|drug-labels|open-targets",
      "relevance_score": 0.95,
      "images": ["https://example.com/structure.png"]
    }
  ],
  "cost": 0.035
}

处理结果

使用 jq
# Get titles
scripts/search "query" 20 | jq -r '.results[].title'

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

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

# Filter by source
scripts/search "query" 20 | jq -r '.results[] | select(.source == "chembl") | .title'

常见用例

靶点识别
# Find validated targets and compounds
scripts/search "BTK inhibitors for autoimmune diseases" 50
候选化合物优化
# Search SAR and compound data
scripts/search "EGFR inhibitors blood-brain barrier penetration" 40
药物再利用
# Find repurposing opportunities
scripts/search "mTOR inhibitors cancer and aging" 30
安全性评估
# Gather safety and interaction data
scripts/search "tyrosine kinase inhibitors cardiac toxicity" 60

错误处理

所有命令都会返回包含 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 项目,并希望将药物发现搜索直接集成到应用程序中,请使用 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-chembl", "valyu/valyu-drugbank", "valyu/valyu-drug-labels", "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-chembl", "valyu/valyu-drugbank", "valyu/valyu-drug-labels", "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)}...`);
});

请参阅 Valyu 文档,了解完整的集成示例和 SDK 参考。

评论

支持 Markdown