Parse local DrugBank XML for drug info, interactions, targets, and properties. Search by ID/name/CAS, extract DDIs with severity, map targets/enzymes/transporters, compute SMILES similarity. Primary via local XML; REST API rate-limited (3k/month dev). For live bioactivity use chembl-database-bioactivity; for compound properties use pubchem-compound-search.
SkillScore95Maintained
Automatic
◆Clinical / Healthcare pack
Last verified 8/23/2026
What it changes
Passed 21 of 22 test cases with the skill, and 18 of 22 without it.
Without skill82%
With skill95%
Checks it passed that the model alone missed
Uses db:kind as the dataframe column name and db:value as the cell value.
Identifies the REST API dev tier limit of 3,000 requests per month as the blocking constraint.
States that local DrugBank XML does not contain quantitative IC50, Ki, or EC50 bioactivity assay data.
3 fixed18 passed either way1 still failing0 broke
Pass-rate lift
+14 pp
Tokens
+310%
Agent turns
0%
Response time
-24%
Model gemini-3.6-flashMeasured 8/23/2026v121 of 22 cases passed with skill
Tokens, turns and time describe resource use, not a dollar price.
See it in action
One of 3 test cases the skill fixed. Same model, same prompt, with and without the skill.
1 of 3
Prompt
A researcher wants to run automated batch screening of 20,000 drug pairs for interaction checking. They are deciding between using the DrugBank online REST API developer tier vs parsing the local XML file. What operational constraint makes the REST API dev tier unsuitable for this task?
What was checked, without and with the skill
Checked
Without skill
With skill
Identifies the REST API dev tier limit of 3,000 requests per month as the blocking constraint.
Missed
Passed
case-19 · gemini-3.6-flash · 8/23/2026 · answers are capped and redacted
What's inside
The instructions your model reads when the skill loads.
SKILL.md544 lines3 files
DrugBank Database — Local XML Access
Overview
Query the DrugBank comprehensive drug database (14,000+ drug entries, 5,000+ protein targets, 17,000+ drug interactions) by parsing the locally downloaded XML file with Python's ElementTree. Covers drug lookups, interaction checking, target/pathway extraction, chemical property analysis, and cross-database identifier mapping.
When to Use
Looking up drug information (description, indication, mechanism, pharmacology) by DrugBank ID, name, or CAS number
Checking drug-drug interactions and severity classifications for polypharmacy safety
Extracting drug targets, enzymes, transporters, and carriers with UniProt accessions
Retrieving chemical properties (SMILES, InChI, molecular weight) for cheminformatics analysis
Mapping DrugBank entries to external databases (PubChem, ChEMBL, UniProt, KEGG)
Building drug similarity matrices from molecular fingerprints
For live bioactivity data (IC50, Ki, EC50) use chembl-database-bioactivity instead
For compound property lookups without downloading a database use pubchem-compound-search instead
REST API (optional): 3,000 req/month dev tier; use local XML for batch work
pip install lxml pandas
pip install rdkit-pypi # chemical similarity
pip install drugbank-downloader # programmatic XML download
Quick Start
import xml.etree.ElementTree as ET
NS = {'db': 'http://www.drugbank.ca'} # Required for ALL XPath queries
tree = ET.parse('drugbank_all_full_database.xml') # 30-60s for full XML
root = tree.getroot()