I am writing this rule:
rule process_files:
input:
dataout=expand("{{dataset}}/{{sample}}.{{ref}}.{{state}}.{{case}}.myresult.{name}.tsv", name=my_list[wildcards.ref])
output:
"{dataset}/{sample}.{ref}.{state}.{case}.endresult.tsv"
shell:
do something ...
Were expand
will get value from dictionary my_dictionary
based on the ref
value. I used wildcards
like this my_dictionary[wildcards.ref]
. But it ends up with this error name 'wildcards' is not defined
my_dictionary
something like:
{A:[1,2,3], B:[s1,s2..].....}
I could use
def myfun(wildcards):
return expand("{{dataset}}/{{sample}}.{{ref}}.{{state}}.{{case}}.myresult.{name}.tsv", name=my_dictionary[wildcards.ref])
and use myfun
as input , but this does not answer why I can not use expand in place directly
Any suggestion how to fix it?