我正在尝试通过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 将整个输入列表用作一个输入。我该如何解决这个问题?
提前致谢!
您需要在以下行中添加逗号。这会将其从通配符对象转换为列表(请参阅此处)
SRA, = glob_wildcards("input/{sra}.fastq")