'assemble' is an implementation of a simple De Bruijn assembler that takes reads as input and outputs the assembled contigs of those reads. 'simulate' takes known contigs and generates a set of reads with user-selected coverage, read length and error rate.
GraphViz for DOT (used only for generating intermediate graphs during assembly, should be optional some day).