Создание рабочего процесса с динамическим вводом без использования устаревшего динамического API

Вы можете передать переменную request в шаблон и использовать:

{{ request.session.name }}
1
задан Roman Chernyatchik 18 January 2019 в 12:33
поделиться

1 ответ

Вы можете скачать список файлов fastq и извлечь из него список примеров, используя чистый код на python до того, как правила snakemake вступят в силу:

def download_files_list(output):
    """Download the list of fastq files and return the list
    of samples
    """
    content = """
    bfe583337fd68b3  ID_001_1.fq.gz
    1636b6756daa65f  ID_001_2.fq.gz
    0428baf25307249  ID_002_1.fq.gz
    de33d81ba5bfa62  ID_002_2.fq.gz
    """.strip()
    with open(output, mode="w") as f:
        print(content, file=f)
    return ['ID_001_1', 'ID_001_2', 'ID_002_1', 'ID_002_2']    

samples= download_files_list("md5")
wildcard_constraints:
    sample= '|'.join([re.escape(x) for x in samples]),

rule all:
    input:
         expand("bams/{sample}.bam", sample= samples),

rule fastq_md5_files:
    input: "md5"
    output: "fastq/{sample}.fq.gz.md5"
    shell: """awk '{{ print [110] > ("fastq/" $2 ".md5") }}' {input}"""

rule download_fastq_and_check_md5:
    input: "fastq/{sample}.fq.gz.md5"
    output: "fastq/{sample}.fq.gz"
    #shell: "wget {}/{{sample}} && md5sum --check {{input}}".format(config["url_file_prefix"])
    shell: "touch {output}" 

rule align_fastq:
    input: "fastq/{sample}.fq.gz"
    output: "bams/{sample}.bam"
    shell: "touch {output}" # aligning task

(мне любопытно, что насчет более snakemake-ish решение с использованием контрольных точек или аналогичного)

0
ответ дан dariober 18 January 2019 в 12:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: