PDB

PDB 蛋白质数据银行 | 千方病案医数集

来源 wwPDB 联盟(RCSB PDB / PDBe / PDBj / EMDB / BMRB / PDBc)— https://www.wwpdb.org发布时间: 2026-08-04最后更新: 2026-08-04 阅读 2

信息速览

数据集名称PDB
数据类型约21万+结构, 约500GB压缩, X-ray/cryo-EM/NMR
规模分子级数据
接入方式wwPDB 联盟(RCSB PDB / PDBe / PDBj / EMDB / BMRB / PDBc)— https://www.wwpdb.org
AI 就绪度

INFOBOX

数据集名称 PDB(Protein Data Bank)
英文全称 Protein Data Bank
别名 / 简称 PDB、RCSB PDB、wwPDB、蛋白质数据银行
疾病分类 不直接对应单一 ICD-11 编码。覆盖全疾病范围的结构生物学基础:CA00–CA4Z 呼吸系统 / CA80–CA8Z 消化系统 / BD10–BD14 神经系统 / DA00–DA8Z 皮肤 / XH1A0 内分泌 / 2A00–2F9Z 肿瘤(详见 §2.1)
SNOMED CT 123038009 Specimen (specimen) / 257295007 Structure (body structure) / 多疾病靶蛋白映射(详见 §2.1b)
数据模态 结构(三维分子坐标)、文本(元数据与注释)、时序(NMR 构象系综)
AI 任务类型 结构预测验证、分子对接、虚拟筛选、蛋白质工程、结构分类、功能注释、结合位点预测
样本总数 215,000+ 实验确定结构(截至 2026-08),含 ~1,000,000 计算预测结构(CSM,AlphaFold/RoseTTAFold 集成)
数据大小 ~500 GB(压缩全量归档)/ 单条目 5 KB–1 GB(视结构大小与实验数据类型)
数据格式 PDBx/mmCIF(主格式)/ PDB(遗留格式,2012 冻结)/ BinaryCIF(BCIF,Web 压缩)/ XML / PDBML
许可证 Public Domain(公共领域,无版权限制,商业与非商业均可自由使用)
访问级别 开放(无需注册,直接下载)
DUO 标签 NRES
语言 英文(元数据与注释)
首发日期 1971-10(Brookhaven National Laboratory,7 个初始结构)
最后更新 每周三更新(wwPDB 周度发布周期)
发布机构 Worldwide Protein Data Bank(wwPDB)联盟:RCSB PDB(美国)、PDBe(欧洲/EMBL-EBI)、PDBj(日本)、EMDB、BMRB、PDBc(中国,2022 准会员)
官方主页 https://www.rcsb.org/
下载地址 https://files.rcsb.org/(FTP)/ https://data.rcsb.org/(REST API)/ https://www.wwpdb.org/ftp/(全量归档)
DOI 10.1093/nar/gkaa1037(Nucleic Acids Research, 2021)
引用次数 30,000+(Google Scholar,截至 2026-07,含 Berman 2000 / Burley 2021 / wwPDB 2019 等核心论文)
AI 就绪度评分 ⭐⭐⭐⭐⭐(5/5)— 全球结构生物学黄金标准,完整 REST/GraphQL API + Python 客户端 + 统一 mmCIF 格式 + 完善验证体系 + CC0 许可,可直接用于训练与验证
页面状态 published

§0 E-E-A-T 信任声明与免责声明

字段 内容
医学审核者 [千方病案医学编辑部] 交叉审核:§2 医学背景(ICD-11 靶蛋白映射、临床任务定义)、§7 偏倚分析
数据工程审核者 [千方病案医学编辑部] 交叉审核:§4 DAIMS 数据字典、§5 数据划分策略、§6 预处理 Pipeline 和坑点
审核日期 2026-08-04
审核方式 交叉审核
权威论文溯源 1. Berman HM et al. (2000) “The Protein Data Bank.” Nucleic Acids Res 28:235-242.(PDB 奠基论文,30,000+ 引用)<br>2. Burley SK et al. (2021) “RCSB Protein Data Bank: powerful new tools…” Nucleic Acids Res 49:D437-D451.(RCSB PDB 系统论文)<br>3. wwPDB consortium (2019) “Protein Data Bank: the single global archive…” Structure 27:211-217.(wwPDB 联盟白皮书)<br>4. Gore S et al. (2017) “Validation of Structures in the Protein Data Bank.” Structure 25:1916-1927.(验证体系论文)<br>5. Young JY et al. (2017) “OneDep: unified wwPDB system for deposition…” Structure 25:536-545.(OneDep 系统论文)<br>6. Westbrook JD et al. (2022) “PDBx/mmCIF Dictionary…” Structure 30:1220-1230.(格式标准论文)<br>7. Jumper J et al. (2021) “Highly accurate protein structure prediction with AlphaFold.” Nature 596:583-589.(AlphaFold2 以 PDB 为训练集)<br>8. Baek M et al. (2021) “Accurate prediction of protein structures…” Science 373:871-876.(RoseTTAFold 以 PDB 为训练集)

医疗免责声明:本页面提供的医学信息仅供研究和教育目的,不构成医疗建议、诊断或治疗方案。数据集的医学描述基于公开发表的文献,未经逐一临床验证。任何基于该数据集训练的 AI 模型在应用于临床决策前,必须经过独立的临床验证和监管审批。

技术免责声明:本页面的代码示例、预处理建议和基准性能数据基于公开资料整理,不保证在特定环境下的准确性和适用性。使用者应自行验证代码安全性和数据预处理流程的正确性。千方病案医数集不对因使用本页面信息而导致的任何直接或间接损失承担责任。

数据使用合规:PDB 数据以公共领域(Public Domain)许可发布,无使用限制。使用时建议引用原始 deposited structure 的发表文献。PDB 中部分条目可能包含受专利保护的分子结构,使用者应自行核实知识产权状态。

§1 数据集概览

§1.0 📌 30 秒速览

PDB(Protein Data Bank,蛋白质数据银行)是全球唯一统一的经实验验证的生物大分子三维坐标库,由 wwPDB 联盟(RCSB PDB、PDBe、PDBj、EMDB、BMRB、PDBc)维护,自 1971 年在布鲁克海文国家实验室创建以来,已积累 21 万+ 实验确定的蛋白质、核酸及其复合物三维结构。

它的独特价值在于绝对事实基准地位——所有蛋白质折叠 AI 大模型(AlphaFold2、RoseTTAFold、ESMFold)均以 PDB 实验结构为训练集和验证基准。每两个 CASP(Critical Assessment of protein Structure Prediction)评测周期,PDB 中新释放的实验结构就作为盲测金标准评估全球预测方法。一个实验结构的平均获取成本约 10 万美元,整个 PDB 归档的替代成本估计约 200 亿美元。

你可以用它来:训练或验证蛋白质结构预测模型(CASP 基准)、进行基于结构的药物虚拟筛选与分子对接(AutoDock Vina)、或者探索蛋白质折叠规律与结构-功能关系。

§1.1 摘要

PDB 创建于 1971 年,最初仅含 7 个蛋白质结构(主要由 X 射线晶体学测定)。经过 55 年的发展,它已成为全球结构生物学数据的单一权威归档库。2003 年,wwPDB 联盟成立,由 RCSB PDB(美国)、PDBe(欧洲)、PDBj(日本)联合管理,后加入 EMDB(电子显微镜数据库)、BMRB(生物磁共振数据库)和 PDBc(中国,2022 年准会员)。所有 deposited structures 经 OneDep 统一系统进行生物策展和验证后公开发布。

PDB 的核心创新在于实验验证 + 统一格式 + 公共领域三位一体:每个结构都基于实际实验测量(X 射线晶体学、冷冻电镜、NMR 光谱等),采用 PDBx/mmCIF 统一格式存储并附完整元数据,且以 CC0 公共领域许可完全开放获取。2022 年起,RCSB PDB 进一步集成约 100 万计算预测结构(CSM,来自 AlphaFold DB 和 ModelArchive),实现实验结构与预测结构的并置检索。

§1.2 战略价值分析

维度一:AI 蛋白质折叠的"训练集 + 考试卷"

PDB 是蛋白质结构预测 AI 革命的物质基础。AlphaFold2 在 CASP14 中取得 0.96 Å RMSD95 的突破性精度,其训练数据完全来自 PDB 中的实验结构。RoseTTAFold、ESMFold 同样以 PDB 为训练核心。CASP 评测每两年使用 PDB 中新释放但尚未公开的结构作为盲测靶标,是蛋白质折叠领域公认的"奥林匹克竞赛"。没有 PDB 的 55 年积累,就没有 AlphaFold 的成功——这一事实使 PDB 成为 AI for Science 最具说服力的"数据即基础设施"范例。

维度二:结构生物学药物发现的"坐标系"

PDB 中每一个实验结构都是药物靶标的三维蓝图。基于结构的药物发现(SBDD)流程——从靶标结构获取、结合位点识别、虚拟筛选到分子对接——完全建立在 PDB 数据之上。AutoDock Vina、Glide、Gold 等对接工具均以 PDB 结构为输入。FDA 批准的新药中,超过 80% 涉及至少一个 PDB 结构辅助的药物设计阶段。PDB 的公共领域许可使得商业药企可以免费获取靶标结构,这是结构生物学药物发现得以民主化的制度基础。

维度三:FAIR 原则的全球标杆

PDB 是 FAIR(Findable, Accessibility, Interoperability, Reusability)数据原则的最早践行者之一。每个结构拥有唯一持久标识符(PDB ID),统一格式(mmCIF),开放访问(无注册门槛),公共领域许可(CC0)。wwPDB 的 OneDep 系统确保全球所有 deposition 经统一策展与验证流程——无论从哪个 wwPDB 中心提交,最终进入同一个全球归档库。这种"单一归档、多中心服务"的治理模式已成为生物医学数据基础设施的黄金标准。

§1.3 横向对比

数据集 样本量 模态 标注方式 核心差异化
PDB 215,000+ 实验三维结构 X-ray/cryo-EM/NMR 实验测定 实验验证黄金标准,AI 训练 Ground Truth
AlphaFold DB 241,000,000+ 预测三维结构 AlphaFold2/3 计算 全蛋白质组覆盖,pLDDT 置信度标注
ESM Metagenomic Atlas 772,000,000+ 预测三维结构 ESMFold 计算 宏基因组覆盖,速度快但精度略低
ModelArchive 10,000+ 预测三维结构 多种计算方法 社区计算模型归档(含 RoseTTAFold)
SWISS-MODEL Repository 2,000,000+ 同源建模结构 SWISS-MODEL 管线 自动化同源建模,整合 UniProt
CATH 500,000+ 结构分类 域级别结构分类 PDB 结构的进化分类体系
SCOP 150,000+ 结构分类 域级别结构分类 蛋白质结构超家族分类

§1.4 版本演进时间轴

时间 事件
1971-10 PDB 在 Brookhaven National Laboratory 创建,初始 7 个结构
1976 PDB 格式固定列宽定义确立(Version 1.0)
1989 NMR 结构首次进入 PDB
1992 PDB 从磁带分发转向 FTP/CD-ROM 分发
1998 RCSB PDB 接管 PDB 管理(NSF 资助,Rutgers 大学主导)
2000 Berman et al. Nucleic Acids Res 28:235-242 发表,PDB 格式化描述(30,000+ 引用)
2003 wwPDB 联盟成立(RCSB PDB + PDBe + PDBj)
2007 PDBx/mmCIF 成为 wwPDB 工作格式
2008 wwPDB Validation Task Forces 成立(X-ray, NMR, EM)
2012-11 PDB 遗留格式冻结(Format Content Guide v3.30,不再扩展)
2014 PDBx/mmCIF 成为 PDB 标准归档分发格式
2016 OneDep 统一 deposition/biocuration/validation 系统上线
2017 Gore et al. 验证体系论文发表;EM 结构爆发增长
2019 wwPDB 联盟白皮书发表;PDBc(中国)加入为准会员
2020 CASP14:AlphaFold2 以 0.96 Å RMSD95 震惊结构生物学界
2021 AlphaFold2/RoseTTAFold 论文发表;RCSB PDB 集成 ~100 万 CSM
2022 PDB 结构总量突破 200,000;CSM 与实验结构并置检索
2023 PDB 贡献者获 2024 诺贝尔化学奖(Hassabis + Jumper)
2024 全年 15,280 个新结构发布(其中 cryo-EM 5,787 个)
2025 全年 17,573 个新结构发布(cryo-EM 7,234 个,首次超越 X-ray 年增量)
2026-08 PDB 总量达 215,000+ 实验结构;计划 2027-07 过渡到 12 字符 PDB ID

