samples = [1,2,3,4,5]


rule all:
    input:
        "test.out"


rule a:
    output:
        "a/{sample}.out"
    group: 0
    shell:
        "touch {output}"


rule b:
    input:
        "a/{sample}.out"
    output:
        "b/{sample}.out"
    log:
        "logs/b/{sample}.log"
    group: 0
    shell:
        "touch {output}; echo failed > {log}; exit 1"


rule c:
    input:
        expand("b/{sample}.out", sample=samples)
    output:
        "test.out"
    group: 1
    shell:
        "touch {output}"
