Token导航 LogoToken导航

Agent Skill · 研究检索

tooluniverse-network-pharmacology(工具宇宙网络药理学)

tooluniverse-network-pharmacology 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

tooluniverse-network-pharmacology 是研究检索类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为需要联网;许可证信息还不明确,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 62,606。

总安装 329周安装 14GitHub Stars 971下载 115核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
unknown

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:tooluniverse-network-pharmacology(工具宇宙网络药理学)
来源仓库:https://github.com/wu-yc/labclaw
仓库路径:skills/tooluniverse-network-pharmacology
安装命令:
npx skills add https://github.com/wu-yc/labclaw --skill tooluniverse-network-pharmacology
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/wu-yc/labclaw --skill tooluniverse-network-pharmacology

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

用于查找、检索和筛选相关信息,适合快速定位候选结果。适用于关键词搜索、任务场景匹配和来源线索梳理。通过 GitHub 安装,可结合原始 README 核验具体用法。使用前建议确认权限范围和是否触发联网或文件读写操作。注意维护状态,避免依赖已废弃或不稳定的接口。

tooluniverse-network-pharmacology 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

来源仓库内路径:skills/tooluniverse-network-pharmacology

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/wu-yc/labclaw --skill tooluniverse-network-pha…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

tooluniverse-network-pharmacology 怎么安装?

在终端执行 npx skills add https://github.com/wu-yc/labclaw --skill tooluniverse-network-pharmacology。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

tooluniverse-network-pharmacology 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

tooluniverse-network-pharmacology 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

tooluniverse-network-pharmacology 是免费的吗?

公开资料没有标注明确许可证,收费和商用限制都无法确认。正式使用前请到来源仓库核对授权说明。

tooluniverse-network-pharmacology 用的人多吗?

公开数据是累计安装 329 次,近一周安装 14 次,下载 115 次,GitHub 971 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

tooluniverse-network-pharmacology 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。

先想清楚的地方

  • 许可证没有明确标注,能不能商用、能不能再分发都不确定。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要明确授权才能用到公司项目里的场景。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
tooluniverse-network-pharmacology

工具宇宙网络药理学 · 本页

329971需要联网未明确有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

Network Pharmacology Pipeline

Construct and analyze compound-target-disease (C-T-D) networks to identify drug repurposing opportunities, understand polypharmacology, and predict drug mechanisms using systems pharmacology approaches.

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.


When to Use This Skill

Apply when users:

  • Ask "Can [drug] be repurposed for [disease] based on network analysis?"
  • Want to understand multi-target (polypharmacology) effects of a compound
  • Need compound-target-disease network construction and analysis
  • Ask about network proximity between drug targets and disease genes
  • Want systems pharmacology analysis of a drug or target
  • Ask about drug repurposing candidates ranked by network metrics
  • Need mechanism prediction for a drug in a new indication
  • Want to identify hub genes in disease networks as therapeutic targets
  • Ask about disease module coverage by a compound's targets

NOT for (use other skills instead):

  • Simple drug repurposing without network analysis -> Use tooluniverse-drug-repurposing
  • Single target validation -> Use tooluniverse-drug-target-validation
  • Adverse event detection only -> Use tooluniverse-adverse-event-detection
  • General disease research -> Use tooluniverse-disease-research
  • GWAS interpretation -> Use tooluniverse-gwas-snp-interpretation

Input Parameters

ParameterRequiredDescriptionExample
entityYesCompound name/ID, target gene symbol/ID, or disease name/IDmetformin, EGFR, Alzheimer disease
entity_typeNoType hint: compound, target, or disease (auto-detected if omitted)compound
analysis_modeNocompound-to-disease, disease-to-compound, target-centric, bidirectional (default)bidirectional
secondary_entityNoSecond entity for focused analysis (e.g., disease for compound input)Alzheimer disease

Network Pharmacology Score (0-100)

Score Components

Network Proximity (0-35 points):

  • Strong proximity (Z < -2, p < 0.01): 35 points
  • Moderate proximity (Z < -1, p < 0.05): 20 points
  • Weak proximity (Z < -0.5): 10 points
  • No proximity: 0 points

Clinical Evidence (0-25 points):

  • Approved for related indication: 25 points
  • Active clinical trials: 15 points
  • Completed trials with positive results: 10 points
  • Preclinical only: 5 points

Target-Disease Association (0-20 points):

  • Strong genetic evidence (GWAS, rare variants): 20 points
  • Moderate evidence (pathways, literature): 12 points
  • Weak evidence (computational only): 5 points

Safety Profile (0-10 points):

  • FDA-approved, favorable safety: 10 points
  • Known manageable adverse events: 7 points
  • Significant safety concerns: 3 points
  • Black box warning relevant to indication: 0 points

Mechanism Plausibility (0-10 points):

  • Clear pathway mechanism with functional evidence: 10 points
  • Indirect mechanism via network neighbors: 6 points
  • Purely computational prediction: 2 points

Priority Tiers

ScoreTierRecommendation
80-100Tier 1High repurposing potential - proceed with experimental validation
60-79Tier 2Good potential - needs mechanistic validation
40-59Tier 3Moderate potential - high-risk/high-reward, needs extensive validation
0-39Tier 4Low potential - consider alternative approaches

Evidence Grading System

TierSymbolCriteriaExamples
T1[T1]Human clinical proof, regulatory evidenceFDA-approved indication, Phase III trial, patient genomics
T2[T2]Functional experimental evidenceBioactivity data (IC50 < 1 uM), CRISPR screen, animal model
T3[T3]Association/computational evidenceGWAS hit, network proximity, pathway enrichment, expression
T4[T4]Prediction, annotation, text-miningAlphaFold prediction, database annotation, literature co-mention

KEY PRINCIPLES

  1. Report-first approach - Create report file FIRST, then populate progressively
  2. Entity disambiguation FIRST - Resolve all identifiers before analysis
  3. Bidirectional network - Construct C-T-D network comprehensively from both directions
  4. Network metrics - Calculate proximity, centrality, module overlap quantitatively
  5. Rank candidates - Prioritize by composite Network Pharmacology Score
  6. Mechanism prediction - Explain HOW drug could work for disease via network paths
  7. Clinical feasibility - FDA-approved drugs ranked higher than preclinical
  8. Safety context - Flag known adverse events and off-target liabilities
  9. Evidence grading - Grade all evidence T1-T4
  10. Negative results documented - "No data" is data; empty sections are failures
  11. Source references - Every finding must cite the source tool/database
  12. Completeness checklist - Mandatory section at end showing analysis coverage

