并行导致此“错误必须打开:无法打开 - 读取:没有这样的文件或目录”

并行导致此“错误必须打开:无法打开 - 读取:没有这样的文件或目录”

我尝试按以下方式使用并行命令:

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。命令完成后,fifo 将被删除:

cat asm.contig.fasta | parallel --fifo -k --block 1k --recstart '>' --pipe 'blat -t=dnax -q=prot {} ../swissprot.fasta out{#}.psl -noHead'

使用--cat它将创建一个包含 1k 数据块的常规文件。命令完成后,文件将被删除。

cat asm.contig.fasta | parallel --cat -k --block 1k --recstart '>' --pipe 'blat -t=dnax -q=prot {} ../swissprot.fasta out{#}.psl -noHead'

--cat通常是最慢的(预计--block 1k每个作业会多花 1 毫秒),但几乎可以保证可以工作。

让我们知道哪一个有效。

相关内容