В своем рабочем процессе snakemake я пытаюсь перенаправить файлы .e
и .o
, создаваемые qsub
, в директиву log
каждого правила. Ниже приведен пример моего правила, включая директиву log
. Чтобы было понятно, это правило создает (временный) вывод [snakemakeWorkDir]/{sample}/aligned/{sample}.bam
, тогда как я также хотел бы иметь файлы
[snakemakeWorkDir]/{sample}/aligned/log/{wildcards.sample}.{rule}.{jobid}.e[0-9]+
и [snakemakeWorkDir]/{sample}/aligned/log/{wildcards.sample}.{rule}.{jobid}.o[0-9]+
произведено
rule bwa_map:
input:
R1 = FQDIR + "{sample}_R1_001.fastq.gz",
R2 = FQDIR + "{sample}_R2_001.fastq.gz",
REF = config['ref']
output:
# wrap output in temp
temp("{sample}/aligned/{sample}.bam")
conda:
"envs/NIPTlibPrep.yaml"
log:
directory("{sample}/aligned/log")
shell:
"mkdir -p {log} | bwa mem {input.REF} {input.R1} {input.R2} "
"| samtools view -Sb - > {output}"
Команда, которую я использую для отправки заданий по созданию змеи в кластер:
snakemake -p -s Snakefile_v5_ngs_bngs05b --cluster "qsub -q onlybngs05b -e {log} -o {
log}" -j 5 --use-conda --jobname "{wildcards.sample}.{rule}.{jobid}"
Когда я вызываю змея с помощью приведенной выше команды моя работа получает статус Eqw
в очереди со следующим сообщением об ошибке
04/10/2020 10:37:30 [2003:28804]: error: can't open output file "/home/ngs/NIPT-PearlPPlasma-03-PPx_S3downSample/fastQC/log": No such file or directory
Несмотря на то, что первой командой директивы shell
является создание каталога log
(я сначала попытался без команды mkdir -p
, и получил ту же ошибку.)
Еще один вариант - вообще не использовать эти файлы и использовать snakemake 'classi c' для создания файлов журнала. (например, используя 2>
трубу)