§1.5 典型 AI 应用场景

场景 描述
蛋白质结构预测训练 使用 PDB 实验结构作为训练集和验证集,训练 AlphaFold/RoseTTAFold 类预测模型
分子对接与虚拟筛选 基于 PDB 靶标结构进行大规模化合物虚拟筛选,加速药物发现
CASP 盲测评估 使用 PDB 新释放但未公开的结构作为盲测靶标,评估全球结构预测方法
蛋白质工程与设计 基于 PDB 中已知结构的结构-功能关系,设计新酶或改造现有蛋白
结构分类与功能注释 使用 PDB 结构训练分类模型(SCOP/CATH 级别),预测新序列的功能
结合位点预测 从 PDB 蛋白-配体复合物中学习结合位点特征,预测新蛋白的药物结合位点
蛋白质-蛋白质相互作用 从 PDB 复合物结构中学习界面特征,预测蛋白质相互作用网络
医学教育与可视化 使用 PDB 结构进行 3D 可视化教学,帮助学生理解蛋白质结构与疾病机制

§2 结构生物学背景

§2.1 ICD-11 疾病关联映射

PDB 不直接对应单一疾病分类,但其结构数据支撑全疾病范围的靶蛋白研究。以下为 PDB 结构覆盖的主要疾病领域与 ICD-11 映射:

ICD-11 编码 疾病类别 代表性 PDB 靶蛋白 PDB 示例 临床意义
2A00–2F9Z 肿瘤 p53, KRAS, EGFR, BRAF, BCR-ABL 1TUP, 6OIM, 1IVO, 1M17 靶向抗癌药物设计的核心靶标
CA00–CA4Z 呼吸系统疾病 ACE2, SARS-CoV-2 Spike, CFTR 6VW1, 6VXX, 6MSM COVID-19 药物与疫苗开发
BD10–BD14 神经退行性疾病 Aβ, tau, α-synuclein, SOD1 1IYT, 5MG4, 1XQ8, 2V0A 阿尔茨海默病与帕金森病机制
CA80–CA8Z 消化系统疾病 HCV NS3/4A, HBV core 1CU1, 1QGT 肝炎抗病毒药物设计
BD30–BD3Z 神经系统通道病 Nav1.1, Cav3.1, nAChR 6AGX, 6KZO, 2BG9 癫痫与离子通道病
XH1A0 内分泌代谢病 Insulin receptor, GLP-1R, PPARγ 1IR3, 5VAI, 1FM6 糖尿病药物靶标
DA00–DA8Z 皮肤病 EGFR, BRAF 1IVO, 1M17 银屑病与皮肤癌靶标
1A00–1H0Z 感染性疾病 HIV-1 protease, TB DHFR,疟疾 PfHRP2 1HVR, 1DF7, 3RGG 抗感染药物设计

§2.1b SNOMED CT 映射

PDB 应用领域 ICD-11 SNOMED CT SNOMED CT 术语
蛋白质结构 257295007 Structure (body structure)
药物靶标 123038009 Specimen (specimen)
酶活性位点 713197008 Enzyme (substance)
受体结合 67866001 Receptor (substance)
病毒蛋白 1A00 419989004 Viral structure
肿瘤抑制因子 2A00 443961001 Tumor suppressor gene product

§2.2 结构生物学核心概念

概念 描述 PDB 中的体现
一级结构 氨基酸序列(共价肽键连接) SEQRES 记录 / _entity_poly
二级结构 α-螺旋、β-折叠、无规卷曲 HELIX/SHEET 记录 / DSSP 标注
三级结构 单链完整三维折叠 ATOM 坐标 / _atom_site
四级结构 多链组装体 biological_assembly / oligomeric state
蛋白质折叠 氨基酸序列 → 三维结构的映射 CASP 评测的核心问题
Anfinsen 法则 蛋白质天然结构由序列决定(热力学稳定态) PDB 实验结构验证了这一法则
构象系综 NMR 测定的多个构象状态 NMR 条目的 multiple models
B-factor 原子热运动参数(温度因子) ATOM 记录中的 B_iso_or_equiv
占有率 原子在晶体中的占据比例 ATOM 记录中的 occupancy 字段
分辨率 实验数据能区分的最小结构特征 X-ray: <1 Å–4.5 Å; EM: 1.2 Å–8 Å

§2.3 实验方法对比

PDB 中的结构通过三种主要实验方法测定,每种方法有其独特的优势与局限:

方法 原理 分辨率范围 样本要求 PDB 占比(2026) 优势 局限
X 射线晶体学 蛋白质晶体的 X 射线衍射 0.5–4.5 Å 可结晶蛋白,毫克级纯品 ~87%(185,000+) 原子级精度,成熟流程 需结晶(膜蛋白困难);静态结构;晶体堆积效应
冷冻电镜 (cryo-EM) 冷冻样品的电子衍射成像 1.2–8 Å 纯化蛋白复合物 ~10%(21,000+) 无需结晶;可观察大复合物;多种构象 分辨率偏低(早期);需要大分子量(>100 kDa 优势)
NMR 光谱 磁共振测定原子间距离约束 2–3 Å(等效) <40 kDa 可溶性蛋白 ~2.5%(5,500+) 溶液态测量;构象动力学信息 分子量限制;需要同位素标记;耗时
中子衍射 中子束衍射 1.5–3 Å 大晶体 <0.1% 氢原子可见 极少中子源;需大晶体
多方法结合 以上方法组合 视组合而定 多条件 <0.5% 互补验证 复杂流程

§2.4 蛋白质结构层次与 PDB 数据对应

氨基酸序列 (Sequence)
    │  ← SEQRES 记录 / _entity_poly.pdbx_seq_one_letter_code
    ▼
二级结构 (Secondary Structure)
    │  ← HELIX/SHEET 记录 / _struct_conf
    ▼
三级结构 (Tertiary Structure)
    │  ← ATOM 坐标 (x, y, z, occupancy, B-factor)
    ▼
四级结构 (Quaternary Structure)
    │  ← biological_assembly / _struct_biol
    ▼
超分子复合物 (Supramolecular Complex)
       ← REMARK 350 / _pdbx_struct_assembly

§2.5 临床任务定义

任务 描述 PDB 的角色
靶标结构获取 获取疾病相关蛋白的三维结构 PDB 提供实验确定的靶标结构
结合位点识别 识别蛋白表面的药物结合口袋 PDB 蛋白-配体复合物提供已知结合位点
虚拟筛选 大规模化合物库筛选潜在药物 PDB 靶标结构作为对接受体
先导化合物优化 基于结构优化先导化合物亲和力与选择性 PDB 中同源蛋白结构辅助选择性设计
耐药机制研究 理解突变如何影响药物结合 PDB 中野生型与突变体结构对比
蛋白质工程 设计具有新功能的酶或抗体 PDB 结构提供设计模板

§2.6 金标准体系

数据类型 标注方式 标注者 金标准性质
X-ray 结构 电子密度图 + 原子坐标 结构生物学家 + wwPDB 策展 实验验证绝对标准
cryo-EM 结构 冷冻密度图 + 原子模型 结构生物学家 + wwPDB 策展 实验验证标准(分辨率依赖)
NMR 结构 距离约束 + 构象系综 NMR 光谱学家 + wwPDB 策展 实验验证标准(构象系综)
验证报告 几何质量 + 拟合质量 wwPDB Validation Task Force 标准化质量评估
生物组装体 寡聚态判定 wwPDB 策展 + EPPIC 功能性组装体注释

§2.7 wwPDB 验证体系详解

wwPDB 验证体系是 PDB 数据质量的制度保障,由三个方法学专项专家组(Validation Task Forces, VTF)制定标准:

验证维度 指标 说明 理想值
几何质量 Clashscore 原子间不合理碰撞数量(每 1000 原子) <5(PDB 中位数 ~3)
几何质量 Ramachandran outliers 骨架二面角离群残基比例 <0.5%
几何质量 侧链 rotamer outliers 侧链构象离群比例 <1%
几何质量 Cβ outliers Cβ 原子位置偏差 <0.5%
拟合质量 RSRZ (X-ray) 实时密度拟合 Z 分数 <5% 残基 RSRZ > 2
拟合质量 Q-score (EM) 原子与密度图拟合质量 >0.7
实验数据 R-work / R-free 晶体学残差因子 R-free < 0.25(2 Å 分辨率)
实验数据 I/σ(I) 衍射数据信噪比 >2(最高分辨率壳)
实验数据 Completeness 衍射数据完整性 >90%
实验数据 CC1/2 (EM) 半图相关系数 >0.5(最高分辨率壳)

§2.8 PDB 对结构生物学的 8 维变革

维度 变革前 变革后 PDB 的贡献
数据共享 个人实验室散存数据 全球单一归档库 1971 年首创公共结构数据库
格式统一 各实验室自定义格式 PDBx/mmCIF 国际标准 定义并维护 mmCIF 字典
质量标准 无统一验证 wwPDB 标准化验证报告 VTF 制定验证标准
AI 训练 无大规模结构数据集 AlphaFold 等模型以 PDB 为训练集 55 年积累的高质量结构
药物发现 实验筛选为主 基于结构的理性设计 提供靶标三维结构蓝图
教育普及 结构图在论文中 3D 交互可视化(Mol*) PDB-101 教育平台
数据整合 结构数据孤立 与 UniProt/GO/PubMed 等整合 外部资源交叉引用
预测验证 无系统评估 CASP 双年盲测 提供盲测金标准

§3 技术规格

§3.0 版本抉择矩阵

你的需求 推荐版本 大小 理由
单个结构可视化 / 分析 单个 PDB 文件 5 KB–50 MB 直接从 RCSB.org 下载,PDB 或 mmCIF 格式
大规模结构比对 / 搜索 全量 PDB 归档 (FTP) ~500 GB 压缩 获取全部 21 万+ 结构进行批量分析
API 查询元数据 Data API (REST/GraphQL) 按需 无需下载文件,直接查询结构元数据
AI 训练数据集 PDB + AFDB 组合 ~500 GB + ~23 TiB 实验结构训练 + 预测结构扩充
虚拟筛选 / 对接 靶标结构 + 配体复合物 视靶标数量 选取高分辨率 X-ray 结构(<2.5 Å)
教学演示 PDB-101 教育资源 <1 GB 预处理的教育友好格式与可视化

§3.1 数据类型

数据类型 描述 格式 来源
原子坐标 蛋白质/核酸/配体原子的 (x, y, z) 坐标 PDB / mmCIF 实验测定
实验数据 结构因子(X-ray)/ 密度图(EM)/ 约束(NMR) MTZ / CCP4 / NMR-STAR 实验原始数据
序列信息 聚合物实体的氨基酸/核苷酸序列 FASTA / mmCIF depositor 提供
元数据 实验方法、分辨率、文献、作者、日期 mmCIF / JSON depositor + wwPDB
验证报告 几何质量、拟合质量、离群值列表 PDF / XML wwPDB 自动生成
化学组分 非标准残基与配体的化学定义 mmCIF / SDF / PDB Chemical Component Dictionary wwPDB CCD
生物组装体 功能性寡聚态组装体 PDB / mmCIF wwPDB 策展
注释整合 UniProt / GO / PubMed / CATH / SCOP 交叉引用 JSON (API) RCSB PDB 整合

§3.2 数据格式

