ducttape: A Crash Course

Nathan Schneider


This is a tutorial for ducttape, a workflow management tool by Jonathan Clark. Parts are based on his original tutorial. It was created with the Mou editor; Markdown and Graphviz dot sources are on GitHub.

Cat pictures are from the Internet.

Is ducttape right for you?

Do you suffer from Bash Bookkeeping Beleaguerment? Symptoms include:

In a nutshell, ducttape cures these by formalizing each project as a series of modular steps, or tasks, organized in a workflow describing inter-task dependencies.

Variants on a workflow (e.g., for tuning parameters or running the same processing on multiple datasets) can be specified with branch points. These variants can be run side-by-side.

With version control integration, each experimental result remembers which version of the code produced it.

Open source and written in Scala, ducttape is free and runs on any machine with a Java VM.

Side effects may include unexpected free time, increased productivity, and spontaneous happy dances.


Sections 1 and 2 present the core concepts and features of ducttape. Read these first after installing ducttape on your system. The remaining sections can be consulted independently; they are in no particular order.

  1. Actual example: 10neigh.sym.awnHeuristicScores.lp_1e-2_1e-2.vertices.indexed