Как определить имя выходного файла грязи, используя групповые символы для сгруппированных правил - PullRequest
1 голос
/ 13 мая 2019

Я использую кластер slurm для запуска заданий по созданию змей.Моя проблема в том, что мне не удается использовать параметры --output и --error для slurm с настраиваемыми именами для каждого запущенного задания.

Например, у меня есть два правила в группе с именем "FilterMap" (поэтомучто 2 правила запускаются в одном экземпляре задания).Я попытался настроить конфигурацию кластера, как показано в документации

, здесь config_cluster.json

{
    "__default__":
    {
        "account": "mytilus",
        "time": "10-00:00",
        "nodes": 1,
        "ntasks": 1,
        "partition": "long",
        "mem": 100,
        "output": "logs/cluster/{rule}.{wildcards}.out",
        "error": "logs/cluster/{rule}.{wildcards}.err"
    },
}

и запустить snakemake с этими параметрами

snakemake --use-singularity \
--jobs 40 --cluster-config config_cluster.json \
-s Snakefile
--cluster "sbatch -A {cluster.account} -p {cluster.partition} \
--output {cluster.output} --error {cluster.error} \
-t {cluster.time} --error {cluster.error} \
--nodes {cluster.nodes} \
--ntasks {cluster.ntasks} --mem {cluster.mem}G \
-D /shared/projects/mytilus/Preprocessing \
--cpus-per-task {threads}"

Однако это всегда возвращает ошибку следующего типа, независимо от того, какой символ подстановки я пытаюсь использовать

WorkflowError:
NameError with group job efafdfe8-225c-594b-a71a-d0d58516876c: The name 'rule' is unknown in this context. Please make sure that you defined that variable. Also note that braces not used for variable access have to be escaped by repeating them, i.e. {{print $1}}`

При удалении всех флагов --output и --error как в вызове, так и в вызовеКонфиг-файл snakemake работает нормально.Однако я действительно хотел бы иметь файлы вывода и ошибок с пользовательскими именами.

РЕДАКТИРОВАТЬ: После нескольких тестов кажется, что проблема не появляется, когда каждое правило выполняется самостоятельно,без определения группы.Поэтому мой вопрос превращается в «Как задать имя задания для каждой группы, используя общие символы подстановки между включенными правилами?»

1 Ответ

0 голосов
/ 13 мая 2019

По словам разработчика об этой ошибке ,

Да, такие вещи, как {rule} и {wildcards}, не поддерживаются в сочетании с группами

...