次のように並列コマンドを使用してみました。
cat asm.contig.fasta | parallel -k --block 1k --recstart '>' --pipe 'blat -t=dnax -q=prot - ../swissprot.fasta out{#}.psl -noHead'
しかし、残念ながら、次のエラーが発生しました。
mustOpen: Can't open - to read: No such file or directory
私は何が間違っていましたか?
答え1
エラーはGNU Parallelで発生していないため、blat
長年使用していないblat
ため、次のことについて100%確信できません。
-
私の考えでは、あなたはそれに対してuseを使うことができないということですblat
。
かゆみを傷つける方法はいくつかありますblat
。/dev/stdin
標準入力を先入れ先出し方式で処理するために、多くのシステムでこれを使用します。
cat asm.contig.fasta | parallel -k --block 1k --recstart '>' --pipe 'blat -t=dnax -q=prot /dev/stdin ../swissprot.fasta out{#}.psl -noHead'
これにより、--fifo
サポートされているすべてのシステムで標準入力をfifoとして使用するfifo / namedパイプが生成されます。コマンドが完了すると、fifoが削除されます。
cat asm.contig.fasta | parallel --fifo -k --block 1k --recstart '>' --pipe 'blat -t=dnax -q=prot {} ../swissprot.fasta out{#}.psl -noHead'
これを使用して、--cat
1,000個のデータブロックを含む汎用ファイルを作成します。コマンドが完了すると、ファイルは削除されます。
cat asm.contig.fasta | parallel --cat -k --block 1k --recstart '>' --pipe 'blat -t=dnax -q=prot {} ../swissprot.fasta out{#}.psl -noHead'
--cat
一般に、最も遅いですが(1ジョブ--block 1k
あたり1ms以上の予想)、ほとんど動作が保証されます。
どちらがうまくいくか教えてください。