###1.检查方法
# 查看InterProScan相关进程是否仍在运行
ps aux | grep interpro
# 查看最近的日志文件是否还在更新
ls -ltr /path/to/interproscan/logs/
# 查看系统日志中是否有OOM Killer记录
dmesg | grep -i "out of memory"
###2.解决方法
# 运行优化版本
./interproscan.sh -i protein.fasta -f TSV -cpu 8 -dp -iprlookup \
-pa -goterms -Xms2048m -Xmx46000m
关键参数说明:
####!!!!最优解决方案
1.添加内存限制并减少应用:
./interproscan.sh -t p -i ArNa.pep.fasta -f TSV,gff3 -d ArNa2/ \
-appl Pfam,PANTHER,Gene3D,SMART,FunFam,MobiDBLite,CDD,SUPERFAMILY,PRINTS \
-goterms -iprlookup -cpu 4 -Xms1024m -Xmx50000m -dp \
-tempdir /tmp/ips_temp > ArNa2Annot.log 2>&1
关键优化点:
2.分批处理 ---所有代码见最后
3.逐步添加工具
# 先运行轻量级工具获取部分结果
./interproscan.sh -t p -i ArNa.pep.fasta -f TSV -d ArNa2_basic/ \
-appl Pfam,CDD,SMART -goterms -iprlookup -cpu 6 -Xms1024m -Xmx45000m
##推荐采用2.分批处理
# 创建输出目录
mkdir -p ArNa_parts
# 使用Perl分割FASTA文件成5个部分
perl -e '
# 打开输入文件
open(IN, "<", "ArNa.pep.fasta") or die "无法打开输入文件: $!";
# 首先计算总序列数
my $count = 0;
while(<IN>) {
$count++ if /^>/;
}
# 计算每个部分的序列数
my $seqs_per_part = int($count / 5) + 1;
# 重新打开文件
seek(IN, 0, 0);
# 初始化计数和输出文件
my $seq_count = 0;
my $part = 1;
open(OUT, ">", "ArNa_parts/ArNa.pep.part$part.fasta") or die "无法创建输出文件: $!";
# 读取并分割
my $current_seq = "";
while(my $line = <IN>) {
if($line =~ /^>/) {
# 遇到新序列,先输出之前的序列
print OUT $current_seq if $current_seq;
# 检查是否需要开始新文件
$seq_count++;
if($seq_count > $part * $seqs_per_part) {
close(OUT);
$part++;
open(OUT, ">", "ArNa_parts/ArNa.pep.part$part.fasta") or die "无法创建输出文件: $!";
}
# 开始新序列
$current_seq = $line;
} else {
# 继续当前序列
$current_seq .= $line;
}
}
# 输出最后一个序列
print OUT $current_seq if $current_seq;
close(IN);
close(OUT);
print "成功将FASTA文件分割成 $part 个部分\n";
'
# 2. 逐个处理,保留所有9个应用
for part in ArNa_parts/ArNa.pep.part*.fasta; do
./interproscan.sh -t p -i $part -f TSV,gff3 -d ArNa2_parts/ \
-appl Pfam,PANTHER,Gene3D,SMART,FunFam,MobiDBLite,CDD,SUPERFAMILY,PRINTS \
-goterms -iprlookup -cpu 4 -Xms1024m -Xmx50000m -dp > ${part}_annot.log 2>&1
done
# 3. 合并结果(完成后)
mkdir -p ArNa2_combined
cat ArNa2_parts/*.tsv > ArNa2_combined/ArNa2_combined.tsv
cat ArNa2_parts/*.gff3 > ArNa2_combined/ArNa2_combined.gff3