Complete Workflow

Phase 0: Entity Disambiguation and Report Setup

Step 0.1: Create the report file immediately.

# Create report file FIRST
report_path = "[entity]_network_pharmacology_report.md"
# Write header and placeholder sections

Step 0.2: Resolve the input entity to all required identifiers.

from tooluniverse import ToolUniverse
tu = ToolUniverse(use_cache=True)
tu.load_tools()

# === COMPOUND DISAMBIGUATION ===
# Get ChEMBL ID from drug name
drug_info = tu.tools.OpenTargets_get_drug_chembId_by_generic_name(
    drugName="metformin"
)
# Returns: {data: {search: {hits: [{id: "CHEMBL1431", name: "METFORMIN", ...}]}}}
chembl_id = drug_info['data']['search']['hits'][0]['id']

# Get drug details (mechanism, indications)
drug_desc = tu.tools.OpenTargets_get_drug_id_description_by_name(
    drugName="metformin"
)

# Get DrugBank info
drugbank_info = tu.tools.drugbank_get_drug_basic_info_by_drug_name_or_id(
    query="metformin", case_sensitive=False, exact_match=True, limit=1
)
# Returns: {status: "success", data: {drug_name: ..., drugbank_id: ..., ...}}

# Get PubChem CID and SMILES
pubchem_cid = tu.tools.PubChem_get_CID_by_compound_name(
    name="metformin"
)
# Returns: {IdentifierList: {CID: [4091]}}
cid = pubchem_cid['IdentifierList']['CID'][0]

# Get SMILES
pubchem_props = tu.tools.PubChem_get_compound_properties_by_CID(
    cid=cid
)
# Returns: {CID: ..., MolecularWeight: ..., ConnectivitySMILES: ..., IUPACName: ...}

# === TARGET DISAMBIGUATION ===
# Get Ensembl ID from gene symbol
target_info = tu.tools.OpenTargets_get_target_id_description_by_name(
    targetName="PSEN1"
)
# Returns: {data: {search: {hits: [{id: "ENSG00000080815", name: "PSEN1", ...}]}}}
ensembl_id = target_info['data']['search']['hits'][0]['id']

# Get gene details from Ensembl
gene_details = tu.tools.ensembl_lookup_gene(
    gene_id=ensembl_id, species='homo_sapiens'
)
# Returns: {status: "success", data: {display_name: ..., biotype: ..., ...}}

# Get MyGene info for cross-references
mygene = tu.tools.MyGene_query_genes(query="PSEN1")

# === DISEASE DISAMBIGUATION ===
# Get disease ID and description
disease_info = tu.tools.OpenTargets_get_disease_id_description_by_name(
    diseaseName="Alzheimer disease"
)
# Returns: {data: {search: {hits: [{id: "MONDO_0004975", name: "Alzheimer disease", ...}]}}}
disease_id = disease_info['data']['search']['hits'][0]['id']

# Get disease description
disease_desc = tu.tools.OpenTargets_get_disease_description_by_efoId(
    efoId=disease_id
)

# Get cross-references
disease_ids = tu.tools.OpenTargets_get_disease_ids_by_efoId(efoId=disease_id)

Phase 1: Network Node Identification

Step 1.1: Identify compound nodes.

# Get drug targets and mechanism of action from OpenTargets
drug_moa = tu.tools.OpenTargets_get_drug_mechanisms_of_action_by_chemblId(
    chemblId=chembl_id
)
# Returns: {data: {drug: {mechanismsOfAction: {rows: [{mechanismOfAction: ..., actionType: ..., targetName: ..., targets: [{id, approvedSymbol}]}]}}}}

# Get associated targets from OpenTargets
drug_targets_ot = tu.tools.OpenTargets_get_associated_targets_by_drug_chemblId(
    chemblId=chembl_id, size=50
)
# Returns: {data: {drug: {linkedTargets: {count: N, rows: [{id, approvedSymbol}]}}}}

# Get targets from DrugBank
drug_targets_db = tu.tools.drugbank_get_targets_by_drug_name_or_drugbank_id(
    query="metformin", case_sensitive=False, exact_match=True, limit=1
)
# Returns: {status: "success", data: {drug_name: ..., targets: [{id, name, organism, actions}]}}

# Get drug-gene interactions from DGIdb
dgidb_interactions = tu.tools.DGIdb_get_drug_gene_interactions(
    genes=["PSEN1", "APP", "BACE1"]  # for disease-to-compound mode
)
# Returns: {data: {genes: {nodes: [{name, interactions: [{drug: {name, conceptId}, interactionTypes: [{type}]}]}]}}}

# Get chemical-gene interactions from CTD
ctd_genes = tu.tools.CTD_get_chemical_gene_interactions(
    input_terms="Metformin"
)
# Returns: {data: [{ChemicalName, GeneSymbol, InteractionActions, ...}]}

# Get STITCH chemical-protein interactions
stitch_id = tu.tools.STITCH_resolve_identifier(
    identifier="metformin", species=9606
)
# Then query interactions
stitch_interactions = tu.tools.STITCH_get_chemical_protein_interactions(
    identifiers=["CIDm000004091"], species=9606
)

# Get current indications
drug_indications = tu.tools.OpenTargets_get_drug_indications_by_chemblId(
    chemblId=chembl_id, size=50
)
# Returns: {data: {drug: {indications: {rows: [{disease: {id, name}, maxPhaseForIndication, references}]}}}}

# Check FDA approval status
fda_approval = tu.tools.OpenTargets_get_drug_approval_status_by_chemblId(
    chemblId=chembl_id
)

# Get associated diseases for drug (all trials/investigations)
drug_diseases = tu.tools.OpenTargets_get_associated_diseases_by_drug_chemblId(
    chemblId=chembl_id, size=50
)
# Returns: {data: {drug: {linkedDiseases: {count: N, rows: [{id, name, description}]}}}}

Step 1.2: Identify target nodes (disease-associated targets).

# Get disease-associated targets from OpenTargets
disease_targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(
    efoId=disease_id, limit=50
)
# Returns: {data: {disease: {associatedTargets: {count: N, rows: [{target: {id, approvedSymbol}, score}]}}}}

# Get disease-target evidence for top targets
for target in disease_targets['data']['disease']['associatedTargets']['rows'][:10]:
    evidence = tu.tools.OpenTargets_target_disease_evidence(
        efoId=disease_id,
        ensemblId=target['target']['id']
    )

