Я создал следующее правило:

rule cutadapt:
    input:
        input
    output:
        output
    log:
        logs
    params:
        "-a 'A{100}' --nextseq-trim=20 -m 20"
    wrapper:
        "0.50.4/bio/cutadapt/se"

И я получаю следующее сообщение об ошибке:

Подстановочные знаки в параметрах не могут быть определены из выходных файлов.

Snakemake понимает -a 'A{100}' как подстановочный знак из-за {}. Я пытался избежать {} с помощью -a 'A{{100}}', но выдает ту же ошибку.

Есть ли шанс избежать раздела параметров в правиле создания змеи?

Спасибо

3
pat2402 13 Апр 2020 в 21:21

2 ответа

Лучший ответ

Похоже, что это немного уродливо (см. Проблему https://bitbucket.org/snakemake/snakemake/issues/584/unable-to-escape-curly-braces-in-params) - я не знаю, было ли реализовано лучшее решение ,

В основном, используйте фиктивную лямбда-функцию:

lambda wc: "-a 'A{100}' --nextseq-trim=20 -m 20"
3
dariober 14 Апр 2020 в 06:30

Snakemake использует форматирование Python, так что вы можете избежать фигурной скобки с помощью другой фигурной скобки:

"-a 'A{{100}}' --nextseq-trim=20 -m 20"
0
Maarten-vd-Sande 13 Апр 2020 в 20:58