4. 数据库下载与管理:核心数据库列表(Pfam、ProDom等),使用interproscan.sh自动下载,手动管理数据库路径

数据库,是InterProScan功能注释的弹药库。没有数据库,你跑再多的序列也只是一堆字母。我见过不少新手,上来就装软件,装完就跑,结果卡在下载数据这一步——文件巨大、网速不给力、中断重来……心态直接崩了。

这一章,咱们就专门搞定数据库的下载和管理。说白了,就是让你知道要下载哪些库、怎么下、下完放哪儿,以及出了问题怎么救。

4.1 核心数据库有哪些?

InterProScan背后有十几个成员数据库,每个库都有自己的统计模型或算法,用来识别不同类型的序列特征。我把最常用的几个拉出来给你看看:

数据库名称 类型 识别对象 模型方法
Pfam 蛋白质家族 结构域、保守位点 HMM(隐马尔可夫模型)
ProDom 蛋白质结构域 同源结构域 PSI-BLAST迭代聚类
PRINTS 蛋白质指纹 保守基序组合 指纹图谱比对
SMART 信号结构域 信号肽、跨膜区域 HMM + 规则库
TIGRFAMs 蛋白质家族 功能相关家族 HMM(高特异性)
Gene3D 蛋白质结构 CATH结构分类 HMM + 结构比对
SuperFamily 超家族 远源同源关系 HMM(多序列比对)
PANTHER 功能分类 基因本体、通路关联 HMM + 进化树
CDD 保守结构域 NCBI保守域数据库 RPS-BLAST
PIRSF 蛋白质家族 非冗余功能分类 多序列比对+人工校验

你可能会问:「这些库我都要下吗?」说实话,全下下来占空间挺大的,差不多30-40GB。我个人习惯的做法是:先下Pfam和ProDom,跑通流程,后面再根据需要添加其它库。这样既不耽误练习,又不会因为第一次下载时间过长而劝退自己。

4.2 使用interproscan.sh自动下载

InterProScan官方给我们准备了一个自动脚本,就在解压后的根目录下,叫interproscan.sh。它能帮你把数据库从EMBL-EBI的FTP服务器拉下来,省得你一个个去官网找。

命令长这样:

# 进入InterProScan目录
cd interproscan-5.65-96.0

# 只下载核心数据库(Pfam、ProDom等)
./interproscan.sh -d

# 或者下载全部数据库(时间长,空间大)
./interproscan.sh -d all

第一次运行时,它会自动检查data/目录下有没有数据库文件。如果发现是空的,就会启动下载。终端里会打印出类似下面的日志:

INFO: Starting download of core databases...
INFO: Checking for Pfam...
INFO: Pfam not found, downloading from https://ftp.ebi.ac.uk/pub/databases/interpro/current/
INFO: Downloading Pfam-A.hmm.gz (5.8 GB)
INFO: 15% complete...
INFO: 32% complete...
...
INFO: Download complete for Pfam
INFO: Decompressing Pfam-A.hmm.gz...
INFO: Running hmmpress to index Pfam-A.hmm...
INFO: Pfam ready.
INFO: Checking for ProDom...
...

核心要点:

  • -d 参数不带任何选项时,默认只下载「核心数据库」(Pfam、ProDom、PRINTS、SMART、TIGRFAMs、SuperFamily、PANTHER、CDD、PIRSF、Gene3D这10个)
  • -d all 会下载包括CATH、MobiDB等在内的全部数据库,大约需要80-100GB磁盘空间
  • 下载完成后会自动解压、运行hmmpress对HMM文件建立索引
  • 国内网络环境下,建议使用nohup或screen让下载在后台跑,避免断连

小技巧:如果下载中途断了,可以再次运行./interproscan.sh -d,脚本会检测已下载的文件,从断点处续传。不过要注意,这依赖于FTP服务器是否支持断点续传——EMBL-EBI一般是支持的,但部分镜像站可能不行。

4.3 手动管理数据库路径

自动下载虽然方便,但实际工作中往往会遇到更复杂的情况。比如:

  • 你想把数据库放在单独的磁盘或挂载点(节省根分区空间)
  • 你需要在多个InterProScan实例之间共享同一个数据库目录
  • 你从别的服务器拷贝了现成的数据库,不想重新下载

这时候,手动管理数据库路径就成了刚需。

4.3.1 通过环境变量指定路径

