procope.methods.clustering
Class HierarchicalClusteringTrees

java.lang.Object
  extended by procope.methods.clustering.HierarchicalClusteringTrees

public class HierarchicalClusteringTrees
extends Object

Implements hierarchical agglomerative clustering in O(n2) time and space complexity. It utilizes a nearest neighbor chain method as described in

Murthag, F.
Complexities of Hierarchic Clustering Algorithms: State of the Art
Computational Statistics Quarterly, 1984, 1, 101-113

Supports single linkage, complete linkage, UPGMA and WPGMA clustering

Note: As there are seems to be a confusion in the literature about UPGMA and WPGMA we adapt the notation of the paper above. UPGMA calculates the average of two clusters as the average similarty between all members. For WPGMA the similarity of a merged cluster to any other cluster is the arithmetic mean of the two merged clusters to that other cluster.

Trees

This class does not directly compute a clustering but a tree which represents the order of agglomerations and the similarities at which the subclusters were merged. You have to apply a cutoff value on that tree afterwards to cut the tree and get clusters.

Note: This class contains only static members and is not instantiatable.

Author:
Jan Krumsiek

Method Summary
static HierarchicalTreeNode clusterSimilarities(ProteinNetwork net, HierarchicalLinkage linkage)
          Performs agglomerative hierarchical clustering on a given network using a given linkage method.
static HierarchicalTreeNode clusterSimilarities(ProteinNetwork net, HierarchicalLinkage linkage, Set<Integer> proteins)
          Performs agglomerative hierarchical clustering on a given network using a given linkage method.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Method Detail

clusterSimilarities

public static HierarchicalTreeNode clusterSimilarities(ProteinNetwork net,
                                                       HierarchicalLinkage linkage)
Performs agglomerative hierarchical clustering on a given network using a given linkage method. Missing edges get an implicit weight of zero.

Parameters:
net - similarity network to be clustered
linkage - linkage to be used
Returns:
the resulting clustering tree

clusterSimilarities

public static HierarchicalTreeNode clusterSimilarities(ProteinNetwork net,
                                                       HierarchicalLinkage linkage,
                                                       Set<Integer> proteins)
Performs agglomerative hierarchical clustering on a given network using a given linkage method. Missing edges get an implicit weight of zero.

Parameters:
net - similarity network to be clustered
linkage - linkage to be used
proteins - only cluster this given set of proteins
Returns:
the resulting clustering tree