Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #ifndef OPENMS_ANALYSIS_MAPMATCHING_QTCLUSTERFINDER_H
00037 #define OPENMS_ANALYSIS_MAPMATCHING_QTCLUSTERFINDER_H
00038
00039 #include <OpenMS/ANALYSIS/MAPMATCHING/BaseGroupFinder.h>
00040 #include <OpenMS/CONCEPT/ProgressLogger.h>
00041 #include <OpenMS/COMPARISON/CLUSTERING/HashGrid.h>
00042 #include <OpenMS/DATASTRUCTURES/GridFeature.h>
00043 #include <OpenMS/DATASTRUCTURES/QTCluster.h>
00044 #include <OpenMS/ANALYSIS/MAPMATCHING/FeatureDistance.h>
00045
00046 namespace OpenMS
00047 {
00048
00081 class OPENMS_DLLAPI QTClusterFinder :
00082 public BaseGroupFinder
00083 {
00084 private:
00086 typedef std::map<std::pair<GridFeature *, GridFeature *>, DoubleReal>
00087 PairDistances;
00088
00089 typedef HashGrid<GridFeature *> Grid;
00090
00092 Size num_maps_;
00093
00095 bool use_IDs_;
00096
00098 DoubleReal max_diff_rt_;
00099
00101 DoubleReal max_diff_mz_;
00102
00104 FeatureDistance feature_distance_;
00105
00111 PairDistances distances_;
00112
00118 DoubleReal getDistance_(GridFeature * left, GridFeature * right);
00119
00125 bool compatibleIDs_(QTCluster & cluster, const GridFeature * neighbor);
00126
00128 void setParameters_(DoubleReal max_intensity, DoubleReal max_mz);
00129
00131 void makeConsensusFeature_(std::list<QTCluster> & clustering,
00132 ConsensusFeature & feature);
00133
00135 void computeClustering_(Grid & grid, std::list<QTCluster> & clustering);
00136
00138 template <typename MapType>
00139 void run_(const std::vector<MapType> &
00140 input_maps, ConsensusMap & result_map);
00141
00142 protected:
00143 enum
00144 {
00145 RT = Peak2D::RT,
00146 MZ = Peak2D::MZ
00147 };
00148
00149 public:
00151 QTClusterFinder();
00152
00154 virtual ~QTClusterFinder();
00155
00157 static const String getProductName()
00158 {
00159 return "qt";
00160 }
00161
00167 void run(const std::vector<ConsensusMap> & input_maps,
00168 ConsensusMap & result_map);
00169
00175 void run(const std::vector<FeatureMap<> > & input_maps,
00176 ConsensusMap & result_map);
00177
00179 static BaseGroupFinder * create()
00180 {
00181 return new QTClusterFinder();
00182 }
00183
00184 };
00185
00186 }
00187
00188 #endif