我想运行多个名为qc.smk
,的蛇文件dada2.smk
,picrust2.smk
使用奇异性。然后有一个名为longitudinal.smk
我想有条件地运行的蛇文件。例如,如果正在使用纵向数据。
# set vars
LONGITUDINAL = config['perform_longitudinal']
rule all:
input:
# fastqc output before trimming
raw_html = expand("{scratch}/fastqc/{sample}_{num}_fastqc.html", scratch = SCRATCH, sample=SAMPLE_SET, num=SET_NUMS),
raw_zip = expand("{scratch}/fastqc/{sample}_{num}_fastqc.zip", scratch = SCRATCH, sample=SAMPLE_SET, num=SET_NUMS),
raw_multi_html = SCRATCH + "/fastqc/raw_multiqc.html",
raw_multi_stats = SCRATCH + "/fastqc/raw_multiqc_general_stats.txt"
# there are many more files in rule all
##### setup singularity #####
singularity: "docker://continuumio/miniconda3"
##### load rules #####
include: "rules/qc.smk"
include: "rules/dada2.smk"
include: "rules/phylogeny.smk"
include: "rules/picrust2.smk"
if LONGITUDINAL == 'yes':
include: 'rules/longitudinal.smk'
print("Will perform a longitudinal analysis")
else:
print("no longitudinal analysis")
上面的代码仅在我运行纵向数据集时才有效。但是,当我不运行纵向分析时,snakemake 会失败并说:
MissingInputException in line 70 of /mnt/c/Users/noahs/projects/tagseq-qiime2-snakemake-1/Snakefile:
Missing input files for rule all:
我想如果我能够添加一个类似的条件语句,就像我为我的外部蛇文件所拥有的那个,snakemake 不会因为不包括纵向蛇文件而吓坏我。