# Get GWAS evidence for targets
gwas_studies = tu.tools.OpenTargets_search_gwas_studies_by_disease(
    diseaseIds=[disease_id], size=20
)
# Returns: {data: {studies: {count: N, rows: [...]}}}

# Get gene-disease associations from CTD
ctd_diseases = tu.tools.CTD_get_gene_diseases(
    input_terms="PSEN1"
)

# Get Pharos target info (druggability levels)
for gene in ["PSEN1", "APP", "BACE1"]:
    pharos = tu.tools.Pharos_get_target(target_name=gene)
    # Returns target development level (Tclin, Tchem, Tbio, Tdark)

Step 1.3: Identify disease nodes and related conditions.

# Get related/similar diseases
related_diseases = tu.tools.OpenTargets_get_similar_entities_by_disease_efoId(
    efoId=disease_id, size=10, threshold=0.5
)
# Returns: {data: {disease: {similarEntities: [{id, category, score, object: {id, name}}]}}}

# Get disease hierarchy (children/parents)
disease_children = tu.tools.OpenTargets_get_disease_descendants_children_by_efoId(
    efoId=disease_id
)
disease_parents = tu.tools.OpenTargets_get_disease_ancestors_parents_by_efoId(
    efoId=disease_id
)

# Get phenotypes associated with disease
disease_phenotypes = tu.tools.OpenTargets_get_associated_phenotypes_by_disease_efoId(
    efoId=disease_id, size=20
)

# Get therapeutic areas
disease_areas = tu.tools.OpenTargets_get_disease_therapeutic_areas_by_efoId(
    efoId=disease_id
)

Phase 2: Network Edge Construction

Step 2.1: Compound-target edges (bioactivity data).

# Get ChEMBL bioactivity data for drug targets
chembl_activities = tu.tools.ChEMBL_get_target_activities(
    target_chembl_id__exact="CHEMBL2111455",  # example target ChEMBL ID
    limit=50
)
# Returns activity data with pchembl_value, standard_type (IC50, Ki, etc.)

# Search ChEMBL mechanisms (all mechanisms for drug)
all_mechanisms = tu.tools.ChEMBL_search_mechanisms(
    query="metformin", limit=50
)

# Get DrugBank drug targets with action types
db_targets = tu.tools.drugbank_get_targets_by_drug_name_or_drugbank_id(
    query="metformin", case_sensitive=False, exact_match=True, limit=1
)
# Returns: targets with action type (inhibitor, substrate, etc.)

# Get pharmacology from DrugBank
db_pharmacology = tu.tools.drugbank_get_pharmacology_by_drug_name_or_drugbank_id(
    query="metformin", case_sensitive=False, exact_match=True, limit=1
)

# Get BindingDB ligands for key targets (if UniProt ID available)
# binding_data = tu.tools.BindingDB_get_ligands_by_uniprot(uniprot_accession="P49768")

Step 2.2: Target-disease edges (genetic and functional associations).

# Get OpenTargets target-disease evidence
for target in top_disease_targets[:10]:
    td_evidence = tu.tools.OpenTargets_target_disease_evidence(
        efoId=disease_id,
        ensemblId=target['target']['id']
    )
    # Returns: evidence across datasources (genetics, pathways, literature, etc.)

# Get GWAS associations for key genes
for gene_symbol in ["PSEN1", "APP", "APOE"]:
    gwas_assoc = tu.tools.GWAS_search_associations_by_gene(gene_name=gene_symbol)

# Get gene-disease links from CTD
ctd_gene_diseases = tu.tools.CTD_get_gene_diseases(
    input_terms="PSEN1"
)

# Get PharmGKB gene details (pharmacogenomics)
pharmgkb_gene = tu.tools.PharmGKB_get_gene_details(gene_symbol="PSEN1")

Step 2.3: Compound-disease edges (clinical evidence).

# Get clinical trial evidence
trials = tu.tools.search_clinical_trials(
    query_term="metformin",
    condition="Alzheimer",
    pageSize=20
)
# Returns: {studies: [{NCT ID, brief_title, brief_summary, ...}]}

# Also search with clinical_trials_search
trials2 = tu.tools.clinical_trials_search(
    query="metformin Alzheimer disease",
    limit=20
)

# Get CTD chemical-disease associations
ctd_chem_diseases = tu.tools.CTD_get_chemical_diseases(
    input_terms="Metformin"
)
# Returns: [{ChemicalName, DiseaseName, DirectEvidence: "therapeutic"|"marker/mechanism", ...}]

# Literature evidence (PubMed co-mentions)
pubmed_results = tu.tools.PubMed_search_articles(
    query="metformin Alzheimer disease",
    max_results=50
)
# Returns: list of {pmid, title, authors, journal, pub_date, ...}

# Europe PMC search for broader coverage
europepmc_results = tu.tools.EuropePMC_search_articles(
    query="metformin Alzheimer disease",
    limit=50
)

Step 2.4: Target-target edges (PPI network).

# Get STRING protein-protein interactions
string_ppi = tu.tools.STRING_get_interaction_partners(
    protein_ids=["PSEN1", "APP", "APOE", "BACE1", "MAPT"],
    species=9606,
    limit=20
)
# Returns: {status: "success", data: [{stringId_A, stringId_B, preferredName_A, preferredName_B, score, ...}]}

# Get full STRING network
string_network = tu.tools.STRING_get_network(
    protein_ids=["PSEN1", "APP", "APOE", "BACE1", "MAPT"],
    species=9606
)

# Get IntAct interactions
intact_results = tu.tools.intact_search_interactions(
    query="PSEN1", max=20
)

# Get OpenTargets target interactions
ot_interactions = tu.tools.OpenTargets_get_target_interactions_by_ensemblID(
    ensemblId="ENSG00000080815",  # PSEN1
    size=20
)
# Returns: {data: {target: {interactions: {count: N, rows: [{intA, targetA: {id, approvedSymbol}, intB, targetB: {id, approvedSymbol}, score, sourceDatabase}]}}}}

# HumanBase tissue-specific PPI
humanbase_ppi = tu.tools.humanbase_ppi_analysis(
    gene_list=["PSEN1", "APP", "APOE", "BACE1", "MAPT"],
    tissue="brain",
    max_node=50,
    interaction="sn",
    string_mode="physical"
)

Phase 3: Network Analysis

Step 3.1: Network topology analysis (computed from collected data).

Compute from Phase 2 data:

