An example of a Snakemake command line interface bundled up as an installable Python package.
This example bundles the Snakefile with the command line tool, but this tool can also look in the user's working directory for Snakefiles.
Snakemake functionality is provided through
a command line tool called
This runs through the installation and usage of 2019-snakemake-cli.
Start by setting up a virtual environment, and install the required packages into the virtual environment:
pip install -r requirements.txt
Now install the
bananas command line tool:
python setup.py build install
Now you can run
and you should see
bananas in your virtual
Move to the
test/ directory and run the tests
with the provided config and params files.
Run the hello workflow with Amy params:
rm -f hello.txt bananas workflow-hello params-amy
Run the hello workflow with Beth params:
rm -f hello.txt bananas workflow-hello params-beth
Run the goodbye workflow with Beth params:
rm -f goodbye.txt bananas workflow-goodbye params-beth
The entrypoint of the command line interface is
main() function of
The location of the Snakefile is
An alternative arrangement would be for users to provide a Snakefile via rules in the working directory, or via a Github URL or a remote URL.
v1.0- initial version, ctb/2018-snakemake-cli
v2.0- Snakemake workflow bundled as installable Python package, Snakefile bundled with Python package, command line interface provided to wrap Snakemake API call