如何解决提交数组Job出现的错误?

时间:2015-09-27 15:11:15

标签: arrays jobs pbs

我是一名生物学学生,这是第一次在服务器上运行阵列工作的经验,所以请耐心等待我。 我正在尝试提交PBS脚本,以便在每个输入文件上执行blast任务。我的输入文件名是file1.fa file2.fa file3.fa file4.fa file5.fa file6.fa。 PBS脚本如下所示:

#!/bin/bash
#PBS -N run_x3
#PBS -l ncpus=4
#PBS -l mem=30G
#PBS -l walltime=200:00:00
#PBS -J 1-6
#PBS -o stdout_file
#PBS -e stderr_file

cd /home/mary/software/ncbi-blast-2.2.30+/bin
./blastx -query file_${1 2 3 4 5 6}.fa -db uni_database -out blast_file{1 2 3 4 5 6}.xml -evalue 1e-3 -outfmt 5 -show_gis -num_alignments 15 -num_threads 3

我以qsub run_x3.sh的身份运行作业。但出现以下错误: /var/spool/torque/mom_priv/jobs/1007-1.chpc.SC:line 12:file _ $ {1 2 3 4 5 6} .fa:bad substitution

如果您能帮助我解决问题,我将非常感谢。另外,如果PBS文件中出现错误,请告诉我。正如我前面提到的,我没有足够的计算机知识来解决这个问题。

非常感谢您,并期待收到您的回复。

最佳, 玛丽

1 个答案:

答案 0 :(得分:0)

我假设您打算用$ {1 2 3 4 5 6}做的事情是评估正在执行的数组ID。如果是这样,您可以使用$ PBS_ARRAYID:

./blastx -query_file_${PBS_ARRAYID} ...

这将给你1个工作1,2个工作2,等等。具体来说,不要把

./blastx file1.fa

./blastx file${PBS_ARRAY_ID}.fa

使每个作业运行都是唯一的。