1. Node Degree:
   - Count connections per node from STRING + IntAct + OpenTargets interactions
   - Drug targets: connections from bioactivity data
   - Disease genes: connections from PPI data

2. Hub Identification:
   - Nodes with degree > mean + 2*SD are hubs
   - Hub genes in disease module = priority therapeutic targets

3. Betweenness Centrality:
   - Nodes on shortest paths between drug targets and disease genes
   - High betweenness = potential mediating/bridging targets

4. Network Modules:
   - Disease module: cluster of disease-associated genes in PPI
   - Drug module: cluster of drug target genes in PPI
   - Module overlap = direct network relevance

5. Shortest Paths:
   - Paths from each drug target to each disease gene via PPI
   - Shortest path length < 2 = direct interaction
   - Path length 2-3 = close proximity
   - Path length > 4 = distant, weaker association

Step 3.2: Network proximity calculation.

Network Proximity Z-score (computed from data):

1. Collect drug target set T_d from Phase 1
2. Collect disease gene set G_d from Phase 1
3. For each drug target t in T_d and disease gene g in G_d:
   - Find shortest path d(t,g) in PPI network from Phase 2
4. Compute closest proximity: d_c = mean of min distances
5. Compare against random expectation:
   - Sample N random gene sets of same size as T_d
   - Compute proximity for each random set
   - Z = (d_c - mean_random) / sd_random
6. Z < -2: strong proximity (35 points)
   Z < -1: moderate proximity (20 points)
   Z < -0.5: weak proximity (10 points)
   Z >= -0.5: no proximity (0 points)

Practical computation from STRING/OpenTargets PPI data:
- Count direct interactions between drug targets and disease genes
- Count shared PPI partners (second-degree connections)
- Calculate overlap coefficient = shared_partners / min(degree_t, degree_d)
- Use number of shared pathways as additional proximity metric

Step 3.3: Functional enrichment analysis.

# STRING functional enrichment for disease genes
disease_gene_symbols = [t['target']['approvedSymbol']
                        for t in disease_targets['data']['disease']['associatedTargets']['rows'][:20]]

string_enrichment = tu.tools.STRING_functional_enrichment(
    protein_ids=disease_gene_symbols,
    species=9606
)

# STRING PPI enrichment (statistical test for network connectivity)
string_ppi_enrich = tu.tools.STRING_ppi_enrichment(
    protein_ids=disease_gene_symbols,
    species=9606
)

# Enrichr pathway analysis
enrichr_results = tu.tools.enrichr_gene_enrichment_analysis(
    gene_list=disease_gene_symbols,
    libs=["KEGG_2021_Human", "Reactome_2022", "GO_Biological_Process_2023"]
)
# Returns enrichment results per library

# Reactome pathway enrichment
reactome_enrichment = tu.tools.ReactomeAnalysis_pathway_enrichment(
    identifiers=" ".join(disease_gene_symbols)
)
# Returns: {data: {pathways: [{pathway_id, name, p_value, fdr, entities_found, ...}]}}

Phase 4: Drug Repurposing Predictions

Step 4.1: Identify and rank repurposing candidates.

# For disease-to-compound mode: Find drugs targeting disease genes
repurposing_candidates = []

for target in disease_targets['data']['disease']['associatedTargets']['rows'][:20]:
    gene_symbol = target['target']['approvedSymbol']
    ensembl_id = target['target']['id']
    target_score = target['score']

    # Get drugs from OpenTargets
    target_drugs = tu.tools.OpenTargets_get_associated_drugs_by_target_ensemblID(
        ensemblId=ensembl_id, size=20
    )

    # Get drugs from DGIdb
    dgidb_drugs = tu.tools.DGIdb_get_drug_gene_interactions(genes=[gene_symbol])

    # Get drugs from DrugBank
    drugbank_drugs = tu.tools.drugbank_get_drug_name_and_description_by_target_name(
        query=gene_symbol, case_sensitive=False, exact_match=False, limit=20
    )

    # Collect and deduplicate candidates
    # Score each by: target_disease_score * drug_target_affinity * approval_status

# For compound-to-disease mode: Already have drug targets, find their diseases
for target in drug_targets:
    # Get diseases associated with each drug target
    target_diseases = tu.tools.OpenTargets_get_diseases_phenotypes_by_target_ensembl(
        ensemblId=target['id'], size=20
    )

Step 4.2: Mechanism prediction for repurposing candidates.

# For each repurposing candidate, trace the network path:
# Drug -> Direct targets -> PPI neighbors -> Disease genes

# Get drug mechanism
drug_moa = tu.tools.OpenTargets_get_drug_mechanisms_of_action_by_chemblId(
    chemblId=candidate_chembl_id
)

# Get pathways shared between drug targets and disease genes
drug_target_genes = [t['approvedSymbol'] for t in drug_moa_targets]
combined_genes = list(set(drug_target_genes + disease_gene_symbols[:10]))

# Pathway enrichment for combined gene set
combined_pathways = tu.tools.ReactomeAnalysis_pathway_enrichment(
    identifiers=" ".join(combined_genes)
)

# Check for specific pathway overlap
drug_pathways = tu.tools.drugbank_get_pathways_reactions_by_drug_or_id(
    query=drug_name, case_sensitive=False, exact_match=True, limit=1
)

Phase 5: Polypharmacology Analysis

Step 5.1: Multi-target profiling.

# Get ALL targets of compound (on-targets + off-targets)
# From OpenTargets
all_drug_targets = tu.tools.OpenTargets_get_associated_targets_by_drug_chemblId(
    chemblId=chembl_id, size=100
)

# From DrugBank (includes enzymes, carriers, transporters)
db_full_targets = tu.tools.drugbank_get_targets_by_drug_name_or_drugbank_id(
    query=drug_name, case_sensitive=False, exact_match=True, limit=1
)

# From CTD (chemical-gene interactions, includes indirect)
ctd_interactions = tu.tools.CTD_get_chemical_gene_interactions(
    input_terms=drug_name
)

# Classify targets: primary (mechanism) vs secondary (off-target)
# Count disease module coverage
drug_target_set = set(drug_target_genes)
disease_gene_set = set(disease_gene_symbols[:50])
overlap = drug_target_set & disease_gene_set
coverage = len(overlap) / len(disease_gene_set) if disease_gene_set else 0

# Target family analysis
for gene in drug_target_genes[:10]:
    target_class = tu.tools.OpenTargets_get_target_classes_by_ensemblID(
        ensemblId=gene_ensembl_id
    )

Step 5.2: Selectivity analysis.

