48 avg_distance_(avg_distance),
49 center_index_(center_index)
56 avg_distance_(rhs.avg_distance_),
57 center_index_(rhs.center_index_)
79 if (size_ > rhs.
size_)
return true;
80 if (size_ < rhs.
size_)
return false;
96 return *
this < rhs || rhs < *
this;
102 return !(*
this != rhs);
120 return avg_distance_;
126 return center_index_;
177 void group(
const std::vector<ConsensusMap>& maps,
189 return "unlabeled_kd";
205 template <
typename MapType>
212 void updateClusterProxies_(std::set<ClusterProxyKD>& potential_clusters, std::vector<ClusterProxyKD>& cluster_for_idx,
const std::set<Size>& update_these,
const std::vector<Int>& assigned,
const KDTreeFeatureMaps& kd_data);
Proxy for a (potential) cluster.
Definition: FeatureGroupingAlgorithmKD.h:33
double avg_distance_
Average distance to center.
Definition: FeatureGroupingAlgorithmKD.h:135
~ClusterProxyKD()
Destructor (non-virtual to save memory)
Definition: FeatureGroupingAlgorithmKD.h:62
Size getSize() const
Cluster size.
Definition: FeatureGroupingAlgorithmKD.h:106
Size getCenterIndex() const
Index of center point.
Definition: FeatureGroupingAlgorithmKD.h:124
bool isValid() const
Valid?
Definition: FeatureGroupingAlgorithmKD.h:112
double getAvgDistance() const
Average distance to center.
Definition: FeatureGroupingAlgorithmKD.h:118
ClusterProxyKD(const ClusterProxyKD &rhs)
Copy constructor.
Definition: FeatureGroupingAlgorithmKD.h:54
bool operator!=(const ClusterProxyKD &rhs) const
Inequality operator.
Definition: FeatureGroupingAlgorithmKD.h:94
bool operator==(const ClusterProxyKD &rhs) const
Equality operator.
Definition: FeatureGroupingAlgorithmKD.h:100
ClusterProxyKD()
Default constructor.
Definition: FeatureGroupingAlgorithmKD.h:38
ClusterProxyKD & operator=(const ClusterProxyKD &rhs)
Assignment operator.
Definition: FeatureGroupingAlgorithmKD.h:67
Size size_
Cluster size.
Definition: FeatureGroupingAlgorithmKD.h:132
ClusterProxyKD(Size size, double avg_distance, Size center_index)
Constructor.
Definition: FeatureGroupingAlgorithmKD.h:46
bool operator<(const ClusterProxyKD &rhs) const
Less-than operator for sorting / equality check in std::set. We use the ordering in std::set as a "pr...
Definition: FeatureGroupingAlgorithmKD.h:77
Size center_index_
Index of center point.
Definition: FeatureGroupingAlgorithmKD.h:138
A container for consensus elements.
Definition: ConsensusMap.h:66
A functor class for the calculation of distances between features or consensus features.
Definition: FeatureDistance.h:65
A feature grouping algorithm for unlabeled data.
Definition: FeatureGroupingAlgorithmKD.h:155
double mz_tol_
m/z tolerance
Definition: FeatureGroupingAlgorithmKD.h:227
ClusterProxyKD computeBestClusterForCenter_(Size i, std::vector< Size > &cf_indices, const std::vector< Int > &assigned, const KDTreeFeatureMaps &kd_data) const
Compute the current best cluster with center index i (mutates proxy and cf_indices)
FeatureGroupingAlgorithmKD(const FeatureGroupingAlgorithmKD &)
Copy constructor intentionally not implemented -> private.
FeatureGroupingAlgorithmKD()
Default constructor.
void runClustering_(const KDTreeFeatureMaps &kd_data, ConsensusMap &out)
Run the actual clustering algorithm.
double rt_tol_secs_
RT tolerance.
Definition: FeatureGroupingAlgorithmKD.h:224
static String getProductName()
Returns the product name (for the Factory)
Definition: FeatureGroupingAlgorithmKD.h:187
~FeatureGroupingAlgorithmKD() override
Destructor.
bool mz_ppm_
m/z unit ppm?
Definition: FeatureGroupingAlgorithmKD.h:230
FeatureDistance feature_distance_
Feature distance functor.
Definition: FeatureGroupingAlgorithmKD.h:233
FeatureGroupingAlgorithmKD & operator=(const FeatureGroupingAlgorithmKD &)
Assignment operator intentionally not implemented -> private.
void group(const std::vector< ConsensusMap > &maps, ConsensusMap &out) override
Applies the algorithm to consensus maps.
void group_(const std::vector< MapType > &input_maps, ConsensusMap &out)
Applies the algorithm to feature or consensus maps.
static FeatureGroupingAlgorithm * create()
Creates a new instance of this class (for Factory)
Definition: FeatureGroupingAlgorithmKD.h:181
void updateClusterProxies_(std::set< ClusterProxyKD > &potential_clusters, std::vector< ClusterProxyKD > &cluster_for_idx, const std::set< Size > &update_these, const std::vector< Int > &assigned, const KDTreeFeatureMaps &kd_data)
Update maximum possible sizes of potential consensus features for indices specified in update_these.
SignedSize progress_
Current progress for logging.
Definition: FeatureGroupingAlgorithmKD.h:221
void group(const std::vector< FeatureMap > &maps, ConsensusMap &out) override
Applies the algorithm to feature maps.
void addConsensusFeature_(const std::vector< Size > &indices, const KDTreeFeatureMaps &kd_data, ConsensusMap &out) const
Construct consensus feature and add to out map.
Base class for all feature grouping algorithms.
Definition: FeatureGroupingAlgorithm.h:25
Stores a set of features, together with a 2D tree for fast search.
Definition: KDTreeFeatureMaps.h:24
Base class for all classes that want to report their progress.
Definition: ProgressLogger.h:27
A more convenient string class.
Definition: String.h:34
ptrdiff_t SignedSize
Signed Size type e.g. used as pointer difference.
Definition: Types.h:108
size_t Size
Size type e.g. used as variable which can hold result of size()
Definition: Types.h:101
Main OpenMS namespace.
Definition: FeatureDeconvolution.h:22