Compound-target-disease network construction and analysis for drug repurposing, polypharmacology discovery, and multi-target drug design. Uses STRING, BioGRID, ChEMBL, DGIdb, OMIM, OpenTargets. Use for off-target effect prediction, network-based drug repurposing, and identifying molecules with desired multi-target profile.
65
78%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Low
Low-risk findings worth noting
Fix and improve this skill with Tessl
tessl review fix ./plugin/skills/tooluniverse-network-pharmacology/SKILL.mdWhen analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.
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.
LOOK UP DON'T GUESS - Retrieve actual target lists, network data, and clinical evidence from tools. Do not infer network relationships from drug class alone.
IMPORTANT: Always use English terms in tool calls, even if the user writes in another language. Respond in the user's language.
Before building any network, reason about what kind of multi-target effect you are dealing with:
A drug hitting multiple targets is either polypharmacology (desired multi-target) or promiscuity (undesired off-target). The distinction depends on whether the additional targets contribute to efficacy or cause toxicity.
Use this framework to guide the analysis:
Document this reasoning explicitly in the report before listing candidates.
Apply when users:
NOT for (use other skills instead):
tooluniverse-drug-repurposingtooluniverse-drug-target-validationtooluniverse-adverse-event-detectionFive components with explicit reasoning at each step:
Priority tiers: 80-100 = high repurposing potential (proceed to experimental validation); 60-79 = good potential (needs mechanistic validation); 40-59 = moderate potential (high-risk/high-reward); 0-39 = low potential.
Evidence grades: T1 = human clinical proof; T2 = functional experimental evidence (IC50 < 1 uM, CRISPR screen); T3 = association/computational (GWAS hit, network proximity); T4 = prediction or text-mining only.
Full scoring details: SCORING_REFERENCE.md
OpenTargets_get_drug_chembId_by_generic_name, drugbank_get_drug_basic_info_by_drug_name_or_id, PubChem_get_CID_by_compound_name, OpenTargets_get_target_id_description_by_name, OpenTargets_get_disease_id_description_by_nameOpenTargets_get_drug_mechanisms_of_action_by_chemblId, OpenTargets_get_associated_targets_by_drug_chemblId, drugbank_get_targets_by_drug_name_or_drugbank_id, DGIdb_get_drug_gene_interactions, CTD_get_chemical_gene_interactions, OpenTargets_get_associated_targets_by_disease_efoId, Pharos_get_targetChEMBL_get_target_activities, OpenTargets_target_disease_evidence, GWAS_search_associations_by_gene, search_clinical_trials, CTD_get_chemical_diseases, STRING_get_interaction_partners, STRING_get_network, intact_search_interactions, humanbase_ppi_analysisNetwork_proximity tool — Guney/Barabasi (2016) + Menche (2015) set-distance with a degree-matched Z-score, computed deterministically from a graph you supply (inline edges or an edgelist_path) plus two node sets (set_a/set_b, or the aliases targets/disease_genes). measure = closest (default), shortest, or separation (s_AB < 0 ⇒ overlapping modules). Returns value, z_score, p_value.STRING_get_network returns rows with preferredName_A/preferredName_B (gene symbols) — map each to a [A, B] pair and pass as edges; the IDs line up with symbol-based gene sets natively (no conversion).STRING_get_network with a low limit) makes the degree-matched random sets nearly identical to the real ones, giving an uninformative z>0, p≈1. For a meaningful Z, pull the broad interactome (high limit, or a full network via NDEx_get_network), not just the immediate neighborhood. (The skill's scripts/network_proximity.py, which downloads the full STRING network, is the CLI equivalent.)Network_proximity, STRING_functional_enrichment, STRING_ppi_enrichment, enrichr_gene_enrichment_analysis, ReactomeAnalysis_pathway_enrichmentOpenTargets_get_associated_drugs_by_target_ensemblID, drugbank_get_drug_name_and_description_by_target_name, drugbank_get_pathways_reactions_by_drug_or_idOpenTargets_get_target_classes_by_ensemblID, DGIdb_get_gene_druggability, OpenTargets_get_target_tractability_by_ensemblIDFAERS_calculate_disproportionality, FAERS_filter_serious_events, FAERS_count_death_related_by_drug, FDA_get_warnings_and_cautions_by_drug_name, OpenTargets_get_drug_adverse_events_by_chemblId, OpenTargets_get_target_safety_profile_by_ensemblID, gnomad_get_gene_constraintssearch_clinical_trials, get_clinical_trial_descriptions, PubMed_search_articles, EuropePMC_search_articles, ADMETAI_predict_toxicity, PharmGKB_get_drug_detailsFull step-by-step code examples: ANALYSIS_PROCEDURES.md Report template: REPORT_TEMPLATE.md
query, case_sensitive, exact_match, limit (4 params, ALL required)operation parametermedicinalproduct NOT drug_name{data: {entity: {field: ...}}} structure{articles: [...]}identifiers string, NOT arrayspecies='homo_sapiens' parameterFull tool parameter reference and response structures: TOOL_REFERENCE.md
When a tool fails, try the next in chain before reporting "no data":
7a0ceb2
Also appears in
since Jul 28, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.