Вы должны стремиться к тому, чтобы не было зависимостей порядка!
Система запускается с первой строки файла Kconfig верхнего уровня и обрабатывает каждую строку по очереди. Когда он видит «исходную» строку, он приостанавливает чтение текущего файла, обрабатывает указанный файл. Когда он доходит до конца файла, он возвращается с того места, где был в предыдущем файле.
Ошибка связана не с GNU Parallel, а с blat
. Я не использовал блат
годами, поэтому не уверен на 100% в следующем.
Я предполагаю, что вы не можете использовать -
для обозначения STDIN для базы данных в blat
.
Есть несколько способов пощекотать блат
. Используйте / dev / stdin
, который предоставит стандартный ввод в виде FIFO во многих системах:
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 будет удален:
cat asm.contig.fasta | parallel --fifo -k --block 1k --recstart '>' --pipe 'blat -t=dnax -q=prot {} ../swissprot.fasta out{#}.psl -noHead'
Используйте - cat
, который создаст обычный файл, содержащий блок данных размером 1 КБ. После завершения команды файл будет удален.
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 мс на задание), но почти гарантированно работает.
Сообщите нам, какой из них сработал.