关于 tooluniverse-drug-repurposing
这是一个用于发现和评估药物新适应症的 ToolUniverse 技能,结合靶点、化合物、疾病和基因表达特征策略,并评估证据、安全性、可行性及专利。
主要功能
- 01四种药物再利用搜索策略
- 02疾病与靶点分析
- 03药物机制和安全性审查
- 04证据分级与候选药评分
- 05专利格局检查
适用场景
- 01为疾病靶点寻找药物
- 02评估药物用于其他适应症
- 03比较再利用候选药及其证据
- 04优先筛选前检查专利状态
MCP 相关
作为 ToolUniverse 技能,它引导客户端调用 ToolUniverse 工具获取疾病、靶点、药物、安全性、文献、临床试验和专利数据。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mims-harvard/ tooluniverse --skill tooluniverse-drug-repurposing安装后在 Claude Code 中输入/tooluniverse-drug-repurposing确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
EXAMPLES.mdPROCEDURES.mdREFERENCE.mdREPORT_TEMPLATE.mdstrategies_and_patterns.md详细介绍
使用 ToolUniverse 进行药物再利用
使用多种计算策略,系统地识别和评估药物再利用候选药物。
重要:在工具调用中始终使用英文术语。请使用用户的语言作答。
搜索前的推理
先问:这种药物为什么可能对一种新疾病有效?有三种策略:
- (a) 相同靶点:药物的主要靶点也与新疾病有关。这是最有力的假设——在进行任何其他搜索之前,先使用 OpenTargets 检查该靶点在两种疾病中是否都有遗传证据。
- (b) 脱靶活性:该药物具有与新疾病相关的次要靶点或脱靶效应。检查 ChEMBL 生物活性数据,涵盖该药物的所有已知靶点,而不只是其主要靶点。
- (c) 共享通路:即使靶点本身与遗传关联无关,原适应症和新疾病也可能共享分子通路。使用 Reactome 和 STRING 比较两种疾病之间的通路重叠情况。
每种策略使用不同的工具,证据权重也不同。先确定适用哪种策略,再选择下方对应的工作流。不要不加判断地运行全部三种策略——应根据药物的作用机制,推理哪种策略最合理。
查证,不要猜测:绝不要假定药物作用于某个靶点、某个靶点与疾病相关,或存在通路重叠。使用工具调用验证每一项关联。
核心策略
- 基于靶点:疾病靶点 -> 找出可调节这些靶点的药物
- 基于化合物:已批准药物 -> 找出新的疾病适应症
- 疾病驱动:疾病 -> 靶点 -> 与现有药物匹配
- 基于特征:疾病基因表达特征 -> 找出扰动特征能够逆转该特征的药物(基于连接图谱的推理)。当疾病具有表征良好的差异表达特征(例如来自 GEO/TCGA),但没有单一的已验证靶点时使用此策略——此策略无需任何靶点假设,只需上调/下调基因列表。
工作流概览
Phase 1: Disease & Target Analysis
Get disease info (OpenTargets), find associated targets, get target details
Phase 2: Drug Discovery
Search DrugBank, DGIdb, ChEMBL for drugs targeting disease-associated genes
Get drug details, indications, pharmacology
Phase 3: Safety & Feasibility Assessment
FDA warnings, FAERS adverse events, drug interactions, ADMET predictions
Phase 4: Literature Evidence
PubMed, Europe PMC, clinical trials for existing evidence
Phase 5: Scoring & Ranking
Composite score: target association + safety + literature + drug properties
另请参阅:PROCEDURES.md,了解详细的分步流程和代码模式。
快速入门
from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()
# Step 1: Get disease targets
disease_info = tu.tools.OpenTargets_get_disease_id_description_by_name(diseaseName="rheumatoid arthritis")
# Response nests ID at data.search.hits[0].id
disease_id = disease_info['data']['search']['hits'][0]['id']
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(efoId=disease_id, size=10)
# Step 2: Find drugs for each target
# Response nests targets at data.disease.associatedTargets.rows
rows = targets['data']['disease']['associatedTargets']['rows']
for target in rows[:5]:
gene = target['target']['approvedSymbol']
drugs = tu.tools.DGIdb_get_drug_gene_interactions(genes=[gene])
关键 ToolUniverse 工具
疾病与靶点:
OpenTargets_get_disease_id_description_by_name- 疾病查询OpenTargets_get_associated_targets_by_disease_efoId- 疾病相关靶点UniProt_get_entry_by_accession- 蛋白质详情
药物发现:
drugbank_get_drug_name_and_description_by_target_name- 按靶点查询药物。参数:query=(不是target_name=)drugbank_get_drug_name_and_description_by_indication- 按适应症查询药物。参数:query=(不是indication=)DGIdb_get_drug_gene_interactions- 药物-基因相互作用。响应路径:data.data.genes.nodes[0].interactionsChEMBL_search_drugs/ChEMBL_get_drug_mechanisms- 药物搜索和作用机制(MOA)
专利/IP(USPTO Patent File Wrapper——参见下文的“专利格局检查”):
get_patent_overview_by_text_query- 按关键词/标题搜索专利get_patent_application_metadata、get_patent_term_adjustment_data、get_patent_continuity_data、get_patent_foreign_priority_data、get_associated_documents_metadata- 按申请号查询单项申请详情
药物信息(所有 DrugBank 工具都使用 query= 作为搜索参数,并支持 case_sensitive=False、exact_match=False、limit=N):
drugbank_get_drug_basic_info_by_drug_name_or_id- 基本信息。参数:query="drug_name"drugbank_get_indications_by_drug_name_or_drugbank_id- 已批准适应症。参数:query="drug_name"drugbank_get_pharmacology_by_drug_name_or_drugbank_id- 药理学信息。参数:query="drug_name"drugbank_get_targets_by_drug_name_or_drugbank_id- 药物靶点。参数:query="drug_name"
安全性:
FDA_get_warnings_and_cautions_by_drug_name- FDA 警告FAERS_search_reports_by_drug_and_reaction- 不良事件。参数:medicinalproduct=(不是drug_name=)FAERS_count_death_related_by_drug- 严重结局。参数:medicinalproduct=(不是drug_name=)drugbank_get_drug_interactions_by_drug_name_or_id- 药物相互作用
性质预测:
ADMETAI_predict_physicochemical_properties/ADMETAI_predict_toxicity- ADMET 和毒性
通路与网络分析:
ReactomeAnalysis_pathway_enrichment- 通路富集。参数:identifiers="SOD1\nTARDBP\nFUS"(以换行符分隔的字符串,不是数组)STRING_get_network- 蛋白质相互作用网络。参数:identifiers="SOD1\rTARDBP\rFUS"(以回车符分隔的字符串),species=9606CTD_get_gene_diseases- 精选的基因-疾病关联。参数:input_terms="gene_symbol"(不是gene_symbol=)
文献与临床试验:
PubMed_search_articles/EuropePMC_search_articles- 文献搜索search_clinical_trials- ClinicalTrials.gov 搜索。使用condition指定疾病名称。intervention筛选条件较严格,可能会遗漏试验——可改用query_term,以更广泛地匹配药物名称。
中枢神经系统疾病注意事项:对于神经系统适应症(ALS、阿尔茨海默病、帕金森病),应优先考虑能够穿透血脑屏障的候选药物。由于
ADMETAI_predict_BBB_penetrance可能需要安装tooluniverse[ml]附加组件,可使用 ChEMBL 分子性质(MW < 500、PSA < 90)作为血脑屏障穿透能力的替代指标。还应考虑给药途径(对于吞咽困难的患者,优先选择口服给药)以及临床前模型中的性别特异性效应。
评分与决策框架
再利用可行性评分(0-100)
| 类别 | 分值 | 评分标准 |
|---|---|---|
| 靶点关联性 | 0-40 | 40:靶点有疾病相关的遗传证据(GWAS、罕见变异);25:靶点位于疾病相关通路中(Reactome、KEGG);15:靶点在疾病组织中呈差异表达;5:靶点与疾病基因共享一个 GO 术语 |
| 安全性特征 | 0-30 | 30:FDA 批准的药物,无黑框警告,安全记录明确;20:FDA 批准,且警告可管理;10:有 II 期及以上数据,安全性可接受;0:仅有临床前数据或存在严重安全性信号 |
| 文献证据 | 0-20 | 20:存在针对新适应症的 II 期及以上试验;15:病例报告或回顾性研究显示疗效;10:有临床前体内证据(动物模型);5:仅有体外证据;0:没有既往证据 |
| 药物特性 | 0-10 | 10:口服、生物利用度高、可获得 IP;5:注射剂或治疗窗较窄;0:药代动力学较差或制剂存在挑战 |
分类:
- 80-100:强有力的候选药物——进入临床评估
- 60-79:前景良好——值得进行临床前验证或回顾性研究
- 40-59:推测性候选药物——需要大量补充证据
- <40:较弱——若无新的机制学见解,很可能不值得继续研究
再利用证据分级
| 等级 | 定义 | 行动 |
|---|---|---|
| E1(临床) | 针对新适应症的现有临床试验(任意阶段) | 高优先级——查看试验结果 |
| E2(流行病学) | 显示获益的回顾性/观察性数据 | 中优先级——设计前瞻性研究 |
| E3(临床前) | 针对新适应症的动物模型证据 | 常规优先级——验证作用机制 |
| E4(计算) | 仅有靶点重叠、网络邻近性或分子相似性 | 低优先级——需要实验验证 |
如何解读和综合结果
完成阶段 1-4 后,通过回答以下问题进行综合分析:
-
该靶点在这种疾病中的作用是否已得到验证? 查看 OpenTargets 关联评分(>0.5 = 强)。与遗传证据(GWAS 命中、罕见变异研究)交叉核对。如果靶点关联仅处于通路层面,再利用假设就具有推测性。
-
该药物在可达到的剂量下是否确实能作用于该靶点? 查看 ChEMBL 中的 IC50/Ki 值。如果该药物对新靶点的亲和力比对原靶点弱 >10 倍,那么在安全剂量下不太可能产生临床疗效。
-
安全边际有多大? 比较新适应症所需剂量与已批准剂量。如果需要更高剂量,原适应症的安全性数据可能不适用。
-
是否有既往临床证据? 针对新适应症的 II 期试验(即使失败)也比 100 条计算预测更有参考价值。首先检查
search_clinical_trials。 -
竞争格局如何? 如果该疾病已有更好的药物,再利用的价值就很小。查看 DrugBank 中已批准疗法的适应症。
最佳实践
- 首先检查临床试验:
search_clinical_trials(condition="[disease]", intervention="[drug]")—— 如果已有相关试验,就从那里开始 - 用遗传学验证靶点:遗传证据(GWAS、罕见变异)是预测药物研发成功与否的最有力指标
- 安全第一:优先考虑安全性特征已知的获批药物
- 剂量很重要:如果一种药物必须达到获批剂量的 100 倍才能作用于疾病靶点,就不适合作为药物再利用候选
- 机制胜过相关性:仅凭网络邻近性还不够——要解释药物为何有效
- 考虑知识产权和剂型:仿制药更容易用于药物再利用,但更难为试验筹集资金。请参阅下文“专利格局检查”,核实知识产权状态,不要因为药物年代久远或在某个市场已成为仿制药,就假定其专利已到期——专利期限调整和继续申请可能使保护期远超名义上的 20 年期限。
专利格局检查(USPTO)
在优先考虑药物再利用候选药物之前,请检查新的用途(或化合物本身)是否已被有效专利主张。以下 6 个工具封装了 USPTO 专利档案 API:
| 工具 | 用途 |
|---|---|
get_patent_overview_by_text_query | 按关键词/标题搜索,例如 applicationMetaData.inventionTitle:"your drug or use" |
get_patent_application_metadata | 按申请号获取一项申请的完整元数据(申请/授权日期、CPC 分类) |
get_patent_term_adjustment_data | 专利期限调整(PTA)——在名义上的 20 年期限之外额外授予了多少保护时间 |
get_patent_continuity_data | 母案/子案继续申请关系——通过继续申请,化合物的保护期可能远超原始申请日期 |
get_patent_foreign_priority_data | 外国优先权主张(适用于全球知识产权格局分析,不仅限于美国) |
get_associated_documents_metadata | 该申请的相关公开文件/授权信息 |
需要 USPTO_API_KEY(免费,可在 https://data.uspto.gov/myodp 注册)。没有有效密钥时,每次调用都会返回 HTTP 403——已在线验证:get_patent_overview_by_text_query 和 get_patent_application_metadata 均返回 HTTP Error: 403,并附有 USPTO 自己的说明:403 表示密钥遭拒(无效,或新签发的密钥仍在激活中),而非查询格式错误。对于特定专利号,404 表示该专利不在专利档案数据集的覆盖范围内,并不代表工具无法使用。
工作流:使用 get_patent_overview_by_text_query 按药物/化合物名称或标题关键词搜索(将多词短语用转义的双引号括起来进行精确匹配)→ 从搜索结果中获取一个 applicationNumberText → 提取专利期限调整和继续申请数据,以查看实际剩余保护期,因为继续申请和 PTA 都会使实际到期日比按名义授权日期 + 20 年计算得出的日期更晚。基础化合物专利看似已到期的药物,仍可能受用途专利或剂型继续申请的保护——在认定某化合物无需许可即可用于药物再利用之前,务必检查继续申请数据。
基于特征的药物再利用(LINCS / L1000FWD)
对于策略 4,反转疾病本身的基因表达特征,而不是围绕单个靶点进行推理:
| 工具 | 用途 |
|---|---|
LINCS_search_signatures(drug_name=..., cell_line=..., limit=...) | 查找已知药物的现有 L1000 / 其他检测扰动特征——可用于在将候选化合物与疾病特征进行比较之前,确认该化合物自身的转录组印迹 |
LINCS_list_libraries(keyword=..., limit=...) | 浏览 LINCS SigCom 的 431+ 个特征库(L1000 表达、激酶分析、细胞生长抑制、蛋白质组学),为特定问题找到合适的检测类型 |
L1000FWD_sig_search(up_genes=[...], down_genes=[...], n_results=..., mode=...) | 核心连接图查询:提交疾病中上调 / 下调的差异表达基因列表,获取其 L1000 扰动特征与疾病特征负相关(候选药物再利用命中)或正相关(机制模拟物)的药物 |
工作流:先得出疾病的上调 / 下调基因集(例如,来自已发表的差异表达分析、GEO 数据集,或本仓库的 tooluniverse-rnaseq-deseq2 输出)→ L1000FWD_sig_search(up_genes=disease_up, down_genes=disease_down, mode="reverse") → 每个命中结果都会返回 combined_scores/pvals/qvals——按分数排序,并将排名靠前的反转命中视为 E4(计算)候选项;它仍需像其他策略一样接受靶点验证和剂量可行性审查,不能将其视为绕过这些步骤的捷径。通过 LINCS_search_signatures(drug_name=<hit>) 交叉核查任何有希望的命中,直接查看其特征,而不要只相信连接分数。
已验证可正常使用:LINCS_search_signatures(drug_name="vorinostat") 和 L1000FWD_sig_search 均会返回真实的非空结果——这是一种可用、可查询的策略,而不是占位内容。
跨知识图谱查询(NCATS Biomedical Data Translator)
如需快速一次性扫描约 15 个知识提供方(而不是逐个查询 OpenTargets / ChEMBL / Reactome),NCATS Translator 工具提供了符合 biolink 标准的替代方案:
| 工具 | 用途 |
|---|---|
NCATSTranslator_resolve_entity(name=..., biolink_type=...) | 通过 SRI Name Resolution 将自由文本解析为 Translator 标准化的 CURIE(例如,name="Alzheimer disease" → curie="MONDO:0004975") |
NCATSTranslator_query_associations(entity_id=..., target_category=..., predicate=...) | 通过 Aragorn 推理器进行单跳 biolink 查询——例如,entity_id="MONDO:0004975"、target_category="ChemicalEntity"、predicate="treats" 会返回按分数排序的候选治疗方案,并提供来源 / 出版物数量溯源信息 |
已验证可正常使用:resolve_entity(name="Alzheimer disease") → MONDO:0004975;query_associations(entity_id="MONDO:0004975", target_category="ChemicalEntity", predicate="treats") → 返回真实的排序命中结果(例如,CHEBI:87631“statin”,分数约为 0.9)。这适合作为策略 (c) 式的广度检查——可在早期低成本运行,但其排序“分数”属于 E4(计算)证据,与其他网络邻近性信号一样,不能替代上述靶点遗传学 / ChEMBL 亲和力 / 临床试验验证步骤。
计算流程:药物-靶点剂量可行性检查
如果一种药物只有在达到已批准剂量的 100 倍时才能作用于新靶点,那么它就不是可行的药物再利用候选项。在确定药物-靶点配对后,使用此流程:
# Drug-target dose feasibility analysis
# Uses ChEMBL bioactivity data from ToolUniverse
from tooluniverse import ToolUniverse
tu = ToolUniverse()
tu.load_tools()
def check_dose_feasibility(drug_name, original_target, new_target):
"""
Compare drug's potency at original vs new target.
If new_target IC50 > 10x original_target IC50, flag as unlikely feasible.
"""
# Get bioactivity for original target
orig = tu.run_one_function({
'name': 'ChEMBL_search_activities',
'arguments': {
'molecule_chembl_id': drug_name, # or search first
'target_chembl_id': original_target,
'limit': 10
}
})
# Get bioactivity for new target
new = tu.run_one_function({
'name': 'ChEMBL_search_activities',
'arguments': {
'molecule_chembl_id': drug_name,
'target_chembl_id': new_target,
'limit': 10
}
})
# Extract IC50/Ki values and compare
# If new target requires >10x concentration → NOT FEASIBLE at safe doses
# If new target is within 3x → PROMISING
# If new target is within 1x → STRONG candidate
pass # Parse actual values from results
# Alternative: Quick Cmax check
# If published Cmax at approved dose < IC50 for new target → NOT FEASIBLE
# Cmax data can be found in:
# - DrugBank pharmacology section
# - DailyMed clinical pharmacology section
# - PubMed PK studies
关键原则:药物再利用失败最常见的原因是新靶点处的药物暴露不足。始终检查药物在已批准剂量下的浓度是否达到新靶点的 IC50。
故障排除
| 问题 | 解决方案 |
|---|---|
| 未找到疾病 | 尝试同义词或通过 EFO ID 查找 |
| 没有针对该靶点的药物 | 检查 HUGO 命名规范,扩展到通路级别,尝试相似靶点 |
| 专利工具返回 HTTP 403 | USPTO_API_KEY 缺失或无效,或者新签发的密钥仍在激活中——请在 https://data.uspto.gov/myodp 验证;这不是查询问题 |
| 专利工具针对已知专利返回 HTTP 404 | 该专利不在 Patent File Wrapper 数据集的覆盖范围内,并非查询有误 |
| 文献不足 | 改为搜索药物类别,检查临床前研究或动物研究 |
| 安全性数据不可用 | 该药物可能未获美国批准,请查看 EMA 或临床试验安全性信息 |
参考文件
- REFERENCE.md - 详细参考文档
- EXAMPLES.md - 药物再利用分析示例
- PROCEDURES.md - 附代码的分步流程
- REPORT_TEMPLATE.md - 输出报告模板
- 相关技能:disease-intelligence-gatherer、chemical-compound-retrieval、tooluniverse-sdk