Paralela causou este erro “mustOpen: não pode abrir - para ler: não existe tal arquivo ou diretório”

2

Eu tentei usar o comando paralelo da seguinte maneira:

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

mas infelizmente recebi este erro:

mustOpen: Can't open - to read: No such file or directory

O que eu fiz de errado?

    
por user977828 06.09.2016 / 14:37

1 resposta

2

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.

    
por 06.09.2016 / 20:56