tooluniverse-drug-repurposing

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Drug 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...
undefined
for target in targets['data'][:5]: drugs = tu.tools.DGIdb_get_drug_gene_interactions( gene_name=target['gene_symbol'] ) # Evaluate each drug candidate...
undefined

Complete Workflow

完整工作流程

Phase 1: Disease & Target Analysis

第一阶段:疾病与靶点分析

python
undefined
python
undefined

1.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)
undefined
target_details = [] for target in targets['data'][:10]: details = tu.tools.UniProt_get_entry_by_accession( accession=target['uniprot_id'] ) target_details.append(details)
undefined

Phase 2: Drug Discovery

第二阶段:药物发现

python
undefined
python
undefined

2.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
)
undefined
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
)
undefined

Phase 3: Safety & Feasibility Assessment

第三阶段:安全性与可行性评估

python
undefined
python
undefined

3.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 )
undefined
for drug in top_candidates: if 'smiles' in drug: admet = tu.tools.ADMETAI_predict_admet( smiles=drug['smiles'], use_cache=True )
undefined

Phase 4: Literature Evidence

第四阶段:文献证据分析

python
undefined
python
undefined

4.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']
)
undefined
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']
)
undefined

Phase 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 score

Score 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 )
undefined
ranked_candidates = sorted( scored_candidates, key=lambda x: x['repurposing_score'], reverse=True )
undefined

Alternative Strategies

替代策略

Strategy A: Mechanism-Based Repurposing

策略A:基于作用机制的药物重定位

python
undefined
python
undefined

Find 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 )
undefined
similar = tu.tools.ChEMBL_search_similar_molecules( query=known_drug, similarity_threshold=70 )
undefined

Strategy B: Network-Based Repurposing

策略B:基于网络的药物重定位

python
undefined
python
undefined

Use 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'] )
undefined
pathway_drugs = tu.tools.drugbank_get_drug_name_and_description_by_pathway_name( pathway_name=pathways['data'][0]['pathway_name'] )
undefined

Strategy C: Phenotype-Based Repurposing

策略C:基于表型的药物重定位

python
undefined
python
undefined

Search 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 )
undefined
adverse_as_therapeutic = tu.tools.FAERS_search_reports_by_drug_and_reaction( drug_name="[drug_name]", limit=1000 )
undefined

Key ToolUniverse Tools

关键ToolUniverse工具

Disease & Target Tools:
  • OpenTargets_get_disease_id_description_by_name
    - Disease lookup
  • OpenTargets_get_associated_targets_by_disease_efoId
    - Disease targets
  • UniProt_get_entry_by_accession
    - Protein details
Drug Discovery Tools:
  • drugbank_get_drug_name_and_description_by_target_name
    - Drugs by target
  • drugbank_get_drug_name_and_description_by_indication
    - Drugs by indication
  • DGIdb_get_drug_gene_interactions
    - Drug-gene interactions
  • ChEMBL_search_drugs
    - Drug search
  • ChEMBL_get_drug_mechanisms
    - Mechanism of action
Drug Information Tools:
  • drugbank_get_drug_basic_info_by_drug_name_or_id
    - Basic drug info
  • drugbank_get_indications_by_drug_name_or_drugbank_id
    - Approved indications
  • drugbank_get_pharmacology_by_drug_name_or_drugbank_id
    - Pharmacology
  • drugbank_get_targets_by_drug_name_or_drugbank_id
    - Drug targets
Safety Assessment Tools:
  • FDA_get_warnings_and_cautions_by_drug_name
    - FDA warnings
  • FAERS_search_reports_by_drug_and_reaction
    - Adverse events
  • FAERS_count_death_related_by_drug
    - Serious outcomes
  • drugbank_get_drug_interactions_by_drug_name_or_id
    - Interactions
Property Prediction Tools:
  • ADMETAI_predict_admet
    - ADMET properties
  • ADMETAI_predict_toxicity
    - Toxicity prediction
Literature Tools:
  • PubMed_search_articles
    - PubMed search
  • EuropePMC_search_articles
    - Europe PMC search
  • ClinicalTrials_search
    - Clinical trials
疾病与靶点工具:
  • 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_get_warnings_and_cautions_by_drug_name
    - FDA警告信息
  • FAERS_search_reports_by_drug_and_reaction
    - 不良事件报告
  • FAERS_count_death_related_by_drug
    - 严重不良结局统计
  • drugbank_get_drug_interactions_by_drug_name_or_id
    - 药物相互作用
