{
  "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
    },
    "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 ...]]\n  --snakefile\n    FILE, -s FILE\n  --cores [N],\n    --jobs [N], -j [N]\n  Use at most N cores in parallel (default: 1).\n  --configfile\n    FILE\n  --list,\n    -l\n  Show available rules in given Snakefile.\n  --directory\n    DIR, -d DIR\n  --dryrun,\n    -n\n  Do not execute anything.\n  --printshellcmds,\n    -p\n  --dag\n  --keep-going,\n    -k\n  --forceall,\n    -F\n  --reason,\n    -r\n  --unlock\n  Remove a lock on the working directory.\n  --rerun-incomplete,\n    --ri"
      }
    ],
    "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"
        ]
      },
      {
        "id": "cores",
        "label": "Cores",
        "description": "Maximum cores in parallel.",
        "type": "integer",
        "option": [
          "--cores",
          "-j"
        ],
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "snakefile",
        "label": "Snakefile",
        "type": "path",
        "option": [
          "--snakefile",
          "-s"
        ],
        "path": {
          "kind": "file",
          "role": "input"
        },
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "configfile",
        "label": "Config file",
        "type": "path",
        "option": [
          "--configfile"
        ],
        "path": {
          "kind": "file",
          "role": "input"
        },
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "directory",
        "label": "Working directory",
        "type": "path",
        "option": [
          "--directory",
          "-d"
        ],
        "path": {
          "kind": "directory",
          "role": "input"
        },
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "dryrun",
        "label": "Dry run",
        "type": "boolean",
        "option": [
          "--dryrun",
          "-n"
        ],
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "printshellcmds",
        "label": "Print shell commands",
        "type": "boolean",
        "option": [
          "--printshellcmds",
          "-p"
        ],
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "reason",
        "label": "Print reason for each job",
        "type": "boolean",
        "option": [
          "--reason",
          "-r"
        ],
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "keep_going",
        "label": "Keep going after failures",
        "type": "boolean",
        "option": [
          "--keep-going",
          "-k"
        ],
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "forceall",
        "label": "Force re-run of all dependencies",
        "type": "boolean",
        "option": [
          "--forceall",
          "-F"
        ],
        "effect": "overwrite",
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "rerun_incomplete",
        "label": "Re-run incomplete jobs",
        "type": "boolean",
        "option": [
          "--rerun-incomplete",
          "--ri"
        ],
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "unlock",
        "label": "Remove working directory lock",
        "type": "boolean",
        "option": [
          "--unlock"
        ],
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "list",
        "label": "List rules",
        "type": "boolean",
        "option": [
          "--list",
          "-l"
        ],
        "sources": [
          "snakemake-man"
        ]
      },
      {
        "id": "dag",
        "label": "Print the job DAG (dot)",
        "type": "boolean",
        "option": [
          "--dag"
        ],
        "sources": [
          "snakemake-man"
        ]
      }
    ],
    "task": [
      {
        "id": "dry",
        "label": "Preview the plan",
        "set": {
          "dryrun": [
            true
          ],
          "printshellcmds": [
            true
          ]
        },
        "fields": [
          "targets",
          "cores",
          "snakefile",
          "dryrun",
          "printshellcmds",
          "reason"
        ],
        "required": []
      },
      {
        "id": "run",
        "label": "Run the workflow",
        "set": {
          "cores": [
            4
          ]
        },
        "fields": [
          "targets",
          "cores",
          "snakefile",
          "keep_going",
          "rerun_incomplete"
        ],
        "required": []
      },
      {
        "id": "unlock",
        "label": "Unlock directory",
        "set": {
          "unlock": [
            true
          ]
        },
        "fields": [
          "snakefile",
          "unlock"
        ],
        "required": []
      }
    ],
    "group": [
      {
        "id": "basic",
        "label": "Basic",
        "fields": [
          "targets",
          "cores",
          "snakefile",
          "dryrun",
          "printshellcmds",
          "reason"
        ]
      },
      {
        "id": "advanced",
        "label": "Advanced",
        "fields": [
          "configfile",
          "directory",
          "keep_going",
          "forceall",
          "rerun_incomplete",
          "unlock",
          "list",
          "dag"
        ]
      }
    ]
  }
}
