MecDDI Query Skill
Search MecDDI drug-drug interaction records by drug name or drug ID. Auto-detects input type:
| Input Pattern | Detected As | Match Logic |
|---|---|---|
D0123 |
MecDDI Drug ID | exact on A_Drug_ID / B_Drug_ID |
| anything else | free text | substring on A_Drug_Name / B_Drug_Name |
Mechanism Categories (7 files)
| Category | Type |
|---|---|
| Affected Gastrointestinal Absorption | PK |
| Affected Cellular Transport | PK |
| Affected Organization Distribution | PK |
| Affected Intra/Extra-Hepatic Metabolism | PK |
| Affected Excretion Pathways | PK |
| Pharmacodynamic Additive Effects | PD |
| Pharmacodynamic Antagonistic Effects | PD |
API
| Function | Input | Returns |
|---|---|---|
load_mecddi(data_dir) |
directory path | list[dict] (all records) |
search(records, entity) |
single entity string | list[dict] |
search_batch(records, entities) |
list of strings | dict[str, list[dict]] |
summarize(hits, entity) |
hits + label | compact text for LLM |
to_json(hits) |
list[dict] | JSON string |
Data
- Source: 7 TSV files downloaded from https://mecddi.idrblab.net/download
- Path:
DATA_DIRvariable in19_MecDDI.py(default:resources_metadata/ddi/MecDDI) - Columns:
A_Drug_ID,A_Drug_Name,B_Drug_ID,B_Drug_Name,Mechanism_Category
Usage
See if __name__ == "__main__" block in 19_MecDDI.py for runnable examples covering:
- Single drug name →
search(data, "Atropine") - Single drug ID →
search(data, "D0123") - Batch query →
search_batch(data, ["Meclizine", "Isocarboxazid", "D0853"]) - JSON output →
to_json(hits) - LLM-friendly summary →
summarize(hits, entity)