Я строю трубопровод из змеиной воды. У меня есть файл config.yaml, в котором я хочу сохранить ограничения по шаблону. Скажем, у меня есть этот блок в файле конфигурации:
wildcard_constraints:
sample: '[^_/]+'
reference: '[^/]+'
Тогда в моем snakefile у меня есть:
configfile: 'config/config.yaml'
print(config['wildcard_constraints']) # for debugging
wildcard_constraints: config['wildcard_constraints']
rule test:
output:
touch("{sample}.test")
Это производит следующее:
{'sample': '[^_/]+', 'reference': '[^/]+'}
TypeError in line 32 of /myfolder/snakefile:
global_wildcard_constraints() takes 1 positional argument but 2 were given
File "/myfolder/snakefile", line 32, in <module>
Так snakemake получает мой словарь wildcard_constraints из config.yaml. Но вместо того, чтобы просто использовать его в качестве словаря ограничений подстановочных знаков, он пытается его проанализировать.
Как мне обойти это?
Если я просто включу следующее в файл змеи вместо попытки чтобы получить ограничения из config.yaml, ошибки нет. Так что этого было бы достаточно, но было бы неплохо иметь возможность выделить ограничения.
wildcard_constraints:
sample = '[^_/]+',
reference = '[^/]+'