# Get target druggability and development levels
for gene in drug_target_genes[:10]:
    # DGIdb druggability
    druggability = tu.tools.DGIdb_get_gene_druggability(genes=[gene])

    # Pharos target development level
    pharos_info = tu.tools.Pharos_get_target(target_name=gene)
    # Tclin = known drug targets, Tchem = has chemical tools, Tbio = has biology, Tdark = dark target

    # OpenTargets tractability
    tractability = tu.tools.OpenTargets_get_target_tractability_by_ensemblID(
        ensemblId=gene_ensembl_id
    )

Phase 6: Safety and Toxicity Context

Step 6.1: Adverse event profiling.

# Get FAERS adverse event data
faers_ae = tu.tools.FAERS_search_reports_by_drug_and_reaction(
    drug_name=drug_name, limit=100
)

# Get serious events
faers_serious = tu.tools.FAERS_filter_serious_events(
    operation="filter_serious_events",
    drug_name=drug_name,
    seriousness_type="all"
)

# Get death reports
faers_death = tu.tools.FAERS_count_death_related_by_drug(
    medicinalproduct=drug_name
)
# Returns: [{term: "alive", count: N}, {term: "death", count: N}]

# Calculate disproportionality for key AEs
faers_signal = tu.tools.FAERS_calculate_disproportionality(
    operation="calculate_disproportionality",
    drug_name=drug_name,
    adverse_event="lactic acidosis"  # example
)
# Returns: {metrics: {PRR: {value, ci_95_lower, ci_95_upper}, ROR: {...}}, signal_detection: {signal_detected, signal_strength}}

# Get FDA warnings
fda_warnings = tu.tools.FDA_get_warnings_and_cautions_by_drug_name(
    drug_name=drug_name
)

# Get black box warning status
bbox_warning = tu.tools.OpenTargets_get_drug_blackbox_status_by_chembl_ID(
    chemblId=chembl_id
)

# Get drug adverse events from OpenTargets
ot_ae = tu.tools.OpenTargets_get_drug_adverse_events_by_chemblId(
    chemblId=chembl_id
)
# Returns: {data: {drug: {adverseEvents: {count, rows: [{name, meddraCode, count, logLR}]}}}}

# Get drug warnings from OpenTargets
drug_warnings = tu.tools.OpenTargets_get_drug_warnings_by_chemblId(
    chemblId=chembl_id
)

Step 6.2: Target safety profiling.

# For each drug target, assess safety
for target_ensembl_id in drug_target_ensembl_ids[:10]:
    # OpenTargets target safety profile
    safety = tu.tools.OpenTargets_get_target_safety_profile_by_ensemblID(
        ensemblId=target_ensembl_id
    )

    # Gene constraint (is target essential?)
    constraints = tu.tools.gnomad_get_gene_constraints(gene_symbol=gene_symbol)
    # High pLI (>0.9) = loss-of-function intolerant = essential gene = safety concern

    # Expression pattern (broadly expressed = more off-target risk)
    expression = tu.tools.HPA_get_rna_expression_by_source(
        gene_name=gene_symbol,
        source_type="tissue",
        source_name="brain"
    )

Phase 7: Validation Evidence

Step 7.1: Clinical precedent.

# Search clinical trials for drug + disease combination
trials = tu.tools.search_clinical_trials(
    query_term=drug_name,
    condition=disease_name,
    pageSize=20
)

# Get trial details for each match
for trial in trials.get('studies', [])[:5]:
    nct_id = trial['NCT ID']
    trial_details = tu.tools.clinical_trials_get_details(nct_id=nct_id)
    trial_outcomes = tu.tools.extract_clinical_trial_outcomes(nct_id=nct_id)
    trial_ae = tu.tools.extract_clinical_trial_adverse_events(nct_id=nct_id)

# Check approved indications
approved = tu.tools.OpenTargets_get_approved_indications_by_drug_chemblId(
    chemblId=chembl_id
)
# Returns: {data: {drug: {approvedIndications: ["EFO_XXXXX", ...]}}}

Step 7.2: Literature evidence.

# PubMed search for drug-disease co-mentions
pubmed_evidence = tu.tools.PubMed_search_articles(
    query=f"{drug_name} {disease_name} repurposing OR repositioning OR network pharmacology",
    max_results=50
)
# Returns: list of {pmid, title, authors, journal, pub_date, ...}

# Europe PMC with broader scope
europepmc_evidence = tu.tools.EuropePMC_search_articles(
    query=f"{drug_name} {disease_name}",
    limit=50
)

# OpenTargets publications for drug
ot_drug_pubs = tu.tools.OpenTargets_get_publications_by_drug_chemblId(
    chemblId=chembl_id, size=20
)

# OpenTargets publications for disease
ot_disease_pubs = tu.tools.OpenTargets_get_publications_by_disease_efoId(
    efoId=disease_id, size=20
)

# Get guideline searches
guidelines = tu.tools.PubMed_Guidelines_Search(query=f"{drug_name} {disease_name}")

Step 7.3: Experimental evidence.

# ChEMBL bioactivity data
chembl_bioactivity = tu.tools.ChEMBL_search_drugs(
    query=drug_name, limit=10
)

# Check ADMET predictions (for novel formulation contexts)
if smiles:
    admet = tu.tools.ADMETAI_predict_toxicity(smiles=[smiles])
    bbb = tu.tools.ADMETAI_predict_BBB_penetrance(smiles=[smiles])
    bioavail = tu.tools.ADMETAI_predict_bioavailability(smiles=[smiles])

# PharmGKB pharmacogenomics data
pharmgkb_drug = tu.tools.PharmGKB_get_drug_details(drug_name=drug_name)
pharmgkb_clin = tu.tools.PharmGKB_get_clinical_annotations(query=drug_name)

Phase 8: Report Generation

Step 8.1: Compute Network Pharmacology Score.

Score Calculation:

1. Network Proximity Score (0-35):
   - Count direct drug target <-> disease gene interactions in PPI
   - Count shared PPI partners
   - Count shared pathways
   - Map to Z-score equivalent based on overlap significance

2. Clinical Evidence Score (0-25):
   - Search clinical trials for drug-disease pair
   - Check approved indications for related diseases
   - Check max clinical trial phase

3. Target-Disease Association Score (0-20):
   - Average OpenTargets association score for drug targets in disease
   - Weight by evidence type (genetic > functional > computational)

4. Safety Score (0-10):
   - FDA approval status (+5)
   - Black box warning (-3)
   - Death reports proportion
   - Off-target count penalty

