code: func edgeEntropyScore(n *Node, edges EdgeMap, self int64) float64 {
  	score := float64(0)
  	total := self
  	for _, e := range edges {
  		if e.Weight > 0 {
  			total += abs64(e.Weight)
  		}
  	}
  	if total != 0 {
  		for _, e := range edges {
  			frac := float64(abs64(e.Weight)) / float64(total)
  			score += -frac * math.Log2(frac)
  		}
  		if self > 0 {
  			frac := float64(abs64(self)) / float64(total)
  			score += -frac * math.Log2(frac)
  		}
  	}
  	return score
  }
docs: // edgeEntropyScore computes the entropy value for a set of edges
  // coming in or out of a node. Entropy (as defined in information
  // theory) refers to the amount of information encoded by the set of
  // edges. A set of edges that have a more interesting distribution of
  // samples gets a higher score.