Instead of mergeClusters, changed to genClusterTree to use it to get sig and generate hierarchical tree to build relationship between proteins. varyCutThreshold can cut the tree at diff thresholds to generate different sized clusters to share functions. Also added function probabilities for each cluster to get a confidence score, dependent on how many annotated proteins in that cluster have it. Can scale with cutoff threshold (higher threshold, lower score) to get rarer functions at higher thresholds (bigger clusters) and get consensus score weighted by threshold. Changed topFuncs to use a different method, starting from roots instead of leaves.