snakemake参数函数lambda

时间:2018-06-26 16:27:01

标签: snakemake

我想在参数上使用一个函数。

Snakemake:
def mitico(x):
 res =int(x)+1
 return res

我有一个通配符{sample},它是整数。我想使用{sample} +1 在蛇形参数中如何做到这一点?

在函数中:

rule create_pt:
    input:
        read="CALL2/{sample}.vcf",
    output:
        out="OUT/{sample}.txt
    conda:
         "envs/mb.yml"
    params:
         db_ens = "/mnt/mpwor2k/",
         fst = "/Homo_sapiens.GRCh37.75.dna.primary_assembly.fa",
         tumor_id="{sample}",
         normal_id=lambda wildcards: mitico('{sample}')



    shell:

我有这个错误

ValueError: invalid literal for int() with base 10: '{sample}'
Wildcards:
sample=432

1 个答案:

答案 0 :(得分:2)

您的lambda函数中的

{sample}只是一个字符串,而不是通配符。这是在lambda中使用通配符的方法

lambda wildcards: mitico(wildcards.sample)