id = "snakemake"
name = "Snakemake"
homepage = "https://snakemake.github.io/"
executables = ["snakemake"]
platforms = ["linux"]
[dotfiles]
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"]