def compare_to_random_tree(msc_leaf2clusters, \ bonding_calc, membership_calc, membership_bonding,\ only_fast_calculations = False): leaves = list( msc_leaf2clusters ) rand_tree,num_l,num_m = get_random_tree2(leaves) rand_leaf2clusters = trees.bottomup2topdown_tree_converter(rand_tree) indexes_dict = tree_distance.get_indexes_dict(msc_leaf2clusters, rand_leaf2clusters, \ bonding_calc, membership_calc, membership_bonding,\ only_fast_calculations) #print indexes_dict return (num_l, num_m, indexes_dict)
results = {} #{index-name: list of results} start = time.clock() for i in xrange(NUM_TRIES): print "",(time.clock()-start),i,"out of",NUM_TRIES, (num_l, num_m, indexes_dict) = compare_to_random_tree(msc_leaf2clusters, \ bonding_calc, membership_calc, membership_bonding,\ only_fast_calculations) indexes_dict["num_l"] = num_l indexes_dict["num_m"] = num_m for id, val in indexes_dict.iteritems(): results[id] = results.get(id,[])+[val] print "Results:",results print "Tree self-comparison..." print "",tree_distance.get_indexes_dict(msc_leaf2clusters, msc_leaf2clusters, \ bonding_calc, membership_calc, membership_bonding,\ only_fast_calculations) print "Stats..." print "\tid\tavg\tstd" for id,vals in results.iteritems(): print "\t",id,"\t",avg(vals),"\t",std(vals) print "Num clusters vs index..." for id,vals in results.iteritems(): if id == "num_l" or id == "num_m": continue num_l = results["num_l"] num_m = results["num_m"] print "\t",id,"----------" print "\tnum_l\tnum_m\tval" for i in xrange(len(vals)):