#!/usr/bin/env ruby require 'Newick' if (ARGV.size != 2) STDERR.printf("usage: %s tree-file tree-file\n", $0) exit(1) end tree1File, tree2File = ARGV tree1 = NewickTree.fromFile(tree1File) tree2 = NewickTree.fromFile(tree2File) begin diff1, diff2 = tree1.compare(tree2) if (diff1.empty? && diff2.empty?) printf("The trees are identical\n") else printf("Clades in #{tree1File} but not #{tree2File}:\n") diff1.each {|clade| p clade } printf("Clades in #{tree2File} but not #{tree1File}:\n") diff2.each {|clade| p clade } end rescue STDERR.printf("The two trees have different taxa and are not comparable\n") exit(1) end