格式 状态 特点 使用场景
PDBx/mmCIF ✅ 主格式(2014 起) 无原子/残基/链数量限制;字典定义;XML 可解析 wwPDB 归档标准,未来唯一格式
PDB(遗留格式) ⚠️ 冻结(2012-11) 固定列宽;限制 62 链 / 99,999 原子记录 遗留软件兼容;2027 后逐步淘汰
BinaryCIF (BCIF) ✅ 新兴格式 二进制压缩,Web 传输高效 Mol* 可视化、ModelServer API
PDBML (XML) ✅ 可选格式 XML 语法,机器可读 程序化解析,XSLT 处理
MTZ ✅ 结构因子 晶体学反射数据格式 X-ray 结构因子存储
CCP4/MRC ✅ 密度图 三维密度图格式 cryo-EM / X-ray 电子密度
NMR-STAR ✅ NMR 数据 NMR 约束与化学位移 NMR 结构与约束
SDF/MOL ✅ 化学组分 小分子 2D/3D 结构 配体与化学组分定义

⚠️ 格式迁移警告:wwPDB 计划于 2027-07-21 完全过渡到 12 字符 PDB ID(如 pdb_00001abc)和 PDBx/mmCIF 格式。届时,遗留 PDB 格式文件将无法为新增条目生成。所有依赖 PDB 固定列宽格式的软件应尽快迁移至 mmCIF 解析器。

§3.3 访问渠道

渠道 URL 方式 适用场景
RCSB PDB 网站 https://www.rcsb.org/ Web 浏览器 搜索、可视化、下载单个结构
PDBe 网站 https://www.ebi.ac.uk/pdbe/ Web 浏览器 欧洲镜像,含 PDBe-KB 注释
PDBj 网站 https://pdbj.org/ Web 浏览器 日本镜像,含 Omokage 搜索
FTP 归档 https://files.rcsb.org/ FTP/HTTPS 批量 全量下载或大规模批量处理
Data API (REST) https://data.rcsb.org/rest/v1/ HTTP GET 按 PDB ID 查询元数据(JSON)
Data API (GraphQL) https://data.rcsb.org/graphql HTTP POST 灵活查询跨层级数据
Search API https://search.rcsb.org/ HTTP GET/POST 布尔逻辑高级搜索(JSON 查询语言)
ModelServer API https://models.rcsb.org/ HTTP 结构子集(BCIF 格式)
Python 客户端 rcsb-api (pip) Python 包 编程化搜索与数据获取

§3.4 RCSB PDB Data API 详解

RCSB PDB 提供 Data API 和 Search API 两套主要 API,支持程序化访问 PDB 归档的全部数据:

API 接口 用途 示例
Data API (REST) GET /rest/v1/core/entry/{pdb_id} 获取单个条目全部元数据 GET /rest/v1/core/entry/4HHB
Data API (REST) GET /rest/v1/core/polymer_entity/{pdb_id}/{entity_id} 获取聚合物实体信息 GET /rest/v1/core/polymer_entity/4HHB/1
Data API (GraphQL) POST /graphql 灵活查询多个层级数据 见 §6 代码示例
Search API POST /search 布尔逻辑高级搜索 见 §6 代码示例
Search API GET /search URL 参数搜索 ?query=...&amp;return_type=entry

核心数据对象层级:

Entry (PDB ID)
├── Polymer Entity (protein/DNA/RNA)
│   └── Polymer Entity Instance (chain)
├── Non-polymer Entity (ligand/ion/cofactor)
│   └── Non-polymer Entity Instance (chain)
├── Branched Entity (carbohydrate)
│   └── Branched Entity Instance (chain)
└── Assembly (biological assembly)
    └── Assembly Instance

§3.5 PDB 遗留格式文件结构

虽然 PDB 遗留格式已被冻结,但由于大量遗留软件仍依赖该格式,以下为关键记录类型说明:

记录类型 列位置 字段 说明
HEADER 1–6 record name 分类、发布日期、PDB ID
TITLE 1–6 record name 结构标题
COMPND 1–6 record name 分子描述
SOURCE 1–6 record name 生物来源
SEQRES 1–6 record name 氨基酸序列
HELIX 1–6 record name α-螺旋定义
SHEET 1–6 record name β-折叠定义
ATOM 1–6 record name 原子坐标记录
ATOM 7–11 serial 原子序号
ATOM 13–16 name 原子名称
ATOM 17 altLoc 备选位置标识
ATOM 18–20 resName 残基名称
ATOM 22 chainID 链标识符
ATOM 23–26 resSeq 残基序号
ATOM 31–38 x X 坐标 (Å)
ATOM 39–46 y Y 坐标 (Å)
ATOM 47–54 z Z 坐标 (Å)
ATOM 55–60 occupancy 占有率
ATOM 61–66 tempFactor 温度因子 (B-factor)
HETATM 1–6 record name 非标准残基/配体原子
REMARK 1–6 record name 注释信息(分辨率、生物组装体等)
TER 1–6 record name 链终止符
END 1–3 record name 文件结束

§3.6 wwPDB OneDep 系统

OneDep 是 wwPDB 的统一 deposition/biocuration/validation 系统,所有 PDB 结构均通过该系统提交与发布:

阶段 操作 参与者 时间
1. 提交 上传坐标与实验数据 depositor 1–2 小时
2. 预验证 生成 Preliminary 验证报告 OneDep 自动 分钟级
3. 生物策展 检查一致性、完整性与注释 wwPDB 策展人 1–2 周
4. 验证报告 生成 Confidential 验证报告 OneDep 自动 策展后
5. depositor 审核 确认或修改 depositor depositor 控制
6. 发布 公开访问 OneDep 自动 按 depositor 指定日期

§3.7 PDB 生态系统工具

工具 类型 功能 链接
Mol* 可视化 3D 结构可视化与交互分析 https://molstar.org/
PyMOL 可视化 高质量结构渲染与动画 https://pymol.org/
ChimeraX 可视化 UCSF 结构分析套件 https://www.rbvi.ucsf.edu/chimerax/
COOT 建模 晶体学模型构建与密度拟合
AutoDock Vina 对接 分子对接与虚拟筛选 https://vina.scripps.edu/
BioPython 编程库 Python 结构生物信息学 https://biopython.org/
Biopython.PDB 编程库 PDB 文件解析与结构操作
Gemmi 编程库 mmCIF/PDB 文件高效解析 https://github.com/project-gemmi/gemmi
Foldseek 搜索 3D 结构相似性快速搜索 https://search.foldseek.com/
DSSP 标注 二级结构自动标注
MolProbity 验证 几何质量评估 http://molprobity.biochem.duke.edu/
PDBe-KB 注释 功能位点与注释整合 https://www.ebi.ac.uk/pdbe/kb/

§3.8 深度溯源链

实验样本 (蛋白质表达/纯化)
    │
    ▼
实验数据采集 (X-ray 衍射 / cryo-EM 成像 / NMR 光谱)
    │
    ├── 衍射数据 (MTZ) ──→ 电子密度图 (CCP4/MRC)
    ├── 显微照片 (movie) ──→ 2D 类平均 ──→ 3D 密度图 (CCP4/MRC)
    └── NMR 光谱 ──→ 距离约束 (NMR-STAR)
    │
    ▼
结构解析与精修 (Phenix / Refmac / CCP4 / ISOLDE)
    │
    ▼
原子坐标模型 (.pdb / .cif)
    │
    ▼
OneDep deposition + wwPDB biocuration + validation
    │
    ├── PDB ID 分配 (4 字符)
    ├── 验证报告生成 (PDF)
    └── 外部资源整合 (UniProt / GO / PubMed / CATH / SCOP)
    │
    ▼
公开发布 (PDBx/mmCIF + PDB + BCIF 格式)
    │
    ├── RCSB PDB (www.rcsb.org)
    ├── PDBe (www.ebi.ac.uk/pdbe)
    ├── PDBj (pdbj.org)
    └── FTP 归档 (files.rcsb.org)

§4 数据结构详解

§4.0 目录树预览

pdb_archive/                          # wwPDB FTP 归档根目录
├── pdb/                              # 遗留 PDB 格式文件
│   ├── 00/                           # PDB ID 前两位为子目录
│   │   ├── 101m.pdb
│   │   └── ...
│   ├── 1a/                           # 如 1abc → 1a/
│   │   ├── 1abc.pdb
│   │   └── ...
│   └── ...
├── mmCIF/                            # PDBx/mmCIF 格式文件(主格式)
│   ├── 00/
│   │   ├── 101m.cif
│   │   └── ...
│   └── ...
├── structures/divided/               # 按类型分目录
│   ├── pdb/
│   ├── mmCIF/
│   └── ...
├── data/structures/                  # 完整归档
│   └── divided/
│       ├── pdb/
│       ├── mmcif/
│       └── ...
├── validation_reports/               # 验证报告
│   ├── 00/
│   │   ├── 101m/
│   │   │   ├── 101m_validation.pdf
│   │   │   └── 101d_validation.xml
│   │   └── ...
│   └── ...
├── sequence/                         # FASTA 序列
│   ├── fastas/
│   └── ...
└── compatibility/                    # 其他格式
    ├── pdbml/                        # PDBML (XML)
    └── ...

§4.1 PDB 条目标识系统

标识符 格式 示例 说明
PDB ID 4 字符(数字+字母) 4HHB 唯一持久标识符,不重新分配
PDB ID(扩展) 12 字符 pdb_00004hhb 2027-07 计划过渡的新格式
CSM ID AF_/MA_ 前缀 AF_AFP44795F1 计算预测结构标识
Entity ID PDB_ID + 实体序号 4HHB_1 聚合物/非聚合物实体
Assembly ID PDB_ID + 组装序号 4HHB_1 生物组装体
Chain ID (asym) PDB_ID + asym ID 4HHB_A 链实例
Chem Comp ID 3 字符代码 HEM 化学组分(配体/修饰)

§4.2 单个 PDB 条目组件

组件 格式 内容 大小
坐标文件 (PDB) .pdb 原子坐标 + 元数据 5 KB–50 MB
坐标文件 (mmCIF) .cif 完整坐标 + 扩展元数据 10 KB–100 MB
结构因子 (X-ray) .mtz 衍射反射数据 100 KB–1 GB
密度图 (EM) .ccp4/.mrc 三维电子密度 10 MB–5 GB
验证报告 .pdf/.xml 质量评估 500 KB–5 MB
序列文件 .fasta 聚合物序列 <1 KB
化学组分定义 .cif/.sdf 配体化学定义 <10 KB
生物组装体 .pdb/.cif 功能性寡聚态 视组装体大小
NMR 约束 .mr/.str NMR 距离约束 10 KB–1 MB

§4.3 PDBx/mmCIF 文件结构

# PDBx/mmCIF 文件示例 (4HHB)

#  入口级元数据 
_entry.id   4HHB
_database_2.database_id  PDB  4HHB

#  标题与文献 
_struct.title  "THE CRYSTAL STRUCTURE OF HUMAN DEOXYHAEMOGLOBIN..."
_citation.year  1975

#  实验方法 
_exptl.method  ''''''''''''''''''''''''''''''''X-RAY DIFFRACTION''''''''''''''''''''''''''''''''
_exptl.crystal.diffrn_resolution_high  1.74

#  晶胞参数 
_cell.entry_id  4HHB
_cell.length_a  63.150
_cell.length_b  83.590
_cell.length_c  53.800
_cell.angle_alpha  90.00
_cell.angle_beta  99.34
_cell.angle_gamma  90.00

#  聚合物实体 
_entity.id  1
_entity.type  polymer
_entity_poly.type  polypeptide(L)
_entity_poly.seq_one_letter_code_can  VLSPADKTNVKAAW...

#  原子坐标 
loop_
_atom_site.group_PDB
_atom_site.id
_atom_site.type_symbol
_atom_site.label_atom_id
_atom_site.label_comp_id
_atom_site.label_asym_id
_atom_site.Cartn_x
_atom_site.Cartn_y
_atom_site.Cartn_z
_atom_site.occupancy
_atom_site.B_iso_or_equiv
ATOM  1  N  N  VAL  A  6.204  16.869  4.854  1.00  49.05
ATOM  2  C  CA VAL  A  6.913  17.759  4.607  1.00  43.14
...

§4.4 DAIMS 标准化数据字典

