The errors reported when running snakemake file with log function
1
0
Entering edit mode
5.9 years ago
wangdp123 ▴ 340

Hi there,

I am using snakemake to compile a pipeline and encounter an issue as follows:

The error reported is:

RuleException in line 284 of pipeline_1.snakemake: Wildcards in input, params, log or benchmark file of rule fastx_collapser cannot be determined from output files: 'PIPELINE_NAME'

The scripts in snakemake file is:

PIPELINE_NAME = "pipeline_1"

FOLDER = "/data/analysis/"

    rule test1:

        input:
            "{FOLDER}/raw/{smp}.txt"
        output:
            "{FOLDER}/processed/{smp}.result.txt"
        log:
            out="{FOLDER}/{PIPELINE_NAME}/logs/{smp}.log.stdout",
            err="{FOLDER}/{PIPELINE_NAME}/logs/{smp}.log.stderr"
        shell: """
               program -i {input} -o {output} 2> {log.err} 1> {log.out}
               """

BTW, when the log function is not used, there is no problem. Therefore, I am just thinking about something wrong with the log file function.

Would you like to help me out about this problem?

Thank you very much,

Regards,

Tom

snakemake • 3.2k views
ADD COMMENT
0
Entering edit mode
5.9 years ago

The contents of wildcards is derived from what you have in the input: and output: directives. Since you've defined only FOLDER and smp there, only those wildcards exist. What you want to do is the following:

log:
    out ="{{FOLDER}}/{}/logs/{{smp}}.log.stdout".format(PIPELINE_NAME),
    err ="{{FOLDER}}/{}/logs/{{smp}}.log.stderr".format(PIPELINE_NAME)

The {{...}} will keep things from getting filled in by format() right away.

ADD COMMENT
0
Entering edit mode

Isn't it enough the double quotes?! as in documentation:

rule all:
  input: ["{dataset}/file.A.txt".format(dataset=dataset) for dataset in DATASETS]
ADD REPLY
0
Entering edit mode

There are two levels of .format() going on, only one of which is explicit and available when the Snakefile is first run. The second level is implicit and done for each sample that's processed through each rule.

ADD REPLY
0
Entering edit mode

Going to high-jack this thread for some time. @Medhat you are now a moderator see: C: Inviting Biostars moderators to join Biostars slack channel

ADD REPLY

Login before adding your answer.

Traffic: 1653 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6