plugin/skills/tooluniverse-adverse-outcome-pathway/SKILL.md
Map environmental and industrial chemicals to adverse outcome pathways (AOPs) — molecular initiating event to organ-level toxicity. Uses AOPWiki, GHS classification, IARC carcinogen status, and LD50 data. Use for environmental/industrial chemical risk assessment, regulatory-grade hazard characterization, and AOP stressor mapping. Distinct from drug-safety analysis (use tooluniverse-pharmacovigilance for drugs).
npx skillsauth add mims-harvard/tooluniverse tooluniverse-adverse-outcome-pathwayInstall 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.
Distinct from drug safety (see tooluniverse-toxicology): this skill targets environmental and industrial chemicals where the focus is AOP stressor mapping, GHS classification, LD50 hazard quantification, and IARC carcinogen status — not FAERS signals or FDA drug labels.
Apply when researcher asks about:
Do NOT use for FDA-approved drugs with FAERS data — use tooluniverse-toxicology instead.
| Tool | Purpose | Key Params |
|------|---------|-----------|
| AOPWiki_list_aops | Discover AOPs by keyword | keyword (organ, effect, or target name) |
| AOPWiki_get_aop | Full AOP details: MIE, key events, stressors | aop_id (int) |
| PubChemTox_get_toxicity_summary | Narrative toxicity overview | cid (PubChem CID) |
| PubChemTox_get_ghs_classification | GHS hazard category + pictograms | cid |
| PubChemTox_get_carcinogen_classification | IARC/NTP/EPA carcinogen status | cid |
| PubChemTox_get_toxicity_values | LD50/LC50 by route and species | cid |
| PubChemTox_get_acute_effects | Signs and symptoms of acute exposure | cid |
| CTD_get_chemical_gene_interactions | Chemical-gene molecular interactions | input_terms (name or MeSH ID) |
| CTD_get_chemical_diseases | Chemical-disease associations | input_terms |
| PubChem_get_CID_by_compound_name | Resolve compound name to PubChem CID | name |
Resolve chemical name to PubChem CID before all PubChemTox calls.
PubChem_get_CID_by_compound_name(name="benzo[a]pyrene")
-> cid: 9153 (use for all PubChemTox calls)
Note: CTD tools accept the chemical name directly (input_terms param) — no CID needed.
Find relevant AOPs by searching organ targets and mechanism keywords.
AOPWiki_list_aops(keyword="lung") # organ-level
AOPWiki_list_aops(keyword="DNA damage") # mechanism-level
AOPWiki_list_aops(keyword="AhR") # receptor-level
Select 2-4 candidate AOPs from results, then retrieve full details:
AOPWiki_get_aop(aop_id=58) # returns MIE, key events, stressors, biological plausibility
Key fields in AOPWiki_get_aop response:
stressors: list of chemicals that trigger this AOP (check if query compound is listed)molecular_initiating_event: the first molecular perturbationkey_events: ordered chain of biological eventsadverse_outcome: apical regulatory endpointRun all four hazard queries in parallel using the resolved CID:
PubChemTox_get_ghs_classification(cid=9153) # GHS category + pictogram
PubChemTox_get_carcinogen_classification(cid=9153) # IARC Group 1/2A/2B/3
PubChemTox_get_toxicity_values(cid=9153) # LD50 by route/species
PubChemTox_get_acute_effects(cid=9153) # signs/symptoms
Note: PubChemTox_get_target_organs sometimes returns no data — treat as optional.
Map chemical to gene targets and disease associations:
CTD_get_chemical_gene_interactions(input_terms="benzo[a]pyrene")
CTD_get_chemical_diseases(input_terms="benzo[a]pyrene")
Cross-reference CTD gene targets with AOP key event genes from Phase 2.
| Tool | Required | Optional | Notes |
|------|---------|---------|-------|
| AOPWiki_list_aops | keyword | — | Use organ ("liver"), effect ("apoptosis"), or receptor ("PPARalpha") |
| AOPWiki_get_aop | aop_id | — | Integer ID from list_aops output |
| PubChemTox_get_toxicity_summary | cid | — | PubChem CID integer |
| PubChemTox_get_ghs_classification | cid | — | Returns pictogram_labels e.g. "Health Hazard" |
| PubChemTox_get_carcinogen_classification | cid | — | IARC Group in classifications[].classification |
| PubChemTox_get_toxicity_values | cid | — | Values like "LD50 Rat oral 2400 mg/kg" |
| PubChemTox_get_acute_effects | cid | — | Sometimes sparse; not all compounds have data |
| CTD_get_chemical_gene_interactions | input_terms | — | Accepts name or MeSH ID (e.g., "D001564") |
| CTD_get_chemical_diseases | input_terms | — | Filter DirectEvidence = "marker/mechanism" for curated |
| PubChem_get_CID_by_compound_name | name | — | Returns CID + SMILES; required before PubChemTox calls |
# Pattern: Confirm compound is a stressor in a specific AOP
aop = AOPWiki_get_aop(aop_id=58)
stressors = [s["name"] for s in aop["data"]["stressors"]]
# Check if query chemical appears in stressors list
# Pattern: Extract curated CTD disease associations only
diseases = CTD_get_chemical_diseases(input_terms="rotenone")
curated = [d for d in diseases["data"] if d.get("DirectEvidence")]
# Pattern: GHS carcinogen check
carcinogen = PubChemTox_get_carcinogen_classification(cid=9153)
iarc = [c for c in carcinogen["data"]["classifications"] if "IARC" in c.get("source", "")]
| Grade | Criteria | Example | |-------|----------|---------| | Strong | AOP in OECD-endorsed status, compound listed as stressor, CTD + AOPWiki concordant | AOP 58 (AhR → liver tumor) endorsed, benzo[a]pyrene confirmed stressor | | Moderate | AOP under review or well-documented, compound class match but not individually listed | AOP links PPARalpha activation to liver effects; query compound is a fibrate analog | | Weak | AOP in development, compound not listed but shares MIE target via CTD gene overlap | CTD shows gene target overlap with AOP key event genes, but no direct stressor listing | | Insufficient | No AOP found, no CTD gene-disease link, hazard data sparse | Novel compound with no toxicological database entries |
| Primary | Fallback | When |
|---------|---------|------|
| AOPWiki_list_aops with specific keyword | Broader organ term | No results |
| PubChemTox_get_target_organs | PubChemTox_get_toxicity_summary | Returns empty |
| CTD_get_chemical_diseases | CTD_get_gene_diseases + gene from CTD interactions | Compound name not recognized |
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.