参考官方文档,目前 Interproscan 本地版几乎免安装,自带数据库,使用简单。
下载与安装
跳转到软件放置目录
cd /home/public/tools
wget https://ftp.ebi.ac.uk/pub/software/unix/iprscan/5/5.61-93.0/interproscan-5.61-93.0-64-bit.tar.gz
tar -pxvzf interproscan-5.61-93.0-*-bit.tar.gz
cd interproscan-5.61-93.0
export PATH=`pwd`:$PATH
注意到软件依赖 Java11 或者以上
export PATH=/home/public/tools/jdk-17.0.1/bin:$PATH
使用软件
mkdir anno.dir
蛋白序列
interproscan.sh -cpu 40 -d anno.dir -dp -i protein.fa
核酸序列
interproscan.sh -cpu 40 -d anno.dir -dp -t n -i transcripts.fa
几个参数:
-cpu 线程数
-d 输出目录
-dp 不使用已有计算结果(似乎是需要联网?)
-i 用于注释的序列
报错与解决
很遗憾,按照上述操作,可能会遇到一些报错。多数情况是一些路径或者软件版本问题,比如 JDK 。但如果是 系统库 的问题,那么升级系统函数库可能会导致其他已有软件出问题。conda 估计解决不了。但是解决办法是有的,那么就是不要用最新的 Interproscan 软件。我退回低版本就可以正常运行了。
报错如下
Error output from binary:
bin/prosite/pfsearchV3: /lib64/libm.so.6: version `GLIBC_2.27' not found (required by bin/prosite/pfsearchV3)
Error running prosite binary bin/prosite/pfsearchV3
大概率就是系统函数库没升级,使用旧版本 Interproscan 就好了
aria2c -j 10 https://ftp.ebi.ac.uk/pub/software/unix/iprscan/5/5.47-82.0/interproscan-5.47-82.0-64-bit.tar.gz
tar -zxvf interproscan-5.47-82.0-64-bit.tar.gz
cd interproscan-5.47-82.0
python initial_setup.py -f interproscan.properties
mkdir anno.dir
./interproscan.sh -cpu 10 -d anno.dir -dp -t n -i test_nt_seqs.fasta
# 搞定
# python --version
#Python 3.9.12
另外,发现如果确实数据太多,比如10+w,似乎...需要分隔一下文件,每次不要超过 12000,逻辑上如果是转录本,那么考虑直接用 transdecoder 等软件转换为蛋白序列文件
mkdir anno.dir
./interproscan.sh -cpu 60 -d anno.dir -dp -t n -i transcripts.fa
直接分隔文件
seqkit fx2tab transcripts.fa > transcripts.tab
split -l 10000 transcripts.tab part.
# 转换会 seq
ls part.a*|while read file;do seqkit tab2fx $file > $file.fa;done
ls part.a*.fa|while read file;do perl -i -lpe 's/(^>\S+)\s*.*$/$1/' $file;done
重新开始注释
export PATH=/home/public/tools/jdk-17.0.1/bin:$PATH
mkdir part.aa.fa.anno.dir
./interproscan-5.47-82.0/interproscan.sh -cpu 60 -d part.aa.fa.anno.dir -dp -t n -i part.aa.fa