1. PDB 格式概述:历史、标准结构、文件构成
各位同仁,咱们今天开篇聊PDB格式。说白了,PDB文件就是蛋白质结构的“身份证”。你从X射线、冷冻电镜或者NMR拿到结构数据,最终都得存成这个格式。我干了十几年结构生物信息,经手的PDB文件少说也有几万个。嗯,今天我把核心要点给大家梳理一遍。
1.1 格式的“前世今生”
1970年代,蛋白质数据库(Protein Data Bank)刚成立那会儿,格式远没有现在规范。我记得早期有些文件,连原子坐标的列对齐都不严格,解析起来简直想摔键盘。后来PDB组织统一了标准,才有了我们今天看到的版本。
现在主流的PDB格式遵循3.3版本规范。你可以把它理解成一本“流水账”——每一行都有固定的含义,列号也卡死了。为什么这么死板?因为早期计算机内存小,固定列格式解析起来最快。
这里我提一个避坑点:千万不要手动用文本编辑器去改坐标列。我曾经有个合作者,手滑多敲了一个空格,导致整个配体分子的坐标偏移了一个原子位。以后重构结构花了三天,这教训够深刻吧?
核心事实:PDB格式从1971年沿用至今,记录坐标、链、残基、温度因子等关键信息。虽然现在出现了mmCIF这种更灵活的格式,但PDB仍在大量工具链中广泛使用。
3 PDB文件的“骨架”
一个标准的PDB文件分三大部分:文件头(HEADER)、坐标记录(ATOM/HETATM)、以及连接与注释(CONECT/SSBOND等)。我建议初学的朋友,先抓大放小——把ATOM记录看懂,其他部分遇到时再查阅。
下面这张图,帮你快速建立起PDB文件的整体认识:
1.3 ATOM记录:PDB的心脏
ATOM这一行占80列。你想想看,从列1到列80,每一段都有明确用途。我手头就经常要写脚本解析ATOM行,来给大家拆解一下:
ATOM 39 CA AARG A 6 35.560 33.460 38.860 1.00 15.20 C
我们来逐列拆解:
| 列范围 | 字段 | 说明 | 个人经验 |
|---|---|---|---|
| 1-6 | ATOM / HETATM | 记录类型 | 别搞混,水分子用HETATM |
| 7-11 | 原子序号 | 整数,从1开始 | 我记得有的文件会从1万开始,不影响 |
| 13-16 | 原子名称 | CA, CB, N, O等 | 注意配位体的原子名需查阅CCD字典 |
| 18-20 | 残基名称 | 三字母代码:ARG, ALA | 标准氨基酸才20种,但配体千奇百怪 |
| 22 | 链标识 | A, B, C… | 空链必须补齐,否则解析报错 |
| 23-26 | 残基序号 | 可包含插入码(如101A) | 插入码是我常遇到的坑,解析时得把数字和字母分开 |
| 31-38 | x坐标 | 单位是Å,千万别以为是像素 | |
| 39-46 | y坐标 | ||
| 47-54 | z坐标 | ||
| 55-60 | 占据率 | 0.00 – 1.00 | 若为0.00就表示该原子不存在 |
| 61-66 | 温度因子 | B因子,单位Ų | B因子越大表示柔性越高 |
| 77-78 | 元素符号 | C, N, O, S… | 用于力场参数分配 |
一个实用技巧:当你需要批量提取PDB中的CA原子坐标时,可以这样写脚本:
grep "^ATOM" input.pdb | awk '$3=="CA"' | awk '{print $6,$7,$8}'
如果你处理的是多模型NMR文件,记得加上ENDMDL的判断。我早期就吃过这个亏——把10个模型的CA全部dump到同一个文件里,三维结构直接乱套。
1.4 配置并非只有ATOM:HETATM与CONECT
HETATM的列格式和ATOM完全一致。区别在于:HETATM记录的是非标准残基,比如配体、水分子、金属离子。我在做药物设计项目时,经常需要大量处理HETATM。
CONECT记录负责描述“谁和谁成键”。它的格式如下:
CONECT 1171 1172 1173 1174
这行的意思:原子1171分别与1172、1173、1174成键。如果你发现小分子的键连关系错了,多半是CONECT行有问题。我记得有一次提交结构到PDB,审核员直接退回,说我们的配体CONECT少写了一根键——嗯,后来我们被迫重新跑了一遍构象搜索。
1.5 文件头的“审计线索”
你打开一个PDB,前面几十行全是HEADER, TITLE, COMPND…这些看似“废话”的记录,实际上藏着大量审计必要的信息。比如:
- EXPDTA:实验方法(X射线、NMR、冷冻电镜)
- REMARK:尤其是REMARK 3,包含分辨率、R因子、Rfree值。这些参数直接决定结构的可信度。
- DBREF:把PDB序列和UniProt序列做对应,是序列比对的基础。
注意:有些PDB文件的REMARK 3缺失参数,比如缺少Rfree值。这时候你就要谨慎使用了。有一个工具叫PDB_REDO,专门用来修补这类问题。但前提是你得能识别出“问题文件”。
1.6 一个小案例:从PDB文件提取分辨率
我常写的一个小脚本,用来批量挖分辨率:
grep "REMARK 2 RESOLUTION" 1ubq.pdb
# 返回: REMARK 2 RESOLUTION. 1.80 ANGSTROMS.
如果你拿到一个新结构,第一件事就是查它的分辨率。分辨率优于2.5Å的基本可信,2.5–3.0Å需要谨慎,大于3.5Å的……我建议只用做粗粒度的形状比对。
1.7 格式后缀与版本的“潜规则”
PDB文件的标准后缀是.pdb。但有些工具会生成.pdb.gz,这其实就是gzip压缩包。你解压后得到的是标准PDB文件。
除了.pdb,还有.ent(旧版)、.pdb1、.pdb2(多链拆分等)。我个人建议统一用.pdb后缀,避免解析歧义。另外,mmCIF格式(后缀.cif)正在迅速取代PDB成为主流——不过那是后面章节的内容了。
一句话总结:PDB格式虽老,但解析它的能力是结构生物信息学的基本功。把ATOM和HETATM吃透,再辅以文件头信息提取,你就能高效地“阅读”任何蛋白质结构。