1. InterProScan 概述与结果解读

说实话,我刚接触 InterProScan 那会儿,也跟不少人一样——看着一堆数据库名字发懵。Pfam?Superfamily?Gene3D?这些到底是个啥?

后来做多了才明白,InterProScan 不是某个单一功能预测工具,它其实是一个「聚合器」。它把十几个蛋白功能数据库的预测结果统一跑一遍,再把结果汇总给你。你想想看,人工一个个去查每个数据库,那要花多少时间?

1.1 什么是 InterProScan?

InterProScan 是 EBI(欧洲生物信息学研究所)开发的一个在线/本地分析工具。它的核心功能很简单:输入一条或多条蛋白序列,输出它的功能域、保守位点、家族分类信息。

底层调用了这些数据库(我挑几个主要的说):

数据库类型典型产出
Pfam蛋白家族 HMM 库结构域名称、位点、e-value
PROSITE模式/配置文件功能位点、活性位点
PRINTS指纹图谱多序列保守指纹
SUPERFAMILY结构域 HMM 库SCOP 超家族分类
Gene3DCATH 结构域 HMM结构域三级结构分类
PANTHER蛋白家族/通路功能分类、GO 注释
CDD保守结构域数据库NCBI 结构域注释
HAMAP微生物蛋白家族种属特异性功能标记

每个数据库都有自己的算法特点。Pfam 靠隐马尔可夫模型(HMM),PROSITE 靠正则表达式,PRINTS 靠多重序列比对后的指纹。InterProScan 把它们的结果做了整合去重,给你一个「合并后的最佳判断」——也就是 InterPro 条目。

个人经验:我在项目中遇到过一种情况——同一个结构域在 Pfam 和 Gene3D 里都命中,但边界差几个氨基酸。InterProScan 会输出一个「consensus」区间,这时候我一般会再看具体 HMM 的位点坐标,以边界更保守的那个为准。

1.2 运行 InterProScan 的两种方式

嗯,这里要注意:你可以在网页上跑,也可以本地装一个。网上的叫 InterProScan Web,适合小量序列(比如一次 1~10 条)。本地的叫 InterProScan CLI(命令行版),适合批量和敏感数据。

我自己的习惯是,做验证实验前先用 Web 版快速扫一眼结果,确认参数没问题后,再跑本地版做完整分析。

本地安装后的基本用法:

interproscan.sh -i input.fasta -f tsv,gff3 -dp

参数解释:

  • -i:输入 FASTA 文件
  • -f:输出格式,常用 tsv(表格)、gff3(基因组注释格式)、xml(带全部细节)
  • -dp:禁用预计算匹配(避免走缓存,强制全量扫描)

跑完之后你会得到类似下面的结果文件(以 tsv 格式为例):

# protein_accession  sequence_length  analysis   signature_accession  signature_description  start  end  score   status  date
sp|Q5SLP2|ADH5_MEDTR  380  Pfam  PF00107  Alcohol dehydrogenase, zinc-binding domain  1  180  2.3e-48  T  2025-03-01
sp|Q5SLP2|ADH5_MEDTR  380  Pfam  PF08240  Alcohol dehydrogenase, C-terminal domain  201  370  5.1e-35  T  2025-03-01
sp|Q5SLP2|ADH5_MEDTR  380  PRINTS  PR00075  Zinc dehydrogenase signature  80  95  1.4e-12  T  2025-03-01

每一行对应一个「数据库方法 → 蛋白」的命中。这里的关键字段是:

  • analysis:来自哪个数据库(Pfam, PRINTS 等)
  • signature_accession:该数据库内部的模型 ID
  • description:该结构域/家族的功能描述
  • start / end:在蛋白序列上的匹配区间
  • score:e-value 或 bitscore,越低越可靠
  • status:T 表示 true(经过人工校验的模型),? 表示未校验

1.3 如何读懂 InterPro 条目?

InterPro 条目的 ID 长这样:IPR000123。每个条目代表一个「功能域的共识定义」——它跨多个数据库做了合并。

