Update mussa to build on ubuntu 10.04 with qt 4.6.2 +boost 1.40.0.1
[mussa.git] / alg / nway_paths.hpp
index 3259116675aed4fff16796fd10d781a51f14073f..686e27f524602521efc24af61d1fe08a22795299 100644 (file)
@@ -14,6 +14,7 @@
 //                         ----------  mussa_nway.hh  -----------
 //                        ----------------------------------------
 #include <QObject>
+#include <QString>
 
 #include <boost/filesystem/path.hpp>
 
@@ -31,9 +32,12 @@ class NwayPaths : public QObject
 
 signals:
   //! emit to indicate how much progress we've made
-  void progress(const std::string& description, int cur, int max);
+  void progress(const QString& description, int cur, int max);
 
 public:
+    typedef size_t size_type;
+    typedef std::list<ConservedPath> ConservedPaths;
+    
     NwayPaths();
     NwayPaths(const NwayPaths&);
 
@@ -43,6 +47,8 @@ public:
     void setup_ent(double new_entropy_thres, std::vector<Sequence> some_Seqs);
     //! clear out our path
     void clear();
+    //! get the "soft" threshold (between the hard threshold and window size)
+    int get_soft_threshold() const;
     //! set the score that a match must exceed inorder to be recorded as a path
     void set_soft_threshold(int soft_thres);
     //! return minimum threshold for this analysis
@@ -57,7 +63,7 @@ public:
 
   // old recursive transitive nway ... has issues checking all links?
     void find_paths_r(std::vector<std::vector<FLPs> > all_comparisons);
-    void path_search(std::vector<std::vector<FLPs> > all_comparisons, ConservedPath path, size_t depth);
+    void path_search(std::vector<std::vector<FLPs> > all_comparisons, ConservedPath path, size_type depth);
 
     void simple_refine();
     void save(boost::filesystem::path save_file_path);
@@ -66,7 +72,7 @@ public:
     void add_path(int threshold, std::vector<int>& loaded_path);
     void add_path(ConservedPath loaded_path);
     //! how many sequences are in our comparison
-    size_t sequence_count();
+    size_type sequence_count() const;
 
     void find_paths(std::vector<std::vector<FLPs> > all_comparisons);
     void refine();
@@ -76,25 +82,25 @@ public:
 
     // The following iterator functions are mostly for the python interface
     // they'll have problems when being called from within a const object
-    std::list<ConservedPath>::iterator pbegin() { return pathz.begin() ; }
-    std::list<ConservedPath>::iterator pend() { return pathz.end() ; }
-    size_t path_size() const { return refined_pathz.size(); }
-    std::list<ConservedPath>::iterator rpbegin() { return refined_pathz.begin() ; }
-    std::list<ConservedPath>::iterator rpend() { return refined_pathz.end() ; }
-    size_t refined_path_size() const { return refined_pathz.size(); }
-
+    ConservedPaths::iterator pbegin() { return pathz.begin() ; }
+    ConservedPaths::iterator pend() { return pathz.end() ; }
+    size_type path_size() const { return pathz.size(); }
+    ConservedPaths::iterator rpbegin() { return refined_pathz.begin() ; }
+    ConservedPaths::iterator rpend() { return refined_pathz.end() ; }
+    size_type refined_path_size() const { return refined_pathz.size(); }
+
+    size_type size() const;
     // these probably shouldn't be public, but lets start 
     // simple
-    std::list<ConservedPath> pathz;
-    std::list<ConservedPath > refined_pathz;
+    ConservedPaths pathz;
+    ConservedPaths refined_pathz;
 
 protected:
     int threshold;
-    size_t win_size;
+    size_type win_size;
     int soft_thres;
 
     double ent_thres;
     std::vector<char *> c_sequences; //used by entropy_path_search
-
 };
 #endif