использование файлов .e и .o из qsub в качестве журнала для каждого правила в snakemake - PullRequest
1 голос
/ 10 апреля 2020

В своем рабочем процессе snakemake я пытаюсь перенаправить файлы .e и .o, создаваемые qsub, в директиву log каждого правила. Ниже приведен пример моего правила, включая директиву log. Чтобы было понятно, это правило создает (временный) вывод [snakemakeWorkDir]/{sample}/aligned/{sample}.bam, тогда как я также хотел бы иметь файлы

  1. [snakemakeWorkDir]/{sample}/aligned/log/{wildcards.sample}.{rule}.{jobid}.e[0-9]+ и
  2. [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> трубу)

...