Как передать значение переменной в качестве ввода в snakemake?

Я хочу загрузить файлы fastq из базы данных SRA с использованием идентификатора SRR с помощью Snakemake. Я прочитал файл, чтобы получить идентификатор SRR, используя код Python.

Я хочу анализировать переменную одну за другой в качестве входных данных. Мой код ниже.

Я хочу запустить команду

fastq-дамп SRR390728

#SAMPLES = ['SRR390728','SRR400816']
SAMPLES = [line.strip() for line in open("./srrList", 'r')]

rule all:
    input:
        expand("fastq/{sample}.fastq.log",sample=SAMPLES)

rule download_fastq:
    input:
        "{sample}"
    output:
        "fastq/{sample}.fastq.log"

    shell:
        "fastq-dump {input} > {output}"

person Himanshu Singh    schedule 12.04.2019    source источник


Ответы (1)


Пропустите input и просто вызовите подстановочный знак в команде shell. input должен быть путем к файлу, который уже должен существовать или быть создан как часть конвейера - в вашем случае это не так.

rule download_fastq:
    output:
        "fastq/{sample}.fastq.log"
    shell:
        "fastq-dump {wildcards.sample} > {output}"
person Manavalan Gajapathy    schedule 14.04.2019