InterProScan安装与配置:Linux环境部署与数据库下载

老实说,InterProScan的安装并不算复杂,但坑确实不少。我自己第一次部署时,光数据库下载就折腾了大半天——明明看着进度条跑完了,一运行就报错。后来才发现是磁盘空间不够,解压到一半直接挂了。

这一章,我带你把整个环境搭起来。从系统依赖到数据库下载,每一步都过一遍。

1. 系统依赖准备

InterProScan基于Java开发,所以JDK是必须的。版本方面,我个人习惯用OpenJDK 11,兼容性最稳。

# 安装OpenJDK 11
sudo apt-get update
sudo apt-get install openjdk-11-jdk

# 验证
java -version

输出应该类似这样:

openjdk version "11.0.18" 2023-01-17 LTS
OpenJDK Runtime Environment (build 11.0.18+10-post-Ubuntu-0ubuntu120.04.1)
OpenJDK 64-Bit Server VM (build 11.0.18+10-post-Ubuntu-0ubuntu120.04.1, mixed mode, sharing)
注意:Java版本不要低于8,也别用太新的17或21。我在项目里遇到过InterProScan 5.x不兼容Java 17的情况,报错信息极其隐晦,查了半天才发现是JDK版本问题。

另外,Perl和一些基础工具也得装上:

sudo apt-get install perl
sudo apt-get install wget curl

2. 获取InterProScan安装包

官方下载地址放在EBI的FTP上。我通常直接拿wget拉取,速度还行。

wget ftp://ftp.ebi.ac.uk/pub/software/unix/iprscan/5/5.63-93.0/interproscan-5.63-93.0-64-bit.tar.gz

这个包大概1.2GB。下载完记得校验完整性:

md5sum interproscan-5.63-93.0-64-bit.tar.gz

官方提供的MD5值在FTP同目录下有个.md5文件,对比一下即可。

我的经验:万一网络不稳定,建议用wget -c断点续传。我曾经在学校机房下载到99%断连,没有加-c参数,只能从头再来,心态崩了。

3. 解压与目录规划

解压前先想清楚放哪。我个人习惯放在/opt或者/usr/local下,方便全局调用。

tar -xzf interproscan-5.63-93.0-64-bit.tar.gz -C /opt/
cd /opt/interproscan-5.63-93.0

解压后的目录结构大概是这样:

interproscan-5.63-93.0/
├── bin/
├── core/
├── data/
├── lib/
├── resources/
└── interproscan.sh

这里面几个目录很关键:

  • bin/ —— 核心二进制和wrapper脚本
  • data/ —— 存放数据库文件(等你下载后放进来)
  • lib/ —— Java依赖库
  • interproscan.sh —— 主启动脚本,后面全靠它

4. 数据库下载

这才是个重头戏。InterProScan自带了一套精简数据库,但为了完整功能,我建议把全部成员数据库都下载下来。

官方提供了一个自动下载脚本,在data/目录下:

cd data/
python3 manage_databases.py --download-all
重要提醒:全量数据库大概80GB左右。确保你的磁盘还剩至少150GB——因为下载的是压缩包,解压还要额外空间。我曾经在20GB的服务器上直接跑这个命令,跑到一半磁盘满了,系统直接hang住,最后只能重启重来。

如果你不想下全量,可以按需选择。表2-1列出了常用数据库的识别功能:

数据库名称 识别特征类型 数据量
Pfam 蛋白质结构域 ~5GB
PRINTS 蛋白质指纹图谱 ~2GB
ProSitePatterns 保守序列模式 ~200MB
ProSiteProfiles 序列谱 ~3GB
SMART 简单模块化架构域 ~1GB
SUPERFAMILY 超家族 ~8GB
TIGRFAMs 蛋白质家族 ~2GB

按需下载的命令示例:

python3 manage_databases.py --download Pfam SMART ProSitePatterns

下载完成后,脚本会自动解压到data/目录的对应子文件夹里。检查一下结果:

ls -lh data/
drwxr-xr-x pfam/
drwxr-xr-x smart/
drwxr-xr-x prositeprofiles/
...

特别说明:InterProScan的数据库是增量更新的。官方每季度发布一次新版本。你之后可以只运行--download-new来补新数据,不用全量重下。

5. 配置与快速验证

数据库下载完,在启动前,检查一下interproscan.properties配置文件。这个文件在安装根目录下:

vim interproscan.properties

关键参数有这么几个:

# Java堆内存大小,默认是2GB
memory.initial=2048m
memory.maximum=4096m

# 数据库路径(一般都是相对于安装目录的data/,不用改)
data.directory=data/

# 是否启用并行扫描
scan.max.parallel=4

嗯,这里要注意一下堆内存设置。如果服务器内存比较紧张,比如只有8GB,我建议把memory.maximum设为4096m,别给太高,否则系统直接OOM。

配置完,跑一个最小测试:

./interproscan.sh -i test_proteins.fasta -f TSV

test_proteins.fasta是官方提供的示例文件,在test/目录下。如果一切正常,终端会输出扫描进度,最后在当前目录下生成test_proteins.fasta.tsv和test_proteins.fasta.gff3两个文件。

我自己常用的测试序列:如果你手头没有测试文件,直接用下面这个快速手写一个:
echo ">test_seq
MSQVTNAGQYDPSTALNMQQFQNGLQIANHMRVIMVTNLNENLSTAE" > test.fa
然后运行./interproscan.sh -i test.fa -f TSV,十几秒就能出结果。

本章结构图

下面这张图总结了整个安装流程,从环境准备到运行验证。你看一眼就能知道每一步在做什么:

InterProScan Linux环境部署流程 InterProScan Linux环境部署流程 ① 系统依赖(JDK 11 + Perl) ② 下载安装包(wget + md5校验) ③ 解压到 /opt/ 目录 ④a 全量数据库下载 --download-all ④b 按需数据库下载 --download Pfam SMART ... ⑤ 配置 properties(堆内存等) ⑥ 运行验证(./interproscan.sh -i test) 全量约80GB 确保>150GB空闲

说白了,整个安装流程就是这六个步骤,环环相扣。我个人花了最多时间的地方在数据库下载和配置调优,其他几步基本都是一次过的。

常见问题排查

安装过程中难免遇到各种问题。我列几个自己踩过的坑:

  • Java版本不兼容:启动时报Unsupported major.minor version,基本就是JDK版本高了。降级到JDK 11即可。
  • 数据库加载失败:启动后半天没反应,一看日志是数据库文件损坏或没解压完。重新执行manage_databases.py的下载步骤,注意磁盘空间。
  • 内存溢出(OOM):扫描大序列集时直接崩了。检查memory.maximum设置,不要超过物理内存的60%。
  • 权限问题:interproscan.sh没有执行权限。运行chmod +x interproscan.sh即可。

一条实用经验:我第一次搭环境时,用学校服务器跑全量数据库下载,结果网络卡顿导致部分数据库下载不完整,运行时报错说"Pfam数据库缺失"。后来我加了个校验步骤:下载完成后,用ls -lh对比每个数据库文件夹的大小,跟官方文档列出的体积做比较,能快速发现问题。

好,环境搭好,数据库到位。下一步就可以开始拿真正的序列数据做特征提取了。