BindingDB 是专注蛋白-小分子结合亲和力的公开数据库。相比 ChEMBL 覆盖各类生物活性,BindingDB 更聚焦于可测量的结合常数(Ki、Kd、IC50、EC50),并且特别注重与结构数据的关联——很多条目能直接对应到 PDB 结构,这是它做结构-活性联合建模时的独特价值。
规模与特点
| 内容 | 量级 |
|---|---|
| 结合数据点 | 约 300 万条 |
| 化合物 | 约 120 万个 |
| 蛋白靶点 | 约 9,500 个 |
| 可关联 PDB 结构的条目 | 数万条 |
数据来自文献人工提取、专利,以及从 ChEMBL、PubChem 等库整合。与 ChEMBL 有相当大的重叠——两者一起用时必须去重,否则会造成数据泄漏。
获取方式
# 全量下载(TSV,压缩后约几百 MB)
wget https://www.bindingdb.org/bind/downloads/BindingDB_All_202X.tsv.zip
# 按 UniProt ID 取子集
curl "https://bindingdb.org/axis2/services/BDBService/getLigandsByUniprots?\
uniprot=P00533&code=0&response=application/json"
import pandas as pd
cols = ["Ligand SMILES", "Target Name Assigned by Curator or DataSource",
"UniProt (SwissProt) Primary ID of Target Chain",
"Ki (nM)", "IC50 (nM)", "Kd (nM)", "EC50 (nM)",
"PDB ID(s) of Target Chain", "Curation/DataSource",
"Temperature (C)", "pH"]
df = pd.read_csv("BindingDB_All.tsv", sep="\t", usecols=cols,
low_memory=False, on_bad_lines="skip")
建模前的清洗
- 处理不等号:数值列里带
>、<前缀的是删失数据(如>10000),读进来是字符串。必须显式处理:def parse_affinity(v): if pd.isna(v): return None, None s = str(v).strip() if s.startswith(">") or s.startswith("<"): return float(s[1:]), s[0] # 值 + 关系,删失数据单独标记 return float(s), "=" - 不要混用 Ki / Kd / IC50:Ki 和 Kd 是热力学结合常数,IC50 依赖测定条件(底物浓度、酶浓度)。把三者当同一个量训练是常见错误。要么分开建模,要么只用其中一种。
- 换算成 p 值:统一转成 pKi = −log10(Ki[M]),让分布更接近正态,也便于跨数量级比较。
- 与 ChEMBL 去重:两库重叠严重。合并时按「标准化 SMILES + UniProt ID」去重,否则同一条数据可能同时落在训练集和测试集。
- 记录实验条件:温度和 pH 列虽然常缺失,但有值时应保留——不同条件下的结合常数不完全可比。
它的独特价值:结构-活性配对
BindingDB 的 PDB ID(s) 列让你能直接构建「复合物结构 + 实测亲和力」的配对数据集,这正是训练打分函数和结合亲和力预测模型所需要的。
# 筛出有 PDB 关联且有精确 Kd 的条目
mask = df["PDB ID(s) of Target Chain"].notna() & df["Kd (nM)"].notna()
structural = df[mask].copy()
print(f"可用于结构-活性建模的条目:{len(structural)}")
不过要注意,PDB 关联是按靶点链给的,不保证那个 PDB 结构里就结合着这个配体。要构建严格的复合物-亲和力数据集,PDBbind(见 238《PDBbind》)更直接。
许可
BindingDB 数据可免费下载用于学术研究;商业使用前应核对当前的使用条款。它整合了多个来源的数据,不同来源可能带有各自的许可要求。
上手提示
- Ki / Kd / IC50 含义不同,不要混作同一个标签训练;
- 数值列含
><前缀的删失数据,必须显式解析处理; - 与 ChEMBL 重叠严重,合并时务必按标准化结构 + UniProt 去重;
- PDB 关联列是它的特色,但严格的复合物数据集用 PDBbind 更合适。
延伸资源
- 对照数据源:226《ChEMBL》、227《PubChem》、238《PDBbind》;
- DTI 建模:178《DeepPurpose》、246《TDC DTI Group》;
- 结构数据:236《PDB》、237《RCSB PDB》。