plugins/tooluniverse/skills/tooluniverse-drug-drug-interaction/SKILL.md
Assess drug-drug interactions — CYP metabolic interactions (substrate/inhibitor/inducer), transporter (P-gp, BCRP, OATP) effects, pharmacodynamic synergy/antagonism, clinical significance scoring, and management recommendations. Use for polypharmacy review, prescribing decision support, and safety analysis when adding or switching drugs.
npx skillsauth add mims-harvard/tooluniverse tooluniverse-drug-drug-interactionInstall 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.
Systematic analysis of drug-drug interactions with evidence-based risk scoring, mechanism identification, and clinical management recommendations.
KEY PRINCIPLES:
Before querying any external database, consult the local reference script for instant answers on CYP/UGT roles and known critical interactions:
scripts/pharmacology_ref.py (no external dependencies, runs offline)
# Q927 pattern — valproate + lamotrigine:
python scripts/pharmacology_ref.py --type interaction --drug1 "valproate" --drug2 "lamotrigine"
# What does a drug do to UGT enzymes?
python scripts/pharmacology_ref.py --type ugt_inhibitor --drug "valproate"
# What enzymes metabolise a drug?
python scripts/pharmacology_ref.py --type ugt_substrate --drug "lamotrigine"
python scripts/pharmacology_ref.py --type cyp_substrate --drug "warfarin"
# Which drugs inhibit / induce a specific CYP?
python scripts/pharmacology_ref.py --type cyp_inhibitor --enzyme "CYP3A4"
python scripts/pharmacology_ref.py --type cyp_inducer --enzyme "CYP2C9"
# Narrow therapeutic index checklist:
python scripts/pharmacology_ref.py --type narrow_ti
# All known interactions for one drug:
python scripts/pharmacology_ref.py --type all_interactions --drug "lamotrigine"
Covered interactions include (severity / mechanism): | Pair | Severity | Key mechanism | |------|----------|---------------| | valproate + lamotrigine | Major | UGT1A4 inhibition → 2× lamotrigine levels + SJS risk | | carbamazepine + lamotrigine | Major | UGT1A4 induction → 50% ↓ lamotrigine | | oral contraceptives + lamotrigine | Major | UGT1A4 induction → 50% ↓ lamotrigine | | valproate + phenytoin | Major | CYP2C9 inhibition + protein displacement | | carbamazepine + valproate | Moderate | Epoxide hydrolase inhibition → toxic metabolite ↑ | | simvastatin + ketoconazole | Contraindicated | CYP3A4 inhibition → rhabdomyolysis | | simvastatin + clarithromycin | Contraindicated | CYP3A4 inhibition → rhabdomyolysis | | rifampin + warfarin | Major | CYP2C9 induction → INR collapse | | amiodarone + warfarin | Major | CYP2C9 inhibition → INR rise | | clopidogrel + omeprazole | Moderate | CYP2C19 inhibition → reduced antiplatelet activation | | quinidine + digoxin | Major | P-gp inhibition → 2× digoxin levels | | lithium + NSAIDs | Major | Reduced renal clearance → lithium toxicity | | fluoxetine + MAOIs | Contraindicated | Serotonin syndrome |
The script also covers UGT2B7 substrates (morphine, zidovudine) inhibited by valproate, UGT1A1 induction by rifampin, and the complete narrow therapeutic index list with monitoring parameters.
When uncertain about any scientific fact, SEARCH databases first (PubMed, UniProt, ChEMBL, ClinVar, etc.) rather than reasoning from memory. A database-verified answer is always more reliable than a guess.
When a patient develops NEW symptoms after starting a new medication, the FIRST question is: could the new drug be interacting with an existing medication? Specifically check: (1) Does the new drug inhibit metabolism of an existing drug? (2) Does the new drug have additive pharmacodynamic effects?
Apply when users:
Before querying any database, apply this reasoning framework to predict interactions mechanistically.
In every drug interaction, identify two roles:
For each drug pair, ask these questions in order:
Special case -- Prodrugs: If the victim is a prodrug that requires metabolic activation, inhibiting its activating enzyme reduces efficacy (not toxicity). Inducing its activating enzyme may increase efficacy or toxicity of the active metabolite.
Most DDI reasoning focuses on CYP450 (Phase I metabolism), but Phase II conjugation reactions — especially glucuronidation via UGT enzymes — cause some of the most dangerous drug interactions. These are frequently missed because agents default to CYP-centric reasoning.
Core principle: UGT enzymes (UGT1A4, UGT2B7, UGT1A1, etc.) conjugate drugs with glucuronic acid for renal elimination. When a UGT inhibitor is co-administered with a UGT substrate, the substrate accumulates because its primary elimination pathway is blocked.
The valproate + lamotrigine paradigm (IDX 927 pattern):
Other critical UGT interactions:
Reasoning algorithm for UGT interactions:
Use scripts/pharmacology_ref.py --type ugt_inhibitor --drug "[drug]" and --type ugt_substrate --drug "[drug]" for rapid UGT lookup.
When a patient is on 3+ drugs, interactions can cascade. A common pattern:
Scenario: Patient on Drug A (CYP3A4 substrate) + Drug B (CYP3A4 inducer) at steady state. Drug C (CYP3A4 inhibitor) is added.
Key reasoning principles for cascading effects:
When a patient on multiple medications develops an adverse drug reaction:
Example (IDX 927): Elderly patient on lamotrigine develops seizures and rash after adding valproate.
Use the temporal pattern of symptoms to narrow the mechanism:
For any suspected drug interaction, classify it by asking:
1. Is this pharmacokinetic? (One drug changes the LEVEL of another)
2. Is this pharmacodynamic? (Both drugs act on the SAME SYSTEM)
3. Is this pharmaceutical? (Drugs interact BEFORE reaching the body)
Most clinically significant interactions are pharmacokinetic, pharmacodynamic, or both simultaneously. Always consider mixed PK+PD interactions, which tend to be the most dangerous.
Assess severity by reasoning about the victim drug's properties, not by memorizing lists:
Therapeutic index determines risk tolerance:
Prodrug logic inverts the prediction:
Severity classification process:
Management follows directly from the mechanism:
DO NOT show intermediate tool outputs or search processes. Instead:
Create report file FIRST - Before any data collection:
DDI_risk_report_[DRUG1]_[DRUG2].md (or _polypharmacy.md for 3+)[Analyzing...] in each sectionApply clinical reasoning FIRST - Before running tools, reason through:
Progressively update - As database data is gathered:
[Analyzing...] with findingsFinal deliverable - Complete markdown report with recommendations
Query tools in this order:
ChEMBL_get_drug_mechanisms or KEGG_get_drug for CYP substrate/inhibitor/inducer datadrugbank_get_drug_interactions_by_drug_name_or_id for known transporter interactions (P-gp, OATP, OAT, OCT)Transporter interactions (check when CYP analysis incomplete):
DailyMed_get_spl_by_setid - highest evidence tierPubMed_search_articles - second tierRisk Score (0-100):
For each Major/Contraindicated interaction:
Before finalizing DDI report:
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.