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)
另外,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
如果你不想下全量,可以按需选择。表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,十几秒就能出结果。
本章结构图
下面这张图总结了整个安装流程,从环境准备到运行验证。你看一眼就能知道每一步在做什么:
说白了,整个安装流程就是这六个步骤,环环相扣。我个人花了最多时间的地方在数据库下载和配置调优,其他几步基本都是一次过的。
常见问题排查
安装过程中难免遇到各种问题。我列几个自己踩过的坑:
- Java版本不兼容:启动时报
Unsupported major.minor version,基本就是JDK版本高了。降级到JDK 11即可。 - 数据库加载失败:启动后半天没反应,一看日志是数据库文件损坏或没解压完。重新执行
manage_databases.py的下载步骤,注意磁盘空间。 - 内存溢出(OOM):扫描大序列集时直接崩了。检查
memory.maximum设置,不要超过物理内存的60%。 - 权限问题:
interproscan.sh没有执行权限。运行chmod +x interproscan.sh即可。
一条实用经验:我第一次搭环境时,用学校服务器跑全量数据库下载,结果网络卡顿导致部分数据库下载不完整,运行时报错说"Pfam数据库缺失"。后来我加了个校验步骤:下载完成后,用ls -lh对比每个数据库文件夹的大小,跟官方文档列出的体积做比较,能快速发现问题。
好,环境搭好,数据库到位。下一步就可以开始拿真正的序列数据做特征提取了。