Drugbank Database System
Enterprise-grade skill for access, analyze, comprehensive, drug. Includes structured workflows, validation checks, and reusable patterns for scientific.
DrugBank Database System
A scientific computing skill for querying DrugBank — the comprehensive bioinformatics database containing detailed information about drugs, their mechanisms, interactions, targets, pharmacology, and chemical properties. DrugBank Database System helps you look up drug information, find drug-target relationships, and analyze drug interaction networks.
When to Use This Skill
Choose DrugBank Database System when:
- Looking up drug mechanisms of action, targets, and pharmacology
- Checking drug-drug interactions for polypharmacy analysis
- Finding approved drugs for specific molecular targets
- Building drug repurposing analyses based on target overlap
Consider alternatives when:
- You need bioactivity data with quantitative IC50 values (use ChEMBL)
- You need clinical trial status information (use ClinicalTrials.gov)
- You need enzyme kinetics (use BRENDA)
- You need pharmacogenomics data (use ClinPGx/PharmVar)
Quick Start
claude "Look up drug interactions and targets for metformin"
import requests import json # DrugBank API (requires API key) # Register at go.drugbank.com for API access API_KEY = "your_api_key" BASE_URL = "https://api.drugbank.com/v1" headers = { "Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json" } # Search for a drug response = requests.get( f"{BASE_URL}/drugs", headers=headers, params={"q": "metformin"} ) drugs = response.json() drug = drugs[0] print(f"Name: {drug['name']}") print(f"DrugBank ID: {drug['drugbank_id']}") print(f"Type: {drug['type']}") print(f"Groups: {drug['groups']}") print(f"Description: {drug['description'][:200]}...") # Get targets targets_resp = requests.get( f"{BASE_URL}/drugs/{drug['drugbank_id']}/targets", headers=headers ) targets = targets_resp.json() for t in targets: print(f" Target: {t['name']} ({t['gene_name']})") print(f" Actions: {t['actions']}")
Core Concepts
DrugBank Data Categories
| Category | Description | Example |
|---|---|---|
| Drug Info | Name, description, status | Metformin — approved antidiabetic |
| Targets | Protein targets and actions | AMPK — agonist |
| Enzymes | Metabolizing enzymes | CYP3A4 — substrate |
| Transporters | Drug transport proteins | OCT1 — substrate |
| Interactions | Drug-drug interactions | Warfarin + aspirin |
| Pathways | Metabolic/signaling pathways | mTOR pathway |
| Products | Marketed formulations | Glucophage 500mg tablet |
Drug-Drug Interactions
def get_drug_interactions(drugbank_id, headers): """Get drug-drug interactions for a compound""" resp = requests.get( f"{BASE_URL}/drugs/{drugbank_id}/drug-interactions", headers=headers, params={"severity": "major"} ) interactions = resp.json() for ix in interactions[:10]: print(f"Interacts with: {ix['affected_drug']['name']}") print(f" Severity: {ix['severity']}") print(f" Description: {ix['description'][:100]}...") return interactions
Target-Based Drug Discovery
def find_drugs_for_target(gene_name, headers): """Find all drugs targeting a specific protein""" resp = requests.get( f"{BASE_URL}/targets", headers=headers, params={"q": gene_name} ) targets = resp.json() for target in targets: print(f"\nTarget: {target['name']} ({target['gene_name']})") drugs_resp = requests.get( f"{BASE_URL}/targets/{target['id']}/drugs", headers=headers ) drugs = drugs_resp.json() for d in drugs: print(f" {d['name']} | {d['groups']} | {d['actions']}") find_drugs_for_target("EGFR", headers)
Configuration
| Parameter | Description | Default |
|---|---|---|
api_key | DrugBank API authentication key | Required |
api_base_url | API base URL | https://api.drugbank.com/v1 |
result_limit | Max results per query | 25 |
include_withdrawn | Include withdrawn drugs | false |
interaction_severity | Filter interaction severity | None (all) |
Best Practices
-
Use DrugBank IDs for precise lookups. Drug names can be ambiguous — "aspirin" has multiple formulations. Use the DrugBank ID (DB00945) for unambiguous identification across queries.
-
Filter interactions by severity. DrugBank classifies interactions as major, moderate, or minor. For clinical decision support, focus on major interactions. Including all severity levels creates noise for therapeutic analysis.
-
Cross-reference targets with other databases. DrugBank targets map to UniProt accessions. Use these to cross-reference with ChEMBL (bioactivity data), PDB (structural data), and STRING (interaction networks) for comprehensive target analysis.
-
Check drug approval status. DrugBank includes experimental, investigational, and withdrawn drugs alongside approved ones. Filter by
groups(approved, investigational, experimental) to focus on clinically relevant compounds. -
Cache drug data for repeated analyses. Drug information doesn't change frequently. Cache API responses locally for drug repurposing screens or interaction analyses that query the same drugs repeatedly.
Common Issues
API returns 401 for valid credentials. DrugBank API access requires a separate license from the website account. Free academic access may have different endpoints than commercial access. Verify your API key permissions and the correct base URL.
Drug interaction data is incomplete. DrugBank covers well-documented interactions but may miss rare or recently discovered combinations. For critical clinical decisions, cross-reference with FDA drug labels and clinical pharmacology resources.
Target information differs from recent publications. DrugBank is manually curated and may lag behind the latest research. For newly discovered drug-target relationships, check the last update date and supplement with primary literature from PubMed.
Reviews
No reviews yet. Be the first to review this template!
Similar Templates
Full-Stack Code Reviewer
Comprehensive code review skill that checks for security vulnerabilities, performance issues, accessibility, and best practices across frontend and backend code.
Test Suite Generator
Generates comprehensive test suites with unit tests, integration tests, and edge cases. Supports Jest, Vitest, Pytest, and Go testing.
Pro Architecture Workspace
Battle-tested skill for architectural, decision, making, framework. Includes structured workflows, validation checks, and reusable patterns for development.