环境搭建与安装:操作系统要求、conda安装、源码编译与容器化部署

说真的,安装 InterProScan 看起来不难,但坑是真不少。我自己带团队做质控项目时,第一次装就栽在数据库路径上。后来我总结出一个原则:先搞清楚你的系统环境,再选安装方式。下面我把三种主流方式拆开讲。

操作系统要求

InterProScan 官方推荐跑在 Linux 上。我个人的经验是:CentOS 7+ 或 Ubuntu 18.04+ 最稳。Windows 虽然能用 WSL,但性能打折,不建议生产环境用。

最低软硬件配置:

项目最低要求建议配置
CPU4 核16 核以上
内存8 GB32 GB
磁盘50 GB200 GB (SSD)
JavaOpenJDK 11OpenJDK 17
Python3.83.10
Perl5.265.34
我曾经踩过一次坑: 用 CentOS 6 装 InterProScan 5.59,结果依赖库版本太老,编译阶段报错了一堆。后来我学乖了——先用 uname -a 和 cat /etc/os-release 确认系统,再动手。

方法一:conda 安装

这是我最推荐的方式。你想想看,conda 能自动处理几乎所有的依赖,包括那个让人头疼的 hmmer3 和 signalp。对,你没看错——InterProScan 的第三方工具在 conda 里都是预编译好的。

直接上命令:

conda create -n interpro -c bioconda interproscan
conda activate interpro

但别急着跑任务。装好以后,还要干两件事:

  1. 下载数据库(大约 4 GB): interproscan.sh --download
  2. 检查路径配置:确认 interproscan.properties 里的 db.path 指向对了。

我的个人习惯: 用 conda 装完后,第一时间执行 interproscan.sh -v 看版本号。如果输出正常,再跑一个最小测试:

interproscan.sh -i test_proteins.fasta -f TSV

这样能提前发现 Java 堆内存是否够用,避免跑了一整天才发现 OOM。

方法二:源码编译

说实话,我一般只在 conda 不可用或者需要定制参数时才走这条路。比如某些 HPC 集群上 conda 被禁用,那就只能自己编译了。

先拉源码:

git clone https://github.com/ebi-pf-team/interproscan.git
cd interproscan

InterProScan 用 Maven 管理构建,但你别怕——它其实是个 wrapper,核心是调一堆外部工具(像 C 写的 blast+、hmmer、pfam_scan 等)。所以编译前要装好这些依赖:

  • 系统包:gcc g++ make cmake
  • 生物信息工具:hmmer、ncbi-blast+、signalp(需要许可证)、tmhmm
  • Java 11+ + Maven 3.6+

然后编译打包:

mvn clean package -DskipTests

嗯,这里要注意——编译一次可能要 10-20 分钟,而且如果你网络不好,Maven 会卡在下载依赖上。我的建议是:先在 settings.xml 里配好阿里云镜像。

方法三:容器化部署

如果你在用 Kubernetes 或者只是图省事,容器是最优雅的方案。官方提供 Docker 镜像:

docker pull biocontainers/interproscan:v5.63-78.0
docker run -v /data:/data biocontainers/interproscan:latest interproscan.sh \
  -i /data/input.fasta -f TSV -o /data/output.tsv

镜像里已经包含了所有数据库和依赖。你只需挂载输入输出目录即可。

Singularity 用户注意: 很多 Slurm 集群只认 Singularity。你可以把 Docker 镜像转成 Singularity:

singularity pull interproscan.sif docker://biocontainers/interproscan:latest
singularity exec interproscan.sif interproscan.sh -i input.fasta

这样就不需要 root 权限了。

三种方式各有长短,我画了张图帮你梳理思路:

InterProScan 环境搭建路径选择 Linux 操作系统 conda 安装 源码编译 容器部署 自动依赖管理 Java + Maven + 工具链 系统级库 (gcc etc) Docker / Singularity 下载 & 配置 InterProScan 数据库 运行 interproscan.sh 💡 生产环境首选容器或 conda 源码编译主要用于定制或受限环境

最后提醒一句: 不管用哪种方式,都先跑 interproscan.sh --help 看看有没有报错。我见过有人明明装好了,却因为 JAVA_HOME 没设导致无法启动。这种问题排查起来特别浪费时间——别问我怎么知道的。