字段名 数据类型 说明 示例值 AI 用途 观测误差 信息性缺失编码 取值范围
pdb_id string (4 char) PDB 标识符 4HHB 结构索引 1aaa–zzzz
method enum 实验方法 X-RAY DIFFRACTION 方法分层 X-RAY / EM / NMR
resolution float (Å) 分辨率 1.74 质量过滤 ±0.1 Å ? (NMR 无分辨率) 0.5–8.0
deposition_date date 提交日期 1975-03-14 时效分析 1971–至今
release_date date 发布日期 1975-03-14 时效分析 1971–至今
atom_count integer 原子总数 4516 规模评估 10–1,000,000+
polymer_entity_count integer 聚合物实体数 4 复杂度评估 1–100+
nonpolymer_entity_count integer 非聚合物实体数 4 (HEM) 配体分析 0–500+
clashscore float 碰撞分数 3.2 质量评估 ±0.5 0–100+
r_work float R-work 0.164 X-ray 质量评估 ±0.01 0.05–0.35
r_free float R-free 0.198 X-ray 质量评估 ±0.01 0.10–0.40
ramachandran_favored float (%) Ramachandran 有利区比例 98.5 几何质量评估 ±0.5% 70–100
b_factor_mean float 平均 B-factor 29.8 灵活性评估 ±2.0 5–100
molecular_weight float (kDa) 分子量 64.5 规模评估 0.5–10,000+
organism_scientific_name string 来源物种 Homo sapiens 物种过滤 NCBI Taxonomy
uniprot_id string UniProt 交叉引用 P68871 序列整合 null (无映射) UniProt AC

§4.5 数据覆盖统计

维度 数量 说明
总实验结构 215,000+ 截至 2026-08
X-ray 结构 ~185,000 占 ~87%
cryo-EM 结构 ~21,000 占 ~10%,增速最快
NMR 结构 ~5,500 占 ~2.5%,逐年下降
物种覆盖 10,000+ 从病毒到人类
人类蛋白结构 ~60,000+ 约覆盖人类蛋白组的 30%
酶分类覆盖 7 大类全覆盖 EC 1–7
SCOP 分类覆盖 ~3,000+ 超家族 已知折叠模式全覆盖
年增量(2025) 17,573 其中 cryo-EM 7,234
PDB ID 空间 4 字符(~400K 可用) 2027 过渡到 12 字符
验证报告覆盖率 100% 所有 X-ray/NMR/EM 条目
文献引用 200,000+ 论文 涵盖 Nature/Science/Cell 等

§4.6 不覆盖的数据类型

数据类型 说明 替代资源
未解析蛋白结构 无法结晶或太小的蛋白 AlphaFold DB(预测结构)
内在无序区 (IDR) 实验难以捕获的柔性区域 pLDDT <50 的 AFDB 区域
蛋白质动力学 静态结构不含时间维度 分子动力学模拟(GROMACS/AMBER)
翻译后修饰全谱 deposited structures 可能仅含部分修饰 UniProt PTM 注释
体内构象状态 体外实验条件可能不同于生理环境 整合结构生物学方法
原位结构 细胞内天然环境结构 cryo-ET(冷冻电子断层扫描)

§5 数据划分与使用建议

§5.1 CASP 评测划分

CASP(Critical Assessment of protein Structure Prediction)是蛋白质结构预测领域的金标准评测,每两年举办一届,使用 PDB 中新解析但尚未公开的结构作为盲测靶标:

CASP 届次 年份 靶标数 关键里程碑 冠军方法
CASP1 1994 33 评测体系建立 同源建模
CASP5 2002 67 蛋白质复合物预测引入
CASP10 2012 100+ 模板质量评估标准化
CASP12 2016 80+ 接触图预测突破 RaptorX-Contact
CASP13 2018 104 AlphaFold 首次参赛(接触图) AlphaFold (CASP13 版)
CASP14 2020 87 AlphaFold2 RMSD95 0.96 Å 革命性突破 AlphaFold2
CASP15 2022 120+ AlphaFold2-Multimer 复合物预测 AlphaFold-Multimer
CASP16 2024 150+ RNA 结构预测 + 配体结合位点 AlphaFold3

§5.2 AI 训练推荐划分策略

策略 训练集 验证集 测试集 适用场景
CASP 留出法 CASP14 之前发布的 PDB 结构 CASP14 靶标 CASP15 靶标 蛋白质结构预测模型评估
时间序列划分 2024-01 之前发布 2024 H1 发布 2024 H2 发布 避免数据泄漏的时间分割
序列一致性 <30% 非冗余子集(CD-HIT 30%) 随机 10% 随机 10% 避免同源序列泄漏
分辨率分层 <2.0 Å 高质量结构 2.0–2.5 Å >2.5 Å 质量分层训练
方法分层 X-ray 结构 cryo-EM 结构 NMR 结构 跨方法泛化评估

§5.3 分辨率分布与质量分层

分辨率范围 结构数量 质量等级 推荐用途
<1.0 Å ~1,500 超高精度 氢原子可见,药物设计首选
1.0–1.5 Å ~15,000 高精度 原子级分析,配体对接
1.5–2.0 Å ~55,000 中高精度 通用结构分析
2.0–2.5 Å ~60,000 中精度 结构比对,功能注释
2.5–3.0 Å ~35,000 中低精度 大致折叠分析
3.0–4.0 Å ~25,000 低精度 仅骨架可信赖
>4.0 Å ~8,000 极低精度 仅域级别拓扑
NMR (无分辨率) ~5,500 溶液态系综 动力学分析

§5.4 跨数据集整合策略

整合目标 数据源 方法 应用场景
序列-结构映射 PDB + UniProt SIFTS 映射 将序列变异映射到结构位置
结构-功能注释 PDB + GO + EC RCSB PDB 整合 功能注释预测训练
结构-疾病关联 PDB + ClinVar + OMIM 变异位置映射 致病变异结构效应分析
实验-预测对比 PDB + AlphaFold DB 结构比对 (TM-score/RMSD) 预测质量评估
结构-配体关联 PDB + ChEMBL + BindingDB 配体相似性搜索 药物-靶标相互作用预测
结构分类整合 PDB + CATH + SCOP 域级别映射 蛋白质折叠分类训练

§6 AI 就绪指南

§6.1 快速上手:RCSB PDB Search API + 结构下载

# ========================================
# PDB 快速上手 — Python 版
# 环境要求: requests, biopython (可选)
#
# ⚠️ 无需本地数据下载,直接通过 RCSB PDB API 访问
#   所有数据通过 https://data.rcsb.org/ 和 https://search.rcsb.org/ 获取
# ========================================

import requests
import json

#  1. 搜索 PDB 结构 
# 示例:搜索分辨率 < 2.0 Å 的人类 p53 X-ray 结构

search_url = "https://search.rcsb.org/rcsbsearch/v2/query"
query = {
    "query": {
        "type": "group",
        "logical_operator": "and",
        "nodes": [
            {
                "type": "terminal",
                "service": "text",
                "parameters": {
                    "attribute": "exptl.method",
                    "operator": "exact_match",
                    "value": "X-RAY DIFFRACTION"
                }
            },
            {
                "type": "terminal",
                "service": "text",
                "parameters": {
                    "attribute": "rcsb_entry_info.resolution_combined",
                    "operator": "less_or_equal",
                    "value": 2.0
                }
            },
            {
                "type": "terminal",
                "service": "text",
                "parameters": {
                    "attribute": "rcsb_entity_source_organism.taxonomy_lineage.name",
                    "operator": "exact_match",
                    "value": "Homo sapiens"
                }
            },
            {
                "type": "terminal",
                "service": "full_text",
                "parameters": {
                    "value": "p53"
                }
            }
        ]
    },
    "return_type": "entry",
    "request_options": {
        "sort": [
            {
                "sort_by": "rcsb_entry_info.resolution_combined",
                "direction": "asc"
            }
        ],
        "paginate": {
            "start": 0,
            "rows": 10
        }
    }
}

responevent-blocked= requests.post(search_url, json=query)
results = response.json()

print(f"找到 {results.get(''''''''''''''''''''''''''''''''total_count'''''''''''''''''''''''''''''''', 0)} 个结构")
for hit in results.get("result_set", []):
    pdb_id = hit["identifier"]
    print(f"  PDB ID: {pdb_id}")

#  2. 获取结构元数据 
pdb_id = "1TUP"  # p53 DNA-binding domain

data_url = f"https://data.rcsb.org/rest/v1/core/entry/{pdb_id}"
metadata = requests.get(data_url).json()

print(f"\n结构标题: {metadata.get(''''''''''''''''''''''''''''''''struct'''''''''''''''''''''''''''''''', {}).get(''''''''''''''''''''''''''''''''title'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''N/A'''''''''''''''''''''''''''''''')}")
print(f"实验方法: {metadata.get(''''''''''''''''''''''''''''''''exptl'''''''''''''''''''''''''''''''', [{}])[0].get(''''''''''''''''''''''''''''''''method'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''N/A'''''''''''''''''''''''''''''''')}")
print(f"分辨率: {metadata.get(''''''''''''''''''''''''''''''''rcsb_entry_info'''''''''''''''''''''''''''''''', {}).get(''''''''''''''''''''''''''''''''resolution_combined'''''''''''''''''''''''''''''''', [None])[0]} Å")
print(f"发布日期: {metadata.get(''''''''''''''''''''''''''''''''rcsb_accession_info'''''''''''''''''''''''''''''''', {}).get(''''''''''''''''''''''''''''''''initial_release_date'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''N/A'''''''''''''''''''''''''''''''')}")
print(f"原子数: {metadata.get(''''''''''''''''''''''''''''''''rcsb_entry_info'''''''''''''''''''''''''''''''', {}).get(''''''''''''''''''''''''''''''''deposited_atom_count'''''''''''''''''''''''''''''''', ''''''''''''''''''''''''''''''''N/A'''''''''''''''''''''''''''''''')}")

#  3. 下载 PDB 文件 
pdb_url = f"https://files.rcsb.org/download/{pdb_id}.pdb"
pdb_responevent-blocked= requests.get(pdb_url)

with open(f"{pdb_id}.pdb", "w") as f:
    f.write(pdb_response.text)
print(f"\n已下载 {pdb_id}.pdb ({len(pdb_response.text)} bytes)")

# 也可下载 mmCIF 格式
cif_url = f"https://files.rcsb.org/download/{pdb_id}.cif"
cif_responevent-blocked= requests.get(cif_url)
with open(f"{pdb_id}.cif", "w") as f:
    f.write(cif_response.text)
print(f"已下载 {pdb_id}.cif ({len(cif_response.text)} bytes)")

§6.2 GraphQL API:跨层级数据查询

# ========================================
# RCSB PDB GraphQL API — 单次查询获取多层级数据
# ========================================

import requests

graphql_url = "https://data.rcsb.org/graphql"

query = """
query GetStructureDetails($id: String!) {
  entry(entry_id: $id) {
    struct {
      title
      pdbx_descriptor
    }
    exptl {
      method
    }
    rcsb_entry_info {
      resolution_combined
      deposited_atom_count
      molecular_weight
    }
    rcsb_accession_info {
      initial_release_date
      deposit_date
    }
    polymer_entities {
      rcsb_polymer_entity {
        pdbx_description
      }
      rcsb_entity_source_organism {
        ncbi_scientific_name
      }
      polymer_entity_instances {
        rcsb_polymer_entity_instance_container_identifiers {
          asym_id
        }
      }
    }
    nonpolymer_entities {
      nonpolymer_comp {
        chem_comp {
          name
          formula
        }
      }
    }
  }
}
"""

variables = {"id": "4HHB"}
responevent-blocked= requests.post(
    graphql_url,
    json={"query": query, "variables": variables}
)
data = response.json()["data"]["entry"]

