參考官方文檔绣夺,目前 Interproscan 本地版幾乎免安裝膊毁,自帶數(shù)據(jù)庫枝恋,使用簡單。
下載與安裝
跳轉(zhuǎn)到軟件放置目錄
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
幾個參數(shù):
-cpu 線程數(shù)
-d 輸出目錄
-dp 不使用已有計算結(jié)果(似乎是需要聯(lián)網(wǎng)义锥?)
-i 用于注釋的序列
報錯與解決
很遺憾,按照上述操作,可能會遇到一些報錯。多數(shù)情況是一些路徑或者軟件版本問題碉熄,比如 JDK 。但如果是 系統(tǒng)庫 的問題肋拔,那么升級系統(tǒng)函數(shù)庫可能會導(dǎo)致其他已有軟件出問題锈津。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
大概率就是系統(tǒng)函數(shù)庫沒升級窿吩,使用舊版本 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
另外茎杂,發(fā)現(xiàn)如果確實數(shù)據(jù)太多,比如10+w纫雁,似乎...需要分隔一下文件煌往,每次不要超過 12000,邏輯上如果是轉(zhuǎn)錄本先较,那么考慮直接用 transdecoder 等軟件轉(zhuǎn)換為蛋白序列文件
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.
# 轉(zhuǎn)換會 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