1

私が使用しているクラスターのリソース制限のため、bash で for ループを使用して大量のジョブを送信しました。次のコマンドの前に、pbs のすべてのジョブが完了するのを待ちたいです。ここのリンクは私の問題を解決するようです qsubジョブのセットが完了するのを待ち ますが、実行する次のジョブスクリプトがなく、いくつかの簡単なbashコマンドがある場合、-cwdの後に何を置くべきかまだ混乱しています

pbs タスクを送信するための for ループは次のとおりです。

for i in `seq 1 10`; do
if [ "$i"==10 ]; then
    EndLine=$((SeqNum*2))
fi
EndLine=$((StartLine-1+(EachFile+1)*2));
NewFile='StHeBC2-'$i'.fasta'
sed -n "$StartLine,$EndLine p" StHeBC2.fasta > $NewFile
StartLine=$((EndLine+1))
JobFile='StHeBC2-'$i'.sh'

    echo "
    #!/bin/bash
    #PBS -l ncpus=8
    #PBS -l mem=8GB
    #PBS -l nodes=4
    #PBS -l walltime=120:00:00
    #PBS -m bea
    #PBS -W umask=33

    cd $PBS_O_WORKDIR
    TransDecoder -t $NewFile -m 15 --search_pfam Pfam-A.hmm --API --CPU 8
    " > $JobFile

    qsub $JobFile
done

すべての JobFiles が pbs で実行された後、いくつかの基本的なコマンド cat/cut などを使用して TransDecoder の出力を要約したいと思います。

cat test-*.fasta.transdecoder.pep > test.fasta.transdecoder.pep

誰でも助けることができますか?ありがとうございました

4

0 に答える 0