PDB 数据库概述:起源、数据与访问

做结构生物学或生物信息学的人,每天打交道最多的数据库之一,就是 PDB。我第一次上手 PDB 还是研究生时期,那时候还没这么多好用的工具,想查个蛋白质结构得先翻半天文档。现在回想起来,其实 PDB 的核心概念和操作并不复杂。

今天我带你捋一遍它的底子,包括是怎么来的、里面存了什么、怎么下载。弄清楚了这些,后续章节里我们做结构生成结果图谱验证才能踏实。

PDB 的起源:一段从晶体开始的故事

PDB 的全称是 Protein Data Bank,也就是蛋白质数据库。它最早的诞生可以追溯到 1971 年。那时候国际上几个著名的结构实验室发现,大家各自解出来的蛋白质、核酸三维结构,全都散落在抽屉和笔记里,没法共享。

所以呢,布鲁克海文国家实验室牵头,搞了一个数据中心,专门收这些结构数据。1998 年之后,管理权交到了 wwPDB(全球蛋白质数据库联盟)手上,一直运作到现在。

为什么说这个历史重要?我自己的体会是:PDB 是所有结构生物学研究的“锚点”。不管你是用 X 射线晶体学、核磁共振,还是冷冻电镜解出的结构,只要达到一定质量标准,最终都要存到 PDB 里。它是全球唯一的权威库。

数据内容:PDB 里都存了些什么?

你以为 PDB 里只存坐标?其实远不止这些。每一条 PDB 条目(我们叫它一个 PDB ID),都是一个结构研究的“完整档案”。

我来拆一下,一条典型的 PDB 文件(以 .pdb 和 .cif 两种主格式存在)里包含:

  1. 原子坐标:这是最核心的部分,包含每个原子的 x、y、z 坐标、占有率、温度因子。
  2. 一级序列:氨基酸或核酸的序列信息。
  3. 结构元数据:分辨率、R 因子、空间群、晶胞参数这些实验参数。
  4. 配体与修饰:小分子、辅因子、修饰基团的描述。
  5. 文献引用:这篇结构对应的原始论文信息。
  6. 生物组装注释:告诉你这个结构在细胞里是以什么多聚体形式存在的。
一个小经验:做结构图验证时,我建议你除了看坐标,还要仔细看元数据中的分辨率。分辨率如果超过 3.5 Å,很多细节是看不准的,后续验证要更谨慎。

下表给出一个典型 PDB 文件的结构概要:

记录类型 关键词示例 内容说明
标题 HEADER 结构分类、发表日期与 ID
序列 SEQRES 聚合物的一级序列
晶胞与对称 CRYST1 a b c 长度、αβγ 角度、空间群
原子坐标 ATOM / HETATM 原子名称、残基名、坐标、占有率、温度因子
连接键 SSBOND / LINK 二硫键或特殊连接
配体定义 HET / HETNAM 非标准残基与小分子说明
生物组装 BIOMT 生物体内的聚合状态变换矩阵

访问方式:怎么查、怎么搜

你现在去看 PDB,主页面是 rc sb.org(你懂的,全名不展开)。但更重要的,是你要知道不同场景下怎么查数据。

方式一:浏览器直接访问

打开 PDB 主页,输入 ID 或关键词。例如搜“4HHB”就是血红蛋白的一个经典结构。页面里面会有可视化工具、结构质量打分、序列信息等等。

方式二:RESTful API

我干活时最常用的是这个。通过写简单的 HTTP GET 请求,就可以直接拉取数据。适合批量处理和做自动化流程。

curl "https://www.rcsb.org/graphql" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "{
      entry(entry_id: \"4HHB\") {
        struct_keywords {
          pdbx_keywords
        }
        rcsb_entry_info {
          resolution_combined
          structure_determination_methodology
        }
      }
    }"
  }'

你看,返回的 JSON 直接就有分辨率和实验方法。

方式三:程序化批量下载

如果你要做上百上千个结构的图谱验证,千万别一个页面一个页面地点。用下面这个 Python 脚本,配合 wwPDB 的 FTP 服务器,轻松搞定:

import urllib.request
pdb_id = "4HHB"
url = f"https://files.rcsb.org/download/{pdb_id}.pdb"
urllib.request.urlretrieve(url, f"{pdb_id}.pdb")
print(f"下载完成:{pdb_id}.pdb")
避坑指南:我曾经一次下载完几百个 PDB 文件,结果发现里面大概有 5% 的文件带有非标准的残基名称,直接导致后面的解析脚本崩溃。所以每次批量下载后,一定要做一个数据质量筛查,比如检查 REMARK 字段是否完整。

文件格式:从 pdb 到 mmCIF 的演变

早年大家都用 .pdb 格式,每行 80 个字符,记录类型靠前几个大写字母区分。但这个格式限制越来越多,特别是复杂的多链结构和配体定义。

所以呢,现在的标准格式正在向 mmCIF(也叫 PDBx/mmCIF)迁移。mmCIF 没有列宽限制,数据组织更清晰,还支持更丰富的元数据。

两者对比一下:

特性 .pdb 格式 .mmCIF 格式
列宽限制 固定 80 字符 无限制
处理多链 需要链标识符 原生支持
配体定义 HET 记录 类别-属性结构
元数据支持 有限 丰富

我个人习惯,现在做结构验证一律用 .cif 格式。解析库推荐 gemmi 或者 Bio.PDB。你如果还在用 .pdb 糊,可能会遇到很多奇怪的坑。

本章知识体系速览图

下面是 PDB 的核心逻辑框架。从用户访问到数据获取,再到文件格式,最后落地到结构验证,每一步都环环相扣。

PDB 数据库知识体系框架 数据起源 数据内容 访问方式 wwPDB 管理 坐标 + 元数据 API / 批量下载 质量审核 格式标准 本地存储 结构生成结果图谱验证

正式研究之前的小提醒

  • 如果你接手的 PDB 文件里包含 REMARK 3 字段,记得重点看,那里会注明结构精修的质量。
  • 很多网上工具和教程还在用 .pdb 格式做演示,但你要知道,业内正式推荐的是 mmCIF。从 wwPDB 下载时建议选 .cif。
  • 元数据里如果有 UNK 残基,暗示那个位置电子密度不好,我没猜错的话,这常常是图谱验证中最头疼的问题点。

好了,上面的内容是我对 PDB 数据库的一个整体拆解。你如果把起源、数据组成、访问方式和格式差异都理清了,后面做结构生成结果的图谱验证,就能清楚每一条数据从哪来、怎么用、哪里可能有坑。