属性预测工具:
  • ADMETAI_predict_admet
    - ADMET属性预测
  • ADMETAI_predict_toxicity
    - 毒性预测
文献工具:
  • PubMed_search_articles
    - PubMed文献搜索
  • EuropePMC_search_articles
    - Europe PMC文献搜索
  • ClinicalTrials_search
    - 临床试验搜索

Output Format

输出格式

Present results as ranked candidates:
markdown
undefined
以排名候选药物的形式呈现结果:
markdown
undefined

Drug 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:
  1. Smith et al. 2024 - Clinical efficacy in similar condition
  2. Jones et al. 2023 - Mechanism validation

当前适应症:[列出获批用途] 拟用适应症:[新疾病/病症] 重定位依据:靶向与疾病高度相关的[基因/蛋白质]
证据总结:
  • 靶点关联评分:0.85
  • 获批状态:FDA获批(安全性更优)
  • 文献支持:23篇论文,4项临床试验
  • 安全性特征:无黑框警告
作用机制:[简要描述作用机制]
下一步计划:
  • II期临床试验可行性评估
  • 患者人群确定
  • 给药剂量优化研究
关键文献:
  1. Smith等人2024年 - 相似病症中的临床疗效
  2. 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
靶点网络:[可视化或描述] 通路重叠:[受影响的通路] 安全性注意事项:[主要关注点] 开发时间线:[各阶段预估时间]
undefined

Scoring 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

最佳实践

  1. Start Broad: Query multiple databases (DrugBank, ChEMBL, DGIdb)
  2. Validate Targets: Confirm target-disease associations in OpenTargets
  3. Check Safety First: Prioritize approved drugs with known safety profiles
  4. Literature Mining: Always search for existing clinical/preclinical evidence
  5. Use Caching: Enable
    use_cache=True
    for expensive predictions
  6. Batch Operations: Use
    tu.run_batch()
    for parallel queries
  7. Consider Mechanism: Evaluate biological plausibility
  8. Patent Landscape: Check if indication is already protected
  9. Market Analysis: Consider unmet medical need and commercial viability
  10. Regulatory Path: FDA approved drugs have faster repurposing path
  1. 广泛检索:查询多个数据库(DrugBank、ChEMBL、DGIdb)
  2. 验证靶点:在OpenTargets中确认靶点与疾病的关联
  3. 优先检查安全性:优先选择具有已知安全性特征的获批药物
  4. 文献挖掘:始终检索已有的临床/临床前证据
  5. 使用缓存:为资源消耗大的预测启用
    use_cache=True
  6. 批量操作:使用
    tu.run_batch()
    进行并行查询
  7. 考虑作用机制:评估生物学合理性
  8. 专利态势:检查适应症是否已受保护
  9. 市场分析:考虑未满足的医疗需求和商业可行性
  10. 监管路径:FDA获批药物的重定位路径更快捷

Common Patterns

常见模式

Pattern 1: Rapid Screening

模式1:快速筛选

python
undefined
python
undefined

Quick 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')]
undefined
approved_drugs = [d for d in all_drugs if d.get('approved')]
undefined

Pattern 2: Deep Dive Single Drug

模式2:单药深度分析

python
undefined
python
undefined

Comprehensive 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)
undefined
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)
undefined

Pattern 3: Comparative Analysis

模式3:多候选药物对比分析

python
undefined
python
undefined

Compare 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)
undefined
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)
undefined

Troubleshooting

故障排除

"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
undefined

Rare 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:基于不良反应进行药物重定位**
```python

Adverse 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:联合疗法发现**
```python

Find 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]
undefined
uncovered_targets = [t for t in disease_targets if t not in primary_targets]
undefined

Advanced Techniques

高级技术

Technique 1: Polypharmacology-Based Repurposing

技术1:基于多药理学的药物重定位

python
undefined
python
undefined

Find 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")
undefined
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")
undefined

Technique 2: Structure-Based Repurposing

技术2:基于结构的药物重定位

python
undefined
python
undefined

Find 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'] )
undefined
for compound in similar['data']: drug_info = tu.tools.PubChem_get_drug_label_info_by_CID( cid=compound['cid'] )
undefined

Technique 3: AI-Powered Candidate Selection

技术3:AI驱动的候选药物筛选

python
undefined
python
undefined

Use 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']]
undefined
viable_candidates = [r for r in admet_results if r['pass']]
undefined

Resources

相关资源

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工具