O erro não é do GNU Parallel, então é de blat
. Eu não usei blat
por anos, então não tenho 100% de certeza sobre o seguinte.
Meu palpite é que você não pode usar o uso -
para denotar STDIN para o banco de dados em blat
.
Existem várias maneiras de fazer cócegas em blat
. Use /dev/stdin
, que fornecerá a entrada padrão como fifo em muitos sistemas:
cat asm.contig.fasta | parallel -k --block 1k --recstart '>' --pipe 'blat -t=dnax -q=prot /dev/stdin ../swissprot.fasta out{#}.psl -noHead'
Use --fifo
, que fará um pipe fifo / named que dará o padrão em put como fifo em todos os sistemas suportados. Depois que o comando estiver completo, o fifo será removido:
cat asm.contig.fasta | parallel --fifo -k --block 1k --recstart '>' --pipe 'blat -t=dnax -q=prot {} ../swissprot.fasta out{#}.psl -noHead'
Use --cat
, que fará um arquivo regular contendo o bloco de dados de 1k. Depois que o comando for concluído, o arquivo será removido.
cat asm.contig.fasta | parallel --cat -k --block 1k --recstart '>' --pipe 'blat -t=dnax -q=prot {} ../swissprot.fasta out{#}.psl -noHead'
--cat
é geralmente o mais lento (pois --block 1k
espera um adicional de 1 ms por trabalho), mas quase garantido que funcione.
Deixe-nos saber qual deles funcionou.