Пишу это правило:
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
получит значение из словаря my_dictionary
на основе значения ref
. Я использовал wildcards
вот так my_dictionary[wildcards.ref]
. Но это заканчивается этой ошибкой name 'wildcards' is not defined
my_dictionary
что-то вроде: {A:[1,2,3], B:[s1,s2..].....}
Я мог бы использовать
def myfun(wildcards):
return expand("{{dataset}}/{{sample}}.{{ref}}.{{state}}.{{case}}.myresult.{name}.tsv", name=my_dictionary[wildcards.ref])
и использовать myfun
в качестве ввода, но это не отвечает на вопрос, почему я не могу напрямую использовать расширение на месте
Есть предложения, как это исправить?