5. Mechanism Plausibility Score (0-10):
   - Known mechanism for related indication (+5)
   - Pathway evidence (+3)
   - Network path length to disease module (+2)

Total: sum of components (0-100)

Step 8.2: Generate comprehensive report.

# Network Pharmacology Analysis: [Entity]

## Executive Summary
[2-3 sentence summary of key findings]

## Network Pharmacology Score: [X]/100 - [Tier]
| Component | Score | Max | Evidence |
|-----------|-------|-----|----------|
| Network Proximity | X | 35 | [summary] |
| Clinical Evidence | X | 25 | [summary] |
| Target-Disease Association | X | 20 | [summary] |
| Safety Profile | X | 10 | [summary] |
| Mechanism Plausibility | X | 10 | [summary] |
| **TOTAL** | **X** | **100** | |

## 1. Entity Profile
### Compound: [Name]
- ChEMBL ID: [ID]
- DrugBank ID: [ID]
- SMILES: [SMILES]
- Mechanism: [MOA]
- Approval status: [status]
- Current indications: [list]

### Disease: [Name]
- MONDO/EFO ID: [ID]
- Description: [brief]
- Top associated targets: [list with scores]
- Related diseases: [list]

## 2. Network Topology Summary
- **Total nodes**: X (Y compounds, Z targets, W diseases)
- **Total edges**: X (Y C-T, Z T-D, W C-D, V T-T)
- **Network density**: X
- **Hub nodes**: [list of top hub genes]
- **Modules detected**: X

### Drug Target Module
[List drug targets with degree and betweenness]

### Disease Gene Module
[List disease genes with degree and betweenness]

### Module Overlap
[Shared genes, shared pathways, overlap coefficient]

## 3. Network Proximity
- **Proximity measure**: [metric used]
- **Z-score**: [value]
- **Direct interactions**: X drug target-disease gene pairs
- **Shared PPI partners**: X genes
- **Shared pathways**: X pathways
- **Interpretation**: [strong/moderate/weak proximity]

## 4. Top Repurposing Candidates (Ranked)

### Candidate 1: [Drug Name] - Score: X/100
**ChEMBL ID**: [ID] | **Status**: [Approved/Clinical/Preclinical]
**Current indications**: [list]
**Network path**: Drug -> [target1, target2] -> [PPI] -> [disease gene1, gene2]
**Mechanism prediction**: [how drug could work for disease]
**Clinical evidence**: [trials, literature]
**Safety**: [key concerns]
**Evidence grade**: [T1-T4]

[Repeat for top 10 candidates]

## 5. Polypharmacology Profile
### Target Coverage
- Total drug targets: X
- Disease module targets hit: Y (Z%)
- Primary targets: [list with actions]
- Off-targets: [list with potential effects]

### Multi-Target Effects
[Analysis of synergistic vs antagonistic target modulation]

### Disease Module Coverage
[How well drug targets cover the disease network]

## 6. Pathway Analysis
### Drug-Affected Pathways
[Ranked list of pathways affected by drug]

### Disease-Associated Pathways
[Ranked list of pathways associated with disease]

### Overlapping Pathways (Mechanism)
[Pathways shared between drug and disease - these explain the mechanism]

## 7. Safety Considerations
### Adverse Events
[Top AEs with PRR/ROR where available]

### Target Safety Flags
[Targets with known safety liabilities]

### Off-Target Risks
[Off-targets in critical tissues]

### Drug-Drug Interaction Context
[Key DDI considerations]

## 8. Clinical Precedent
### Clinical Trials
[List of relevant trials with NCT IDs and status]

### Literature Evidence
[Key publications supporting or refuting repurposing hypothesis]
- N papers found for [drug] + [disease]
- Key findings: [summary]

### Pharmacogenomics
[Relevant PGx data]

## 9. Evidence Summary Table
| Finding | Source | Evidence Grade | Confidence |
|---------|--------|---------------|------------|
| [finding1] | [tool/database] | [T1-T4] | [High/Medium/Low] |
| ... | ... | ... | ... |

## 10. Recommendations
### Immediate Actions
1. [Action 1 - e.g., review clinical trial NCT00620191]
2. [Action 2 - e.g., validate mechanism in cell model]

### Further Investigation
1. [Investigation 1]
2. [Investigation 2]

### Risk Mitigation
1. [Risk 1 and mitigation strategy]

## Completeness Checklist
| Phase | Status | Tools Used | Key Findings |
|-------|--------|------------|--------------|
| Entity Disambiguation | Done/Partial/Failed | [tools] | [summary] |
| Compound Node ID | Done/Partial/Failed | [tools] | [summary] |
| Target Node ID | Done/Partial/Failed | [tools] | [summary] |
| Disease Node ID | Done/Partial/Failed | [tools] | [summary] |
| C-T Edges | Done/Partial/Failed | [tools] | [summary] |
| T-D Edges | Done/Partial/Failed | [tools] | [summary] |
| C-D Edges | Done/Partial/Failed | [tools] | [summary] |
| T-T Edges (PPI) | Done/Partial/Failed | [tools] | [summary] |
| Network Topology | Done/Partial/Failed | [computed] | [summary] |
| Network Proximity | Done/Partial/Failed | [computed] | [summary] |
| Pathway Enrichment | Done/Partial/Failed | [tools] | [summary] |
| Repurposing Candidates | Done/Partial/Failed | [tools] | [summary] |
| Mechanism Prediction | Done/Partial/Failed | [analysis] | [summary] |
| Polypharmacology | Done/Partial/Failed | [tools] | [summary] |
| Safety/Toxicity | Done/Partial/Failed | [tools] | [summary] |
| Clinical Precedent | Done/Partial/Failed | [tools] | [summary] |
| Literature Evidence | Done/Partial/Failed | [tools] | [summary] |
| Report Generation | Done/Partial/Failed | - | [summary] |

Tool Parameter Reference (Verified)

Compound Identification

ToolKey ParametersResponse Structure
OpenTargets_get_drug_chembId_by_generic_namedrugName: str{data: {search: {hits: [{id, name, description}]}}}
OpenTargets_get_drug_id_description_by_namedrugName: str{data: {search: {hits: [{id, name, description}]}}}
drugbank_get_drug_basic_info_by_drug_name_or_idquery: str, case_sensitive: bool, exact_match: bool, limit: int (ALL required){status, data: {drug_name, drugbank_id,...}}
PubChem_get_CID_by_compound_namename: str{IdentifierList: {CID: [int]}}
PubChem_get_compound_properties_by_CIDcid: int{CID, MolecularWeight, ConnectivitySMILES, IUPACName}
ChEMBL_search_drugsquery: str, limit: int{status, data: {drugs: [...]}}

