#!/usr/bin/env ruby require 'Newick' require 'optparse' require 'ostruct' opt = OpenStruct.new opt.verbose = false ARGV.options {|opts| opts.banner << " tree-file" opts.on("-v", "--verbose", "show progress") {|t| opt.verbose = t} begin opts.parse! rescue STDERR.puts $!.message STDERR.puts opts exit(1) end if (ARGV.size < 1) STDERR.puts opts exit(1) end } file = ARGV.pop tree = NewickTree.fromFile(file) dMatrix = tree.distanceMatrix(opt.verbose) printf(" %d\n", dMatrix.keys.size) dMatrix.keys.each {|key1| printf("%-16s ", key1) dMatrix.keys.each {|key2| printf("%f ", dMatrix[key1][key2]) } printf("\n") }