256

Pfam:蛋白结构域数据库怎么用

Pfam 用隐马尔可夫模型定义蛋白家族与结构域,帮助识别蛋白的功能模块。这篇讲清 HMM 的原理优势、检索方式与在靶点分析中的用法。

Pfam 是蛋白结构域数据库,用隐马尔可夫模型(HMM)定义了约 2 万个蛋白家族。它回答的问题是:「这个蛋白由哪些功能模块组成?」 蛋白是模块化的——理解一个蛋白的结构域构成,往往比看整条序列更能说明它的功能。现已整合进 InterPro(见 257《InterPro》)。

为什么用 HMM 而不是简单比对

  • 位置特异性:HMM 为每个位置学习不同的氨基酸偏好。结构域中保守的催化残基位置几乎不允许替换,而 loop 区可以自由变化——简单的打分矩阵(如 BLOSUM)无法表达这种差异。
  • 能建模插入缺失:HMM 显式建模插入和缺失的概率,比固定的 gap penalty 更贴近实际。
  • 灵敏度更高:能检测出序列同一性低至 20%~30% 的远缘同源关系,而这个区间正是简单比对失效的地方。

怎么用

# 在线:InterProScan 或 Pfam 网站上传序列

# 本地:HMMER + Pfam-A 库
mamba install -c bioconda hmmer
wget https://ftp.ebi.ac.uk/pub/databases/Pfam/current_release/Pfam-A.hmm.gz
gunzip Pfam-A.hmm.gz
hmmpress Pfam-A.hmm            # 建索引

# 扫描序列
hmmscan --domtblout results.tbl --cut_ga Pfam-A.hmm query.fasta

--cut_ga 使用 Pfam 为每个家族人工设定的 gathering threshold,这是官方推荐的阈值,比自己设 E-value 更可靠——每个家族的阈值是策展人根据该家族特点单独调过的。

# 解析结果,得到结构域架构
import pandas as pd

cols = ["target", "accession", "tlen", "query", "qaccession", "qlen",
        "evalue", "score", "bias", "dom_num", "dom_total",
        "c_evalue", "i_evalue", "dom_score", "dom_bias",
        "hmm_from", "hmm_to", "ali_from", "ali_to",
        "env_from", "env_to", "acc", "description"]
df = pd.read_csv("results.tbl", sep=r"\s+", comment="#",
                 names=cols, usecols=range(23))

# 按位置排序,得到该蛋白的结构域架构
arch = df.sort_values("ali_from")[["target", "ali_from", "ali_to", "i_evalue"]]
print(arch)

在药物研发中的用法

  • 确定该做哪个域:多域蛋白中,通常只有一个域是药物作用位点。激酶蛋白的激酶域、核受体的配体结合域——做结构预测和对接时应该只取相关域,而不是全长蛋白。全长预测往往在域间取向上不可靠,反而干扰判断。
  • 评估选择性风险:同一家族的蛋白共享结构域,结合口袋高度相似。查一下靶点属于哪个 Pfam 家族、家族里有多少成员,就能初步判断选择性的难度。激酶域(PF00069)有数百个成员,这就是激酶抑制剂选择性难做的根本原因。
  • 寻找可成药先例:同家族的其他成员是否已有上市药物?如果有,说明该家族的口袋是可成药的,配体化学型也有参考价值。
  • 理解功能:新靶点或功能未知蛋白,结构域组成是推断功能最快的线索。
  • 指导构建体设计:表达纯化时按结构域边界设计构建体,比随意截断成功率高得多。

Clan:更高层的分组

Pfam 把进化上相关但序列已分化较远的家族归为 clan。做选择性分析时,不仅要看同家族成员,还要看同 clan 的成员——它们的结构相似度可能仍足以造成脱靶结合,而单看家族会漏掉这部分风险。

局限

  • 只覆盖已知家族:全新的结构域可能识别不出,无匹配不等于没有结构域。
  • 边界是概率性的:预测的域边界有一定不确定性,做构建体设计时应结合结构信息(如 AlphaFold 预测的 pLDDT 低谷常对应域间连接区)。
  • 无序区不覆盖:内在无序区不形成结构域,Pfam 对它们几乎没有信息。
  • 序列相似不等于功能相同:同家族成员可能有完全不同的底物特异性。

上手提示

  • --cut_ga 而非自设 E-value,那是策展人为每个家族调过的阈值;
  • 做结构预测与对接时只取相关结构域,别用全长蛋白;
  • 查家族成员数量能快速判断选择性难度,还要看同 clan 的成员;
  • 域边界是概率性的,构建体设计要结合结构信息确认。

延伸资源