Snakemake 将整个通配符列表作为输入

问题描述 投票:0回答:1

我正在尝试通过snakemake运行多个fastq文件。这是我现在拥有的代码的一部分:

import os
import glob

docker_run = "docker run -v $(pwd):$(pwd) -w $(pwd)"
fastqc_image = "staphb/fastqc"
cutadapt_image = "kfdrc/cutadapt"
bowtie_image = "biocontainers/bowtie:v1.1.2_cv4"

SRA = glob_wildcards("input/{sra}.fastq")
genome = 'hg38'

rule all:
    input:
        expand("results/raw_qc/{sra}_fastqc.{extension}", sra=SRA, extension=['zip','html']),
        expand("results/trimmed/{sra}.fastq", sra=SRA),
        expand("results/trimmed_qc/{sra}_fastqc.{extension}", sra=SRA, extension=['zip','html']),
        expand("index/{genome}_index.{numbers}.ebwt", genome=genome, numbers=['1','2']),
        expand("results/aligned/aligned_sam/{sra}.sam", sra=SRA)

rule rawFastqc:
    input:
        rawread = "input/{sra}.fastq"
    output:
        zip = "results/raw_qc/{sra}_fastqc.zip",
        html = "results/raw_qc/{sra}_fastqc.html"
    threads:
        2
    params:
        docker = docker_run,
        image = fastqc_image,
        path="results/raw_qc"
    # singularity: 'docker://staphb/fastqc:latest'
    shell:
        """
        echo 'Raw QC';
        {params.docker} {params.image} \
        fastqc {input.rawread} --threads {threads} -o {params.path}
        """

我收到此错误:

第 20 行中的 MissingInputException /mnt/c/Coding/laverock/new_workflow/Snakefile:缺少输入文件 规则 rawFastqc: input/['24_mil', '24_mil2'].fastq

我看到 Snakemake 将整个输入列表用作一个输入。我该如何解决这个问题?

提前致谢!

snakemake
1个回答
0
投票

您需要在以下行中添加逗号。这会将其从通配符对象转换为列表(请参阅此处

SRA, = glob_wildcards("input/{sra}.fastq")
© www.soinside.com 2019 - 2024. All rights reserved.