$npx -y skills add QSong-github/DrugClaw --skill unitoxQuery the UniTox drug toxicity database. Use whenever the user asks about organ-system toxicity ratings for a drug, multi-organ toxicity profiles, or wants to look up any entity (drug name, SMILES, SPL_ID) in UniTox.
| 1 | # UniTox Query Skill |
| 2 | |
| 3 | Search UniTox records by any entity. Auto-detects type by pattern: |
| 4 | |
| 5 | | Input Pattern | Detected As | Match Logic | |
| 6 | |---|---|---| |
| 7 | | `b2b3be70-17d8-...` (UUID) | SPL_ID | exact on `SPL_ID` | |
| 8 | | long string with `=`, `[`, `]`, `@` | SMILES | exact on `smiles` / `all_smiles` | |
| 9 | | anything else | free text | case-insensitive substring on `generic_name` | |
| 10 | |
| 11 | ## API |
| 12 | |
| 13 | | Function | Input | Returns | |
| 14 | |---|---|---| |
| 15 | | `load_unitox(path)` | TSV path | list[dict] (cached) | |
| 16 | | `search(entity)` | single entity string | list[dict] | |
| 17 | | `search_batch(entities)` | list of entity strings | dict[str, list[dict]] | |
| 18 | | `summarize(hits, entity)` | hits + label | compact ratings-only text | |
| 19 | | `summarize_with_reasoning(hits, entity, systems)` | hits + label + organ list | text with truncated reasoning | |
| 20 | | `to_json(hits)` | hits | list[dict] (ratings + metadata) | |
| 21 | | `list_drugs()` | – | sorted list of all drug names | |
| 22 | |
| 23 | ## Toxicity Systems (8 organs) |
| 24 | |
| 25 | Each drug has ternary rating (`No` / `Low` / `High`) and binary rating (`Yes` / `No`) for: |
| 26 | |
| 27 | | System key | Organ | |
| 28 | |---|---| |
| 29 | | `cardiotoxicity` | Heart | |
| 30 | | `dermatological_toxicity` | Skin | |
| 31 | | `hematological` | Blood | |
| 32 | | `infertility` | Reproductive | |
| 33 | | `liver_toxicity` | Liver | |
| 34 | | `ototoxicity` | Ear / Hearing | |
| 35 | | `pulmonary_toxicity` | Lung | |
| 36 | | `renal_toxicity` | Kidney | |
| 37 | |
| 38 | ## Usage |
| 39 | |
| 40 | See `if __name__ == "__main__"` block in `28_UniTox.py` for runnable examples covering: single drug name search, batch search, JSON output, detailed reasoning for specific organ systems, and total drug count. |
| 41 | |
| 42 | ## Data |
| 43 | |
| 44 | - **Source**: UniTox v1 from Zenodo (https://zenodo.org/records/11627822) |
| 45 | - **Paper**: https://doi.org/10.1101/2024.06.21.24309315 |
| 46 | - **Format**: CSV or TSV (delimiter auto-detected from header line) |
| 47 | - **Columns**: `generic_name`, 8 × (`*_reasoning`, `*_ternary_rating`, `*_binary_rating`), `smiles`, `all_smiles`, `SPL_ID` |
| 48 | - **Path**: `DATA_PATH` variable in `28_UniTox.py` |
| 49 | - **Method**: GPT-4o extraction from FDA drug labels; 85–96% clinician concordance |