print(f"标题: {data[''''''''''''''''''''''''''''''''struct''''''''''''''''''''''''''''''''][''''''''''''''''''''''''''''''''title'''''''''''''''''''''''''''''''']}")
print(f"方法: {data[''''''''''''''''''''''''''''''''exptl''''''''''''''''''''''''''''''''][0][''''''''''''''''''''''''''''''''method'''''''''''''''''''''''''''''''']}")
print(f"分辨率: {data[''''''''''''''''''''''''''''''''rcsb_entry_info''''''''''''''''''''''''''''''''][''''''''''''''''''''''''''''''''resolution_combined''''''''''''''''''''''''''''''''][0]} Å")
print(f"原子数: {data[''''''''''''''''''''''''''''''''rcsb_entry_info''''''''''''''''''''''''''''''''][''''''''''''''''''''''''''''''''deposited_atom_count'''''''''''''''''''''''''''''''']}")
print(f"分子量: {data[''''''''''''''''''''''''''''''''rcsb_entry_info''''''''''''''''''''''''''''''''][''''''''''''''''''''''''''''''''molecular_weight'''''''''''''''''''''''''''''''']} Da")
print(f"\n聚合物实体:")
for entity in data.get("polymer_entities", []):
    desc = entity["rcsb_polymer_entity"]["pdbx_description"]
    org = entity.get("rcsb_entity_source_organism", [{}])[0].get("ncbi_scientific_name", "N/A")
    print(f"  - {desc} ({org})")

print(f"\n非聚合物实体 (配体/离子):")
for entity in data.get("nonpolymer_entities", []):
    comp = entity["nonpolymer_comp"]["chem_comp"]
    print(f"  - {comp[''''''''''''''''''''''''''''''''name'''''''''''''''''''''''''''''''']} ({comp[''''''''''''''''''''''''''''''''formula'''''''''''''''''''''''''''''''']})")

§6.3 BioPython 结构解析与操作

# ========================================
# BioPython PDB 解析 — 原子级结构操作
# 环境要求: pip install biopython
# ========================================

from Bio.PDB import PDBParser, PDBList, Selection
from Bio.PDB.Polypeptide import is_aa
import numpy as np

#  1. 下载并解析结构 
pdbl = PDBList()
pdbl.retrieve_pdb_file("4HHB", file_format="pdb", pdir="./pdb_data")

parser = PDBParser(QUIET=True)
structure = parser.get_structure("4HHB", "./pdb_data/pdb4hhb.ent")

#  2. 结构层级遍历 
print("结构层级:")
for model in structure:
    print(f"  Model {model.id}")
    for chain in model:
        print(f"    Chain {chain.id}: {len(chain)} residues")
        residue_count = sum(1 for r in chain if is_aa(r))
        print(f"      (氨基酸残基: {residue_count})")

#  3. 提取 Cα 原子坐标 
ca_atoms = []
for model in structure:
    for chain in model:
        for residue in chain:
            if is_aa(residue) and "CA" in residue:
                ca_atoms.append(residue["CA"].get_coord())

ca_array = np.array(ca_atoms)
print(f"\nCα 原子数: {len(ca_array)}")
print(f"坐标范围: x[{ca_array[:,0].min():.1f}, {ca_array[:,0].max():.1f}], "
      f"y[{ca_array[:,1].min():.1f}, {ca_array[:,1].max():.1f}], "
      f"z[{ca_array[:,2].min():.1f}, {ca_array[:,2].max():.1f}]")

#  4. 计算 Rg (回转半径) 
center_of_mass = ca_array.mean(axis=0)
distances = np.linalg.norm(ca_array - center_of_mass, axis=1)
rg = np.sqrt(np.mean(distances ** 2))
print(f"回转半径 Rg: {rg:.2f} Å")

#  5. 提取配体原子 
ligand_atoms = []
for model in structure:
    for chain in model:
        for residue in chain:
            if not is_aa(residue) and residue.id[0] != ''''''''''''''''''''''''''''''''W'''''''''''''''''''''''''''''''':
                # 非氨基酸且非水分子 = 配体/离子
                for atom in residue:
                    ligand_atoms.append({
                        ''''''''''''''''''''''''''''''''residue'''''''''''''''''''''''''''''''': residue.get_resname(),
                        ''''''''''''''''''''''''''''''''atom'''''''''''''''''''''''''''''''': atom.get_name(),
                        ''''''''''''''''''''''''''''''''coord'''''''''''''''''''''''''''''''': atom.get_coord()
                    })

print(f"\n配体/离子原子数: {len(ligand_atoms)}")
for atom in ligand_atoms[:5]:
    print(f"  {atom[''''''''''''''''''''''''''''''''residue'''''''''''''''''''''''''''''''']} {atom[''''''''''''''''''''''''''''''''atom'''''''''''''''''''''''''''''''']}: "
          f"({atom[''''''''''''''''''''''''''''''''coord''''''''''''''''''''''''''''''''][0]:.2f}, {atom[''''''''''''''''''''''''''''''''coord''''''''''''''''''''''''''''''''][1]:.2f}, {atom[''''''''''''''''''''''''''''''''coord''''''''''''''''''''''''''''''''][2]:.2f})")

#  6. 计算两个结构的 RMSD 
from Bio.PDB import Superimposer

# 加载第二个结构(如突变体)
structure2 = parser.get_structure("1MHB", "./pdb_data/pdb1mhb.ent")

# 提取共同 Cα 原子
ca1 = [r["CA"] for r in structure[0].get_residues() if is_aa(r) and "CA" in r]
ca2 = [r["CA"] for r in structure2[0].get_residues() if is_aa(r) and "CA" in r]

# 取较短长度
min_len = min(len(ca1), len(ca2))
ca1 = ca1[:min_len]
ca2 = ca2[:min_len]

# 结构叠加
sup = Superimposer()
sup.set_atoms(ca1, ca2)
print(f"\nRMSD (4HHB vs 1MHB): {sup.rms:.2f} Å")

§6.4 分子对接:AutoDock Vina 虚拟筛选

# ========================================
# AutoDock Vina 分子对接 — 基于 PDB 靶标结构
# 环境要求: pip install vina meeko rdkit-pypi
#           AutoDock Vina 二进制: https://github.com/ccsb-scripps/AutoDock-Vina
#
# ⚠️ 需要 AutoDock Vina 可执行文件
# ========================================

from vina import Vina
from rdkit import Chem
from rdkit.Chem import AllChem
import subprocess
import os

#  1. 准备受体蛋白 (PDB → PDBQT) 
# 从 PDB 下载靶标结构
pdb_id = "1M17"  # EGFR kinase domain
target_name = "EGFR"

# 使用 AutoDock Tools 或 Meeko 准备 PDBQT
# 假设已有准备好的 receptor.pdbqt
receptor_pdbqt = f"{target_name}_receptor.pdbqt"

#  2. 准备配体 (SMILES → PDBQT) 
# 示例:Erlotinib (EGFR 抑制剂) SMILES
ligand_smiles = "COCCOC1=C(OCCOC)C=C2C(=1)NC(=O)C3=C2C=CC(NC4=CC=CC=C4)=C3"

mol = Chem.MolFromSmiles(ligand_smiles)
mol = Chem.AddHs(mol)
AllChem.EmbedMolecule(mol, AllChem.ETKDG())
AllChem.MMFFOptimizeMolecule(mol)

# 写出 SDF
Chem.MolToMolFile(mol, "ligand.sdf")

# 使用 Meeko 转换为 PDBQT
subprocess.run([
    "mk_prepare_ligand.py", "-i", "ligand.sdf", "-o", "ligand.pdbqt"
], check=True)

#  3. 运行 AutoDock Vina 对接 
v = Vina(sf_name="vina")

v.set_receptor(receptor_pdbqt)
v.set_ligand_from_file("ligand.pdbqt")

# 设置对接盒(基于共结晶配体的结合位点)
# EGFR ATP 结合位点中心坐标 (从 1M17 共结晶配体获取)
v.compute_vina_maps(
    center=[-22.6, -24.3, 38.4],
    box_size=[25, 25, 25]
)

# 运行对接
v.dock(exhaustiveness=32, n_poses=10)
v.write_poses("vina_results.pdbqt", n_poses=10, energy_range=3)

energies = v.energies()
print(f"最佳对接能量: {energies[0][0]:.2f} kcal/mol")
print(f"前 10 个构象能量:")
for i, energy in enumerate(energies[:10]):
    print(f"  构象 {i+1}: {energy[0]:.2f} kcal/mol")

#  4. 批量虚拟筛选 
def virtual_screening(smiles_list, receptor_pdbqt, center, box_size):
    """对化合物列表进行虚拟筛选"""
    results = []
    for idx, smiles in enumerate(smiles_list):
        try:
            mol = Chem.MolFromSmiles(smiles)
            if mol is None:
                continue
            mol = Chem.AddHs(mol)
            AllChem.EmbedMolecule(mol, AllChem.ETKDG())
            AllChem.MMFFOptimizeMolecule(mol)
            Chem.MolToMolFile(mol, f"temp_lig_{idx}.sdf")

            subprocess.run([
                "mk_prepare_ligand.py",
                "-i", f"temp_lig_{idx}.sdf",
                "-o", f"temp_lig_{idx}.pdbqt"
            ], check=True, capture_output=True)

            v = Vina(sf_name="vina")
            v.set_receptor(receptor_pdbqt)
            v.set_ligand_from_file(f"temp_lig_{idx}.pdbqt")
            v.compute_vina_maps(center=center, box_size=box_size)
            v.dock(exhaustiveness=8, n_poses=1)

            best_energy = v.energies()[0][0]
            results.append({"smiles": smiles, "energy": best_energy})

            os.remove(f"temp_lig_{idx}.sdf")
            os.remove(f"temp_lig_{idx}.pdbqt")

        except Exception as e:
            print(f"  化合物 {idx} 失败: {e}")
            continue

    results.sort(key=lambda x: x["energy"])
    return results

# 示例:筛选 100 个化合物
# results = virtual_screening(compound_list, receptor_pdbqt,
#                             center=[-22.6, -24.3, 38.4],
#                             box_size=[25, 25, 25])
# print(f"\nTop 10 化合物:")
# for r in results[:10]:
#     print(f"  能量: {r[''''''''''''''''''''''''''''''''energy'''''''''''''''''''''''''''''''']:.2f} kcal/mol | SMILES: {r[''''''''''''''''''''''''''''''''smiles''''''''''''''''''''''''''''''''][:50]}...")

§6.5 FTP 批量下载

# ========================================
# PDB FTP 批量下载 — 全量或子集
# ========================================

import requests
import os
from concurrent.futures import ThreadPoolExecutor, as_completed

def download_pdb_file(pdb_id, format="pdb", output_dir="./pdb_files"):
    """下载单个 PDB 结构文件"""
    os.makedirs(output_dir, exist_ok=True)

    ext = {"pdb": "pdb", "cif": "cif", "xml": "xml"}[format]
    url = f"https://files.rcsb.org/download/{pdb_id}.{ext}"
    filepath = os.path.join(output_dir, f"{pdb_id}.{ext}")

    responevent-blocked= requests.get(url)
    if response.status_code == 200:
        with open(filepath, "wb") as f:
            f.write(response.content)
        return pdb_id, True
    return pdb_id, False

def batch_download(pdb_ids, format="pdb", max_workers=10):
    """批量下载 PDB 结构文件"""
    success = 0
    failed = []

    with ThreadPoolExecutor(max_workers=max_workers) as executor:
        futures = {
            executor.submit(download_pdb_file, pid, format): pid
            for pid in pdb_ids
        }
        for future in as_completed(futures):
            pdb_id, ok = future.result()
            if ok:
                success += 1
            else:
                failed.append(pdb_id)

    print(f"成功: {success}, 失败: {len(failed)}")
    if failed:
        print(f"失败列表: {failed[:10]}...")
    return success, failed

# 获取所有人类蛋白 X-ray 结构的 PDB ID
search_url = "https://search.rcsb.org/rcsbsearch/v2/query"
query = {
    "query": {
        "type": "group",
        "logical_operator": "and",
        "nodes": [
            {
                "type": "terminal",
                "service": "text",
                "parameters": {
                    "attribute": "rcsb_entity_source_organism.taxonomy_lineage.name",
                    "operator": "exact_match",
                    "value": "Homo sapiens"
                }
            },
            {
                "type": "terminal",
                "service": "text",
                "parameters": {
                    "attribute": "exptl.method",
                    "operator": "exact_match",
                    "value": "X-RAY DIFFRACTION"
                }
            }
        ]
    },
    "return_type": "entry",
    "request_options": {
        "paginate": {"start": 0, "rows": 100}
    }
}

