14 #ifndef INCLUDED_protocols_toolbox_KCluster_hh
15 #define INCLUDED_protocols_toolbox_KCluster_hh
21 #include <utility/vector1.hh>
23 #include <ObjexxFCL/FArray3D.hh>
24 #include <ObjexxFCL/FArray2D.hh>
25 #include <ObjexxFCL/FArray1D.hh>
26 #include <ObjexxFCL/FArray3.hh>
27 #include <ObjexxFCL/FArray2.hh>
28 #include <ObjexxFCL/FArray1.hh>
29 #include <ObjexxFCL/FArray2P.hh>
30 #include <ObjexxFCL/FArray3P.hh>
60 dist_list_(nd,999999),
65 for(
Size i=1; i<=nd; i++)data_ndx_[i]=i;
74 data_ndx_.push_back(ndx_data);
75 type_list_.push_back(0);
76 dist_list_.push_back(999999);
83 center_ndx_.push_back(ndx_data);
90 center_ndx_[ndx_cluster] = ndx_data;
96 return type_list_[ndx_data];
102 return dist_list_[ndx_data];
108 return center_ndx_[ndx_cluster];
120 return subclusters_[
c]->get_ndx_list();
126 return subclusters_[nc];
130 return center_ndx_.size();
136 return subclusters_.size();
142 return data_ndx_.size();
148 return data_ndx_[ndx_data];
153 return max_distance_;
158 return max_dist_ndx_;
172 for (
Size i=1, e=subclusters_.size(); i<=e; i++)
174 subclusters_[i]->clear_data();
210 typedef ObjexxFCL::FArray1D_double
FA1Dd;
212 typedef ObjexxFCL::FArray2_double
FA2d;
213 typedef ObjexxFCL::FArray2P_double
FA2Pd;
214 typedef ObjexxFCL::FArray3P_double
FA3Pd;
219 void load_silent_files();
220 void load_silent_file(
string,
Size);
233 return original_tags_[i][1];
237 return original_filenames_[i];
242 return dataset_.coords();
247 void save_all_in_one();
248 void save_cluster_tree();
250 Real dist_square(FA2d &, FA2d &);
253 void show_cluster_assignments();
272 typedef ObjexxFCL::FArray2_double
FA2d;
273 typedef ObjexxFCL::FArray2P_double
FA2Pd;
280 virtual bool whoami()=0;
281 virtual Real get_threshold()=0;
282 virtual void set_threshold(
Real)=0;
302 Real get_threshold();
306 void set_threshold(
Real);
323 Real get_threshold();
327 void set_threshold(
Real);