如何通过lambda函数传播snakemake通配符

伯恩斯坦

我正在尝试使用snakemake将vcf文件合并在一起,但出现错误:

Building DAG of jobs...
MissingInputException in line 21 of 

Missing input files for rule all:
outputs/****.g.vcf.gz

目的是在不同的染色体上调用变体,然后将它们融合在一起。似乎示例通配符没有通过我的lambda函数传播。我尝试了几次不同的迭代,但仍无法破解。我确定其余的代码是可以的,因为当我删除合并功能并仅在所有染色体上调用变体时,文件运行正常。

任何帮助将非常感激。

import glob

configfile: "config.json"

chroms = [1, 2, 3, 4, 5]
str_chroms = ["chr{}".format(chr) for chr in chroms]


def get_fq1(wildcards):
    # code that returns a list of fastq files for read 1 based on
    # *wildcards.sample* e.g.
    return sorted(glob.glob(wildcards.sample + '*_R1_001.fastq.gz'))


def get_fq2(wildcards):
    # code that returns a list of fastq files for read 2 based
    # on *wildcards.sample*, e.g.
    return sorted(glob.glob(wildcards.sample + '*_R2_001.fastq.gz'))


rule all:
    input:
        "outputs/" + config['sample'] + "_picard_alignment_metrics_output.txt",
        "outputs/" + config['sample'] + "_fastqc",
        "outputs/" + config['sample'] + "_analyze_covariates.pdf",
        "outputs/" + config['sample'] + ".g.vcf.gz",
        "outputs/" + config['sample'] + ".coverage"

rule bwa_map:
    input:
        config['reference_file'],
        get_fq1,
        get_fq2
    output:
        "outputs/{sample}_sorted.bam"
    shell:
        "bwa mem -t 16 {input} |  samtools view -bS - | \
        samtools sort -@ 16 -m 7G - -o {output}"

#a bunch of intermediate steps that are not the issue

rule variant_calling:
    input:
        bam = "outputs/{sample}_recal_reads.bam",
        bai = "outputs/{sample}_recal_reads.bam.bai",
        reference_file = config['reference_file']
    output:
       "outputs/{sample}_{chr}.g.vcf.gz"
    shell:
        """gatk --java-options "-Xmx128g" HaplotypeCaller \
       -R {reference_file} -I {input.bam} -L {wildcards.chr}\
       -O {output} -ERC GVCF"""

rule merge_vcfs:
    input:
        lambda wildcards: expand("outputs/{sample}_{chr}.g.vcf.gz",
                             chr=str_chroms, 
                      sample=wildcards.sample)
     output:
         "output/{sample}.g.vcf.gz"
     shell:
        "vcf-merge {input} | bgzip -c > {output}"
约翰尼卜德

是的,正如@JeeYem提到的,您在输出文件中有一个拼写错误,用于规则合并。

我也看不到规则合并中需要lambda吗?您是否通过了同一套染色体,而与样本无关?str_chroms您的安装程序是独立的样本,所以你可以把它改写为:

rule merge_vcfs:
    input: expand("outputs/{{sample}}_{chr}.g.vcf.gz",chr=str_chroms)
    output: "output/{sample}.g.vcf.gz"
    shell: "vcf-merge {input} | bgzip -c > {output}"

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

snakemake输出中的lambda函数

来自分类Dev

如何定位包含通配符的中间 Snakemake 规则

来自分类Dev

snakemake-用匿名函数替换输入指令中的通配符

来自分类Dev

snakemake在python函数中使用通配符输入/输出

来自分类Dev

如何通过参数传播论点

来自分类Dev

如何通过lambda传递对函数的引用

来自分类Dev

如何通过 lambda 函数处理异常?[tkinter]

来自分类Dev

如何让Rust函数传播状态?

来自分类Dev

Snakemake 中通配符中的通配符

来自分类Dev

如何通过AngularJs中的函数对变化的作用域变量进行传播?

来自分类Java

Java 8:Lambda函数和通用通配符

来自分类Dev

如何确保Lambda函数通过await等待调用异步函数?

来自分类Dev

Snakemake:参数键的通配符

来自分类Dev

Snakemake 创建通配符

来自分类Java

通过Lambda函数的AddKeyListener

来自分类Dev

如何通过catchError()正确传播错误?

来自分类Dev

pytorch 如何通过 argmax 反向传播?

来自分类Dev

Lambda通配符在BWA MEM(或BWA-MEM2)Snakemake包装器中不起作用

来自分类Dev

反向传播中的Gradient函数如何工作?

来自分类Dev

如何通过 jdbcTemplate 从 lambda 函数返回值?

来自分类Dev

如何通过true / false lambda函数使用itertools.groupby

来自分类Java

如何通过一个吸气剂lambda函数?

来自分类Dev

如何使用 lambda 函数通过 Slot 的参数传递 QWidget 的文本

来自分类Dev

通过lambda函数向SQS发送消息时如何插入

来自分类Java

如何通过我的lambda函数多个GET参数?

来自分类Dev

如何通过 nodejs 中的标签获取 lambda 函数?

来自分类Dev

如何授予API网关通过CloudFormation调用lambda函数的权限?

来自分类Dev

如何通过给定的lambda函数使角色成为可能?

来自分类Dev

如何使用GraphQL API通过Amplify调用Lambda函数?

Related 相关文章

  1. 1

    snakemake输出中的lambda函数

  2. 2

    如何定位包含通配符的中间 Snakemake 规则

  3. 3

    snakemake-用匿名函数替换输入指令中的通配符

  4. 4

    snakemake在python函数中使用通配符输入/输出

  5. 5

    如何通过参数传播论点

  6. 6

    如何通过lambda传递对函数的引用

  7. 7

    如何通过 lambda 函数处理异常?[tkinter]

  8. 8

    如何让Rust函数传播状态?

  9. 9

    Snakemake 中通配符中的通配符

  10. 10

    如何通过AngularJs中的函数对变化的作用域变量进行传播?

  11. 11

    Java 8:Lambda函数和通用通配符

  12. 12

    如何确保Lambda函数通过await等待调用异步函数?

  13. 13

    Snakemake:参数键的通配符

  14. 14

    Snakemake 创建通配符

  15. 15

    通过Lambda函数的AddKeyListener

  16. 16

    如何通过catchError()正确传播错误?

  17. 17

    pytorch 如何通过 argmax 反向传播?

  18. 18

    Lambda通配符在BWA MEM(或BWA-MEM2)Snakemake包装器中不起作用

  19. 19

    反向传播中的Gradient函数如何工作?

  20. 20

    如何通过 jdbcTemplate 从 lambda 函数返回值?

  21. 21

    如何通过true / false lambda函数使用itertools.groupby

  22. 22

    如何通过一个吸气剂lambda函数?

  23. 23

    如何使用 lambda 函数通过 Slot 的参数传递 QWidget 的文本

  24. 24

    通过lambda函数向SQS发送消息时如何插入

  25. 25

    如何通过我的lambda函数多个GET参数?

  26. 26

    如何通过 nodejs 中的标签获取 lambda 函数?

  27. 27

    如何授予API网关通过CloudFormation调用lambda函数的权限?

  28. 28

    如何通过给定的lambda函数使角色成为可能?

  29. 29

    如何使用GraphQL API通过Amplify调用Lambda函数?

热门标签

归档