关于 drug-discovery-search
面向药物发现研究的搜索技能,通过 Valyu 语义搜索 API,以自然语言同时查询 ChEMBL、DrugBank、FDA 药品标签和 Open Targets。结果可用于靶点、化合物、开发信息及安全性研究。
主要功能
- 01自然语言语义搜索
- 02同时查询四类药物发现数据源
- 03返回化合物、靶点和药物信息
- 04提供分子结构及数据可视化链接
- 05以 JSON 格式输出结果
适用场景
- 01查找疾病相关靶点及候选化合物
- 02检索先导化合物的构效与相关数据
- 03调查药物再利用机会
- 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
- 统一结果:通过单次查询获取所有药物发现来源的结果
要求
- Node.js 18+(使用内置的 fetch)
- 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 时,请按以下流程操作:
-
向用户索取 API 密钥: “要搜索药物发现数据库,我需要你的 Valyu API 密钥。可在 https://platform.valyu.ai 免费获取(含 $10 额度)。”
-
用户提供密钥后,运行:
scripts/search setup <api-key> -
重试原始搜索。
何时使用此技能
- 获取端到端的药物发现信息
- 通过化合物和临床试验验证靶点
- 获取完整的药物开发信息
- 根据靶点数据优化化合物
- 开展安全性和有效性研究
输出格式
{
"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