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)
示例#2
0
 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)):