responevent-blocked= requests.post(search_url, json=query)
results = response.json()
pdb_ids = [hit["identifier"] for hit in results.get("result_set", [])]

print(f"找到 {results.get(''''''''''''''''''''''''''''''''total_count'''''''''''''''''''''''''''''''', 0)} 个人类 X-ray 结构")
print(f"下载前 {len(pdb_ids)} 个...")

success, failed = batch_download(pdb_ids, format="pdb")

§6.6 PyMOL 可视化脚本

# ========================================
# PyMOL 脚本 — 蛋白质结构高质量可视化
# 在 PyMOL 命令行中执行: run visualize_pdb.py
# ========================================

# 加载结构
fetch 4HHB, async=0

# 基本显示设置
bg_color white
set ray_shadows, 0
set ray_trace_mode, 1

# 蛋白质卡通图
hide everything, all
show cartoon, chain A+B
color salmon, chain A
color skyblue, chain B

# 血红素 (HEM) 显示
show sticks, resn HEM
color red, resn HEM and elem C
color firebrick, resn HEM and elem Fe

# 氧分子
show spheres, resn OXY
color red, resn OXY
set sphere_scale, 0.8, resn OXY

# 标注
select binding_site, resn HEM around 5
show lines, binding_site
color gray, binding_site

# 标题
set ray_opaque_background, 0
ray 2400, 1800
png 4hhb_render.png

#  二级结构着色 
fetch 1TUP, async=0
hide everything, all
show cartoon, chain A+B+C
color red, ss h    # α-螺旋 红色
color yellow, ss s # β-折叠 黄色
color green, ss l+""  # loop 绿色

# DNA
show cartoon, chain D+E
color blue, chain D
color cyan, chain E

ray 2400, 1800
png 1tup_render.png

§6.7 Foldseek 结构相似性搜索

# ========================================
# Foldseek — 在 PDB/AFDB 中快速 3D 结构搜索
# 环境要求: Foldseek (https://github.com/steineggerlab/foldseek)
# ========================================

# 创建查询结构 (PDB 文件)
# foldseek search <target_db> <query> <result> <tmp> [options]

# 搜索 PDB 数据库
foldseek createdb query.pdb queryDB
foldseek createdb pdb pdbDB    # 需要预建 PDB 数据库
foldseek search pdbDB queryDB results.m8 tmp max-seqs 100 -e 0.001

# 搜索 AlphaFold DB
foldseek search afdb queryDB results_afdb.m8 tmp_afdb max-seqs 100

# 结果格式 (tab-separated):
# query, target, fident, alnlen, mismatch, gapopen, qstart, qend, tstart, tend, evalue, bits

# 查看 Top 10 相似结构
head -10 results.m8 | awk ''''''''''''''''''''''''''''''''{print $1, $2, $3"% identity", $11" evalue"}''''''''''''''''''''''''''''''''

§6.8 常见坑点

⚠️ 坑点 1:PDB 遗留格式限制(分类:预处理陷阱)

问题:PDB 遗留格式限制每条目最多 62 条链和 99,999 个 ATOM 记录。大分子复合物(如核糖体、病毒衣壳)无法用 PDB 格式完整表示。

症状:使用 PDB 格式解析大型结构时,链或原子被截断,导致结构不完整。

解决:始终使用 PDBx/mmCIF 格式(.cif)进行结构解析。BioPython 的 MMCIFParser 或 Gemmi 库支持 mmCIF 解析。2027-07 后遗留 PDB 格式将逐步淘汰。

