Используйте специальные символы в разделе параметров Snakemake - PullRequest
3 голосов
/ 13 апреля 2020

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

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}' как Wildcard из-за {}. Я пытался экранировать {} с помощью -a 'A{{100}}', но выдает ту же ошибку.

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

Спасибо

Ответы [ 2 ]

3 голосов
/ 14 апреля 2020

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

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

lambda wc: "-a 'A{100}' --nextseq-trim=20 -m 20"
0 голосов
/ 13 апреля 2020

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

"-a 'A{{100}}' --nextseq-trim=20 -m 20"
...