Target Identification

ToolKey ParametersResponse Structure
OpenTargets_get_target_id_description_by_nametargetName: str{data: {search: {hits: [{id, name, description}]}}}
ensembl_lookup_genegene_id: str, species: str (REQUIRED, e.g., "homo_sapiens"){status, data: {display_name, biotype,...}}
MyGene_query_genesquery: strGene info with cross-references
Pharos_get_targettarget_name: strTarget with development level

Disease Identification

ToolKey ParametersResponse Structure
OpenTargets_get_disease_id_description_by_namediseaseName: str{data: {search: {hits: [{id, name, description}]}}}
OpenTargets_get_disease_description_by_efoIdefoId: str{data: {disease: {id, name, description}}}
OpenTargets_get_disease_ids_by_efoIdefoId: strDisease cross-references

Network Edges

ToolKey ParametersResponse Structure
STRING_get_interaction_partnersprotein_ids: list[str], species: int (9606), limit: int{status, data: [{stringId_A, stringId_B, preferredName_A, preferredName_B, score}]}
STRING_get_networkprotein_ids: list[str], species: intNetwork data
STRING_functional_enrichmentprotein_ids: list[str], species: intEnrichment results
STRING_ppi_enrichmentprotein_ids: list[str], species: intPPI enrichment statistics
OpenTargets_get_target_interactions_by_ensemblIDensemblId: str, size: int{data: {target: {interactions: {count, rows: [{intA, targetA, intB, targetB, score}]}}}}
intact_search_interactionsquery: str, max: intInteraction data
humanbase_ppi_analysisgene_list: list, tissue: str, max_node: int, interaction: str, string_mode: str (ALL required)Tissue-specific PPI

Drug-Target Edges

ToolKey ParametersResponse Structure
OpenTargets_get_drug_mechanisms_of_action_by_chemblIdchemblId: str{data: {drug: {mechanismsOfAction: {rows: [{mechanismOfAction, actionType, targets}]}}}}
OpenTargets_get_associated_targets_by_drug_chemblIdchemblId: str, size: int{data: {drug: {linkedTargets: {count, rows}}}}
drugbank_get_targets_by_drug_name_or_drugbank_idquery, case_sensitive, exact_match, limit (ALL required){status, data: {targets: [{id, name, organism, actions}]}}
DGIdb_get_drug_gene_interactionsgenes: list[str]{data: {genes: {nodes: [{name, interactions}]}}}
CTD_get_chemical_gene_interactionsinput_terms: str{data: [{ChemicalName, GeneSymbol, InteractionActions}]}
ChEMBL_get_target_activitiestarget_chembl_id__exact: strActivity data with pchembl_value

Target-Disease Edges

ToolKey ParametersResponse Structure
OpenTargets_get_associated_targets_by_disease_efoIdefoId: str, limit: int{data: {disease: {associatedTargets: {count, rows: [{target: {id, approvedSymbol}, score}]}}}}
OpenTargets_target_disease_evidenceefoId: str, ensemblId: str (BOTH required)Evidence data across datasources
CTD_get_gene_diseasesinput_terms: str{data: [{GeneName, DiseaseName, DirectEvidence}]}
GWAS_search_associations_by_genegene_name: strGWAS association data

Drug-Disease Edges

ToolKey ParametersResponse Structure
OpenTargets_get_drug_indications_by_chemblIdchemblId: str, size: int{data: {drug: {indications: {rows: [{disease, maxPhaseForIndication}]}}}}
OpenTargets_get_associated_diseases_by_drug_chemblIdchemblId: str, size: int{data: {drug: {linkedDiseases: {count, rows}}}}
CTD_get_chemical_diseasesinput_terms: str{data: [{ChemicalName, DiseaseName, DirectEvidence}]}
search_clinical_trialsquery_term: str (REQUIRED), condition: str, pageSize: int{studies: [{NCT ID, brief_title,...}]}

Pathway Analysis

ToolKey ParametersResponse Structure
ReactomeAnalysis_pathway_enrichmentidentifiers: str (space-separated, NOT array){data: {pathways: [{pathway_id, name, p_value, fdr, entities_found}]}}
enrichr_gene_enrichment_analysisgene_list: list[str], libs: list[str] (REQUIRED)Enrichment per library
drugbank_get_pathways_reactions_by_drug_or_idquery, case_sensitive, exact_match, limitPathway data

Safety Tools

ToolKey ParametersResponse Structure
FAERS_calculate_disproportionalityoperation: str, drug_name: str, adverse_event: str{metrics: {PRR, ROR, IC}, signal_detection}
FAERS_filter_serious_eventsoperation: str, drug_name: str, seriousness_type: strSerious event data
FAERS_count_death_related_by_drugmedicinalproduct: str[{term, count}]
OpenTargets_get_drug_adverse_events_by_chemblIdchemblId: str{data: {drug: {adverseEvents: {count, rows}}}}
OpenTargets_get_drug_warnings_by_chemblIdchemblId: strDrug warning data
OpenTargets_get_target_safety_profile_by_ensemblIDensemblId: strTarget safety data
gnomad_get_gene_constraintsgene_symbol: strGene constraint (pLI, LOEUF)
FDA_get_warnings_and_cautions_by_drug_namedrug_name: strFDA warning text

Literature Tools

ToolKey ParametersResponse Structure
PubMed_search_articlesquery: str, max_results: intlist of {pmid, title, authors, journal, pub_date}
EuropePMC_search_articlesquery: str, limit: intArticle list
OpenTargets_get_publications_by_drug_chemblIdchemblId: str, size: intPublication data

Response Format Notes

DrugBank tools: ALL require query, case_sensitive, exact_match, limit (4 params, ALL required).

FAERS analytics tools (disproportionality, compare, filter, stratify, rollup, trends): ALL require operation parameter.

FAERS count tools (count_death, count_reactions, etc.): Use medicinalproduct NOT drug_name.

OpenTargets tools: Return nested {data: {entity: {field:...}}} structure.

PubMed_search_articles: Returns plain list of dicts, NOT {articles: [...]}.

PubChem CID lookup: Returns {IdentifierList: {CID: [...]}} (NO data wrapper).

ReactomeAnalysis_pathway_enrichment: Takes space-separated identifiers string, NOT array.