参考:wwPDB Format Documentation (https://wwpdb.org/documentation/file-formats-and-the-pdb)

⚠️ 坑点 2:生物组装体 vs 不对称单元(分类:数据理解)

问题:PDB 条目中的坐标文件通常是不对称单元(ASU),可能包含多个拷贝的非生理接触(晶体堆积效应),而非功能性生物组装体。

症状:对接或界面分析时使用了晶体堆积界面而非真实结合界面,导致错误的结合位点预测。

解决:使用 REMARK 350 或 mmCIF _struct_biol 中定义的生物组装体坐标。RCSB PDB 提供 biological_assembly 文件下载({PDB_ID}.pdb1.gz)。PISA 或 EPPIC 可验证生物组装体判定。

参考:RCSB PDB Biological Assemblies Guide

⚠️ 坑点 3:分辨率 ≠ 质量(分类:评估误用)

问题:分辨率是 X-ray/EM 结构的关键质量指标,但低分辨率结构可能局部高质量,高分辨率结构也可能有区域质量问题。

症状:仅按分辨率排序选择结构,选中了高分辨率但有大量 Ramachandran 离群或 RSRZ 异常的结构。

解决:综合查看 wwPDB 验证报告中的 Clashscore、Ramachandran favored、RSRZ outliers 等指标。MolProbity 综合分数比单一分辨率更能反映结构质量。推荐使用验证报告中的百分位数(percentile)进行跨结构比较。

参考:Gore S et al. (2017) “Validation of Structures in the Protein Data Bank.” Structure 25:1916-1927.

⚠️ 坑点 4:同一蛋白多个 PDB 条目(分类:数据理解)

问题:同一蛋白质可能在 PDB 中有数十甚至数百个条目(不同分辨率、不同配体、不同突变体),选择哪个条目影响下游分析。

症状:随机选择一个 PDB 条目,可能选到低分辨率或有缺陷的结构,影响对接和建模质量。

解决:(1) 使用 RCSB PDB 的 “Best Resolution” 排序;(2) 检查验证报告百分位数;(3) 优先选择有共结晶配体的条目(提供已知结合位点参考);(4) 对于药物设计,选择分辨率 <2.0 Å 且 clashscore <5 的条目。

⚠️ 坑点 5:cryo-EM 结构分辨率定义不同(分类:数据理解)

问题:cryo-EM 的 FSC 分辨率与 X-ray 的衍射分辨率含义不同。X-ray 分辨率反映数据质量,而 cryo-EM FSC 0.143 分辨率反映密度图质量,局部分辨率可能差异很大。

症状:将 cryo-EM 和 X-ray 结构按分辨率直接排序比较,得到误导性的质量排名。

解决:使用 Q-score 评估 cryo-EM 结构中每个原子的密度拟合质量。关注 EMDB 中对应的密度图,而非仅 PDB 中的原子坐标。

⚠️ 坑点 6:序列与坐标不一致(分类:预处理陷阱)

问题:PDB 条目中的 SEQRES 记录(完整序列)与 ATOM 记录中实际解析的残基可能不一致——部分残基可能因柔性或无序而缺失。

症状:将 PDB 序列与 UniProt 序列对齐时出现错位,或结构比对时长度不匹配。

解决:使用 SIFTS 映射(RCSB PDB 提供)将 PDB 残基编号映射到 UniProt 序列位置。BioPython 的 Polypeptide.build_peptides() 可提取实际解析的序列。

⚠️ 坑点 7:B-factor 的含义误区(分类:数据理解)

问题:B-factor(温度因子)常被误解为直接衡量残基灵活性,但它实际混合了热运动和静态无序两部分贡献。

症状:仅基于 B-factor 推断蛋白质动态性,得出错误的功能区结论。

解决:B-factor 可作为灵活性的粗略指标,但需结合 NMR 构象系综或分子动力学模拟进行验证。晶体堆积效应也会影响 B-factor,应区分晶格接触区和溶剂暴露区。

⚠️ 坑点 8:实验结构 vs 计算预测结构混淆(分类:数据理解)

问题:RCSB PDB 网站同时展示实验结构(PDB)和计算预测结构(CSM,来自 AlphaFold DB / ModelArchive),两者有不同的图标标识但容易被混淆。

症状:将计算预测结构当作实验验证结构使用,在需要 Ground Truth 的场景(如 CASP 评估)中引入循环论证。

解决:注意 RCSB PDB 的图标标识——深蓝色烧瓶图标 = 实验结构(PDB),青色电脑图标 = 计算预测结构(CSM)。CSM 的 PDB ID 以 AF_MA_ 前缀开头。在搜索 API 中默认仅返回实验结构,需显式开启 “Include CSM”。

⚠️ 坑点 9:PDB ID 空间耗尽(分类:工程陷阱)

问题:4 字符 PDB ID 的可用空间约 400,000 个,目前已使用 215,000+,按当前增速将在数年内耗尽。wwPDB 计划 2027-07 过渡到 12 字符格式。

症状:软件硬编码 4 字符 PDB ID 格式校验,未来新条目将无法兼容。

解决:所有解析 PDB ID 的软件应支持 12 字符格式(pdb_00001abc)。使用 RCSB API 时,返回的 entry_id 字段已同时兼容 4 字符和 12 字符格式。

⚠️ 坑点 10:配体 protonation 状态(分类:预处理陷阱)

问题:PDB 结构中的配体质子化状态可能不完整或不正确——X-ray 晶体学难以区分氢原子,depositor 可能未添加或添加了错误的氢原子。

症状:直接使用 PDB 配体进行对接或 QM 计算,因质子化状态错误导致结果不可靠。

解决:使用 tools like Schrödinger’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’'s Epik 或 OpenBabel 预测生理 pH 下的正确质子化状态。对于对接,使用 Meeko (AutoDock) 或 ADFRSuite 重新准备配体。

⚠️ 坑点 11:时间泄漏(分类:数据泄漏)

问题:在训练蛋白质结构预测模型时,如果训练集和测试集包含来自同一蛋白家族的高度同源结构,会导致测试性能虚高。

症状:模型在内部测试集上 TM-score >0.9,但在 CASP 盲测中 TM-score 显著下降。

解决:使用 CD-HIT 或 MMseqs2 进行序列一致性聚类(阈值 30%),确保训练集与测试集之间无高度同源结构。CASP 评测本身就是严格的时间泄漏防护——使用尚未公开的新结构作为测试集。

⚠️ 坑点 12:内存消耗(分类:工程陷阱)

问题:大型 PDB 结构(如核糖体 >2 MDa,原子数 >100,000)在解析和操作时可能消耗大量内存。

症状:解析大型 mmCIF 文件时内存溢出(OOM),或 3D 可视化卡顿。

解决:使用 Gemmi 库(C++ 后端,内存高效)替代纯 Python 解析器。对于超大型结构,使用 ModelServer API 按需获取结构子集(BCIF 格式),而非下载完整文件。

§6.9 计算资源需求

任务 CPU GPU 内存 磁盘 预计时间
单个结构下载与解析 1 核 1 GB 100 MB <1 分钟
100 个结构批量下载 10 核 4 GB 5 GB ~5 分钟
10,000 个结构解析 16 核 32 GB 50 GB ~2 小时
结构比对 (TM-align) 1 核 2 GB <1 秒/对
Foldseek 全库搜索 64 核 128 GB 200 GB ~10 分钟
AutoDock Vina 对接 (单配体) 8 核 4 GB ~1 分钟
虚拟筛选 (10,000 化合物) 64 核 32 GB ~10 小时
分子动力学模拟 (100 ns) 16 核 16 GB 10 GB ~2 天
AlphaFold2 预测 (单序列) 4 核 1× A100 64 GB ~5 分钟
PDB 全量下载 1 核 2 GB 500 GB ~12 小时

§7 质量评估与局限性

§7.1 已知偏倚

偏倚类型 描述 严重程度 缓解措施
可结晶性偏倚 X-ray 晶体学偏向可溶性、稳定、易结晶蛋白;膜蛋白和内在无序蛋白严重低表达 使用 cryo-EM 和 NMR 补充;结合 AlphaFold DB 预测结构
大小偏倚 NMR 偏向 <40 kDa 小蛋白;cryo-EM 偏向 >100 kDa 大复合物 多方法互补覆盖不同大小范围
物种偏倚 人类蛋白结构占比最高(~30%),模式生物(大肠杆菌、酵母)次之,罕见物种覆盖低 AlphaFold DB 提供全物种预测覆盖
分辨率分布偏倚 大部分结构在 1.5–2.5 Å,极高分辨率(<1 Å)和极低分辨率(>3.5 Å)结构较少 按分辨率分层训练,标注质量等级
配体偏倚 deposited structures 中配体状态可能不完整——某些配体在纯化/结晶过程中丢失 检查 electron density map 确认配体占有率
构象偏倚 晶体结构捕获单一构象,不代表溶液中的构象系综 结合 NMR 系综和分子动力学模拟
温度因子偏倚 B-factor 受晶体堆积效应影响,不完全反映内在灵活性 区分晶格接触区和溶剂暴露区的 B-factor
方法间系统差异 X-ray vs cryo-EM vs NMR 的结构精度定义不同,跨方法比较需谨慎 使用方法分层分析;注意 FSC vs R-factor 区别
时间偏倚 早期 deposited structures(1970s–1990s)验证标准较低 优先使用 2010 年后发布的结构
沉积者偏倚 部分结构可能由同一研究组反复提交(同蛋白不同条件),造成重复 使用序列一致性去重(CD-HIT 90%)
晶体堆积效应 晶体中的非生理接触可能被误认为生物界面 使用 REMARK 350 / EPPIC / PISA 判断生物组装体
化学组分定义偏倚 非标准残基的化学定义可能不完整或不一致 参考 wwPDB Chemical Component Dictionary (CCD)

§7.2 标注质量评估

标注方式 质量指标 评估方法 局限性
X-ray 坐标 R-free < 0.25, Clashscore < 5 wwPDB 验证报告 高分辨率不一定等于高质量
cryo-EM 坐标 Q-score > 0.7, FSC 0.143 分辨率 wwPDB EM 验证 局部分辨率可能差异大
NMR 构象系综 Ramachandran favored > 95% wwPDB NMR 验证 系综大小和约束质量差异大
序列注释 SEQRES ↔ UniProt 一致性 SIFTS 映射 部分 deposited sequences 有错误
配体注释 配体占有率 + B-factor 密度图检查 某些配体占有率 <1.0(部分占据)
生物组装体 EPPIC / PISA 一致性 算法验证 不同方法可能给出不同结果

§7.3 泛化性讨论

场景 失效风险 证据 缓解建议
膜蛋白对接 高 — PDB 膜蛋白结构稀少,对接参数可能不适用 PDB 中膜蛋白仅 ~2,000 个(<1%) 优先使用 cryo-EM 膜蛋白结构;结合 OPM/PDBTM 数据库
内在无序区分析 高 — PDB 结构中 IDR 通常缺失或 B-factor 偏高 AFDB pLDDT <50 区域对应 IDR 使用 AFDB 预测结构标注 IDR
翻译后修饰影响 中 — PDB 结构可能不含完整 PTM 部分结构含磷酸化/糖基化,但覆盖率低 结合 UniProt PTM 注释
异源复合物预测 中 — PDB 中异源复合物覆盖不足 AlphaFold-Multimer 在已知界面复合物上表现好 使用 AF-Multimer 补充预测
动力学分析 高 — PDB 结构为静态快照 NMR 系综可提供部分动态信息 结合 MD 模拟
非标准氨基酸 中 — PDB 中非标准氨基酸结构有限 wwPDB CCD 定义非标准残基 检查 CCD 定义完整性

§7.4 伦理考量

  • 公共领域许可:PDB 数据以 Public Domain (CC0) 许可发布,无任何使用限制,包括商业用途。这是结构生物学数据共享的黄金标准。
  • 无个人数据:PDB 仅包含分子结构数据,不含个人身份信息或患者级数据。
  • 数据完整性责任:wwPDB 对 deposited structures 进行严格策展和验证,但不对结构的生物学解释负责。使用者应独立评估结构质量。
  • 引用伦理:使用 PDB 结构时应引用原始 deposited structure 的发表文献,而非仅引用 PDB ID。
  • 知识产权:PDB 结构本身以公共领域许可发布,但某些蛋白序列或其应用可能受专利保护。使用者应自行核实知识产权状态。

§7.7 DAIMS 24 项数据就绪度评估表

# 评估项 状态 说明
1 数据来源透明 每个条目记录 depositor、实验方法、来源物种
2 采集协议文档化 实验参数记录在 mmCIF 元数据中
3 知情同意/伦理审批 不适用(无人类/动物数据)
4 隐私保护 不适用(无个人数据)
5 数据格式标准化 PDBx/mmCIF 国际标准 + BCIF + XML
6 元数据完整性 完整 mmCIF 字典定义所有字段
7 数据字典可访问 mmCIF 字典公开可查 (mmcif.wwpdb.org)
8 编码标准映射 UniProt / GO / EC / CATH / SCOP / PubMed 交叉引用
9 缺失值文档化 mmCIF 使用 ?. 编码缺失值
10 数据质量验证 wwPDB 标准化验证报告(VTF 标准)
11 验证方法透明 验证报告公开可下载
12 已知偏倚文档化 验证报告标注几何/拟合异常
13 数据版本控制 每周更新,条目可被 superseded 或 obsoleted
14 数据溯源链 depositor → OneDep → biocuration → validation → release
15 访问控制 完全开放,无需注册
16 许可证明确 Public Domain (CC0)
17 数据下载便捷 FTP / REST API / GraphQL / Python 客户端
18 API 文档完整 完整 API 文档 + 教程 + GraphiQL 界面
19 数据量可管理 按条目分文件,可增量下载
20 计算工具生态 BioPython / Gemmi / PyMOL / ChimeraX / AutoDock
21 社区活跃度 wwPDB 联盟 + CASP 评测 + 200,000+ 引用论文
22 FAIR 原则 Findable (PDB ID) / Accessible (CC0) / Interoperable (mmCIF) / Reusable
23 AI 就绪标注 验证报告提供质量标签;分辨率/B-factor 提供逐原子质量
24 外部验证 CASP 盲测 + 独立结构验证工具 (MolProbity/PISA)

DAIMS 评分:24 / 24

评分解读优秀 — 全球生物医学数据基础设施的黄金标准。

对你意味着什么:PDB 是所有蛋白质结构相关 AI 任务的理想数据源。完整的 API、标准格式、严格验证、公共领域许可和丰富的工具生态使其几乎不需要额外预处理即可用于训练。唯一需要注意的是分辨率分布偏倚(大部分结构 1.5–2.5 Å)和方法偏倚(X-ray 占主导),在需要特定分辨率或方法子集时应按条件筛选。

§7.8 外部验证矩阵

外部验证 来源 样本量 评估任务 性能指标 相对内部变化 关键发现
CASP14 盲测 CASP 87 靶标 结构预测评估 AlphaFold2 RMSD95 0.96 Å PDB 结构作为 Ground Truth 验证预测精度
CASP15 盲测 CASP 120+ 靶标 复合物预测 AF2-Multimer DockQ 0.65 PDB 复合物作为训练集和评估基准
PDB_REDO CMBI 120,000+ 自动重新精修 R-free 降低 1.5% -1.5% 部分 deposited structures 可进一步优化
MolProbity Duke 全量 PDB 几何质量独立评估 Clashscore 中位数 3.2 独立验证与 wwPDB 报告一致
PISA EBI 全量 PDB 生物界面判定 与 REMARK 350 一致率 ~85% ~15% 结构的组装体判定有争议

§8 基准性能与生态

§8.1 蛋白质结构预测排行榜(CASP14)

排名 模型 性能指标 年份 关键技术 完整引用 代码
1 AlphaFold2 RMSD95 0.96 Å 2020 Evoformer + IPA + MSA Jumper J et al., 2021, Nature 596:583-589. DOI:10.1038/s41586-021-03819-2 GitHub
2 RoseTTAFold RMSD95 2.8 Å 2021 三轨网络 Baek M et al., 2021, Science 373:871-876. DOI:10.1126/science.abj8754 GitHub
3 trRosetta TM-score 0.65 2020 直接 coevolution + 注意力 Yang J et al., 2020, Nat Methods 17:141-148. DOI:10.1038/s41592-019-0637-5 GitHub
4 DMPfold TM-score 0.60 2019 深度学习距离预测 Greener JG et al., 2019, Nat Commun 10:255. DOI:10.1038/s41467-018-08108-5 GitHub
5 ESMFold TM-score 0.72 2022 无 MSA 单序列折叠 Lin Z et al., 2023, Science 379:1123-1130. DOI:10.1126/science.ade2574 GitHub

注意:不同 CASP 届次的靶标集和评估标准不同,绝对数值不可直接跨届比较。AlphaFold2 在 CASP14 上的突破性表现标志着蛋白质结构预测从"难题"变为"已解决"。

§8.2 SOTA 总结

方法 最佳适用场景 是否需要 MSA 推理速度 精度
AlphaFold2 高精度单链预测 ✅ 需要 慢(~10 分钟/序列) ⭐⭐⭐⭐⭐
AlphaFold-Multimer 蛋白复合物预测 ✅ 需要 ⭐⭐⭐⭐
ESMFold 快速无 MSA 预测 ❌ 不需要 快(~14 秒/序列) ⭐⭐⭐⭐
RoseTTAFold 中等精度预测 ✅ 需要 中等 ⭐⭐⭐⭐
ColabFold 在线便捷预测 ✅ (MMseqs2) 中等 ⭐⭐⭐⭐⭐
AutoDock Vina 分子对接 ⭐⭐⭐⭐
Foldseek 结构相似性搜索 极快 ⭐⭐⭐⭐⭐

§8.3 关键论文 Top 10

  1. Berman HM et al. (2000) “The Protein Data Bank.” Nucleic Acids Res 28:235-242. — PDB 奠基论文,定义了 PDB 格式与公共结构数据库范式。(30,000+ 引用)
  2. Burley SK et al. (2021) “RCSB Protein Data Bank: powerful new tools for exploring macromolecular structures.” Nucleic Acids Res 49:D437-D451. — RCSB PDB 系统论文,描述现代 PDB 基础设施。
  3. wwPDB consortium (2019) “Protein Data Bank: the single global archive of 3D macromolecular structure data.” Structure 27:211-217. — wwPDB 联盟白皮书。
  4. Gore S et al. (2017) “Validation of Structures in the Protein Data Bank.” Structure 25:1916-1927. — wwPDB 验证体系详细描述。
  5. Young JY et al. (2017) “OneDep: unified wwPDB system for deposition, biocuration, and validation of macromolecular structures.” Structure 25:536-545. — OneDep 系统论文。
  6. Jumper J et al. (2021) “Highly accurate protein structure prediction with AlphaFold.” Nature 596:583-589. — AlphaFold2 论文,以 PDB 为训练集。
  7. Baek M et al. (2021) “Accurate prediction of protein structures and interactions using a three-track neural network.” Science 373:871-876. — RoseTTAFold 论文。
  8. Westbrook JD et al. (2022) “PDBx/mmCIF Dictionary.” Structure 30:1220-1230. — mmCIF 格式标准论文。
  9. Eberhardt J et al. (2021) “AutoDock Vina 1.2.0: New Docking Methods, Expanded Force Field, and Python Bindings.” JCIM 61:3831-3841. — AutoDock Vina 分子对接论文。
  10. van Kempen M et al. (2024) “Fast and accurate protein structure search with Foldseek.” Nat Biotechnol 42:243-246. — Foldseek 3D 结构搜索论文。

§8.4 PDB 在 AI 生态系统中的角色

层级 角色 具体贡献
训练数据层 蛋白质结构预测模型的训练集 AlphaFold2/RoseTTAFold/ESMFold 均以 PDB 为训练核心
评估基准层 CASP 盲测的 Ground Truth 每 CASP 周期使用 PDB 新结构作为评估靶标
验证标准层 预测结构的实验验证参考 AFDB 预测结构通过 PDB 实验结构验证精度
药物发现层 靶标结构来源 基于结构的药物设计依赖 PDB 靶标坐标
结构分类层 SCOP/CATH 分类的基础 PDB 结构按折叠模式进行分类
教育可视化层 3D 蛋白质结构教学资源 PDB-101 教育平台,Mol* 可视化
数据整合枢纽层 连接序列-结构-功能-文献 UniProt/GO/PubMed/CATH/SCOP 交叉引用

§8.5 真实世界影响案例

案例 领域 PDB 的作用 影响
COVID-19 药物与疫苗 感染病 SARS-CoV-2 Spike/主蛋白酶结构在数周内公开 加速 Paxlovid/mRNA 疫苗开发
HIV 蛋白酶抑制剂 感染病 HIV-1 protease 结构 (1HVR) 指导药物设计 Kaletra/Fortovase 等抗艾滋病药物
抗癌靶向药 Imatinib 肿瘤 BCR-ABL kinase 结构指导选择性抑制设计 Gleevec 慢性髓性白血病革命性疗法
AlphaFold2 突破 AI for Science PDB 55 年积累作为训练数据 2024 诺贝尔化学奖
流感神经氨酸酶抑制剂 感染病 NA 结构指导奥司他韦设计 Tamiflu 流感药物
GPCR 药物设计 药理学 β2AR/视紫红质等 GPCR 结构 >30% FDA 药物的靶标结构基础
蛋白质设计 合成生物学 PDB 结构提供设计模板 David Baker 团队设计新蛋白(2024 诺贝尔奖)
结构比较搜索 计算生物学 PDB 全库作为搜索目标 Foldseek 在 2 亿+ 结构中搜索
罕见病诊断 遗传病 疾病相关蛋白结构辅助变异解读 AlphaMissense 以 PDB 结构信息辅助变异分类

§8.6 生态快照

资源 类型 链接 Star/Fork(截至 2026-07) 为什么值得关注
AlphaFold2 预测模型 GitHub 13,000+/3,000+ 以 PDB 为训练集的 SOTA 结构预测
ColabFold 在线工具 GitHub 1,500+/200+ AlphaFold2 + MMseqs2 在线版
Foldseek 搜索工具 GitHub 2,000+/200+ 超快速 3D 结构相似性搜索
BioPython 编程库 GitHub 4,200+/1,800+ Python 结构生物信息学标准库
Gemmi 编程库 GitHub 200+/40+ 高效 mmCIF/PDB 文件解析 (C++)
PyMOL 可视化 pymol.org 高质量结构渲染行业标准
ChimeraX 可视化 UCSF UCSF 结构分析套件
AutoDock Vina 对接工具 GitHub 1,000+/300+ 开源分子对接
rcsb-api API 客户端 GitHub 50+/10+ RCSB PDB 官方 Python 客户端
Mol* 可视化 molstar.org 700+/100+ 现代 Web 3D 结构可视化

§8.7 蛋白质结构数据生态图

┌─────────────────────────────────────────────────────────────────────┐
│                    蛋白质结构数据生态系统                              │
├─────────────────────────────────────────────────────────────────────┤
│                                                                     │
│  ┌─────────────┐     实验结构      ┌──────────────────────────┐     │
│  │  实验方法    │ ───────────────→ │    PDB (wwPDB)           │     │
│  │ X-ray/EM/NMR│                  │  215,000+ 实验结构        │     │
│  └─────────────┘                  │  CC0 / 公共领域           │     │
│                                    │  Gold Standard           │     │
│                                    └──────────┬───────────────┘     │
│                                               │                     │
│                                    ┌──────────┴───────────────┐     │
│                                    │     训练 + 验证           │     │
│                                    ▼                          │     │
│  ┌─────────────┐     预测结构      ┌──────────────────────────┐     │
│  │ AlphaFold2  │ ───────────────→ │  AlphaFold DB (AFDB)     │     │
│  │ RoseTTAFold │                  │  241,000,000+ 预测结构   │     │
│  │ ESMFold     │                  │  CC-BY 4.0              │     │
│  └─────────────┘                  └──────────┬───────────────┘     │
│                                               │                     │
│                                    ┌──────────┴───────────────┐     │
│                                    │     搜索 + 分析           │     │
│                                    ▼                          │     │
│  ┌─────────────┐     分类体系      ┌──────────────────────────┐     │
│  │ CATH/SCOP   │ ←────────────── │  Foldseek / Dali          │     │
│  │ 域级别分类   │                  │  结构相似性搜索            │     │
│  └─────────────┘                  └──────────┬───────────────┘     │
│                                               │                     │
│                                    ┌──────────┴───────────────┐     │
│                                    │     应用                  │     │
│                                    ▼                          │     │
│  ┌─────────────┐     靶标结构      ┌──────────────────────────┐     │
│  │ AutoDock    │ ←────────────── │  药物发现 / 对接           │     │
│  │ Vina/Glide  │                  │  虚拟筛选                 │     │
│  └─────────────┘                  └──────────┬───────────────┘     │
│                                               │                     │
│  ┌─────────────┐     功能注释      ┌──────────────────────────┐     │
│  │ UniProt/GO  │ ←────────────── │  序列-结构-功能整合       │     │
│  │ PubMed/EC   │                  │  SIFTS 映射              │     │
│  └─────────────┘                  └──────────────────────────┘     │
│                                                                     │
└─────────────────────────────────────────────────────────────────────┘

§9 相关资源与引用

§9.1 BibTeX 参考文献

@article{berman2000pdb,
  title={The Protein Data Bank},
  author={Berman, Helen M and Westbrook, John and Feng, Zukang and Gilliland, Gary and Bhat, T N and Weissig, Helge and Shindyalov, Ilya N and Bourne, Philip E},
  journal={Nucleic Acids Research},
  volume={28},
  number={1},
  pages={235242},
  year={2000},
  doi={10.1093/nar/28.1.235}
}

@article{burley2021rcsb,
  title={RCSB Protein Data Bank: powerful new tools for exploring macromolecular structures},
  author={Burley, Stephen K and Bhikadiya, Charmi and Bi, Chunxiao and Bittrich, Sebastian and Chen, Li and Crichlow, Paul V and Christie, Cole H and Dalenberg, Kenneth and Di Costanzo, Luigi and Duarte, Jose M and others},
  journal={Nucleic Acids Research},
  volume={49},
  number={D1},
  pages={D437D451},
  year={2021},
  doi={10.1093/nar/gkaa1037}
}

@article{wwpdb2019,
  title={Protein Data Bank: the single global archive of 3D macromolecular structure data},
  author={{wwPDB consortium}},
  journal={Structure},
  volume={27},
  number={1},
  pages={211217},
  year={2019},
  doi={10.1016/j.str.2018.11.001}
}

@article{gore2017validation,
  title={Validation of Structures in the Protein Data Bank},
  author={Gore, Swanand and Garc{\''''''''''''''''''''''''''''''''\i}a, Eduardo Sanz and Hendrickx, Pieter M S and Gutmanas, Aleksandras and Westbrook, John D and Yang, Huanwang and Feng, Zukang and Baskaran, Kumaran and Berrisford, John M and Hudson, Brian P and others},
  journal={Structure},
  volume={25},
  number={12},
  pages={19161927},
  year={2017},
  doi={10.1016/j.str.2017.10.009}
}

@article{young2017onedep,
  title={OneDep: unified wwPDB system for deposition, biocuration, and validation of macromolecular structures},
  author={Young, Jasmine Y and Westbrook, John D and Feng, Zukang and Sala, Roberto and Peisach, Ezra and Persikova, Irina and Adams, Paul D and Berrisford, John M and Bricogne, G{\''''''''''''''''''''''''''''''''e}rard and Burley, Stephen K and others},
  journal={Structure},
  volume={25},
  number={3},
  pages={536545},
  year={2017},
  doi={10.1016/j.str.2017.01.004}
}

@article{jumper2021alphafold,
  title={Highly accurate protein structure prediction with AlphaFold},
  author={Jumper, John and Evans, Richard and Pritzel, Alexander and Green, Tim and Figurnov, Michael and Ronneberger, Olaf and Tunyasuvunakool, Kathryn and Bates, Russ and {\v{Z}}{\''''''''''''''''''''''''''''''''\i}dek, Augustin and Potapenko, Anna and others},
  journal={Nature},
  volume={596},
  pages={583589},
  year={2021},
  doi={10.1038/s41586-021-03819-2}
}

@article{baek2021rosettafold,
  title={Accurate prediction of protein structures and interactions using a three-track neural network},
  author={Baek, Minkyung and DiMaio, Frank and Anishchenko, Ivan and Dauparas, Justas and Ovchinnikov, Sergey and Lee, Gyu Rie and Wang, Jue and Cong, Qian and Kinch, Lisa N and Schaeffer, R Dustin and others},
  journal={Science},
  volume={373},
  number={6557},
  pages={871876},
  year={2021},
  doi={10.1126/science.abj8754}
}

@article{eberhardt2021vina,
  title={AutoDock Vina 1.2.0: New Docking Methods, Expanded Force Field, and Python Bindings},
  author={Eberhardt, Jerome and Santos-Martins, Diogo and Tillack, Andreas F and Forli, Stefano},
  journal={Journal of Chemical Information and Modeling},
  volume={61},
  number={8},
  pages={38313841},
  year={2021},
  doi={10.1021/acs.jcim.1c00203}
}

@article{vankempen2024foldseek,
  title={Fast and accurate protein structure search with Foldseek},
  author={van Kempen, Michel and Kim, Stephanie S and Tumescheit, Charlotte and Mirdita, Milot and Lee, Jeongjae and Gilchrist, Cameron L M and S{\"o}ding, Johannes and Steinegger, Martin},
  journal={Nature Biotechnology},
  volume={42},
  pages={243246},
  year={2024},
  doi={10.1038/s41587-023-01773-0}
}

@article{lin2023esmfold,
  title={Evolutionary-scale prediction of atomic-level protein structure with a language model},
  author={Lin, Zeming and Akin, Halil and Rao, Roshan and Hie, Brian and Zhu, Zhongkai and Lu, Wenting and dos Santos Costa, Allan and Fazel-Yavari, Maryam and Vaswani, Shuvo and Barbosa, Leonardo R and others},
  journal={Science},
  volume={379},
  number={6637},
  pages={11231130},
  year={2023},
  doi={10.1126/science.ade2574}
}

§9.2 资源 URL

资源 URL 说明
RCSB PDB https://www.rcsb.org/ 美国 PDB 中心
PDBe https://www.ebi.ac.uk/pdbe/ 欧洲 PDB 中心
PDBj https://pdbj.org/ 日本 PDB 中心
wwPDB https://www.wwpdb.org/ wwPDB 联盟主页
OneDep https://deposit.wwpdb.org/ 统一 deposition 系统
PDB FTP https://files.rcsb.org/ FTP 归档
Data API https://data.rcsb.org/ REST/GraphQL API
Search API https://search.rcsb.org/ 搜索 API
mmCIF 字典 https://mmcif.wwpdb.org/ PDBx/mmCIF 格式字典
PDB-101 https://pdb101.rcsb.org/ 教育资源
EMDB https://www.ebi.ac.uk/emdb/ 电子显微镜数据库
BMRB https://bmrb.io/ 生物磁共振数据库
ModelArchive https://www.modelarchive.org/ 计算模型归档
AlphaFold DB https://alphafold.ebi.ac.uk/ AlphaFold 预测结构库
CATH http://www.cathdb.info/ 蛋白质结构分类
SCOP https://scop.mrc-lmb.cam.ac.uk/ 蛋白质结构超家族
MolProbity http://molprobity.biochem.duke.edu/ 结构验证工具
Foldseek https://search.foldseek.com/ 3D 结构搜索

§10 AI 使用声明卡

字段 内容
10.1 AI 模型使用 Claude 3.5 Sonnet(信息整理与结构生成);WebSearch(PDB 统计数据、API 文档、工具生态信息检索)
10.2 AI 参与范围 资料整理 + 初稿撰写(人工审核后发布)
10.3 人工审核 [千方病案医学编辑部] 交叉审核 §0 E-E-A-T、§2 医学背景、§4 数据字典、§6 坑点、§7 偏倚分析
10.4 人工校验表 ✅ ICD-11 映射正确性 ✅ SNOMED CT 代码有效性 ✅ 数据统计值交叉验证(wwPDB 官方统计) ✅ API 端点可达性 ✅ 代码示例可运行性 ✅ BibTeX 引用格式 ✅ JSON-LD @graph 结构完整性 ✅ 信息框字段完整性 ✅ DAIMS 24 项评估 ✅ 偏倚分析覆盖度 ✅ 坑点解决方案可操作性 ✅ 外部验证矩阵数据来源
10.5 页面状态 published
10.6 最后更新 2026-08-04
返回 AI Ready 数据集