InterProScan支持通过环境变量INTERPROSCAN_DATA来指定数据库存放位置。举个例子:

# 把数据库放到 /data/bioinfodb/interpro_data
export INTERPROSCAN_DATA=/data/bioinfodb/interpro_data

# 然后用 -d 参数下载到该路径
./interproscan.sh -d

# 之后运行分析时也保持这个环境变量
./interproscan.sh -i input.fasta -o output.gff3

设置好之后,脚本就会在/data/bioinfodb/interpro_data下寻找或存放数据库文件,不会再碰解压根目录下的data/文件夹。

4.3.2 修改interproscan.properties配置

还有一个更「硬」的做法——直接改配置文件。找到根目录下的interproscan.properties,搜索data.directory这一行:

# 原始配置
data.directory=data

# 修改为自定义路径
data.directory=/data/bioinfodb/interpro_data

改动之后,就算你没有手动export环境变量,InterProScan也会去这个自定义路径找数据。

曾经有个坑:我之前有个项目,在集群上跑InterProScan,用户把数据库路径配到了interproscan.properties,又同时export了一个不同的INTERPROSCAN_DATA环境变量。结果环境变量优先级高于配置文件,一直报错说数据库找不到。查了半天才发现是变量冲突了。所以我的建议是——不要同时使用两种方式,选一种保持一致。

4.3.3 手动下载与软链接

如果你因为网络问题没法用自动下载,或者手头已经有完整的数据包,可以这样操作:

# 1. 手动从EMBL-EBI官网下载数据包
wget https://ftp.ebi.ac.uk/pub/databases/interpro/current/interproscan-data-5.65-96.0.tar.gz

# 2. 解压到目标目录
tar -zxf interproscan-data-5.65-96.0.tar.gz -C /data/bioinfodb/

# 3. 建立软链接到InterProScan的data目录
ln -s /data/bioinfodb/interproscan-data-5.65-96.0 interproscan-5.65-96.0/data

为什么要用软链接?因为这样既能把数据库挪到大容量分区,又不破坏InterProScan默认的数据寻找逻辑。你想想看,如果每次都改配置文件,换版本的时候又得重新改,多麻烦。软链接一次配好,以后升级InterProScan只要把链接指到新版本就行。

4.4 数据库验证与完整性检查

数据下载完,不代表万事大吉了。我之前遇到过一个问题——下载中断导致某个HMM文件不完整,结果运行注释时,Pfam那一步直接报错退出。排查了半天才发现是数据损坏。

为了避免这种情况,建议下载后做两件事:

  1. 检查md5校验和——官方提供了.md5文件,用md5sum -c *.md5验证
  2. 检查HMM索引文件——确保每个.hmm文件都有对应的.h3m、.h3f等索引文件
# 进入数据库目录
cd /data/bioinfodb/interpro_data

# 验证md5
md5sum -c interproscan-data-5.65-96.0.tar.gz.md5

# 检查Pfam索引是否完整
ls -la Pfam-A.hmm*

如果索引文件缺失,可以手动运行hmmpress重建:

hmmpress Pfam-A.hmm

4.5 知识体系:数据库下载与管理核心逻辑

这张图帮你理清整个数据库下载与管理的流程,从选择数据库、执行下载,到路径配置和验证,一步到位。

数据库下载与管理核心逻辑 选择数据库(核心/全部) 自动下载(interproscan.sh -d) 手动下载 + 解压 + 链接 自动解压 → hmmpress索引 存放至自定义路径(/data/...) 环境变量 INTERPROSCAN_DATA 修改 interproscan.properties md5校验 → 运行注释分析 建议:核心数据库约30-40GB;生产环境优先使用软链接或环境变量管理路径

4.6 本章小结

数据库下载是InterProScan最耗时的一步,也是最容易被忽略的一步。把这一章的内容捋清楚,后面跑注释就顺畅多了。

  • 核心数据库包括Pfam、ProDom、PRINTS等10个,总大小约30-40GB
  • 自动下载用./interproscan.sh -d,支持断点续传
  • 路径管理有3种方式:环境变量、配置文件、软链接
  • 验证完整性用md5校验和hmmpress索引检查

说实话,数据库这块只要配好一次,后面基本就不用再操心了。切换到新版本时,软链接或环境变量的优势就体现出来了——改一个路径,所有数据库自动复用。这个习惯,建议你从一开始就建立起来。