다음과 같이 병렬 명령을 사용해 보았습니다.
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
일반적으로 가장 느리지만( --block 1k
작업당 1ms 이상 예상) 거의 작동이 보장됩니다.
어느 것이 효과가 있는지 알려주세요.