2. 蛋白质序列与结构数据基础
蛋白突变效应预测的第一步不是建模,而是把“突变”这件事变成机器可读、可比较、可复现的数据。一个突变在文献里可能写成 p.V600E、V600E、Val600Glu,甚至只写“第600位缬氨酸被谷氨酸替换”。如果这些写法不统一,后续的特征拼接、结构映射和标签对齐都会出错。本节围绕四个基础问题展开:氨基酸有哪些可量化的理化性质、突变如何标准化表示、序列与结构数据从哪里获取、拿到数据后如何清洗成可用样本。
一、氨基酸理化性质:把残基变成数值向量
蛋白质由20种标准氨基酸组成,它们在疏水性、电荷、体积、极性、芳香性等维度上差异明显。突变效应预测模型通常不会直接输入字母,而是把每个残基编码为数值向量。常见编码方式有三类:
- 独热编码:20维向量,每个残基对应一个位置为1,其余为0。优点是简单无歧义,缺点是无法表达相似性。
- 理化性质编码:用疏水指数、等电点、分子量、侧链体积、极性等连续值表示。例如Kyte-Doolittle疏水指数中,Ile为4.5、Val为4.2、Glu为-3.5,突变前后差值可直接作为特征。
- 进化/结构衍生编码:如BLOSUM62替换分数、PSSM位置特异性打分、相对溶剂可及性等,通常需要多序列比对或结构文件才能计算。
实际工程中,最稳妥的做法是同时保留“字母表示”和“数值表示”。字母用于与数据库对齐,数值用于模型输入。下面这张图展示了从氨基酸序列到突变样本的完整数据流,包括序列获取、结构映射、突变表示和清洗后的样本结构。
二、突变表示:HGVS 是共同语言
HGVS(Human Genome Variation Society)命名是蛋白突变最通用的标准。蛋白层面常见格式为 p.Val600Glu,简写为 p.V600E。其中 p. 表示蛋白水平,Val 是野生型氨基酸三字母缩写,600 是位置,Glu 是突变后氨基酸。工程上建议统一存储为以下字段:
{
"uniprot_id": "P00533",
"position": 600,
"wt_aa": "V",
"mt_aa": "E",
"hgvs_p": "p.Val600Glu",
"mutation_type": "missense"
}
注意位置编号的参照系。UniProt 序列编号通常从1开始,包含信号肽;而成熟蛋白编号可能去掉信号肽,PDB 结构编号又可能从其他数字开始。例如 EGFR 的 V600E 在 UniProt P00533 中位于第600位,但在某些 PDB 结构中可能对应不同的 auth_seq_id。因此,必须建立“UniProt 位置 ↔ PDB 残基编号”的映射,不能直接混用。
三、PDB 与 UniProt 数据获取
UniProt 提供序列、功能注释和变异信息,可通过 REST API 获取。例如获取 EGFR 的 FASTA 序列:
https://rest.uniprot.org/uniprotkb/P00533.fasta
PDB 提供结构文件,可通过 RCSB PDB 下载:
https://files.rcsb.org/download/1M17.pdb
拿到 PDB 文件后,需要关注几个关键字段:ATOM 记录中的链 ID、残基编号、残基名和坐标;SEQRES 记录中的序列信息;以及 REMARK 465 中列出的缺失残基。缺失残基意味着该位置在实验中未被解析,突变若落在这些位置,就无法获得结构特征。
四、数据清洗:从原始记录到可用样本
清洗的目标是让每条突变样本都具备一致的字段和可追溯的来源。建议按以下顺序处理:
- 解析序列:读取 FASTA,去除标题行,保留单字母序列,检查是否有非标准字符(X、B、Z、U、O)。
- 解析结构:提取 ATOM 记录,按链和残基编号建立坐标字典;记录缺失残基区间。
- 建立映射:将 UniProt 位置映射到 PDB 残基编号。常用方法是序列比对,将 UniProt 序列与 PDB 的 SEQRES 或 ATOM 序列做全局比对,得到位置对应关系。
- 标准化突变:将各种写法统一为
wt_aa + position + mt_aa,并生成 HGVS 字符串。 - 一致性校验:检查
wt_aa是否与 UniProt 序列在该位置一致;检查位置是否在结构覆盖范围内;检查突变类型是否为错义、无义、移码等。 - 特征计算:计算突变前后理化性质差值,如疏水指数差、电荷差、体积差;若结构可用,计算相对溶剂可及性、二级结构、与配体距离等。