第3章 PDB文件格式详解:你手中的“分子身份证”

做配体格式转换,PDB文件就是你绕不开的起点。很多新手上来就写脚本,结果格式错得离谱。我在项目里发现,80%的格式问题都是因为没搞懂PDB里每个字段到底在说什么。今天咱们就把这个“分子身份证”彻底拆开看。

3.1 为什么要读懂PDB格式?

PDB格式说白了就是一套记录分子三维坐标的“表格规则”。每一行就是一条记录,每个字符位置都有严格定义。你想想看,如果连原始数据都读错了,后面什么对接、筛选全白搭。

我个人的习惯是,拿到一个PDB文件先看三样东西:文件头、原子坐标、连接信息。这三样抓准了,后面就好办。

核心观点:PDB格式不是随便写的文本文件,每个字符的位置都有物理意义。ATOM记录的第13-16列是原子名,第18-20列是残基名,这些你改错一个位置,整个分子就变了形。

3.2 ATOM记录:分子的“螺丝钉”清单

ATOM记录是PDB文件里最多、最关键的部分。每颗原子都对应一行,格式固定。

我记得刚入行时,导师丢给我一个PDB文件让我“看看有什么问题”。我扫了半天没发现,后来用格式分析工具一查——第77列的位置符号写成了小写。就这么一个坑,对接程序直接报错。

先看标准格式定义:

COLUMNS   DATA TYPE     FIELD       DEFINITION
-------------------------------------------------------------------
1 - 6     Record name   "ATOM  "    记录类型标识
7 - 11    Integer       serial      原子序号
13 - 16   Atom          name        原子名称
17        Character     altLoc      替换位置指示符
18 - 20   Residue name  resName     残基名称
22        Character     chainID     链标识符
23 - 26   Integer       resSeq      残基序号
27        Character     iCode       插入码
31 - 38   Real(8.3)     x           正交坐标x
39 - 46   Real(8.3)     y           正交坐标y
47 - 54   Real(8.3)     z           正交坐标z
55 - 60   Real(6.2)     occupancy   占据率
61 - 66   Real(6.2)     tempFactor  温度因子(B-factor)
77 - 78   LString(2)    element     元素符号
79 - 80   LString(2)    charge      原子电荷

眼花了是吧?别急,咱们只看核心字段:

  • 原子名称(13-16列):比如" C1 "、" O "、" N1 "。注意,元素符号左对齐,数字右对齐,空格不能多不能少。
  • 残基名称(18-20列):配体里常见的"DRG"、"LIG"、"XXX"。这块经常有人写错。
  • 坐标(31-54列):x、y、z各占8列,保留3位小数。单位是Å(埃格斯特朗)。
  • 元素符号(77-78列):这个位置太容易踩坑了。很多PDB文件直接用原子名称代替元素符号,导致后面的工具读不出来。

一个完整的ATOM记录长什么样?

ATOM      1  C1  LIG A   1      12.345  56.789  23.456  1.00  0.00           C  
ATOM      2  O2  LIG A   1      13.456  57.890  24.567  1.00  0.00           O  
ATOM      3  N3  LIG A   1      11.234  55.678  22.345  1.00  0.00           N  

避坑指南:我曾经遇到一个案例,配体PDB里所有原子都用" C "(注意两个空格)表示碳,但实际元素有氮有氧。AutoDock Tools读进去后把所有原子都当碳处理,对接结果直接报废。所以元素符号必须写准写对。

3.3 HETATM记录:配体的“专属通道”

HETATM和ATOM长得几乎一样,唯一的区别是记录类型。但这里有一个潜规则:配体必须用HETATM。

你可能会问:为什么非得分这么清楚?PDB格式当年设计时,ATOM留给标准氨基酸和核酸,HETATM留给小分子、水、配体。很多对接程序通过这个标记来区分大分子和配体。

HETATM记录格式完全沿用ATOM的列定义,只是第1-6列写"HETATM":

HETATM    4  C4  LIG A   1      14.567  58.901  25.678  1.00  0.00           C  
HETATM    5  O5  LIG A   1      15.678  60.012  26.789  1.00  0.00           O  

我的个人习惯:写脚本做格式转换时,我会先判断文件里有没有HETATM记录。如果没有,那大概率是从标准PDB数据库里直接拿来的,需要把配体相关的ATOM手动改成HETATM。

3.4 CONECT记录:原子之间的“锁链”

PDB文件里的原子坐标是孤立的,它们之间怎么连接全靠CONECT记录来定义。

格式简单:

CONECT serial bonded_atom_1 bonded_atom_2 bonded_atom_3 bonded_atom_4

比如:

CONECT    1    2    3
CONECT    2    1    4
CONECT    3    1
CONECT    4    2

这表示原子1连接原子2和3,原子2连接原子1和4,以此类推。

我见过一些PDB文件完全没有CONECT记录,靠着原子名称里隐含的键序信息来推测连接。这种做法风险极高,因为不同力场对键的定义不一样,对接前还是老老实实把CONECT补全比较好。

注意:CONECT记录的原子编号(serial)必须和ATOM/HETATM记录里的序号一致。错一个号,后面连接全乱。我曾经看到过一份PDB,CONECT里写的序号在ATOM记录里根本找不到,整个分子结构全散架了。

3.5 其他关键记录的快速一览

除了上面三个核心记录,PDB文件里还有几类记录,你至少要认识它们:

记录类型 作用 是否必需
HEADER 文件头,记录分子名称、分辨率等元信息 可选
TITLE 自由文本描述 可选
REMARK 注释行,记录实验参数、修正内容 可选
END 文件结束标志 推荐
MASTER 统计信息:原子数、残基数等 可选

对于配体格式转换来说,ATOM/HETATM是必须的,CONECT是强烈推荐的,剩下的你按需保留就行。

3.6 PDB格式的“潜规则”总结

讲了这么多,我帮你理一个快速检查清单:

  • 配体原子必须用HETATM,不要用ATOM
  • 原子名称和元素符号必须分开写,不能混用
  • 坐标值是实数,保留3位小数,单位是Å
  • CONECT记录最好补全,不含糊
  • 每行80列,不要多写也不要少写
  • 文件结尾写END,虽然有些工具不检查,但写了没坏处
PDB文件结构示意图 PDB文件核心记录结构 HEADER / TITLE ATOM / HETATM 原子坐标 + 名称 + 元素符号 CONECT 连接信息 REMARK 注释/实验信息 MASTER 统计汇总 END 📌 配体格式转换重点 • 配体原子必须用 HETATM 记录 • CONECT 记录是建立分子拓扑的关键,强烈建议补全