// ---------- mussa_nway.hh -----------
// ----------------------------------------
#include <QObject>
+#include <QString>
#include <boost/filesystem/path.hpp>
#include "alg/conserved_path.hpp"
#include "alg/flp.hpp"
+#include "alg/sequence.hpp"
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&);
//! setup an nway comparison, initialize # of species, window size,
//! threshold
void setup(int w, int t);
- void setup_ent(double new_entropy_thres, std::vector<std::string> some_Seqs);
+ 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
// 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);
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();
// 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