第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,虽然有些工具不检查,但写了没坏处