#gnu-parallel
#gnu-parallel
Вопрос:
У меня более 50 пар файлов с именами в следующем формате: AA-7R-76L1.clean.R1.fastq.gz , AA-7R-76L1.clean.R2.fastq.gz
Я попытался использовать parallel следующим образом:
parallel --plus echo {%R..fastq.gz} ::: *.fastq.gz |parallel 'repair.sh in1={}.R1.fastq.gz in2={}.R2.fastq.gz out1={}.repd.R1.fastq.gz out2={}.repd.R2.fastq.gz outs={}.singletons.fastq.gz repair'
--plus echo
следует динамически заменять R1.fastq.gz, R2.fastq.gz
, чтобы захватить примерное имя, т.е. HB-7R-25L0.clean
Затем он должен передать его в repair.sh
Ошибка, которую я получаю, заключается в том, что первый раздел извлекает полное имя файла и не фиксирует примерное имя. Таким образом, in1 и in2 становятся AA-7R-76L1.clean.R1.fastq.gz.R1.fastq.gz and AA-7R-76L1.clean.R2.fastq.gz.R2.fastq.gz
В чем здесь ошибка?
Комментарии:
1. Покажите нам вывод
parallel --dr 'repair.sh...
2. Проблема устранена. Это было связано с «ошибкой версии». В старой версии 2016 была ошибка, в то время как новая версия 2020 не выдала никакой ошибки.
Ответ №1:
Что-то вроде:
$ parallel --plus --dry-run 'repair.sh in1={} in2={/R1/R2} out1={/R1/fixed.R1} out2={/R1/fixed.R2} outs={%.R1.fastq.gz}_singletons.fastq repair' ::: *R1.fastq.gz
(Предполагается, что R1 и R2 не являются частью *-части имени).