【问题标题】:How to solve the error appeared with submitting array Job?如何解决提交数组作业时出现的错误?
【发布时间】:2015-09-27 15:11:15
【问题描述】:

我是一名生物系的学生,这是第一次在服务器上运行阵列作业,所以请耐心等待。 我正在尝试提交 PBS 脚本以对每个输入文件执行爆炸任务。我的输入文件名是 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:第 12 行:file_${1 2 3 4 5 6}.fa:替换错误

如果您能帮我解决问题,我将不胜感激。另外,如果 PBS 文件有问题,请告诉我。正如我之前提到的,我没有足够的计算机知识来解决此类问题。

非常感谢您并期待您的回音。

最好, 玛丽

【问题讨论】:

    标签: arrays jobs pbs


    【解决方案1】:

    我假设您打算使用 ${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
    

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

    【讨论】:

    • 感谢您的评论。我有 6 个名为 file1.fa file2.fa file3.fa file4.fa file5.fa file6.fa 的文件,blastx 程序应该在它们上运行。我写了./blastx -query file1.fa file2.fa ....file6.fa {PBS_ARRAY_ID} ...也尝试了./blastx -query file_{PBS_ARRAY_ID}.fa,这对两者都出现了错误。你能写出这部分的完整命令吗?非常感谢
    • 感谢 dbeer。我写的就像你建议的那样,./blastx file${PBS_ARRAY_ID}.fa,但出现了以下错误:(命令行参数错误:参数“查询”。文件不可访问:`file.fa'),什么是你认为错了吗?非常感谢您为解决问题提供的有用建议。
    • 您使用的是什么版本的 PBS?该变量是为扭矩定义的。要在 Torque 中请求数组,您应该有一个 -t 选项。我之前没有注意到你有#PBS -J 1-5。这可能需要 -t。
    • 感谢您的及时评论。我正在使用扭矩(2.4.16 版本)。我也尝试了使用 -t 而不是 -J 的任务,但问题仍然存在。我使用 qsub -t 1-6 PBS_file.sh 命令运行程序,但出现了同样的错误,即命令行参数错误:参数“查询”。文件无法访问:`file.fa',请帮帮我......
    • 任何建议和cmets,请
    猜你喜欢
    • 1970-01-01
    • 2021-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多