skills/tooluniverse-drug-research/SKILL.md
Comprehensive drug profiling — mechanism, primary/secondary targets, drug interactions, clinical-trial status, adverse events (FAERS), pharmacogenomics, and approval history. Use for full drug investigation reports, 'tell me about drug X' queries, and assembling drug profiles for clinicians, researchers, or regulatory work.
npx skillsauth add mims-harvard/tooluniverse tooluniverse-drug-researchInstall 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.
Comprehensive drug investigation using 50+ ToolUniverse tools across chemical databases, clinical trials, adverse events, pharmacogenomics, and literature.
KEY PRINCIPLES:
When asked about a drug, query ChEMBL/PubChem/DailyMed FIRST. Don't guess at mechanism, targets, or side effects — look them up. When you're not sure about a fact, your first instinct should be to SEARCH for it using tools, not to reason harder from memory.
When investigating a drug's mechanism of action, trace the full causal chain:
DO NOT show the search process or tool outputs to the user. Instead:
[DRUG]_drug_report.md with all 11 section headers and [Researching...] placeholders. See REPORT_TEMPLATE.md for the full template.Every piece of information MUST include its source. Use inline citations:
*Source: PubChem via `PubChem_get_compound_properties_by_CID` (CID: 4091)*
Step 1: Create report file with all section headers
Step 2: Resolve compound identifiers -> Update Section 1
Step 3: Query PubChem/ADMET-AI/DailyMed SPL -> Update Section 2 (Chemistry)
Step 4: Query FDA Label MOA + ChEMBL + DGIdb -> Update Section 3 (Mechanism)
Step 5: Query ADMET-AI tools -> Update Section 4 (ADMET)
Step 6: Query ClinicalTrials.gov -> Update Section 5 (Clinical)
Step 7: Query FAERS/DailyMed -> Update Section 6 (Safety)
Step 8: Query PharmGKB -> Update Section 7 (Pharmacogenomics)
Step 9: Query DailyMed/Orange Book -> Update Section 8 (Regulatory)
Step 10: Query PubMed/literature -> Update Section 9 (Literature)
Step 11: Synthesize findings -> Update Executive Summary & Section 10
Step 12: Document all sources -> Update Section 11 (Data Sources)
CRITICAL: Establish compound identity before any research.
1. PubChem_get_CID_by_compound_name(compound_name)
-> Extract: CID, canonical SMILES, formula
2. ChEMBL_search_molecules(query=drug_name)
-> Extract: ChEMBL ID, pref_name
3. DailyMed_search_spls(drug_name)
-> Extract: Set ID, NDC codes (if approved)
4. PharmGKB_search_drugs(query=drug_name)
-> Extract: PharmGKB ID (PA...)
| Issue | Example | Resolution | |-------|---------|------------| | Salt forms | metformin vs metformin HCl | Note all CIDs; use parent compound | | Isomers | omeprazole vs esomeprazole | Verify SMILES; separate entries if distinct | | Prodrugs | enalapril vs enalaprilat | Document both; note conversion | | Brand confusion | Different products same name | Clarify with user |
Each path has detailed tool chains and output examples in REPORT_GUIDELINES.md.
Tools: PubChem properties -> ADMET-AI physicochemical -> ADMET-AI solubility -> DailyMed chemistry/description Output: Physicochemical table, Lipinski assessment, QED score, salt forms, formulation comparison
Tools: DailyMed MOA -> ChEMBL activities (NOT ChEMBL_get_molecule_targets) -> ChEMBL target details -> DGIdb -> PubChem bioactivity
Critical: Derive targets from activities filtered to pChEMBL >= 6.0. Avoid ChEMBL_get_molecule_targets.
Output: FDA MOA text, target table with UniProt/potency, selectivity profile
Tools: ADMET-AI (bioavailability, BBB, CYP, clearance, toxicity) Fallback: DailyMed clinical_pharmacology + pharmacokinetics + drug_interactions Critical: If ADMET-AI fails, automatically use fallback. Never leave Section 4 empty.
Tools: search_clinical_trials -> compute phase counts -> extract outcomes/AEs -> fda_pharmacogenomic_biomarkers Critical: Section 5.2 must show actual counts by phase/status in table format.
Tools: FAERS (reactions, seriousness, outcomes, deaths, age) + DailyMed (DDI, dosing, warnings) Critical: Include FAERS date window, seriousness breakdown, and limitations paragraph.
Tools: PharmGKB (search -> details -> annotations -> guidelines) Fallback: DailyMed pharmacogenomics section + PubMed literature
Tools: FDA Orange Book (search, approval history, exclusivity, patents, generics) + DailyMed (special populations via LOINC codes) Note: US-only data; document EMA/PMDA limitation.
Tools: ClinicalTrials.gov (OBSERVATIONAL studies) + PubMed (real-world, registry, surveillance)
Tools: Abbreviated tool chains for each comparator + head-to-head trial search + PubMed meta-analyses
For approved drugs, retrieve these DailyMed sections early (after getting set_id):
| Batch | Sections | Maps to Report | |-------|----------|---------------| | Phase 1 | mechanism_of_action, pharmacodynamics, chemistry | Sections 2-3 | | Phase 2 | clinical_pharmacology, pharmacokinetics, drug_interactions | Sections 4, 6.5 | | Phase 3 | warnings_and_cautions, adverse_reactions, dosage_and_administration | Sections 6, 8.2 | | Phase 4 | pharmacogenomics, clinical_studies, description, inactive_ingredients | Sections 5, 7 |
| Primary Tool | Fallback | Use When |
|--------------|----------|----------|
| PubChem_get_CID_by_compound_name | ChEMBL_search_drugs | Name not in PubChem |
| ChEMBL_get_molecule_targets | Use ChEMBL_search_activities instead | Always avoid this tool |
| ChEMBL_get_activity | PubChemBioAssay_get_assay_summary | No ChEMBL ID |
| DailyMed_search_spls | PubChemTox_get_acute_effects | DailyMed timeout |
| PharmGKB_search_drugs | DailyMed PGx sections + PubMed | PharmGKB unavailable |
| PharmGKB_get_dosing_guidelines | DailyMed pharmacogenomics section | PharmGKB API error |
| FAERS_count_reactions_by_drug_event | Document "FAERS unavailable" + use label AEs | API error |
| ADMETAI_* (all tools) | DailyMed clinical_pharmacology + pharmacokinetics | Invalid SMILES or API error |
| Use Case | Primary Tool | Fallback | Evidence |
|----------|--------------|----------|----------|
| Name -> CID | PubChem_get_CID_by_compound_name | ChEMBL_search_drugs | T1 |
| Properties | PubChem_get_compound_properties_by_CID | ADMET-AI physicochemical | T1/T2 |
| FDA MOA | DailyMed_parse_clinical_pharmacology (mechanism_of_action) | - | T1 |
| Targets | ChEMBL_search_activities -> ChEMBL_get_target | DGIdb_get_drug_info | T1 |
| ADMET | ADMETAI_predict_* (5 tools) | DailyMed PK sections | T2/T1 |
| Trials | search_clinical_trials | - | T1 |
| Trial outcomes | extract_clinical_trial_outcomes | - | T1 |
| FAERS | FAERS_count_reactions_by_drug_event | Label adverse_reactions | T1 |
| Dose mods | DailyMed_parse_clinical_pharmacology (dosage, warnings) | - | T1 |
| PGx | PharmGKB_search_drugs | DailyMed PGx + PubMed | T2/T1 |
| Label | DailyMed_search_spls | PubChemTox_get_acute_effects | T1 |
| Literature | PubMed_search_articles | EuropePMC_search_articles | Varies |
| Regulatory | FDA_OrangeBook_* tools | DailyMed label data | T1 |
See TOOLS_REFERENCE.md for the complete tool listing with parameters and input format requirements.
Many tools require string inputs. Always convert IDs before API calls:
["SMILES_STRING"]"METFORMIN")"CHEMBL1431" not "1431""PA450657" not "450657"| Use Case | Primary Sections | Light Sections | |----------|------------------|----------------| | Approved Drug Profile | All 11 sections | None | | Investigational Compound | 1, 2, 3, 4, 9 | 5, 6, 7, 8 | | Safety Review | 1, 5, 6, 7, 9 | 2, 3, 4, 8 | | ADMET Assessment | 1, 2, 4 | 3, 5, 6, 7, 8, 9 | | Clinical Development Landscape | 1, 5, 9 | 2, 3, 4, 6, 7, 8 |
Always maintain all section headers but adjust depth based on query focus and data availability.
PubChem_search_compounds_by_similarity directlyFor drug interaction checking, run: python3 skills/tooluniverse-drug-drug-interaction/scripts/pharmacology_ref.py --type interaction --drug1 X --drug2 Y
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.