2. InterProScan概述

你要是刚接触蛋白功能注释,很可能听过这么一句话:「序列相似性不等于功能相似性。」

这话说得没错。BLAST 能帮你找到同源序列,但要回答「这个蛋白到底属于哪个家族?」「它有没有已知的结构域?」——光靠 BLAST 就不够用了。这就是 InterProScan 登场的理由。

我个人第一次用 InterProScan 是因为这样一个需求:手握几万条预测的蛋白序列,来自一个宏基因组项目。BLAST 跑完后,大批序列标注着「hypothetical protein」,一群未知蛋白堆在那里动不了。

我去和组里师兄聊,他说:「你试试 InterProScan。」

我当时嗤之以鼻:不就是多数据库整合吗?真能解决我的问题?

嗯,试完之后我发现——我错了。

2.1 InterPro 是什么?

InterPro 不是单一数据库,而是一个数据库联盟。它把国际上多个主流的蛋白家族、结构域和功能位点数据库整合到一处,消除数据库之间的命名冲突与冗余。

你可以想象一个这样的场景:Pfam 定义了一个结构域叫「PF00001」,SMART 那边叫「SM00123」,其实它们描述的是一回事。InterPro 做的就是这件事——找到每个数据库之间的「重叠区」,并分配统一的 InterPro 条目(例如 IPR001234)。

关键理念:InterPro 不是替代单个数据库,而是「统一目录」。你查一个条目,等于同时翻了多个家族数据库。

2.2 发展历史:从数据库整合到全量扫描工具

InterPro 项目始于 1999 年,由欧洲生物信息学研究所(EMBL-EBI)发起。最初它只做了一件事:把 PROSITE、Pfam、PRINTS 三个数据库的小部分条目手动对齐。

后来数据库越加越多:SMART(2000)、TIGRFAMs(2001)、Gene3D(2004)、SUPERFAMILY(2005)…… 数据库多了,手工维护就撑不住了。

那时候我还在读硕士,印象很深的是我导师反复吐槽:「每次更新 Release,至少有一半条目要重新检查,人工干不完。」

为了把「手工对条目」这件事自动化,InterProScan 应运而生。第一个版本(2002 年左右)核心就是批量扫描,能把序列一次性提交给所有成员数据库,整合返回合并结果。

版本迭代了几个关键节点:

  • v4.x:支持 Web 服务与命令行客户端,但依赖本地 Perl 部署,配置繁琐。
  • v5.x:Java 重写,引入并发执行,扫描速度提升明显。
  • v5.50+:支持 Docker 部署,GFF3/TSV 格式输出更标准。
  • v5.60+(当前主流):支持大规模集群部署,可直接对接 Uniprot 数据源。

你说为什么它活了二十多年还活跃?因为底层的「整合逻辑」没变,而序列数据一直在膨胀。

2.3 核心功能:不是「又一个数据库」,是搜索引擎

InterProScan 的核心功能——说白了就四个字:多数据库扫描。但它扫描的不是平铺直叙的比对,而是逐层细化的分析流程:

  1. 基序(Motif)扫描:用 PROSITE、HAMAP 等模式匹配方式,检查序列中是否存在特征短片段。
  2. 结构域识别:Pfam、SMART、TIGRFAMs 等利用隐马尔可夫模型(HMM)扫描,判断蛋白是否包含已知结构域。
  3. 功能位点定位:例如活性位点、结合位点、信号肽、跨膜区。
  4. 蛋白分类整合:根据匹配结果,归类到 InterPro 家族、超家族层级。

我的使用习惯:不要只看「匹配上了」就停,我通常会手动检查 InterPro 条目的 Evidence Code,确认是基于人工审核的 UniRule 还是自动计算的 HMM。前者可靠性更高。

2.4 支持的分析方法:Pfam、SMART、Gene3D 和其他

这是新用户最容易犯迷糊的地方:InterProScan 集成的方法太多种了,到底哪个方法管什么?

我这里列一个对照表,是我自己在项目里用的「信号解码表」:

