def process_file(filename, treatment, rat, session): """prints out a variety of statistics for each zone""" zone_g, between_zone_g = zone_graphs("zone-graph.txt") baseline = uniform_zone_entropy(zone_g) between_zone_baseline = uniform_zone_entropy(between_zone_g) allzones = zones(filename) bigram_counts = remove_terminal_transitions(bigrams(allzones)) bigram_probs = probs_bigrams(bigram_counts) between_zone_bigram_counts = remove_self_transitions(bigram_counts) between_zone_bigram_probs = probs_bigrams(between_zone_bigram_counts) #print filename for (zone, p) in bigram_probs.iteritems(): zone_destinations = zone_g[zone].keys() #impossible_transitions = [(zone, z2, pr) for (z2, pr) in p.iteritems() if z2 not in zone_destinations] impossible_transitions = find_impossible_transitions(zone_g, zone, p) #if len(impossible_transitions) > 0: #print "impossible transitions: " , treatment, rat, session, impossible_transitions entropy = h(p.values()) count = sum(bigram_counts[zone].values()) bz_p = between_zone_bigram_probs[zone] bz_entropy = h(bz_p.values()) bz_count = sum(between_zone_bigram_counts[zone].values()) #details = ' '.join([ "%4s:%f" % pair for pair in p.iteritems()]) #print "\t%4s : %4d * %f -> %4s" % (zone, count, entropy, details) print ','.join([str(x) for x in [treatment, rat, session, zone, entropy, baseline[zone], baseline[zone]-entropy, bz_entropy, between_zone_baseline[zone], between_zone_baseline[zone]-bz_entropy, count, bz_count]])
def distance_matrix(filename, distance_finder, print_dicts=False): allforays = [f for f in forays(zones(filename))] nf = len(allforays) if print_dicts: print "%s: %d forays" % (filename, nf) #for f in allforays: #print '-'.join(f) distances = numpy.zeros((nf, nf)) for i in range(0,nf-1): for j in range(i+1,nf): distances[i,j] = distance_finder.distance(allforays[i], allforays[j], False) if print_dicts: print type(distance_finder).__name__ print distances return distances