id = "snakemake" name = "Snakemake" homepage = "https://snakemake.github.io/" executables = ["snakemake"] platforms = ["linux"] [dotfiles] # The official CLI documentation describes global user profiles under # $HOME/.config/snakemake (and says the profile directory contains the YAML # defaults for command-line options). This is the XDG config root on Linux. # https://snakemake.readthedocs.io/en/latest/executing/cli.html#profiles paths = ["[configHome]/snakemake/"] secret = [] [commands] format = 1 label = "Run a workflow" description = "Run or preview a Snakefile workflow. Cluster, container, conda, report and plugin options are left out." quality = "ai-draft" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = true } [[commands.source]] id = "snakemake-man" kind = "manual" url = "https://manpages.debian.org/unstable/snakemake/snakemake.1.en.html" revision = "Debian snakemake(1)" evidence = '''usage: snakemake [-h] [--snakefile FILE] [--cores [N]] [--configfile FILE] [--directory DIR] [--dryrun] [--printshellcmds] [--keep-going] [--forceall] [--reason] [--unlock] [--rerun-incomplete] [target [target ...]] --snakefile FILE, -s FILE --cores [N], --jobs [N], -j [N] Use at most N cores in parallel (default: 1). --configfile FILE --list, -l Show available rules in given Snakefile. --directory DIR, -d DIR --dryrun, -n Do not execute anything. --printshellcmds, -p --dag --keep-going, -k --forceall, -F --reason, -r --unlock Remove a lock on the working directory. --rerun-incomplete, --ri''' [[commands.field]] id = "targets" label = "Targets" description = "Rules or files to build. Empty builds the first rule." type = "string" position = 0 multiple = true sources = ["snakemake-man"] [[commands.field]] id = "cores" label = "Cores" description = "Maximum cores in parallel." type = "integer" option = ["--cores", "-j"] sources = ["snakemake-man"] [[commands.field]] id = "snakefile" label = "Snakefile" type = "path" option = ["--snakefile", "-s"] path = { kind = "file", role = "input" } sources = ["snakemake-man"] [[commands.field]] id = "configfile" label = "Config file" type = "path" option = ["--configfile"] path = { kind = "file", role = "input" } sources = ["snakemake-man"] [[commands.field]] id = "directory" label = "Working directory" type = "path" option = ["--directory", "-d"] path = { kind = "directory", role = "input" } sources = ["snakemake-man"] [[commands.field]] id = "dryrun" label = "Dry run" type = "boolean" option = ["--dryrun", "-n"] sources = ["snakemake-man"] [[commands.field]] id = "printshellcmds" label = "Print shell commands" type = "boolean" option = ["--printshellcmds", "-p"] sources = ["snakemake-man"] [[commands.field]] id = "reason" label = "Print reason for each job" type = "boolean" option = ["--reason", "-r"] sources = ["snakemake-man"] [[commands.field]] id = "keep_going" label = "Keep going after failures" type = "boolean" option = ["--keep-going", "-k"] sources = ["snakemake-man"] [[commands.field]] id = "forceall" label = "Force re-run of all dependencies" type = "boolean" option = ["--forceall", "-F"] effect = "overwrite" sources = ["snakemake-man"] [[commands.field]] id = "rerun_incomplete" label = "Re-run incomplete jobs" type = "boolean" option = ["--rerun-incomplete", "--ri"] sources = ["snakemake-man"] [[commands.field]] id = "unlock" label = "Remove working directory lock" type = "boolean" option = ["--unlock"] sources = ["snakemake-man"] [[commands.field]] id = "list" label = "List rules" type = "boolean" option = ["--list", "-l"] sources = ["snakemake-man"] [[commands.field]] id = "dag" label = "Print the job DAG (dot)" type = "boolean" option = ["--dag"] sources = ["snakemake-man"] [[commands.task]] id = "dry" label = "Preview the plan" set = { dryrun = [true], printshellcmds = [true] } fields = ["targets", "cores", "snakefile", "dryrun", "printshellcmds", "reason"] required = [] [[commands.task]] id = "run" label = "Run the workflow" set = { cores = [4] } fields = ["targets", "cores", "snakefile", "keep_going", "rerun_incomplete"] required = [] [[commands.task]] id = "unlock" label = "Unlock directory" set = { unlock = [true] } fields = ["snakefile", "unlock"] required = [] [[commands.group]] id = "basic" label = "Basic" fields = ["targets", "cores", "snakefile", "dryrun", "printshellcmds", "reason"] [[commands.group]] id = "advanced" label = "Advanced" fields = ["configfile", "directory", "keep_going", "forceall", "rerun_incomplete", "unlock", "list", "dag"]