方法 类型 最擅长 我遇到过的坑
Pfam HMM(结构域) 全局结构域识别 缺 C 端的截断序列,Pfam 容易漏
SMART HMM(结构域) 信号识别、低复杂度区域 SMART 对跨膜结构域敏感,别乱信
Gene3D HMM(结构域) 结构-功能关联 模型更新慢,旧版本可能出 False Positive
PROSITE 正则/模式匹配 短基序(活性位点) 假阳性率偏高,需其他方法交叉验证
SUPERFAMILY HMM(超家族层级) 深层同源检测 对大序列超耗时
TIGRFAMs HMM(高特异性) 代谢通路相关蛋白 物种偏菌门,真核常见空集
PANTHER HMM + 树 分类层次 + GO 注释 依赖上层层级,蛋白太短结果不完整

为什么表格写得这么详细?因为我曾经踩过坑:对一个细菌蛋白跑 InterProScan,出来一个 Gene3D 高置信度匹配——但那是真核物种的保守结构域。如果不交叉看 Pfam,就会被误导。

2.5 整合 BLAST 注释的动机:InterProScan 不是万能的

也许有人会问:InterProScan 已经整合了这么多数据库,为什么还要加 BLAST?

答案很简单:InterProScan 擅长已知结构域/家族的注释,但它对「全新家族」和「极端趋异序列」无能为力。

举个例子。我做过一个沙漠土壤宏基因组项目,拿到一批蛋白序列,和所有已知数据库比对都找不到结构域。InterProScan 返回「No significant match」。我这批序列真的没功能吗?未必。可能是它来自环境微生物新的分支,家族结构域已经漂移到 HMM 识别不了了。

这时候 BLAST 的「宽松搜索」就派上用场了。对比 HMM 的严格模型,BLAST 用更宽松的位点矩阵(BLOSUM62 等),更底层、更「粗粒度」地找到远源同源。

所以我的建议一直很明确:InterProScan + BLAST 是互补的关系,不是替代关系。InterProScan 解决「已知模板」的问题,BLAST 弥补「未知空间」的覆盖。

2.6 一张图看懂 InterProScan 的核心流程

下面用一张 SVG 图,帮我解释整个处理链条:

InterProScan 核心分析流程图 输入蛋白序列 多重数据库并行扫描 Pfam(结构域) SMART(信号区) Gene3D(结构域) PROSITE(基序) 结果合并与去冗余 匹配 InterPro 条目 输出:结构域、家族、 基序、GO 注释 笔记:InterProScan 不生成 BLAST 比对,仅做结构域级扫描。两者搭配使用可覆盖未知同源区域。 参考脚本:建议同时开启 BLAST 搜索序列的远端同源(教程后续章节详解)。

2.7 避坑指南:我踩过的那些雷

前面我说了不少个人经验,这里集中列几个高频的坑:

坑 1:默认只跑 Pfam 和 SUPERFAMILY?

InterProScan 默认开启的分析方法只有一部分。如果你想同时跑 SMART + Gene3D + PANTHER,得显式在命令行指定。我曾经默认跑完,发现条目标注少了一倍,怀疑自己数据有问题——结果只是没有加 --applications 参数。

避坑建议:自己写脚本扫描时,永远加上:

--applications Pfam,SMART,Gene3D,PANTHER,PROSITE,SUPERFAMILY,TIGRFAMs

坑 2:输出格式误区

TSV 格式简单好解析,但如果有多个匹配到同一个 InterPro 条目,TSV 默认会合并行,丢失每个方法的具体匹配信息。我做过一次差异分析,发现条目统计不准——实际上就是格式理解不到位。

建议:调试阶段用 GFF3 格式,信息最全。

2.8 小结

InterProScan 不是什么「魔法工具」,它是一个多数据库并行的整合分析引擎。它的优势在于覆盖广、标注标准化、可以本地部署。缺点也明显——对新蛋白、极端分化序列、非结构域区域覆盖不足。

这也就是为什么,本教程的核心理念是「整合 BLAST 注释」。InterProScan 做精度,BLAST 做广度。两者结合,才能最大化覆盖率。