Drugbank
Skill BioTender-max/awesome-bio-agent-skills/skills/drugclaw/drugbank
Query a locally downloaded DrugBank database. Use whenever the user asks about drug information, drug targets, drug-drug interactions, drug categories, or wants to look up any entity (DrugBank ID, drug name, CAS number, synonym) in DrugBank.From its SKILL.md
npx -y skills add BioTender-max/awesome-bio-agent-skills --skill drugbankAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
SKILL.md
1.8 KB, 434 tokens by cl100k_base, as published. Nobody here has run it
DrugBank Local Query Skill
Search local DrugBank data by any entity. Auto-detects query type:
| Input Pattern | Detected As | Match Logic |
|---|---|---|
DB00945 | DrugBank ID | exact on drugbank_id |
| anything else | free text | substring on name, synonyms, cas_number |
Data
- Base dir:
resources_metadata/drug_knowledgebase/DrugBank/ - Files:
full database.xml— rich fields: description, targets, interactions, categories, synonyms, groupsdrugbank vocabulary.csv— lightweight: DrugBank ID, name, CAS, synonyms
- Auto-select: prefers XML if present, falls back to vocabulary CSV
API
| Function | Input | Returns |
|---|---|---|
load(path) | file path (XML or TSV/CSV, auto-detected) | list[dict] |
search(data, entity) | single entity string | list[dict] |
search_batch(data, entities) | list or comma-separated string | dict[str, list[dict]] |
summarize(hits, entity) | hit list + label | compact text |
to_json(hits) | hit list | JSON string |
Usage
from 07_DrugBank import load, search, search_batch, summarize, to_json
data = load() # auto-selects XML or CSV
# single query
hits = search(data, "aspirin")
print(summarize(hits, "aspirin"))
# batch query
results = search_batch(data, ["metformin", "DB00316", "ibuprofen"])
for entity, hits in results.items():
print(summarize(hits, entity))
# JSON output
print(to_json(hits[:1]))
See if __name__ == "__main__" block in 07_DrugBank.py for runnable examples.
What ships with it: 5 files
17.3 KB alongside SKILL.md, 4 of them executable
- drugbank_skill.pyruns7.6 KB
- example.pyruns7.8 KB
- __init__.pyruns138 B
- README.md1.0 KB
- retrieve.pyruns781 B