OpenMS
AverageLinkage Class Reference

AverageLinkage ClusterMethod. More...

#include <OpenMS/COMPARISON/CLUSTERING/AverageLinkage.h>

Inheritance diagram for AverageLinkage:
[legend]
Collaboration diagram for AverageLinkage:
[legend]

Public Member Functions

 AverageLinkage ()
 default constructor More...
 
 AverageLinkage (const AverageLinkage &source)
 copy constructor More...
 
 ~AverageLinkage () override
 destructor More...
 
AverageLinkageoperator= (const AverageLinkage &source)
 assignment operator More...
 
void operator() (DistanceMatrix< float > &original_distance, std::vector< BinaryTreeNode > &cluster_tree, const float threshold=1) const override
 clusters the indices according to their respective element distances More...
 
- Public Member Functions inherited from ClusterFunctor
 ClusterFunctor ()
 default constructor More...
 
 ClusterFunctor (const ClusterFunctor &source)
 copy constructor More...
 
virtual ~ClusterFunctor ()
 destructor More...
 
ClusterFunctoroperator= (const ClusterFunctor &source)
 assignment operator More...
 
- Public Member Functions inherited from ProgressLogger
 ProgressLogger ()
 Constructor. More...
 
virtual ~ProgressLogger ()
 Destructor. More...
 
 ProgressLogger (const ProgressLogger &other)
 Copy constructor. More...
 
ProgressLoggeroperator= (const ProgressLogger &other)
 Assignment Operator. More...
 
void setLogType (LogType type) const
 Sets the progress log that should be used. The default type is NONE! More...
 
LogType getLogType () const
 Returns the type of progress log being used. More...
 
void startProgress (SignedSize begin, SignedSize end, const String &label) const
 Initializes the progress display. More...
 
void setProgress (SignedSize value) const
 Sets the current progress. More...
 
void endProgress (UInt64 bytes_processed=0) const
 
void nextProgress () const
 increment progress by 1 (according to range begin-end) More...
 

Static Public Member Functions

static ClusterFunctorcreate ()
 creates a new instance of a AverageLinkage object More...
 
static const String getProductName ()
 get the identifier for this object More...
 
- Static Public Member Functions inherited from ClusterFunctor
static void registerChildren ()
 registers all derived products More...
 

Additional Inherited Members

- Public Types inherited from ProgressLogger
enum  LogType { CMD , GUI , NONE }
 Possible log types. More...
 
- Static Protected Member Functions inherited from ProgressLogger
static String logTypeToFactoryName_ (LogType type)
 Return the name of the factory product used for this log type. More...
 
- Protected Attributes inherited from ProgressLogger
LogType type_
 
time_t last_invoke_
 
ProgressLoggerImplcurrent_logger_
 
- Static Protected Attributes inherited from ProgressLogger
static int recursion_depth_
 

Detailed Description

AverageLinkage ClusterMethod.

The details of the method can be found in: Backhaus, Erichson, Plinke, Weiber Multivariate Analysemethoden, Springer 2000 and Ellen M. Voorhees: Implementing agglomerative hierarchic clustering algorithms for use in document retrieval. Inf. Process. Manage. 22(6): 465-476 (1986)

See also
ClusterFunctor

Constructor & Destructor Documentation

◆ AverageLinkage() [1/2]

default constructor

◆ AverageLinkage() [2/2]

AverageLinkage ( const AverageLinkage source)

copy constructor

◆ ~AverageLinkage()

~AverageLinkage ( )
override

destructor

Member Function Documentation

◆ create()

static ClusterFunctor* create ( )
static

creates a new instance of a AverageLinkage object

◆ getProductName()

static const String getProductName ( )
static

get the identifier for this object

◆ operator()()

void operator() ( DistanceMatrix< float > &  original_distance,
std::vector< BinaryTreeNode > &  cluster_tree,
const float  threshold = 1 
) const
overridevirtual

clusters the indices according to their respective element distances

Parameters
original_distanceDistanceMatrix<float> containing the distances of the elements to be clustered, will be changed during clustering process, make sure to have a copy or be able to redo
cluster_treevector< BinaryTreeNode >, represents the clustering, each node contains the next merged clusters (not element indices) and their distance, strict order is kept: left_child < right_child
thresholdfloat value, the minimal distance from which on cluster merging is considered unrealistic. By default set to 1, i.e. complete clustering until only one cluster remains
Exceptions
ClusterFunctor::InsufficientInputthrown if input is <2 The clustering method is average linkage, where the updated distances after merging two clusters are each the average distances between the elements of their clusters. After threshold is exceeded, cluster_tree is filled with dummy clusteringsteps (children: (0,1), distance: -1) to the root.
See also
ClusterFunctor , BinaryTreeNode

Implements ClusterFunctor.

◆ operator=()

AverageLinkage& operator= ( const AverageLinkage source)

assignment operator