DGIdb Query Skill
Search DGIdb records by any entity. Auto-detects type by naming convention:
| Input Pattern |
Detected As |
Example |
| ALL-CAPS ≤15 chars |
Gene |
EGFR, BRAF, TP53 |
| Known category keyword |
Druggability category |
clinically actionable, kinase |
| Anything else |
Drug |
imatinib, erlotinib |
Supported category keywords: clinically actionable, drug resistance, druggable genome, tumor suppressor, transcription factor, kinase, g protein coupled receptor, hormone activity, ion channel, protease, dna repair.
API
| Function |
Input |
Returns |
search(entity) |
single entity string |
list[dict] |
search_batch(entities) |
list of entity strings |
dict[str, list[dict]] |
summarize(results, entity) |
result list + label |
compact text for LLM |
to_json(results) |
result list |
list[dict] (passthrough) |
Key Fields
Gene result: name, long_name, categories, interaction_count, interactions[] (each with drug, drug_concept_id, score, types, directionality, attributes, pmids, sources).
Drug result: name, concept_id, approval_ratings, interaction_count, interactions[] (each with gene, gene_long_name, score, types, directionality, attributes, pmids, sources).
Category result: category, gene_count, genes[] (each with name, long_name).
Usage
See if __name__ == "__main__" block in 16_DGIdb.py for runnable examples covering: single gene, single drug, category, batch (mixed types), and JSON output.
Data Source
- Database: DGIdb v5.0 — Drug-Gene Interaction Database
- Endpoint:
https://dgidb.org/api/graphql (GraphQL, no API key)
- Coverage: 40+ source databases, ~100 k drug-gene interactions
- Paper: Freshour et al., Nucleic Acids Res. 2024; 52(D1):D1227-D1235. DOI: 10.1093/nar/gkac1046
1---2name: 16-dgidb3description: Query the DGIdb (Drug-Gene Interaction Database) for drug-gene interactions, gene druggability categories, and drug target information. Use whenever the user asks about drug targets, druggable genes, gene-drug interactions, or wants to look up any entity (gene name, drug name, druggability category) in DGIdb.4---5
6# DGIdb Query Skill
7
8Search DGIdb records by any entity. Auto-detects type by naming convention:
9
10| Input Pattern | Detected As | Example |
11|---|---|---|
12| ALL-CAPS ≤15 chars | Gene | `EGFR`, `BRAF`, `TP53` |
13| Known category keyword | Druggability category | `clinically actionable`, `kinase` |
14| Anything else | Drug | `imatinib`, `erlotinib` |
15
16Supported category keywords: `clinically actionable`, `drug resistance`, `druggable genome`, `tumor suppressor`, `transcription factor`, `kinase`, `g protein coupled receptor`, `hormone activity`, `ion channel`, `protease`, `dna repair`.
17
18## API
19
20| Function | Input | Returns |
21|---|---|---|
22| `search(entity)` | single entity string | `list[dict]` |
23| `search_batch(entities)` | list of entity strings | `dict[str, list[dict]]` |
24| `summarize(results, entity)` | result list + label | compact text for LLM |
25| `to_json(results)` | result list | `list[dict]` (passthrough) |
26
27## Key Fields
28
29**Gene result**: `name`, `long_name`, `categories`, `interaction_count`, `interactions[]` (each with `drug`, `drug_concept_id`, `score`, `types`, `directionality`, `attributes`, `pmids`, `sources`).
30
31**Drug result**: `name`, `concept_id`, `approval_ratings`, `interaction_count`, `interactions[]` (each with `gene`, `gene_long_name`, `score`, `types`, `directionality`, `attributes`, `pmids`, `sources`).
32
33**Category result**: `category`, `gene_count`, `genes[]` (each with `name`, `long_name`).
34
35## Usage
36
37See `if __name__ == "__main__"` block in `16_DGIdb.py` for runnable examples covering: single gene, single drug, category, batch (mixed types), and JSON output.
38
39## Data Source
40
41- **Database**: DGIdb v5.0 — Drug-Gene Interaction Database
42- **Endpoint**: `https://dgidb.org/api/graphql` (GraphQL, no API key)
43- **Coverage**: 40+ source databases, ~100 k drug-gene interactions
44- **Paper**: Freshour et al., *Nucleic Acids Res.* 2024; 52(D1):D1227-D1235. DOI: [10.1093/nar/gkac1046](https://doi.org/10.1093/nar/gkac1046)