Я пытаюсь использовать snakemake для копирования файла в несколько каталогов, и мне нужно иметь возможность использовать подстановочный знак для части имени цели. Ранее я пробовал это с помощью «dirs», указанного в Snakefile (это пример, у фактического приложения есть 15 каталогов).
dirs=['k_1','k2_10']
rule all:
input:
expand("{f}/practice_phased_reversed.vcf",f=dirs)
rule r1:
input:
"practice_phased_reversed.vcf"
output:
"{f}/{input}"
shell:
"cp {input} {output}"
Это копирует файл по желанию. Однако имя файла должно быть указано в правиле all. Как я могу изменить это так, чтобы я мог указать цель в командной строке, используя подстановочный знак для части имени?
Затем я попробовал это (ниже) с помощью команды "snakemake practice_phased_reversed.vcf", но она выдала ошибку: "MissingRuleException: нет правил для создания practice_phased_reversed.vcf"
dirs=['k_1','k2_10']
rule all:
input:
expand("{f}/{{base}}_phased_reversed.vcf",f=dirs)
rule r1:
input:
"{base}_phased_reversed.vcf"
output:
"{f}/{input}"
shell:
"cp {input} {output}"
Есть ли способ исправить это, чтобы я мог использовать командную строку и подстановочный знак. Спасибо за любую помощь.