from snakemake.utils import min_version

##### set minimum snakemake version #####
min_version("6.4.1")


##### setup report #####
configfile: "config/config.yaml"


report: "report/workflow.rst"


##### setup singularity #####


# this container defines the underlying OS for each job when using the workflow
# with --use-conda --use-singularity
container: "docker://continuumio/miniconda3"


##### load rules #####


include: "rules/common.smk"
include: "rules/ref.smk"
include: "rules/trim.smk"
include: "rules/qc.smk"
include: "rules/align.smk"
include: "rules/diffexp.smk"


##### target rules #####


rule all:
    input:
        get_final_output(),
        "results/qc/multiqc_report.html",
        "results/pca.svg",
