微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

合并snakemake中的vcf文件

如何解决合并snakemake中的vcf文件

运行变体调用后,我只想合并特定的输出,如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}"

解决方法

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"]}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。