UniTox Query Skill
Search UniTox records by any entity. Auto-detects type by pattern:
| Input Pattern | Detected As | Match Logic |
|---|---|---|
b2b3be70-17d8-... (UUID) |
SPL_ID | exact on SPL_ID |
long string with =, [, ], @ |
SMILES | exact on smiles / all_smiles |
| anything else | free text | case-insensitive substring on generic_name |
API
| Function | Input | Returns |
|---|---|---|
load_unitox(path) |
TSV path | list[dict] (cached) |
search(entity) |
single entity string | list[dict] |
search_batch(entities) |
list of entity strings | dict[str, list[dict]] |
summarize(hits, entity) |
hits + label | compact ratings-only text |
summarize_with_reasoning(hits, entity, systems) |
hits + label + organ list | text with truncated reasoning |
to_json(hits) |
hits | list[dict] (ratings + metadata) |
list_drugs() |
– | sorted list of all drug names |
Toxicity Systems (8 organs)
Each drug has ternary rating (No / Low / High) and binary rating (Yes / No) for:
| System key | Organ |
|---|---|
cardiotoxicity |
Heart |
dermatological_toxicity |
Skin |
hematological |
Blood |
infertility |
Reproductive |
liver_toxicity |
Liver |
ototoxicity |
Ear / Hearing |
pulmonary_toxicity |
Lung |
renal_toxicity |
Kidney |
Usage
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.
Data
- Source: UniTox v1 from Zenodo (https://zenodo.org/records/11627822)
- Paper: https://doi.org/10.1101/2024.06.21.24309315
- Format: CSV or TSV (delimiter auto-detected from header line)
- Columns:
generic_name, 8 × (*_reasoning,*_ternary_rating,*_binary_rating),smiles,all_smiles,SPL_ID - Path:
DATA_PATHvariable in28_UniTox.py - Method: GPT-4o extraction from FDA drug labels; 85–96% clinician concordance