3. 复合物序列与结构预处理
复合物结构预测的成败,往往在模型开始推理之前就已经被决定了。AlphaFold-Multimer、RoseTTAFold2、ColabFold 这类工具接收的并不是"几条 FASTA 序列",而是一组经过严格对齐、编号一致、链身份明确的输入。如果直接把从 UniProt 或 PDB 下载的原始序列丢进预测流程,常见后果是:链间配对错位、MSA 深度虚高、模板残基编号与查询序列错位、缺失残基被当作真实残基参与建模。本节围绕四个预处理环节展开:多链序列比对、模板搜索、结构解析与缺失残基处理。
一、多链序列比对:从单链 MSA 到配对 MSA
单链预测时,MSA 只需保证同源序列与查询序列逐列对齐。复合物预测则要求不同链的 MSA 在物种层面"配对"——即同一行来自同一物种或同一基因组上下文,这样共进化信号才能反映链间接触。ColabFold 的 MMseqs2 流程默认对每条链独立搜索,然后按物种标签(taxonomy ID)进行配对;若无法配对,则退化为"未配对 MSA + 链间交叉配对"的拼接模式。
实际操作中,配对质量取决于两个参数:每条链的 MSA 深度(--max-seq,常用 512 或 1024)和配对后保留的行数(--max-paired)。以一条二聚体为例,若链 A 有 3000 条同源序列、链 B 有 800 条,配对后可能只剩 200 行左右。此时应检查配对率:低于 10% 通常意味着两条链的物种覆盖差异过大,需要考虑放宽 --db-load-mode 或改用未配对模式并显式增加链间交叉配对行数。
二、模板搜索:hhsearch 与结构模板的取舍
模板搜索的目标不是"找到最相似的结构",而是找到与查询序列在链组成、化学计量比和界面几何上都兼容的结构。常用工具是 HHsearch(HHsuite)或 MMseqs2 的 profile 搜索。对复合物而言,模板必须同时覆盖多条链,否则只能作为单链模板使用。
一个可复现的 HHsearch 流程如下:先用 hhblits 为每条链生成 HMM profile,再用 hhsearch 将查询 profile 对 PDB70 数据库搜索,最后用 hhfilter 去冗余。关键参数包括 -e(E-value 阈值,常用 1e-3)、-cov(最小覆盖度,建议 ≥ 50%)、-qid(最小序列一致性,建议 ≥ 30%)。对于多链模板,还需检查模板中链的对应关系是否与查询一致——例如查询是 A-B 异源二聚体,模板却是 B-B 同源二聚体,则不能直接使用。
三、结构解析与缺失残基处理
当输入包含实验结构(如 PDB 文件)时,必须先解析并清理。PDB 文件中常见的三类问题:
- 缺失残基:晶体结构中柔性 loop 未解析,表现为残基编号跳号(如 45 后直接是 52)。
- 缺失原子:侧链原子缺失,常见于赖氨酸、精氨酸等长侧链。
- 非标准残基与修饰:MSE(硒代甲硫氨酸)、SEP(磷酸化丝氨酸)等,需映射回标准残基或显式保留。
处理缺失残基有三种策略:一是直接删除该残基,适用于远离界面的柔性区;二是用 MODELLER 或 PDBFixer 补全,适用于界面附近;三是保留为 gap,让预测工具自行处理。判断依据是缺失残基是否位于链间界面 8 Å 范围内——若在界面内,删除会显著改变界面几何,应优先补全。
# 使用 PDBFixer 补全缺失残基与原子
from pdbfixer import PDBFixer
from openmm.app import PDBFile
fixer = PDBFixer(filename='complex_raw.pdb')
fixer.findMissingResidues()
fixer.findMissingAtoms()
fixer.addMissingAtoms()
fixer.addMissingHydrogens(pH=7.0)
PDBFile.writeFile(fixer.topology, fixer.positions, open('complex_fixed.pdb','w'))
补全后必须做一致性检查:补全残基的 φ/ψ 是否落在 Ramachandran 允许区、补全区域是否与相邻链产生原子冲突(< 2.0 Å 视为冲突)。若冲突严重,应回退到删除策略并记录该区域为不确定区。
四、预处理结果的自检清单
完成上述三步后,建议用以下清单快速判断输入是否可用:
| 检查项 | 合格标准 | 异常处理 |
|---|---|---|
| 链数一致性 | FASTA 链数 = 模板链数 = 预期化学计量比 | 核对 UniProt/PDB 注释 |
| 配对 MSA 行数 | ≥ 100 行且配对率 ≥ 10% | 放宽搜索或改用未配对模式 |
| 模板覆盖度 | 每条链 ≥ 50%,界面残基覆盖 ≥ 70% | 降低 cov 阈值或换模板 |
| 缺失残基位置 | 界面 8 Å 内无缺失 | 补全或标记为不确定 |
| 原子冲突 | 补全后无 < 2.0 Å 冲突 | 回退删除或局部优化 |
预处理不是一次性动作,而是与预测结果迭代的过程。第一轮预测后若发现界面残基置信度(pLDDT 或 PAE)异常低,应回到本节流程检查:该区域是否在模板中缺失、MSA 配对是否覆盖了该界面、补全残基是否引入了不合理构象。把预处理结果连同参数一起记录,才能在复现时定位问题来源。