skills/tooluniverse-toxicology/SKILL.md
Drug and chemical toxicity assessment via adverse outcome pathways (AOPs), real-world FAERS adverse event signals, FDA labels, and toxicogenomic associations. Triangulates molecular initiating event to cellular outcome to organ-level toxicity to clinical adverse event. Use for hepatotoxicity/cardiotoxicity/nephrotoxicity prediction and toxicology reports.
npx skillsauth add mims-harvard/tooluniverse tooluniverse-toxicologyInstall 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 toxicology analysis that links molecular initiating events (MIEs) through adverse outcome pathways (AOPs) to apical adverse outcomes, then triangulates with real-world FAERS signals, FDA label data, and toxicogenomic associations.
Toxicity has many mechanisms, and the first interpretive question is temporal: is this acute toxicity (immediate effect from a high dose) or chronic toxicity (cumulative damage from long-term low-dose exposure)? Acute and chronic toxicity operate through different mechanisms — acute hepatotoxicity may reflect direct mitochondrial damage, while chronic hepatotoxicity may involve fibrosis from repeated low-level inflammation. They also have different regulatory frameworks: acute toxicity is captured by LD50 and emergency protocols, while chronic toxicity requires long-term carcinogenicity and repeat-dose studies.
AOPWiki_list_aops and AOPWiki_get_aop; do not describe mechanisms from memory.FAERS_count_reactions_by_drug_event and FAERS_calculate_disproportionality; never estimate PRR values.DailyMed_parse_adverse_reactions and related tools; do not state boxed warnings from memory.CTD_get_chemical_gene_interactions and CTD_get_chemical_diseases; do not infer gene targets without database evidence.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.
Triggers:
Use Cases:
| Tier | Symbol | Criteria | |------|--------|----------| | T1 | [T1] | FDA boxed warning, clinical trial toxicity finding, regulatory label | | T2 | [T2] | FAERS signal PRR > 2, AOP with high biological plausibility, CTD curated | | T3 | [T3] | CTD inferred association, AOP annotation with moderate plausibility | | T4 | [T4] | Text-mined CTD entry, early-stage AOP annotation |
Chemical/Drug Query
|
+-- PHASE 0: Disambiguation
| Resolve name -> identifiers (ChEMBL, PubChem CID, SMILES)
|
+-- PHASE 1: Adverse Outcome Pathway Mapping (AOPWiki)
| List AOPs by keyword; retrieve key events, MIEs, and biological plausibility scores
|
+-- PHASE 2: Real-World Adverse Event Signals (FAERS)
| Top reactions by drug; disproportionality (PRR); serious event filter
|
+-- PHASE 3: FDA Label Safety Mining
| Boxed warnings, contraindications, nonclinical toxicology, adverse reactions
|
+-- PHASE 4: Toxicogenomics (CTD)
| Chemical-gene interactions; chemical-disease associations
|
+-- SYNTHESIS: Integrated Toxicology Report
AOP-linked mechanism + FAERS signal + CTD gene targets + Risk classification
Objective: Establish compound identity before any database queries.
Tools:
PubChem_get_CID_by_compound_name (name: str) — get CID + SMILESChEMBL_search_drugs (query: str) — get ChEMBL ID and max phaseCapture: generic name, SMILES, PubChem CID, ChEMBL ID, drug class.
Objective: Find AOPs relevant to the chemical's known or suspected toxicity mechanisms.
AOPWiki_list_aops:
keyword (str) — e.g., organ ("liver", "kidney"), effect ("apoptosis", "inflammation"), or target ("AhR", "PPARalpha")AOPWiki_get_aop:
aop_id (int) — ID from list_aops resultAOPWiki_list_aops with organ-level keyword (e.g., "hepatotoxicity", "nephrotoxicity")AOPWiki_get_aop for each selected AOP| AOP ID | Title | MIE | Apical Outcome | Plausibility | |--------|-------|-----|----------------|-------------| | 123 | ... | ... | ... | High |
Objective: Quantify observed adverse events with statistical signal measures.
FAERS_count_reactions_by_drug_event:
drug_name (str), limit (int, default 50)drug_name not drugFAERS_calculate_disproportionality:
drug_name (str), reaction_meddra_pt (str)FAERS_filter_serious_events:
drug_name (str), serious_type (str: "death", "hospitalization", "life-threatening")FAERS_stratify_by_demographics:
drug_name (str), reaction_meddra_pt (str)FAERS_count_reactions_by_drug_eventFAERS_calculate_disproportionality| Signal Strength | PRR | Case Count | |----------------|-----|------------| | Strong | > 3.0 | >= 5 | | Moderate | 2.0-3.0 | >= 3 | | Weak | 1.5-2.0 | >= 3 | | None | < 1.5 | any |
Objective: Extract regulatory safety findings from approved drug labels.
DailyMed_parse_adverse_reactions (drug_name: str)DailyMed_parse_contraindications (drug_name: str)DailyMed_parse_clinical_pharmacology (drug_name: str)DailyMed_parse_drug_interactions (drug_name: str)Note: These tools apply to FDA-approved drugs only. Environmental chemicals will have no label data — document explicitly.
Objective: Map chemical-gene interactions and chemical-disease associations.
CTD_get_chemical_gene_interactions:
input_terms (str) — chemical name or MeSH IDCTD_get_chemical_diseases:
input_terms (str) — chemical name or MeSH IDStructure:
# Toxicology Report: [Compound Name]
**Generated**: YYYY-MM-DD
## Executive Summary
Risk tier: CRITICAL / HIGH / MEDIUM / LOW / INSUFFICIENT DATA
Key finding summary (2-3 sentences)
## 1. Compound Identity
(disambiguation table)
## 2. Adverse Outcome Pathways [T3-T4]
(AOP table; pathway diagrams in text form)
## 3. Real-World Adverse Event Signals [T1-T2]
(FAERS top reactions + PRR table + serious events)
## 4. FDA Label Safety [T1]
(boxed warnings, contraindications, adverse reactions)
## 5. Toxicogenomics [T2-T4]
(CTD gene targets + disease associations)
## 6. Mechanistic Integration
(How AOP key events map to observed FAERS signals and CTD gene targets)
## 7. Risk Classification
(Final tier with rationale)
## Data Gaps & Limitations
(Missing data, confidence caveats)
| Tier | Criteria | |------|----------| | CRITICAL | FDA boxed warning OR FAERS PRR > 5 with deaths OR multiple T1 findings | | HIGH | FAERS PRR 3-5 serious events OR FDA warning (non-boxed) OR high-plausibility AOP | | MEDIUM | FAERS PRR 2-3 OR CTD curated associations OR moderate-plausibility AOP | | LOW | All signals < PRR 2; no regulatory warnings; low-plausibility AOP only | | INSUFFICIENT DATA | Fewer than 3 phases returned usable data |
| Primary Tool | Fallback 1 | Fallback 2 |
|--------------|------------|------------|
| AOPWiki_list_aops | Broaden keyword | Search by organ system |
| FAERS_count_reactions_by_drug_event | OpenFDA_search_drug_events | Literature search |
| DailyMed_parse_adverse_reactions | OpenFDA_search_drug_events | FAERS serious events |
| CTD_get_chemical_diseases | CTD_get_chemical_gene_interactions | PubMed search |
| Tool | WRONG | CORRECT |
|------|-------|---------|
| FAERS_count_reactions_by_drug_event | drug | drug_name |
| AOPWiki_list_aops | query | keyword |
| CTD_get_chemical_gene_interactions | chemical | input_terms |
| CTD_get_chemical_diseases | chemical | input_terms |
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.