Версия Snakemake:
❯ snakemake --version
8.20.6
Неожиданное поведение
rule all:
input:
"test2"
rule:
name: "test",
output:
"test",
shell:
"touch {output} "
rule:
name: "test2",
input: rules.test.output,
# input: rules._rules["2"].output,
output:
"test2",
shell:
"touch {output} "
Приведенный выше код вызовет ошибку:
❯ snakemake -n
WorkflowError in file /path/to/Snakefile, line 14:
Rule test is not defined in this workflow. Available rules: all, 2
Хотя я могу получить доступ к выходным данным с помощью Rules._rules["2"].output, этот подход кажется неподходящим, поскольку число "2" можно изменить.
p>
Вопрос
Есть ли способ получить доступ к Rules.test.output или достичь аналогичных целей?
Обновление
Я обнаружил, что могу писать, как показано ниже, это работает! Но я не уверен, есть ли в этом опасность. Может кто-нибудь дать мне совет?
rule all:
input:
"test2"
rule a:
name: "test",
output:
"test",
shell:
"touch {output} "
rule b:
name: "test2",
input: rules.a.output,
output:
"test2",
shell:
"touch {output} "
журнал:
Building DAG of jobs...
Using shell: /usr/bin/bash
Provided cores: 16
Rules claiming more threads will be scaled down.
Job stats:
job count
----- -------
all 1
test 1
test2 1
total 3
Select jobs to execute...
Execute 1 jobs...
[Sat Oct 12 14:33:20 2024]
localrule test:
output: test
jobid: 2
reason: Missing output files: test
resources: tmpdir=/tmp
touch test
[Sat Oct 12 14:33:20 2024]
Finished job 2.
1 of 3 steps (33%) done
Select jobs to execute...
Execute 1 jobs...
[Sat Oct 12 14:33:20 2024]
localrule test2:
input: test
output: test2
jobid: 1
reason: Missing output files: test2; Input files updated by another job: test
resources: tmpdir=/tmp
touch test2
[Sat Oct 12 14:33:20 2024]
Finished job 1.
2 of 3 steps (67%) done
Select jobs to execute...
Execute 1 jobs...
[Sat Oct 12 14:33:20 2024]
localrule all:
input: test2
jobid: 0
reason: Input files updated by another job: test2
resources: tmpdir=/tmp
[Sat Oct 12 14:33:20 2024]
Finished job 0.
3 of 3 steps (100%) done
Complete log: .snakemake/log/2024-10-12T143320.208718.snakemake.log
Подробнее здесь: https://stackoverflow.com/questions/790 ... e-in-rules
Есть ли способ получить имя правила в Rules в Snakemake при использовании директивы name? ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Есть ли способ получить имя правила в Rules в Snakemake при использовании директивы name?
Anonymous » » в форуме Python - 0 Ответы
- 19 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Есть ли способ получить имя правила в Rules в Sankemake при использовании директивы name?
Anonymous » » в форуме Python - 0 Ответы
- 14 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Есть ли способ получить имя правила в Rules в Sankemake при использовании директивы name?
Anonymous » » в форуме Python - 0 Ответы
- 10 Просмотры
-
Последнее сообщение Anonymous
-
-
-
В чем разница между Consumer-rules.pro и proguard-rules.pro в Android?
Anonymous » » в форуме Android - 0 Ответы
- 17 Просмотры
-
Последнее сообщение Anonymous
-