並列のため、「エラーを開く必要があります。開くことができません。 - 読み込めません。そのファイルまたはディレクトリはありません。」

並列のため、「エラーを開く必要があります。開くことができません。 - 読み込めません。そのファイルまたはディレクトリはありません。」

次のように並列コマンドを使用してみました。

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'

これを使用して、--cat1,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以上の予想)、ほとんど動作が保証されます。

どちらがうまくいくか教えてください。

関連情報