名称: tooluniverse 描述: 在涉及生物信息学、化学信息学、基因组学、结构生物学、蛋白质组学和药物发现的科学研究和工具工作流时使用此技能。此技能提供对600多种科学工具的访问,包括机器学习模型、数据集、API和分析包。用于搜索科学工具、执行计算生物学工作流、组合多步研究管道、访问数据库如OpenTargets/PubChem/UniProt/PDB/ChEMBL、执行研究任务中的工具发现,或将科学计算资源集成到LLM工作流中。
ToolUniverse
概述
ToolUniverse 是一个统一的生态系统,使AI代理能够作为研究科学家工作,提供对600多种科学资源的标准化访问。使用此技能来发现、执行和组合跨多个研究领域的科学工具,包括生物信息学、化学信息学、基因组学、结构生物学、蛋白质组学和药物发现。
关键能力:
- 访问600多种科学工具、模型、数据集和API
- 使用自然语言、语义搜索或关键词发现工具
- 通过标准化AI-工具交互协议执行工具
- 为复杂研究问题组合多步工作流
- 通过模型上下文协议(MCP)与Claude Desktop/Code集成
何时使用此技能
使用此技能当:
- 按功能或领域搜索科学工具(例如,“查找蛋白质结构预测工具”)
- 执行计算生物学工作流(例如,疾病靶点识别、药物发现、基因组学分析)
- 访问科学数据库(OpenTargets、PubChem、UniProt、PDB、ChEMBL、KEGG等)
- 组合多步研究管道(例如,靶点发现 → 结构预测 → 虚拟筛选)
- 处理生物信息学、化学信息学或结构生物学任务
- 分析基因表达、蛋白质序列、分子结构或临床数据
- 进行文献搜索、通路富集或变异注释
- 构建自动化科学研究工作流
快速开始
基本设置
from tooluniverse import ToolUniverse
# 初始化和加载工具
tu = ToolUniverse()
tu.load_tools() # 加载600多种科学工具
# 发现工具
tools = tu.run({
"name": "Tool_Finder_Keyword",
"arguments": {
"description": "疾病靶点关联",
"limit": 10
}
})
# 执行一个工具
result = tu.run({
"name": "OpenTargets_get_associated_targets_by_disease_efoId",
"arguments": {"efoId": "EFO_0000537"} # 高血压
})
模型上下文协议(MCP)
用于Claude Desktop/Code集成:
tooluniverse-smcp
核心工作流
1. 工具发现
为研究任务查找相关工具:
三种发现方法:
Tool_Finder- 基于嵌入的语义搜索(需要GPU)Tool_Finder_LLM- 基于LLM的语义搜索(无需GPU)Tool_Finder_Keyword- 快速关键词搜索
示例:
# 通过自然语言描述搜索
tools = tu.run({
"name": "Tool_Finder_LLM",
"arguments": {
"description": "查找用于RNA测序差异表达分析的工具",
"limit": 10
}
})
# 查看可用工具
for tool in tools:
print(f"{tool['name']}: {tool['description']}")
参见 references/tool-discovery.md 获取:
- 详细发现方法和搜索策略
- 领域特定关键词建议
- 查找工具的最佳实践
2. 工具执行
通过标准化接口执行单个工具:
示例:
# 执行疾病-靶点查找
targets = tu.run({
"name": "OpenTargets_get_associated_targets_by_disease_efoId",
"arguments": {"efoId": "EFO_0000616"} # 乳腺癌
})
# 获取蛋白质结构
structure = tu.run({
"name": "AlphaFold_get_structure",
"arguments": {"uniprot_id": "P12345"}
})
# 计算分子属性
properties = tu.run({
"name": "RDKit_calculate_descriptors",
"arguments": {"smiles": "CCO"} # 乙醇
})
参见 references/tool-execution.md 获取:
- 跨领域的真实执行示例
- 工具参数处理和验证
- 结果处理和错误处理
- 生产使用的最佳实践
3. 工具组合和工作流
为复杂研究工作流组合多个工具:
药物发现示例:
# 1. 查找疾病靶点
targets = tu.run({
"name": "OpenTargets_get_associated_targets_by_disease_efoId",
"arguments": {"efoId": "EFO_0000616"}
})
# 2. 获取蛋白质结构
structures = []
for target in targets[:5]:
structure = tu.run({
"name": "AlphaFold_get_structure",
"arguments": {"uniprot_id": target['uniprot_id']}
})
structures.append(structure)
# 3. 筛选化合物
hits = []
for structure in structures:
compounds = tu.run({
"name": "ZINC_virtual_screening",
"arguments": {
"structure": structure,
"library": "lead-like",
"top_n": 100
}
})
hits.extend(compounds)
# 4. 评估药物相似性
drug_candidates = []
for compound in hits:
props = tu.run({
"name": "RDKit_calculate_drug_properties",
"arguments": {"smiles": compound['smiles']}
})
if props['lipinski_pass']:
drug_candidates.append(compound)
参见 references/tool-composition.md 获取:
- 完整工作流示例(药物发现、基因组学、临床)
- 顺序和并行工具组合模式
- 输出处理钩子
- 工作流最佳实践
科学领域
ToolUniverse 支持600多种工具,覆盖主要科学领域:
生物信息学:
- 序列分析、比对、BLAST
- 基因表达(RNA-seq、DESeq2)
- 通路富集(KEGG、Reactome、GO)
- 变异注释(VEP、ClinVar)
化学信息学:
- 分子描述符和指纹
- 药物发现和虚拟筛选
- ADMET预测和药物相似性
- 化学数据库(PubChem、ChEMBL、ZINC)
结构生物学:
- 蛋白质结构预测(AlphaFold)
- 结构检索(PDB)
- 结合位点检测
- 蛋白质-蛋白质相互作用
蛋白质组学:
- 质谱分析
- 蛋白质数据库(UniProt、STRING)
- 翻译后修饰
基因组学:
- 基因组组装和注释
- 拷贝数变异
- 临床基因组学工作流
医学/临床:
- 疾病数据库(OpenTargets、OMIM)
- 临床试验和FDA数据
- 变异分类
参见 references/domains.md 获取:
- 完整领域分类
- 按学科的示例工具
- 跨领域应用
- 按领域的搜索策略
参考文档
此技能包括全面的参考文件,提供特定方面的详细信息:
references/installation.md- 安装、设置、MCP配置、平台集成references/tool-discovery.md- 发现方法、搜索策略、列出工具references/tool-execution.md- 执行模式、真实示例、错误处理references/tool-composition.md- 工作流组合、复杂管道、并行执行references/domains.md- 工具按领域分类、用例示例references/api_reference.md- Python API文档、钩子、协议
工作流: 当帮助特定任务时,参考相应文件获取详细说明。例如,如果搜索工具,查阅 references/tool-discovery.md 获取搜索策略。
示例脚本
两个可执行示例脚本演示常见用例:
scripts/example_tool_search.py - 演示所有三种发现方法:
- 基于关键词的搜索
- 基于LLM的搜索
- 领域特定搜索
- 获取详细工具信息
scripts/example_workflow.py - 完整工作流示例:
- 药物发现管道(疾病 → 靶点 → 结构 → 筛选 → 候选)
- 基因组学分析(表达数据 → 差异分析 → 通路)
运行示例以了解典型使用模式和工作流组合。
最佳实践
-
工具发现:
- 从广泛搜索开始,然后根据结果细化
- 使用
Tool_Finder_Keyword进行已知术语的快速搜索 - 使用
Tool_Finder_LLM处理复杂语义查询 - 设置适当的
limit参数(默认: 10)
-
工具执行:
- 执行前始终验证工具参数
- 为生产工作流实现错误处理
- 验证输入数据格式(SMILES、UniProt IDs、基因符号)
- 检查结果类型和结构
-
工作流组合:
- 在组合完整工作流之前单独测试每个步骤
- 为长时间工作流实现检查点
- 考虑远程API的速率限制
- 当工具独立时使用并行执行
-
集成:
- 初始化ToolUniverse一次并重复使用实例
- 在启动时调用
load_tools()一次 - 缓存频繁使用的工具信息
- 启用日志记录以进行调试
关键术语
- 工具: 可通过ToolUniverse访问的科学资源(模型、数据集、API、包)
- 工具发现: 使用搜索方法(Finder、LLM、Keyword)查找相关工具
- 工具执行: 通过
tu.run()使用特定参数运行工具 - 工具组合: 链接多个工具进行多步工作流
- MCP: 与Claude Desktop/Code集成的模型上下文协议
- AI-工具交互协议: LLM-工具通信的标准化接口
资源
- 官方网站: https://aiscientist.tools
- GitHub: https://github.com/mims-harvard/ToolUniverse
- 文档: https://zitniklab.hms.harvard.edu/ToolUniverse/
- 安装:
uv pip install tooluniverse - MCP服务器:
tooluniverse-smcp