[ PROMPT_NODE_26524 ]
Drugbank Database 数据访问
[ SKILL_DOCUMENTATION ]
# DrugBank 数据访问
## 身份验证与设置
### 账户创建
访问 DrugBank 数据需要用户身份验证:
1. 在 go.drugbank.com 创建账户
2. 接受许可协议(学术用途免费,商业用途付费)
3. 获取用户名和密码凭据
### 凭据管理
**环境变量(推荐)**
bash
export DRUGBANK_USERNAME="your_username"
export DRUGBANK_PASSWORD="your_password"
**配置文件**
创建 `~/.config/drugbank.ini`:
ini
[drugbank]
username = your_username
password = your_password
**直接指定**
python
# 直接传递凭据(生产环境不推荐)
download_drugbank(username="user", password="pass")
## Python 包安装
### drugbank-downloader
程序化访问的主要工具:
bash
pip install drugbank-downloader
**要求:** Python >=3.9
### 可选依赖
bash
pip install bioversions # 用于自动检测最新版本
pip install lxml # 用于 XML 解析优化
## 数据下载方法
### 下载完整数据库
python
from drugbank_downloader import download_drugbank
# 下载特定版本
path = download_drugbank(version='5.1.7')
# 返回:~/.data/drugbank/5.1.7/full database.xml.zip
# 下载最新版本(需要 bioversions)
path = download_drugbank()
### 自定义存储位置
python
# 自定义存储前缀
path = download_drugbank(prefix=['custom', 'location', 'drugbank'])
# 存储于:~/.data/custom/location/drugbank/[version]/
### 验证下载
python
import os
if os.path.exists(path):
size_mb = os.path.getsize(path) / (1024 * 1024)
print(f"下载成功: {size_mb:.1f} MB")
## 处理已下载数据
### 无需解压直接打开压缩的 XML
python
from drugbank_downloader import open_drugbank
import xml.etree.ElementTree as ET
# 直接从 zip 文件打开
with open_drugbank() as file:
tree = ET.parse(file)
root = tree.getroot()
### 解析 XML 树
python
from drugbank_downloader import parse_drugbank, get_drugbank_root
# 获取解析后的树
tree = parse_drugbank()
# 直接获取根元素
root = get_drugbank_root()
### CLI 使用
bash
# 使用命令行下载
drugbank_downloader --username USER --password PASS
# 下载最新版本
drugbank_downloader
## 数据格式与版本
### 可用格式
- **XML**: 主要格式,数据最全面
- **JSON*