Пример #1
0
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]])
Пример #2
0
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