【问题标题】:Merge vcf files in snakemake在snakemake中合并vcf文件
【发布时间】:2020-10-21 13:51:38
【问题描述】:

运行变体调用后,我只想合并特定的输出,如d 所示。 这给了我一个error of missing input files。如何解决?

d = {"bob": ["bob:0-10.view.filtered.vcf", "bob:10-20.view.filtered.vcf"]
     "ann": ["ann:0-20.view.filtered.vcf", "ann:20-30.view.filtered.vcf"]}

rule varcall:
    input:
        ref="reference.fasta",
        bam="bam_list"
    output:
        outf ="var/{chr}.view.filtered.vcf"
    shell:
        """
        freebayes -r {wildcards.chr} -f {input.ref} --bam-list {input.bam} -v {output.outf}
        """

wildcard_constraints:
    chromosome = "|".join(chromosomes)

rule merge:
    input:
        lambda w: d[w.chromosome]
    output:
        outf = "merged/{chromosome}.vcf"
    params:
        lambda w: "I=" + " I=".join(d[w.chromosome])
    shell:
        "java -jar picard.jar GatherVcfs {params[0]} O={output.outf}"

【问题讨论】:

    标签: merge snakemake vcf-vcard


    【解决方案1】:

    varcall 的输出是

    outf ="var/{chr}.view.filtered.vcf"
    

    所以可能字典d 应该包含目录var:

    d = {"bob": ["var/bob:0-10.view.filtered.vcf", "var/bob:10-20.view.filtered.vcf"]
         "ann": ["var/ann:0-20.view.filtered.vcf", "var/ann:20-30.view.filtered.vcf"]}
    

    【讨论】:

    • 请发布有关错误的更多信息,最好是一个可重现的示例
    • 对不起,我在文件夹名称中犯了一个愚蠢的拼写错误...................... ... :/ 现在可以了 :) 非常感谢!
    猜你喜欢
    • 2020-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-09
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多