Используйте динамический вывод в snakemake для разделения файлов BAM

Я пытаюсь использовать правила Snakemake для разделения и обработки больших файлов BAM. в правиле splitBam я разделяю Bam на динамические выходы, которые пытаюсь использовать в правиле Count. когда я пробую это, я получаю сообщение об ошибке:

data/raw_data/set1/__snakemake_dynamic___R1.fq.gz

есть ли решение перебрать входной список? Благодарность!

 rule SplitBam :
        input: 
            sort = intermediate_path + "/bamSortByName/{sample}.sortByName.bam"
        output:
            sub = dynamic(intermediate_path +"/bamSortByName/{sample}.sortByName.REF_chr{part}.bam")
        conda:
            "env.yaml"
        shell:
            'bamtools split -in {input.sort} -reference'

rule TEcount :
        input: 
            sub =  intermediate_path +"/bamSortByName/{sample}.sortByName.REF_chr{part}.bam",
            annotation = config["ANNOTATION"],
            anno_te = config["GTFTE"]      
        output:
            countT = final_path +"/repeats" +"/countTables/{sample}_{part}_TE_count.tsv"
        conda:
            "env.yaml"
        params:
            mp = main_path,
            sm = "{sample}"+"_"+"{part}",
            tablet =  main_path + "{sample}_{part}_TE_count.tsv"
        shell:
            "python {params.mp}scripts/TEcount.py --format BAM --mode multi -b {input.sub} --GTF {input.annotation} --TE {input.anno_te} --stranded {strand} --project {params.sm} && mv -f {params.tablet} {output.countT}"

rule merge: 
        input:
            splittable = dynamic( final_path +"/repeats" +"/countTables/{sample}_{part}_TE_count.tsv")
        output:
            mergetable = final_path + "/repeats" +"/countTables/{sample}_mergeTE_count.tsv"
        params:
            prefix= final_path + "/repeats"+"/countTables/{sample}_",
            sufix = "_TE_count.tsv"
        shell:
            "cat {params.prefix}*{params.sufix} > {output.mergetable}"

person HamRaoui Ali    schedule 01.05.2021    source источник
comment
Динамические выходы не имеют стоимости и должны быть заменены контрольными точками . Во втором примере рабочего процесса показано, как выполнить эту операцию разброса-сбора. Также см. здесь   -  person Troy Comi    schedule 03.05.2021