plugins/tooluniverse/skills/tooluniverse-drug-synergy/SKILL.md
Drug-combination synergy analysis — quantify whether two drugs together are synergistic, additive, or antagonistic using the standard reference models (Bliss independence, HSA / highest single agent, Loewe additivity, ZIP, and the Chou-Talalay Combination Index). Use when you have measured single-drug and combination effects (inhibition/viability) and need a synergy score. Explains which model to use, what data each one needs, and how to read the score. NOT for looking up pre-computed synergy in a database (use the SYNERGxDB tool / cell-line-profiling skill).
npx skillsauth add mims-harvard/tooluniverse tooluniverse-drug-synergyInstall 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.
Decide whether a two-drug combination does more than expected (synergy), exactly as expected (additivity), or less (antagonism) — and pick the right reference model for the data you have.
"Synergy" only means something relative to a null model of additivity, and the models define additivity differently — so the first decision is which model, driven by what data you measured.
| You measured… | Use model | Tool | Input |
|---|---|---|---|
| Single effects of A, B, and A+B at one dose pair | Bliss | DrugSynergy_calculate_bliss | effect_a, effect_b, effect_combination (each a fraction 0–1) |
| Effects of A, B, A+B across several dose points | HSA | DrugSynergy_calculate_hsa | effects_a, effects_b, effects_combo (arrays) |
| Single-agent dose-response curves + one combination point | Loewe | DrugSynergy_calculate_loewe | doses_a_single/effects_a_single, doses_b_single/effects_b_single, dose_a_combo, dose_b_combo, effect_combo |
| Single-agent dose-response + combo point, want Chou-Talalay CI | Combination Index | DrugSynergy_calculate_ci | same as Loewe + assumption |
| A full dose × dose viability matrix | ZIP | DrugSynergy_calculate_zip | doses_a, doses_b, viability_matrix (% , 0–100) |
Effects must be on a consistent inhibition scale. Bliss/HSA/Loewe expect fractional inhibition
0–1(0 = no effect, 1 = complete kill). If your data is % viability, convert:inhibition = 1 − viability/100. ZIP takes the viability matrix in % directly. Mixing scales is the most common error.
| Model | Null (additive) expectation | Best when |
|---|---|---|
| Bliss independence | drugs act independently: E_exp = E_a + E_b − E_a·E_b | different mechanisms; quick single-point screen |
| HSA (highest single agent) | combo should beat the better single agent: E_exp = max(E_a, E_b) | conservative "does it beat monotherapy?" question |
| Loewe additivity | a drug combined with itself = additive (dose equivalence) | same/similar mechanism; needs dose-response |
| ZIP | combines Bliss + Loewe; potency shift of one drug's curve by the other | dose-matrix screens (the SynergyFinder default) |
| Chou-Talalay CI | CI<1 synergy, =1 additive, >1 antagonism (median-effect) | classic isobologram-style analysis with dose-response |
There is no single "correct" model — state which one you used. Bliss and Loewe genuinely disagree for some combinations (that's expected, not an error); reporting two models (e.g. Bliss + HSA, or Loewe + ZIP) is good practice.
# Bliss (single dose pair, fractional inhibition)
tu run DrugSynergy_calculate_bliss '{"operation":"calculate_bliss",
"effect_a":0.4,"effect_b":0.3,"effect_combination":0.7}'
# -> expected 0.58, bliss_synergy_score 0.12, "Strong synergy"
scripts/synergy_reference.py computes the Bliss, HSA, and Loewe-style expected combination effects side-by-side from one dose pair, so you can see at a glance whether the models agree before running the full tools.
For Bliss/HSA/Loewe/ZIP, the synergy score is (observed − expected) (often ×100):
| Score (fractional, ×100 scale) | Call | |---|---| | > +10 | synergy | | −10 to +10 | additive (no meaningful interaction) | | < −10 | antagonism |
For Combination Index (Chou-Talalay): CI < 1 = synergy, CI = 1 additive, CI > 1 antagonism (note the opposite direction — lower is more synergistic).
tooluniverse-dose-response — fit the single-agent IC50/EC50 curves that Loewe/CI/ZIP need.tooluniverse-cell-line-profiling — look up pre-computed combination synergy (SYNERGxDB).tooluniverse-drug-repurposing / tooluniverse-network-pharmacology — rationale for combinations.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.