ensembl_lookup_gene: REQUIRES species='homo_sapiens' parameter.

STRING tools: Return {status: "success", data: [...]}.

CTD tools: Return {data: [...]} with potentially large result sets.


Fallback Strategies

PhasePrimary ToolFallback 1Fallback 2
Compound IDOpenTargets drug lookupChEMBL searchPubChem CID lookup
Target IDOpenTargets target lookupensembl_lookup_geneMyGene_query_genes
Disease IDOpenTargets disease lookupols_search_efo_termsCTD_get_chemical_diseases
Drug targetsOpenTargets drug mechanismsDrugBank targetsDGIdb interactions
Disease targetsOpenTargets disease targetsCTD gene-diseasesGWAS associations
PPI networkSTRING interactionsOpenTargets interactionsIntAct interactions
PathwaysReactomeAnalysis enrichmentenrichr enrichmentSTRING functional enrichment
Clinical trialssearch_clinical_trialsclinical_trials_searchPubMed clinical
SafetyFAERS + FDAOpenTargets AEsDrugBank safety
LiteraturePubMed searchEuropePMC searchOpenTargets publications

Common Use Patterns

Pattern 1: Drug Repurposing via Network Proximity

Input: compound (metformin) + disease (Alzheimer disease)
Mode: compound-to-disease

Flow:
1. Resolve metformin -> CHEMBL1431, DB00331, CID:4091
2. Get metformin targets (OpenTargets, DrugBank, DGIdb)
3. Get Alzheimer disease genes (OpenTargets, GWAS)
4. Build PPI network (STRING, OpenTargets interactions)
5. Calculate proximity between drug targets and disease genes
6. Score and rank by Network Pharmacology Score
7. Predict mechanism via shared pathways
8. Validate with clinical trials and literature

Pattern 2: Disease-Driven Drug Discovery

Input: disease (lupus)
Mode: disease-to-compound

Flow:
1. Resolve lupus -> MONDO/EFO ID
2. Get disease-associated targets (top 50)
3. For each target, find approved drugs (OpenTargets, DGIdb, DrugBank)
4. Build C-T-D network from all drug-target-disease edges
5. Rank drugs by: number of disease targets hit, network proximity, safety
6. Identify polypharmacology advantages (drugs hitting multiple disease targets)

Pattern 3: Target-Centric Network

Input: target (EGFR)
Mode: target-centric

Flow:
1. Resolve EGFR -> ENSG00000146648
2. Get all compounds targeting EGFR (with bioactivity)
3. Get all diseases associated with EGFR
4. Build PPI network around EGFR
5. Identify which compounds could bridge to which diseases
6. Rank compound-disease pairs by network metrics

Pattern 4: Polypharmacology Profiling

Input: compound (aspirin)
Mode: bidirectional

Flow:
1. Resolve aspirin -> CHEMBL25
2. Get ALL targets (not just primary)
3. Map targets to disease modules
4. Identify multi-target coverage across diseases
5. Analyze synergistic vs antagonistic effects
6. Compare selectivity across target families

Pattern 5: Mechanism Elucidation

Input: compound (rapamycin) + disease (aging/longevity)
Mode: compound-to-disease

Flow:
1. Resolve rapamycin -> CHEMBL413 (sirolimus)
2. Get mechanism: mTOR inhibitor
3. Map mTOR pathway to aging-related genes
4. Trace network paths: rapamycin -> mTOR -> autophagy -> aging genes
5. Assess pathway overlap and functional enrichment
6. Provide mechanistic explanation

Edge Cases

Promiscuous Compounds (many targets)

  • Limit initial target retrieval to top 50 by confidence
  • Classify into primary (mechanism) vs secondary (off-target)
  • Focus network analysis on primary targets first
  • Note polypharmacology implications

Orphan Diseases (limited data)

  • Expand to parent disease categories in ontology
  • Use related diseases from OpenTargets similar entities
  • Leverage pathway-level analysis over gene-level
  • Note data limitations in report

Novel Targets (no known drugs)

  • Focus on target biology and disease association
  • Use DGIdb druggability assessment
  • Search for chemical probes (OpenTargets chemical probes)
  • Suggest target-based screening approaches

Large Networks (>100 nodes)

  • Prioritize top-scored edges
  • Use network modules rather than full network
  • Focus on shortest paths between entities
  • Summarize statistics rather than listing all nodes

Disconnected Networks

  • Report disconnection explicitly
  • Analyze drug module and disease module separately
  • Look for pathway-level connections as bridge
  • Note that disconnection suggests low repurposing potential

Troubleshooting

"Disease not found":

  • Try disease synonyms (e.g., "Alzheimer's disease" vs "Alzheimer disease")
  • Use EFO/MONDO ID directly if known
  • Search with OpenTargets_multi_entity_search_by_query_string(queryString=...) for broader matching
  • Try parent disease category

"No drugs found for target":

  • Target may be Tdark (no chemical tools) - check with Pharos
  • Expand to target family or pathway
  • Search DGIdb which aggregates multiple sources
  • Check chemical probes as starting points

"No PPI data":

  • Try different protein identifiers (gene symbol, UniProt, Ensembl protein)
  • Use multiple PPI databases (STRING + IntAct + OpenTargets)
  • Lower confidence threshold in STRING
  • Use pathway co-membership as proxy for interaction

"Network proximity not significant":

  • Drug targets may be functionally distant from disease module
  • Try expanding disease gene set (increase limit)
  • Consider indirect mechanisms via shared pathways
  • Report honestly - not all drug-disease pairs have network support

"DrugBank parameter errors":

  • ALL DrugBank tools require 4 params: query, case_sensitive, exact_match, limit
  • Use case_sensitive=False, exact_match=True for exact drug name matching
  • Use exact_match=False for broader searches

"FAERS operation errors":

  • Analytics tools (disproportionality, compare, filter, stratify) need operation param
  • Count tools use medicinalproduct NOT drug_name
  • Check FAERS tool name carefully to determine which pattern

Resources

For focused drug repurposing (without network analysis): tooluniverse-drug-repurposing For target validation: tooluniverse-drug-target-validation For adverse event detection: tooluniverse-adverse-event-detection For systems biology: tooluniverse-systems-biology For protein interactions: tooluniverse-protein-interactions

平台分布

Codex

36.71%
按下载量换算42

Claude

28.85%
按下载量换算33

Cursor

18.82%
按下载量换算22

Gemini CLI

8.74%
按下载量换算10

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

可疑

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills