public static void main(String[] args) throws JSAPException, IOException, ClassNotFoundException {
final SimpleJSAP jsap = new SimpleJSAP(ClusterSequences.class.getName(),
"Parses input sequences to do clustering on them. Input sequences should have one sequence per line. "
+ "Each sequence is a tab-separated list of symbols.", new Parameter[] {
new Switch("verbose", 'v', "verbose", "Set verbose output"),
new FlaggedOption("taxonomy-file", JSAP.STRING_PARSER, JSAP.NO_DEFAULT, JSAP.REQUIRED, 't', "taxonomy-file",
"File containing the description of the taxonomy."),
new FlaggedOption("clusters", JSAP.INTEGER_PARSER, Integer.toString(DEFAULT_CLUSTERS), JSAP.NOT_REQUIRED, 'c', "clusters",
"Number of clusters to use."),
new FlaggedOption("passes", JSAP.INTEGER_PARSER, Integer.toString(DEFAULT_PASSES), JSAP.NOT_REQUIRED, 'p', "passes",
"Number of passes of the algorithm to do."),
new Switch("init-all-leaves", 'l', "init-all-leaves", "Initial model states are all leaves from taxonomy."),
new FlaggedOption("init-all-level", JSAP.INTEGER_PARSER, JSAP.NO_DEFAULT, JSAP.NOT_REQUIRED, 'e', "init-all-level",
"Initial model states are leaves or internal nodes at level <= x."),
new FlaggedOption("init-explicit", JSAP.STRING_PARSER, JSAP.NO_DEFAULT, JSAP.NOT_REQUIRED, 'x', "init-explicit",
"Initial model states are a quote-enclosed, space-separated list, given as input."),
new FlaggedOption("max-iterations", JSAP.INTEGER_PARSER, JSAP.NO_DEFAULT, JSAP.NOT_REQUIRED, 'm', "max-iterations",