举个例子,一个蛋白可能被 Pfam 的 PF00107 和 PRINTS 的 PR00075 同时命中,而 InterPro 知道这两个模型其实对应同一个功能域——锌依赖醇脱氢酶结构域,于是将它们合并成一个条目 IPR002328。这大大减少了冗余。

你可以通过网页查看每个 InterPro 条目的详细页面,里面包含:

  • 功能描述(包括 GO 注释)
  • 结构域的结构概览(如果有已知晶体结构)
  • 参与的数据库方法列表及其关系树
  • 跨物种的序列分布情况

小技巧:在 tsv 结果里,如果你看到同一个区间被多个数据库命中,且它们的 signature_accession 都映射到同一个 InterPro ID,那说明这个预测非常可靠。反之,如果只有单个数据库支撑,我建议你再去其他工具交叉验证一下。

1.4 结果可视化:一眼看出蛋白的结构域架构

光看表格还不够直观。我习惯把结果画成结构域图谱。下面这个 SVG 图展示了某一蛋白的典型结构域架构:

InterProScan 结构域架构示例 蛋白骨架(382 aa) 锌结合域 C末端结构域 PRINTS指纹区 Pfam 结构域 PRINTS 指纹 Gene3D 结构域 🔍 解读:该蛋白由两部分构成——N端锌结合域(Pfam PF00107)和 C端保守域(Pfam PF08240),中间区域被PRINTS指纹二次确认。

1.5 结果解读的关键:别只看 e-value

很多人拿到数据后,盯着 e-value 看:「小于 1e-10 就算命中」。但我在实际项目中踩过坑——e-value 很低,但结构域边界明显不合理(比如覆盖了整个蛋白的 90%),这时候很可能是假阳性。

所以我说,你需要结合以下三点判断:

  1. 结构域长度:结构域不应该比整个蛋白还长,成熟结构域通常在 50~300 aa。
  2. 多数据库一致性:同一个区域被 2 个以上数据库同时命中,可信度大大增加。
  3. GO 注释合理性:如果预测出「DNA 结合域」,但你的蛋白已知是细胞质膜蛋白,那就要怀疑。

曾经踩过的坑:有一次我分析一个细菌的未知蛋白,InterProScan 给出一个「外膜孔蛋白」结构域,e-value 1e-45,我以为找到了功能。但后来做跨膜预测时发现该蛋白只有 120 aa,根本不够形成跨膜结构。回头细看,原来是模型匹配到了序列中一段富含β-折叠的片段,并不是真正的功能域。

1.6 从结果到实验验证的思路

通过 InterProScan,你至少能获得以下有价值的信息用于指导下一步实验:

结果信息可指导的实验方向
预测到一个保守酶活性位点定点突变 + 酶活检测
确定蛋白属于某个已知家族比对同源蛋白功能,设计敲除/过表达
发现一个新结构域晶体结构解析 / 酵母双杂交验证互作
预测到跨膜区域膜蛋白定位荧光实验、拓扑结构分析
多个数据库不一致需要重新建 HMM 或做多序列比对确认

我个人的习惯是:拿到结果后先画个结构域草图(像上面 SVG 那样),然后列出来哪些位置可以从实验上去验证——比如预测的活性位点可以突变掉看活性变化,预测的结构域边界可以做截短突变看功能丧失。

避坑指南:千万不要只依赖一个数据库的结果做实验设计。我曾经只信了 PROSITE 的预测,结果突变以后蛋白完全没变化——后来发现该模式匹配的是「可能位点」,特异性本来就不高。所以我现在一定先看 InterPro 的 consensus 结果,再回查各原始数据库的可靠性评分。

好,到这里你应该对 InterProScan 是什么、输出长什么样、怎么初步解读有了一个整体感觉。下一件事就是把你自己手头的蛋白序列扔进去跑一轮,亲自看看结果文件里的那些数字和名字——相信我,跑过一次就全明白了。