tooluniverse-drug-repurposing
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseDrug Repurposing with ToolUniverse
借助ToolUniverse实现药物重定位
Systematically identify and evaluate drug repurposing candidates using multiple computational strategies.
IMPORTANT: Always use English terms in tool calls (drug names, disease names, target names), even if the user writes in another language. Only try original-language terms as a fallback if English returns no results. Respond in the user's language.
通过多种计算策略系统性地识别和评估药物重定位候选药物。
重要提示:在调用工具时始终使用英文术语(药物名称、疾病名称、靶点名称),即使用户使用其他语言提问。只有当英文查询无结果时,才尝试使用原语言术语作为备选。请使用用户的语言进行回复。
Core Strategies
核心策略
1. Target-Based Repurposing
1. 靶点导向的药物重定位
Start with disease targets → Find drugs that modulate those targets
从疾病靶点入手 → 寻找可调控这些靶点的药物
2. Compound-Based Repurposing
2. 化合物导向的药物重定位
Start with approved drugs → Find new disease indications
从已获批药物入手 → 寻找新的疾病适应症
3. Disease-Driven Repurposing
3. 疾病驱动的药物重定位
Start with disease → Find targets → Match to existing drugs
从疾病入手 → 寻找相关靶点 → 匹配现有药物
Quick Start
快速开始
python
from tooluniverse import ToolUniverse
tu = ToolUniverse(use_cache=True)
tu.load_tools()python
from tooluniverse import ToolUniverse
tu = ToolUniverse(use_cache=True)
tu.load_tools()Example: Find repurposing candidates for a disease
Example: Find repurposing candidates for a disease
disease_name = "rheumatoid arthritis"
disease_name = "rheumatoid arthritis"
Step 1: Get disease information
Step 1: Get disease information
disease_info = tu.tools.OpenTargets_get_disease_id_description_by_name(
diseaseName=disease_name
)
disease_info = tu.tools.OpenTargets_get_disease_id_description_by_name(
diseaseName=disease_name
)
Step 2: Get associated targets
Step 2: Get associated targets
disease_id = disease_info['data']['id']
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
efoId=disease_id,
limit=10
)
disease_id = disease_info['data']['id']
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
efoId=disease_id,
limit=10
)
Step 3: Find drugs for each target
Step 3: Find drugs for each target
for target in targets['data'][:5]:
drugs = tu.tools.DGIdb_get_drug_gene_interactions(
gene_name=target['gene_symbol']
)
# Evaluate each drug candidate...
undefinedfor target in targets['data'][:5]:
drugs = tu.tools.DGIdb_get_drug_gene_interactions(
gene_name=target['gene_symbol']
)
# Evaluate each drug candidate...
undefinedComplete Workflow
完整工作流程
Phase 1: Disease & Target Analysis
第一阶段:疾病与靶点分析
python
undefinedpython
undefined1.1 Get disease information
1.1 Get disease information
disease_info = tu.tools.OpenTargets_get_disease_id_description_by_name(
diseaseName="[disease_name]"
)
disease_info = tu.tools.OpenTargets_get_disease_id_description_by_name(
diseaseName="[disease_name]"
)
1.2 Find associated targets
1.2 Find associated targets
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
efoId=disease_info['data']['id'],
limit=20
)
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
efoId=disease_info['data']['id'],
limit=20
)
1.3 Get target details for top candidates
1.3 Get target details for top candidates
target_details = []
for target in targets['data'][:10]:
details = tu.tools.UniProt_get_entry_by_accession(
accession=target['uniprot_id']
)
target_details.append(details)
undefinedtarget_details = []
for target in targets['data'][:10]:
details = tu.tools.UniProt_get_entry_by_accession(
accession=target['uniprot_id']
)
target_details.append(details)
undefinedPhase 2: Drug Discovery
第二阶段:药物发现
python
undefinedpython
undefined2.1 Find drugs targeting disease-associated targets
2.1 Find drugs targeting disease-associated targets
drug_candidates = []
for target in targets['data'][:10]:
# Search DrugBank
drugbank_results = tu.tools.drugbank_get_drug_name_and_description_by_target_name(
target_name=target['gene_symbol']
)
# Search DGIdb
dgidb_results = tu.tools.DGIdb_get_drug_gene_interactions(
gene_name=target['gene_symbol']
)
# Search ChEMBL
chembl_results = tu.tools.ChEMBL_search_drugs(
query=target['gene_symbol'],
limit=10
)
drug_candidates.extend([drugbank_results, dgidb_results, chembl_results])drug_candidates = []
for target in targets['data'][:10]:
# Search DrugBank
drugbank_results = tu.tools.drugbank_get_drug_name_and_description_by_target_name(
target_name=target['gene_symbol']
)
# Search DGIdb
dgidb_results = tu.tools.DGIdb_get_drug_gene_interactions(
gene_name=target['gene_symbol']
)
# Search ChEMBL
chembl_results = tu.tools.ChEMBL_search_drugs(
query=target['gene_symbol'],
limit=10
)
drug_candidates.extend([drugbank_results, dgidb_results, chembl_results])2.2 Get drug details
2.2 Get drug details
for drug_name in unique_drugs:
# Get DrugBank info
drug_info = tu.tools.drugbank_get_drug_basic_info_by_drug_name_or_id(
drug_name_or_drugbank_id=drug_name
)
# Get current indications
indications = tu.tools.drugbank_get_indications_by_drug_name_or_drugbank_id(
drug_name_or_drugbank_id=drug_name
)
# Get pharmacology
pharmacology = tu.tools.drugbank_get_pharmacology_by_drug_name_or_drugbank_id(
drug_name_or_drugbank_id=drug_name
)undefinedfor drug_name in unique_drugs:
# Get DrugBank info
drug_info = tu.tools.drugbank_get_drug_basic_info_by_drug_name_or_id(
drug_name_or_drugbank_id=drug_name
)
# Get current indications
indications = tu.tools.drugbank_get_indications_by_drug_name_or_drugbank_id(
drug_name_or_drugbank_id=drug_name
)
# Get pharmacology
pharmacology = tu.tools.drugbank_get_pharmacology_by_drug_name_or_drugbank_id(
drug_name_or_drugbank_id=drug_name
)undefinedPhase 3: Safety & Feasibility Assessment
第三阶段:安全性与可行性评估
python
undefinedpython
undefined3.1 Check FDA safety data
3.1 Check FDA safety data
for drug in top_candidates:
# Get warnings and precautions
warnings = tu.tools.FDA_get_warnings_and_cautions_by_drug_name(
drug_name=drug['name']
)
# Get adverse event reports
adverse_events = tu.tools.FAERS_search_reports_by_drug_and_reaction(
drug_name=drug['name'],
limit=100
)
# Get drug interactions
interactions = tu.tools.drugbank_get_drug_interactions_by_drug_name_or_id(
drug_name_or_id=drug['name']
)for drug in top_candidates:
# Get warnings and precautions
warnings = tu.tools.FDA_get_warnings_and_cautions_by_drug_name(
drug_name=drug['name']
)
# Get adverse event reports
adverse_events = tu.tools.FAERS_search_reports_by_drug_and_reaction(
drug_name=drug['name'],
limit=100
)
# Get drug interactions
interactions = tu.tools.drugbank_get_drug_interactions_by_drug_name_or_id(
drug_name_or_id=drug['name']
)3.2 Assess ADMET properties (for novel formulations)
3.2 Assess ADMET properties (for novel formulations)
for drug in top_candidates:
if 'smiles' in drug:
admet = tu.tools.ADMETAI_predict_admet(
smiles=drug['smiles'],
use_cache=True
)
undefinedfor drug in top_candidates:
if 'smiles' in drug:
admet = tu.tools.ADMETAI_predict_admet(
smiles=drug['smiles'],
use_cache=True
)
undefinedPhase 4: Literature Evidence
第四阶段:文献证据分析
python
undefinedpython
undefined4.1 Search for existing evidence
4.1 Search for existing evidence
for drug in top_candidates:
# PubMed search
query = f"{drug['name']} AND {disease_name}"
pubmed_results = tu.tools.PubMed_search_articles(
query=query,
max_results=50
)
# Europe PMC search
pmc_results = tu.tools.EuropePMC_search_articles(
query=query,
limit=50
)
# Clinical trials
trials = tu.tools.ClinicalTrials_search(
condition=disease_name,
intervention=drug['name']
)undefinedfor drug in top_candidates:
# PubMed search
query = f"{drug['name']} AND {disease_name}"
pubmed_results = tu.tools.PubMed_search_articles(
query=query,
max_results=50
)
# Europe PMC search
pmc_results = tu.tools.EuropePMC_search_articles(
query=query,
limit=50
)
# Clinical trials
trials = tu.tools.ClinicalTrials_search(
condition=disease_name,
intervention=drug['name']
)undefinedPhase 5: Scoring & Ranking
第五阶段:评分与排名
Create a scoring function to rank candidates:
python
def score_repurposing_candidate(drug, target_score, safety_data, literature_count):
"""Score drug repurposing candidate (0-100)."""
score = 0
# Target association strength (0-40 points)
score += min(target_score * 40, 40)
# Safety profile (0-30 points)
if drug['approval_status'] == 'approved':
score += 20
elif drug['approval_status'] == 'clinical':
score += 10
if not safety_data.get('black_box_warning'):
score += 10
# Literature evidence (0-20 points)
score += min(literature_count / 5 * 20, 20)
# Drug-likeness (0-10 points)
if drug.get('bioavailability') == 'high':
score += 10
return score创建评分函数对候选药物进行排名:
python
def score_repurposing_candidate(drug, target_score, safety_data, literature_count):
"""Score drug repurposing candidate (0-100)."""
score = 0
# Target association strength (0-40 points)
score += min(target_score * 40, 40)
# Safety profile (0-30 points)
if drug['approval_status'] == 'approved':
score += 20
elif drug['approval_status'] == 'clinical':
score += 10
if not safety_data.get('black_box_warning'):
score += 10
# Literature evidence (0-20 points)
score += min(literature_count / 5 * 20, 20)
# Drug-likeness (0-10 points)
if drug.get('bioavailability') == 'high':
score += 10
return scoreScore all candidates
Score all candidates
scored_candidates = []
for drug in drug_candidates:
score = score_repurposing_candidate(
drug=drug,
target_score=drug['target_association_score'],
safety_data=drug['safety_profile'],
literature_count=drug['supporting_papers']
)
drug['repurposing_score'] = score
scored_candidates.append(drug)
scored_candidates = []
for drug in drug_candidates:
score = score_repurposing_candidate(
drug=drug,
target_score=drug['target_association_score'],
safety_data=drug['safety_profile'],
literature_count=drug['supporting_papers']
)
drug['repurposing_score'] = score
scored_candidates.append(drug)
Sort by score
Sort by score
ranked_candidates = sorted(
scored_candidates,
key=lambda x: x['repurposing_score'],
reverse=True
)
undefinedranked_candidates = sorted(
scored_candidates,
key=lambda x: x['repurposing_score'],
reverse=True
)
undefinedAlternative Strategies
替代策略
Strategy A: Mechanism-Based Repurposing
策略A:基于作用机制的药物重定位
python
undefinedpython
undefinedFind drugs with similar mechanism of action
Find drugs with similar mechanism of action
known_drug = "metformin"
known_drug = "metformin"
Get mechanism
Get mechanism
moa = tu.tools.drugbank_get_drug_desc_pharmacology_by_moa(
mechanism_of_action="[moa_term]"
)
moa = tu.tools.drugbank_get_drug_desc_pharmacology_by_moa(
mechanism_of_action="[moa_term]"
)
Get similar drugs
Get similar drugs
similar = tu.tools.ChEMBL_search_similar_molecules(
query=known_drug,
similarity_threshold=70
)
undefinedsimilar = tu.tools.ChEMBL_search_similar_molecules(
query=known_drug,
similarity_threshold=70
)
undefinedStrategy B: Network-Based Repurposing
策略B:基于网络的药物重定位
python
undefinedpython
undefinedUse pathway analysis
Use pathway analysis
pathways = tu.tools.drugbank_get_pathways_reactions_by_drug_or_id(
drug_name_or_drugbank_id="[drug_name]"
)
pathways = tu.tools.drugbank_get_pathways_reactions_by_drug_or_id(
drug_name_or_drugbank_id="[drug_name]"
)
Find drugs affecting same pathways
Find drugs affecting same pathways
pathway_drugs = tu.tools.drugbank_get_drug_name_and_description_by_pathway_name(
pathway_name=pathways['data'][0]['pathway_name']
)
undefinedpathway_drugs = tu.tools.drugbank_get_drug_name_and_description_by_pathway_name(
pathway_name=pathways['data'][0]['pathway_name']
)
undefinedStrategy C: Phenotype-Based Repurposing
策略C:基于表型的药物重定位
python
undefinedpython
undefinedSearch by indication/phenotype
Search by indication/phenotype
indication_drugs = tu.tools.drugbank_get_drug_name_and_description_by_indication(
indication="[related_indication]"
)
indication_drugs = tu.tools.drugbank_get_drug_name_and_description_by_indication(
indication="[related_indication]"
)
Analyze adverse events as therapeutic effects
Analyze adverse events as therapeutic effects
Example: minoxidil (hypertension) → hair growth
Example: minoxidil (hypertension) → hair growth
adverse_as_therapeutic = tu.tools.FAERS_search_reports_by_drug_and_reaction(
drug_name="[drug_name]",
limit=1000
)
undefinedadverse_as_therapeutic = tu.tools.FAERS_search_reports_by_drug_and_reaction(
drug_name="[drug_name]",
limit=1000
)
undefinedKey ToolUniverse Tools
关键ToolUniverse工具
Disease & Target Tools:
- - Disease lookup
OpenTargets_get_disease_id_description_by_name - - Disease targets
OpenTargets_get_associated_targets_by_disease_efoId - - Protein details
UniProt_get_entry_by_accession
Drug Discovery Tools:
- - Drugs by target
drugbank_get_drug_name_and_description_by_target_name - - Drugs by indication
drugbank_get_drug_name_and_description_by_indication - - Drug-gene interactions
DGIdb_get_drug_gene_interactions - - Drug search
ChEMBL_search_drugs - - Mechanism of action
ChEMBL_get_drug_mechanisms
Drug Information Tools:
- - Basic drug info
drugbank_get_drug_basic_info_by_drug_name_or_id - - Approved indications
drugbank_get_indications_by_drug_name_or_drugbank_id - - Pharmacology
drugbank_get_pharmacology_by_drug_name_or_drugbank_id - - Drug targets
drugbank_get_targets_by_drug_name_or_drugbank_id
Safety Assessment Tools:
- - FDA warnings
FDA_get_warnings_and_cautions_by_drug_name - - Adverse events
FAERS_search_reports_by_drug_and_reaction - - Serious outcomes
FAERS_count_death_related_by_drug - - Interactions
drugbank_get_drug_interactions_by_drug_name_or_id
Property Prediction Tools:
- - ADMET properties
ADMETAI_predict_admet - - Toxicity prediction
ADMETAI_predict_toxicity
Literature Tools:
- - PubMed search
PubMed_search_articles - - Europe PMC search
EuropePMC_search_articles - - Clinical trials
ClinicalTrials_search
疾病与靶点工具:
- - 疾病查询
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 - - 基于适应症查找药物
drugbank_get_drug_name_and_description_by_indication - - 药物-基因相互作用
DGIdb_get_drug_gene_interactions - - 药物搜索
ChEMBL_search_drugs - - 作用机制
ChEMBL_get_drug_mechanisms
药物信息工具:
- - 药物基本信息
drugbank_get_drug_basic_info_by_drug_name_or_id - - 获批适应症
drugbank_get_indications_by_drug_name_or_drugbank_id - - 药理学信息
drugbank_get_pharmacology_by_drug_name_or_drugbank_id - - 药物靶点
drugbank_get_targets_by_drug_name_or_drugbank_id
安全性评估工具:
- - FDA警告信息
FDA_get_warnings_and_cautions_by_drug_name - - 不良事件报告
FAERS_search_reports_by_drug_and_reaction - - 严重不良结局统计
FAERS_count_death_related_by_drug - - 药物相互作用
drugbank_get_drug_interactions_by_drug_name_or_id
属性预测工具:
- - ADMET属性预测
ADMETAI_predict_admet - - 毒性预测
ADMETAI_predict_toxicity
文献工具:
- - PubMed文献搜索
PubMed_search_articles - - Europe PMC文献搜索
EuropePMC_search_articles - - 临床试验搜索
ClinicalTrials_search
Output Format
输出格式
Present results as ranked candidates:
markdown
undefined以排名候选药物的形式呈现结果:
markdown
undefinedDrug Repurposing Analysis: [Disease Name]
药物重定位分析:[疾病名称]
Top 10 Repurposing Candidates
十大重定位候选药物
1. [Drug Name] (Score: 87/100)
1. [药物名称](评分:87/100)
Current Indications: [list approved uses]
Proposed Indication: [new disease/condition]
Repurposing Rationale: Targets [gene/protein] with high association to disease
Evidence Summary:
- Target association score: 0.85
- Approval status: FDA approved (safer profile)
- Literature support: 23 papers, 4 clinical trials
- Safety profile: No black box warnings
Mechanism: [Brief mechanism description]
Next Steps:
- Phase II trial feasibility assessment
- Patient population identification
- Dosing optimization study
Key Papers:
- Smith et al. 2024 - Clinical efficacy in similar condition
- Jones et al. 2023 - Mechanism validation
当前适应症:[列出获批用途]
拟用适应症:[新疾病/病症]
重定位依据:靶向与疾病高度相关的[基因/蛋白质]
证据总结:
- 靶点关联评分:0.85
- 获批状态:FDA获批(安全性更优)
- 文献支持:23篇论文,4项临床试验
- 安全性特征:无黑框警告
作用机制:[简要描述作用机制]
下一步计划:
- II期临床试验可行性评估
- 患者人群确定
- 给药剂量优化研究
关键文献:
- Smith等人2024年 - 相似病症中的临床疗效
- Jones等人2023年 - 作用机制验证
2. [Drug Name] (Score: 79/100)
2. [药物名称](评分:79/100)
[Similar structure...]
[类似结构...]
Supporting Analysis
支持性分析
Target Network: [visualization or description]
Pathway Overlap: [affected pathways]
Safety Considerations: [major concerns]
Development Timeline: [estimated phases]
undefined靶点网络:[可视化或描述]
通路重叠:[受影响的通路]
安全性注意事项:[主要关注点]
开发时间线:[各阶段预估时间]
undefinedScoring Criteria
评分标准
Target Association (0-40 points):
- Strong genetic evidence: 40
- Moderate association: 25
- Pathway-level evidence: 15
- Weak/predicted: 5
Safety Profile (0-30 points):
- FDA approved: 20
- Phase III: 15
- Phase II: 10
- Phase I: 5
- No black box warning: +10
- Known serious AE: -10
Literature Evidence (0-20 points):
- Clinical trials: 5 points each (max 15)
- Preclinical studies: 1 point each (max 10)
- Case reports: 0.5 points each (max 5)
Drug Properties (0-10 points):
- High bioavailability: 5
- Good BBB penetration (if CNS): 5
- Low toxicity predictions: 5
靶点关联(0-40分):
- 强遗传学证据:40分
- 中等关联:25分
- 通路层面证据:15分
- 弱/预测性证据:5分
安全性特征(0-30分):
- FDA获批:20分
- III期临床:15分
- II期临床:10分
- I期临床:5分
- 无黑框警告:+10分
- 已知严重不良事件:-10分
文献证据(0-20分):
- 临床试验:每项5分(最高15分)
- 临床前研究:每项1分(最高10分)
- 病例报告:每项0.5分(最高5分)
药物属性(0-10分):
- 高生物利用度:5分
- 良好血脑屏障穿透性(针对中枢神经系统疾病):5分
- 低毒性预测:5分
Best Practices
最佳实践
- Start Broad: Query multiple databases (DrugBank, ChEMBL, DGIdb)
- Validate Targets: Confirm target-disease associations in OpenTargets
- Check Safety First: Prioritize approved drugs with known safety profiles
- Literature Mining: Always search for existing clinical/preclinical evidence
- Use Caching: Enable for expensive predictions
use_cache=True - Batch Operations: Use for parallel queries
tu.run_batch() - Consider Mechanism: Evaluate biological plausibility
- Patent Landscape: Check if indication is already protected
- Market Analysis: Consider unmet medical need and commercial viability
- Regulatory Path: FDA approved drugs have faster repurposing path
- 广泛检索:查询多个数据库(DrugBank、ChEMBL、DGIdb)
- 验证靶点:在OpenTargets中确认靶点与疾病的关联
- 优先检查安全性:优先选择具有已知安全性特征的获批药物
- 文献挖掘:始终检索已有的临床/临床前证据
- 使用缓存:为资源消耗大的预测启用
use_cache=True - 批量操作:使用进行并行查询
tu.run_batch() - 考虑作用机制:评估生物学合理性
- 专利态势:检查适应症是否已受保护
- 市场分析:考虑未满足的医疗需求和商业可行性
- 监管路径:FDA获批药物的重定位路径更快捷
Common Patterns
常见模式
Pattern 1: Rapid Screening
模式1:快速筛选
python
undefinedpython
undefinedQuick screening of 100+ drugs against disease targets
Quick screening of 100+ drugs against disease targets
targets = get_disease_targets(disease_id)[:10]
all_drugs = []
for target in targets:
drugs = tu.tools.DGIdb_get_drug_gene_interactions(
gene_name=target['gene_symbol']
)
all_drugs.extend(drugs)
targets = get_disease_targets(disease_id)[:10]
all_drugs = []
for target in targets:
drugs = tu.tools.DGIdb_get_drug_gene_interactions(
gene_name=target['gene_symbol']
)
all_drugs.extend(drugs)
Filter to FDA approved only
Filter to FDA approved only
approved_drugs = [d for d in all_drugs if d.get('approved')]
undefinedapproved_drugs = [d for d in all_drugs if d.get('approved')]
undefinedPattern 2: Deep Dive Single Drug
模式2:单药深度分析
python
undefinedpython
undefinedComprehensive analysis of one drug candidate
Comprehensive analysis of one drug candidate
drug_name = "metformin"
drug_name = "metformin"
Get everything
Get everything
info = tu.tools.drugbank_get_drug_basic_info_by_drug_name_or_id(drug_name_or_drugbank_id=drug_name)
targets = tu.tools.drugbank_get_targets_by_drug_name_or_drugbank_id(drug_name_or_drugbank_id=drug_name)
indications = tu.tools.drugbank_get_indications_by_drug_name_or_drugbank_id(drug_name_or_drugbank_id=drug_name)
pharmacology = tu.tools.drugbank_get_pharmacology_by_drug_name_or_drugbank_id(drug_name_or_drugbank_id=drug_name)
interactions = tu.tools.drugbank_get_drug_interactions_by_drug_name_or_id(drug_name_or_id=drug_name)
warnings = tu.tools.FDA_get_warnings_and_cautions_by_drug_name(drug_name=drug_name)
papers = tu.tools.PubMed_search_articles(query=f"{drug_name} AND [new_disease]", max_results=100)
undefinedinfo = tu.tools.drugbank_get_drug_basic_info_by_drug_name_or_id(drug_name_or_drugbank_id=drug_name)
targets = tu.tools.drugbank_get_targets_by_drug_name_or_drugbank_id(drug_name_or_drugbank_id=drug_name)
indications = tu.tools.drugbank_get_indications_by_drug_name_or_drugbank_id(drug_name_or_drugbank_id=drug_name)
pharmacology = tu.tools.drugbank_get_pharmacology_by_drug_name_or_drugbank_id(drug_name_or_drugbank_id=drug_name)
interactions = tu.tools.drugbank_get_drug_interactions_by_drug_name_or_id(drug_name_or_id=drug_name)
warnings = tu.tools.FDA_get_warnings_and_cautions_by_drug_name(drug_name=drug_name)
papers = tu.tools.PubMed_search_articles(query=f"{drug_name} AND [new_disease]", max_results=100)
undefinedPattern 3: Comparative Analysis
模式3:多候选药物对比分析
python
undefinedpython
undefinedCompare multiple candidates side-by-side
Compare multiple candidates side-by-side
candidates = ["drug_a", "drug_b", "drug_c"]
comparison = []
for drug in candidates:
data = {
'name': drug,
'info': tu.tools.drugbank_get_drug_basic_info_by_drug_name_or_id(drug_name_or_drugbank_id=drug),
'safety': tu.tools.FDA_get_warnings_and_cautions_by_drug_name(drug_name=drug),
'evidence': tu.tools.PubMed_search_articles(query=drug, max_results=10)
}
comparison.append(data)
undefinedcandidates = ["drug_a", "drug_b", "drug_c"]
comparison = []
for drug in candidates:
data = {
'name': drug,
'info': tu.tools.drugbank_get_drug_basic_info_by_drug_name_or_id(drug_name_or_drugbank_id=drug),
'safety': tu.tools.FDA_get_warnings_and_cautions_by_drug_name(drug_name=drug),
'evidence': tu.tools.PubMed_search_articles(query=drug, max_results=10)
}
comparison.append(data)
undefinedTroubleshooting
故障排除
"Disease not found":
- Try disease synonyms or EFO ID lookup
- Use broader disease categories
"No drugs found for target":
- Check target name/symbol (HUGO nomenclature)
- Expand to pathway-level drugs
- Consider similar targets (protein family)
"Insufficient literature evidence":
- Search for drug class rather than specific drug
- Check preclinical/animal studies
- Look for mechanism papers
"Safety data unavailable":
- Drug may not be FDA approved in US
- Check EMA or other regulatory databases
- Review clinical trial safety data
"未找到疾病":
- 尝试使用疾病同义词或EFO ID查询
- 使用更宽泛的疾病类别
"未找到针对该靶点的药物":
- 检查靶点名称/符号(使用HUGO命名规范)
- 扩展至通路层面的药物
- 考虑相似靶点(蛋白质家族)
"文献证据不足":
- 搜索药物类别而非特定药物
- 检查临床前/动物研究
- 查找作用机制相关论文
"安全性数据不可用":
- 该药物可能未在美国获得FDA批准
- 检查EMA或其他监管数据库
- 查看临床试验安全性数据
Example Use Cases
示例用例
Use Case 1: Find repurposing candidates for rare disease
python
undefined用例1:为罕见病寻找重定位候选药物
python
undefinedRare disease often lack approved drugs
Rare disease often lack approved drugs
Strategy: Find drugs targeting same pathways as related common diseases
Strategy: Find drugs targeting same pathways as related common diseases
rare_disease = "Niemann-Pick disease"
related_disease = "Alzheimer's disease" # Similar pathology
rare_disease = "Niemann-Pick disease"
related_disease = "Alzheimer's disease" # Similar pathology
Get pathways affected in related disease
Get pathways affected in related disease
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
efoId=related_disease_id
)
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
efoId=related_disease_id
)
Find drugs for those targets
Find drugs for those targets
Evaluate for rare disease applicability
Evaluate for rare disease applicability
**Use Case 2: Repurpose based on adverse effects**
```python
**用例2:基于不良反应进行药物重定位**
```pythonAdverse effect in one context = therapeutic in another
Adverse effect in one context = therapeutic in another
Example: Thalidomide (teratogenic) → cancer treatment
Example: Thalidomide (teratogenic) → cancer treatment
drug = "drug_name"
adverse_events = tu.tools.FAERS_search_reports_by_drug_and_reaction(
drug_name=drug,
limit=1000
)
drug = "drug_name"
adverse_events = tu.tools.FAERS_search_reports_by_drug_and_reaction(
drug_name=drug,
limit=1000
)
Analyze if adverse effects beneficial in other contexts
Analyze if adverse effects beneficial in other contexts
Example: weight loss AE → obesity treatment potential
Example: weight loss AE → obesity treatment potential
**Use Case 3: Combination therapy discovery**
```python
**用例3:联合疗法发现**
```pythonFind drugs that complement existing therapy
Find drugs that complement existing therapy
primary_drug = "existing_therapy"
disease = "disease_name"
primary_drug = "existing_therapy"
disease = "disease_name"
Get targets not covered by primary drug
Get targets not covered by primary drug
disease_targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
efoId=disease_id
)
primary_targets = tu.tools.drugbank_get_targets_by_drug_name_or_drugbank_id(
drug_name_or_drugbank_id=primary_drug
)
disease_targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
efoId=disease_id
)
primary_targets = tu.tools.drugbank_get_targets_by_drug_name_or_drugbank_id(
drug_name_or_drugbank_id=primary_drug
)
Find drugs for uncovered targets
Find drugs for uncovered targets
uncovered_targets = [t for t in disease_targets if t not in primary_targets]
undefineduncovered_targets = [t for t in disease_targets if t not in primary_targets]
undefinedAdvanced Techniques
高级技术
Technique 1: Polypharmacology-Based Repurposing
技术1:基于多药理学的药物重定位
python
undefinedpython
undefinedFind drugs with multi-target activity matching disease network
Find drugs with multi-target activity matching disease network
Get disease network
Get disease network
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
efoId=disease_id,
limit=50
)
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
efoId=disease_id,
limit=50
)
For each drug, count how many disease targets it hits
For each drug, count how many disease targets it hits
for drug in candidate_drugs:
drug_targets = tu.tools.drugbank_get_targets_by_drug_name_or_drugbank_id(
drug_name_or_drugbank_id=drug
)
overlap = len(set(drug_targets) & set(disease_targets))
if overlap >= 3: # Multi-target match
print(f"{drug}: hits {overlap} disease targets")undefinedfor drug in candidate_drugs:
drug_targets = tu.tools.drugbank_get_targets_by_drug_name_or_drugbank_id(
drug_name_or_drugbank_id=drug
)
overlap = len(set(drug_targets) & set(disease_targets))
if overlap >= 3: # Multi-target match
print(f"{drug}: hits {overlap} disease targets")undefinedTechnique 2: Structure-Based Repurposing
技术2:基于结构的药物重定位
python
undefinedpython
undefinedFind structurally similar approved drugs
Find structurally similar approved drugs
known_active = "known_active_compound"
known_active = "known_active_compound"
Get structure
Get structure
cid = tu.tools.PubChem_get_CID_by_compound_name(
compound_name=known_active
)
cid = tu.tools.PubChem_get_CID_by_compound_name(
compound_name=known_active
)
Find similar
Find similar
similar = tu.tools.PubChem_search_compounds_by_similarity(
cid=cid['data']['cid'],
threshold=85
)
similar = tu.tools.PubChem_search_compounds_by_similarity(
cid=cid['data']['cid'],
threshold=85
)
Check which are approved drugs
Check which are approved drugs
for compound in similar['data']:
drug_info = tu.tools.PubChem_get_drug_label_info_by_CID(
cid=compound['cid']
)
undefinedfor compound in similar['data']:
drug_info = tu.tools.PubChem_get_drug_label_info_by_CID(
cid=compound['cid']
)
undefinedTechnique 3: AI-Powered Candidate Selection
技术3:AI驱动的候选药物筛选
python
undefinedpython
undefinedUse ML predictions to filter candidates
Use ML predictions to filter candidates
candidates_with_smiles = get_candidates_with_structures()
candidates_with_smiles = get_candidates_with_structures()
Predict ADMET for all
Predict ADMET for all
admet_results = []
for drug in candidates_with_smiles:
admet = tu.tools.ADMETAI_predict_admet(
smiles=drug['smiles'],
use_cache=True
)
admet_results.append({
'drug': drug['name'],
'admet': admet,
'pass': evaluate_admet_criteria(admet)
})
admet_results = []
for drug in candidates_with_smiles:
admet = tu.tools.ADMETAI_predict_admet(
smiles=drug['smiles'],
use_cache=True
)
admet_results.append({
'drug': drug['name'],
'admet': admet,
'pass': evaluate_admet_criteria(admet)
})
Keep only drugs passing ADMET criteria
Keep only drugs passing ADMET criteria
viable_candidates = [r for r in admet_results if r['pass']]
undefinedviable_candidates = [r for r in admet_results if r['pass']]
undefinedResources
相关资源
For comprehensive disease analysis, see disease-intelligence-gatherer skill.
For compound property analysis, see chemical-compound-retrieval skill.
For detailed ToolUniverse SDK usage, see tooluniverse-sdk skill.
如需全面的疾病分析,请查看疾病情报收集工具。
如需化合物属性分析,请查看化学化合物检索工具。
如需详细的ToolUniverse SDK使用说明,请查看tooluniverse-sdk工具。