plugin/skills/tooluniverse-network-pharmacology/SKILL.md
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.
npx skillsauth add mims-harvard/tooluniverse tooluniverse-network-pharmacologyInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
When 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":
tools
Generate the success criteria for a task or question, then review work against them. Given a task, goal, or open-ended question, decompose it into scenarios, evaluation perspectives, and fine-grained weighted YES/NO criteria using the Recursive Expansion Tree (RET) method; if work is supplied, score it criterion-by-criterion and surface what is missing or could be better. Use when asked to self-review or check your own work, judge whether a task is done well or completely, build a definition-of-done or completeness checklist, create an evaluation rubric or grading criteria, score or grade answers to a question, set up an LLM-as-judge rubric, or when the user mentions self-review, completeness check, success criteria, evaluation criteria, scoring rubric, Qworld, or the RET algorithm.
tools
Find the real protein target(s) of a peptide from its sequence — peptide target deorphanization / off-target identification, for ANY target class (GPCR, ion channel, protease, cytokine/growth-factor receptor, enzyme, integrin), not only GPCRs. Use when a peptide has a phenotype but does not bind its hypothesized target, when a peptide binds a target in one species or assay but not another, or to screen candidate targets for an orphan peptide. A target-class router steers a multi-route keyless pipeline (PROSITE/ELM motif, BLAST homology, HGNC/InterPro/GPCRdb/GtoPdb target-family enumeration, OpenTargets phenotype anchor, EnsemblCompara/Alliance cross-species reconciliation) plus optional NVIDIA-NIM co-folding (Boltz2, AlphaFold2-Multimer, OpenFold3) for structural confirmation.
tools
Install or update ToolUniverse in Claude Science — create the conda env, install the tooluniverse pip package, and (re)build the tooluniverse-research skill by fetching the current workflow library from GitHub. Use for first-time setup, upgrading the ToolUniverse version, refreshing the bundled workflows after an upstream release, or reinstalling on a new machine.
tools
Install, set up, verify, update, pin, uninstall, or troubleshoot the ToolUniverse plugin on OpenAI Codex. ALWAYS consult this skill for any of those — don't answer from memory, because the exact marketplace name (mims-harvard/ToolUniverse), the "codex plugin marketplace add" then "codex plugin add -m tooluniverse" flow, Codex's startup auto-upgrade behavior, the uvx tooluniverse MCP server, and the API-key env vars are easy to get wrong. Use it whenever someone wants to get ToolUniverse (or "the 1000+ scientific tools" / "the harvard tools") working on Codex, says the Codex plugin or its tools/skills won't load, hits a uvx or MCP-server startup error, asks how Codex updates it, wants to pin or remove it, or finds it running an old tool version — even if they never say the word "plugin". Not for the Claude Code plugin (use tooluniverse-claude-code-plugin), for running research with the tools, or for authoring new tools or skills.