"bsub"を使用するときは"|"にパイプ(前のコマンドの出力を次のコマンドにパイプ)

こんにちは、これは非常に基本的な質問のようです。

「bsub」を使用するときに「パイピング」を実行するための特定の構文はありますか?

私がこの問題に直面したとき、私はこう尋ねます。

# try to run the same command successfully ran in another host
bsub fastx_trimmer -Q33 -f 1 -l 230 -i myfile.fastq | fastq_quality_trimmer -Q33 -t 18 -l 20 -o Trimmed_file.fastq &

しかし、エラーが発生しました。

fastq_quality_trimmer: input file (-) has unknown file format (not FASTA or FASTQ), first character = J (74)

2番目のコマンドは、最初のコマンドの出力が見つからないようです。

# try to run command without using "|"
bsub fastx_trimmer -Q33 -f 1 -l 230 -i myfile.fastq -o Trimmed_file.fastq
# seemed to work!

bsub fastq_quality_trimmer -Q33 -t 18 -l 20 -i Trimmed_file.fastq -o Trimme_file2.fastq &
# Also seemed to work!

# try to pipe again, did not work...
bsub fastx_trimmer -Q33 -f 1 -l 230 -i myfile.fastq | fastq_quality_trimmer -Q33 -t 18 -l 20 -o Trimme_file2.fastq &

# when call command without bsub, it seemed to work. 
fastx_trimmer -Q33 -f 1 -l 230 -i myfile.fastq | fastq_quality_trimmer -Q33 -t 18 -l 20 -o Trimme_file2.fastq &
# so the issue seemed to be "bsub"

私のホストがゲートノードを使用しているので、bsubを使用したいと思います(以前のホストにはゲートノードがなかったため、「bsub」を使用するかどうかは重要ではありません)。ゲートノードでコマンドを実行して「交通渋滞」を発生させます。どんな提案がありますか?

ベストアンサー1

送信が成功すると、bsubコマンドはジョブ送信IDと送信されたキュー名を出力します。

bsub出力を提供しません。つまり、パイプを介した直接入力fastx_trimmerには使用できません。fastq_quality_trimmer

これがうまく機能するには、コマンドをシェルスクリプトに入れて送信するか(理想的には複数回実行する予定の場合)、パイプライン全体をキューに正しく引用して送信する必要があります。呼ぶbsub

おすすめ記事