根据样本将bam文件拆分为(可变的)预定义数量的小型bam文件

时间:2019-06-17 18:59:01

标签: snakemake

我想将多个bam文件拆分为预定数量的较小bam文件。我不知道如何指定输出,因为较小的bam文件的数量是可变的,具体取决于我要拆分的样本。

我已阅读https://bitbucket.org/snakemake/snakemake/issues/865/pre-determined-dynamic-output

我看不到检查点对我的帮助。

SAMPLE_cluster = { "SampleA" : [ "1", "2", "3" ], "SampleB" :  [ "1" ], "SampleC" : [ "1", "2" ] }

rule split_bam:
    input: "{sample}.bam"
    output: expand("split_bam/{{sample}}_{cluster_id}.bam", cluster_id = ?)
    shell:
       """
       split_bam {input} {output}
       """
rule index_split_bam:
    input: "split_bam/{sample}_{cluster_id}.bam"
    output: "split_bam/{sample}_{cluster_id}.bam.bai"
    shell:
        """
        samtools index {input}
        """

for循环对我有效,如上面的链接中所述,但匿名规则使我烦恼。

如何为split_bam规则指定输出?我已经读过Snakemake: unknown output/input files after splitting by chromosome,因为单个样本的染色体数目是固定的,所以这种方法有效。如果有多个样本,并且不同样本的染色体数不同,那将与我的问题相似。

0 个答案:

没有答案